Repository navigation
Mover v3 data files: XNYS session calendar and sourced SEC Section 31 / FINRA TAF fees (freeze precondition 2) - #186
Merged
seathatflowsinourveins merged 2 commits intoSep 24, 2026
Conversation
Satisfies the data files of protocol-core-draft.json freeze_preconditions[2] without editing the protocol: - data/session-calendar.json: every scheduled XNYS session 2016-01-04 to 2030-12-31 from exchange_calendars 4.13.2 (3769 sessions, 32 early closes), with open and close in America/New_York and UTC and an early-close flag. Generated by data-tools/generate_session_calendar.py under a hash-locked requirements.lock; regeneration is byte-identical and is tested. - data/fees-v3.json: SEC Section 31 rows (Federal Register orders FY2016 to FY2026) and FINRA TAF covered-equity rows (FINRA versioned rule text and the SEC notices of the FINRA filings), 2017-01-01 through retrieval on 2026-09-24 plus adopted later rates, each with verbatim quotes. This includes the TAF pause for October to December 2026 (SR-FINRA-2026-021) and the two-year postponement (SR-FINRA-2026-020). - data/session-calendar-amendments.jsonl and data/fees-v3-amendments.jsonl: empty, append-only (force-added because .gitignore ignores *.jsonl). - data-pins.json records sha256 and bytes; tests/test_mover_v3_data.py checks pins, structure, sources and regeneration; verify_fee_sources.py re-fetches the sources and checks the quotes. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
test_osv_lockfile_coverage requires every tracked lockfile to be listed in .github/osv-scanner-lockfiles.json; add data-tools/requirements.lock (with its requirements.in covered by the lock) and refresh the list's evidence hash. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
seathatflowsinourveins
deleted the
claude/mover-v3-calendar-fees-20260924
branch
September 24, 2026 15:18
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 24, 2026
…ptance item 2) Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This was referenced Sep 24, 2026
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 25, 2026
Main moved 150+ commits, including #186 and #194 (the v3 data files and calendar extension) and #197 (leverage-ladder gate wording in the v3 README, which merged cleanly). manifests/evidence.json is main's registry with the stale digests refreshed. The study tree is bound by its own tree hash and pinned copies, and was never registered there. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Satisfies the data part of
protocol-core-draft.jsonfreeze_preconditions[2]: the XNYS session calendar from exchange_calendars 4.13.2,fees-v3.jsonwith sourced SEC Section 31 and FINRA TAF rows from 2017-01-01 through retrieval (2026-09-24), and both amendment files (empty). It adds new files only. The protocol, README and other mover-v3 files are unchanged; the resolution/freeze PR copies the pins below into the protocol.Pins (sha256, bytes)
blueprints/us-equities/mover-v3/data/session-calendar.jsonfba93303b31f68ba9fceddcaa43e09c33649852313bc948a8748abf648abe965502703 bytesblueprints/us-equities/mover-v3/data/fees-v3.jsonf45bed8b5b826a927716d3122ef9f0d07ce7adcb00028a9a343577f5a2677e3a59794 bytesblueprints/us-equities/mover-v3/data/session-calendar-amendments.jsonle3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550 bytesblueprints/us-equities/mover-v3/data/fees-v3-amendments.jsonle3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550 bytesThe same values are in
blueprints/us-equities/mover-v3/data-pins.json, with the generator inputs' hashes.Session calendar
mover-early-entry/rules.pytook from the same version. The 2018-12-05 and 2025-01-09 days of mourning are absent; yearly counts 2016-2025 are 252, 251, 251, 252, 253, 252, 251, 250, 252, 250.data-tools/generate_session_calendar.pywith a hash-lockedrequirements.lock(uv pip compile --universal --generate-hashes, Python >= 3.12). Its pins equal the versions and hashes ofblueprints/us-equities/data/requirements.lock, so the CI venv built from that lock (PROMOTION_GATE_PYTHON) runs the regeneration test. It uses only the pinned tzdata package and refuses any other package versions. Output was byte-identical under CPython 3.13 and 3.14 with this lock and under 3.13 with the data lock.Fees (
fees-v3.json, retrieved 2026-09-24, no unverified periods)SEC Section 31, $ per million of covered sales, keyed by charge date. Each row cites the SEC order that set it and the next order's statement of the rate it replaced and the last date at that rate (Federal Register full text):
FINRA TAF, covered equity sales, $ per share with a per-trade cap, keyed by transaction date. Each row cites FINRA's versioned rule text (By-Laws Schedule A, Section 1,
?version=links) and the SEC notices of the FINRA filings:Every quote was checked as a verbatim substring of the retrieved text.
data-tools/verify_fee_sources.pyre-fetches the Federal Register, eCFR and FINRA sources and checks them again. The exception is one sec.gov sentence (the $20.60 rate stays until 60 days after the FY2027 appropriation): sec.gov answers scripted requests with HTTP 403, so it was read through a web-fetch tool and is labelled that way.Findings the freeze PR has to decide
scheduledrows. FINRA's fee-adjustment-schedule page still shows the old schedule.fees-v3-amendments.jsonl. Scheduled base rows that change later also need a precedence rule for amendment lines.manifests/evidence.json, so appending a line needs no manifest edit. Their integrity rule is the protocol's byte-prefix check, and the test enforces it against the pinned empty content. Because.gitignoreignores*.jsonl, both files were force-added, as the repo's other tracked.jsonlfiles were. Appends to them are ordinary modifications, but any new.jsonllog (run or access log) will also needgit add -f.Checks
python3 scripts/validate.pyhashed_files: 5243, passedpython3 scripts/evidence_manifest.py --checkpython3 -m unittest tests.test_mover_v3_data -vdata-tools/.venv, and again withPROMOTION_GATE_PYTHONset to a venv fromblueprints/us-equities/data/requirements.lock(the CI path). A wrongMOVER_V3_CALENDAR_PYTHONfails; a wrong fallback interpreter skips.generate_session_calendar.py --checkmatchunder CPython 3.13 and 3.14 (this lock) and 3.13 (the data lock)verify_fee_sources.py(live re-fetch)python3 -m unittest(full suite, sandboxed macOS host)/tmp,ps). Those six modules give the identical 35 failures with this change's files removed (266 tests both ways). CI is the authority.Limits
mover-early-entry/fees.jsonwas not used as a source.🤖 Generated with Claude Code