Repository navigation
Add a certified pair registry so the £100k childcare lane can run on policyengine.py 6.11.0's Microcosm pair - #229
Merged
Conversation
Adds a certified pair registry (data/uk/certified_pairs.json, pipeline/uk_certified_pairs.py) for policyengine.py releases the lane runs on before the release-replay pipeline qualifies them. A pair is recorded in the replay variant's identity shape under the id pair-<variant slug> and passes the same identity checks (uk_replay_variants.validate_identity, split out of validate_record), but it is never a replay variant: no layout, no result root, and nothing writes the variant index. The first pair is policyengine.py 6.11.0 with policyengine-uk 2.132.6 and Microcosm build microcosm-uk-2024-25-national-20261019T083323Z-6cba5d71, pinned by a requirements file whose 82 pins the local venv matches. The lane now reads each child's own cap on funded hours (max_free_entitlement_hours_used) as a dataset input, records it in the artifact, and treats it as part of the full-use evidence. The 19 June pair's verified entry states that the cap is not in its dataset. year_block refuses a world whose benefit units weigh nothing. Refs #228. No numbers change: the run on the new pair is still to come. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
RELEASE_REPLAY.md gains a section on data/uk/certified_pairs.json: the identity checks a pair shares with a variant, why no event replay runs on one, and why a pair stays once a variant arrives. ARCHITECTURE.md and the two lanes' annotation schemas name the new file where they named the variant index. Refs #228. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round-1 review of #229 (GPT-6.1 Sol, AGREE with two minor findings): - pairs.preflight refuses a pair view whose id has lost its pair- prefix, before verify_installed; one once reached the materialised path under a variant's id. - ingest's run_records refuses a repeated id in or across the two files, a pair id without pair- or a variant id with it, a pairs file of another kind, and an identity its digest does not seal. It used to keep the last of two rows and let a pair overwrite a variant, where the pipeline refused or resolved the variant. scorecard_db does not import pipeline/, so the digest rule is copied, and a differential property test pins it to uk_replay_variants.identity_sha256. The tests also cover what the review noted they did not: null identity leaves in the property test, refusal in a variant's form as well as a pair's, and whole-record agreement between ingest and the pipeline. Each of the seven registry mutations was accepted by the previous reader. Refs #228. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 2031-32 CBP rows' pe_missing reason names both files a certified pair can come from (data/uk/replay_variants.json and data/uk/certified_pairs.json). That text, and the export date, are the only changes; the database content hash moves from e5497fd5 to 5fbff9ec for those two rows alone. No number changes. Refs #228. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GPT-6.1 Sol round 2 of #229 (AGREE, two nits): - run_records refuses a variants file whose schema_version is not 1, as the pipeline's loader does; the registry-mutation test gains the case. - The digest differential draws floats, NaN and infinity included, and compares the two rules' digest or refusal; an allow_nan=True copy, which the round-2 mutants showed surviving, now fails it. Also sets deadline=None on test_no_local_data_manifest_survives_isolation, as its neighbours have: the review's first run under host load failed it on Hypothesis's 200 ms deadline (319 ms), and it passed alone. Refs #228. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
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.
First half of #228: lets the
uk-childcare-100klane run on policyengine.py 6.11.0's certified Microcosm pair. That pair is policyengine-uk 2.132.6 with buildmicrocosm-uk-2024-25-national-20261019T083323Z-6cba5d71, certified in PolicyEngine/policyengine.py#685. The run itself, the notes checked at 2.132.6 and the README update follow in a second PR. The run waits for a gap in the host bookings long enough to finish it.Changes
data/uk/certified_pairs.jsonandpipeline/uk_certified_pairs.pyrecord a policyengine.py release's certified bundle in the replay variant's identity shape, under the idpair-<variant slug>.uk_replay_variants.validate_identityis split out ofvalidate_record, and the round-1 review found the same 32 checks before and after the split.verify_installedfollowed bycompute_uk_event.materialized_preflight, which is the second half ofvariant_preflight.replay_variants.json.pairs.get_record,pairs.preflight, and ingest'srun_records).pair-, a variant id with it, a registry file of another kind or schema version, and an identity its digest does not seal.max_free_entitlement_hours_used) is now a recorded dataset input.populace_uk_2023.h5has no such column, read from the HDF metadata.year_blockrefuses a world whose benefit units weigh nothing in total.docs/uk_replay/RELEASE_REPLAY.mdgains a "Certified pairs" section, and ARCHITECTURE.md and the two lanes' annotation schemas name the new file.Data impact
No number changes. The database content hash moves from
e5497fd5to5fbff9ecfor two rows only: the CBP 2031-32 rows'pe_missingreason now names both registry files. The re-exported feeds carry that text and the export date.Invariants (tested)
pair-<its slug>, and no id appears in both files.validate_record(differential).uk_replay_variants.identity_sha256on any identity of strings, integers, floats (NaN and infinity included) and nulls: both give the same digest, or both refuse (differential property test).verify_installed.Review
GPT-6.1 Sol, three rounds:
44174a17: AGREE, with two minor findings. Both are fixed in1f2ef028.58e286fb: AGREE, with two nits. Both are fixed in466df5af.466df5af: AGREE, no findings. It ran the shipped digest differential on 10 seeds (10 passed) and anallow_nan=Truecopy (10 failed).Tests
At
466df5afthe full suite has 2,842 passed and 18 skipped, run under a 4 GB memory cap with 2 workers.tests/test_uk_replay_results_pr.py::test_job_2_guards_the_request_before_deciding_on_mains_tip.git statusafter the suite shows no drift.Refs #228
axiom: n/a: microsim/data lane
🤖 Generated with Claude Code