Repository navigation
Conversation
Extract the UK national assembler's two manifest documents into uk_national_release_manifests, a pure function the assembler and the new golden generator both call (byte-for-byte unchanged output, checked against the previous assembler on the green fixture). tools/generate_release_contract_fixtures.py writes version 1 of the release contract's golden fixtures, following the staging-fixture pattern: the UK national line's build and release manifests (C1), an inventory of the files and certification fields the contract requires of that line, the two pointer payloads the publisher writes and a registry snapshot (C5), with SHA256SUMS. --check regenerates and compares bytes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/release-contract.md states the ARCH-1 end state Max ruled on 2026-10-15 (d1160), what is served today, and contracts C1 to C5: what the code enforces now, cited to the function that does it, and what it will enforce from 2026-11-06. It says how C1 keys by declared country instead of release-id strings, carries microcosm#378's parity rule, documents the golden fixtures, and records the retire list's state. It replaces the branch-only docs/us-uk-release-path.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The data shard holds every fixture byte to SHA256SUMS and proves each file is what the contract's own code accepts or writes: the C1 manifests pass every release-contract check except the two files the fixture omits on purpose, the loader selects the national artifact from them through the registry, the inventory equals the live constants, both pointers equal the publisher's payloads and read back, and the registry snapshot equals the registry. test_release_contract_keying.py turns the C1 keying gap into executable statements, including that the same release bytes validate under an NZ id and fail under a US id. The build shard checks the generator reproduces the fixtures, and a property test holds uk_national_release_manifests to the contract for every valid input. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
format_uk_release_id, UKReleaseIdentity and apply_uk_release_identity minted populace-uk-<year>-<tier>-k<N> ids and had no caller outside their own tests and the uk_runtime re-export. The 10-09 systems report listed the two functions as retire-now; UKReleaseIdentity goes with them because it is built on format_uk_release_id and is equally unused. New releases take their id from C1's declared identity (docs/release-contract.md). The module keeps the national and dense line ids and the tier vocabulary, which the release assemblers and input-coverage checks import. The contract still validates existing exact-k ids. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 15, 2026
SLD per-district local layer: 2024-vintage membership, doctrine solve, validated sidecar (#625)
#642
Closed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add changelog fragments for the contract, its fixtures and the retired UK id-minting helpers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
October 15, 2026 10:16
- The C1 golden's gates now carry each certification part's status census
({"passed": N}), the shape the certifier writes and the contract requires;
the property strategy draws the same shape, and a new assembler test holds
a real assembly's manifests and directory to the golden key for key.
- uk_national_release_manifests copies runtime instead of aliasing it, and
the property compares serialized bytes so key order is covered.
- docs/release-contract.md: correct the US Logbook writers; qualify the
model-package checks by id; describe the source-enrichment compatibility
rule and make C2 v1 generalize it (Core pinned exactly, claims bounded,
PEP 440 equality, first matching claim); grandfather by published
revision, not id; route every id-keyed check and the pointer readers
through the declared country; keep remote staging delivery required with a
re-delivery path and move the gate into prepare_release; ship the staging
terminal document and Logbook row in the release directory; smaller
wording fixes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Opus 5.5 review of c2d50d8: REQUEST_CHANGES (0 blockers, 3 majors, 16 minors and nits). All 19 are addressed at 47389ec. Majors:
Design points, now settled in the doc:
Also: Local runs: 67 tests pass across the touched files, and The independent GPT-6.1 Sol review is re-queued on 47389ec (Subfleet job |
The live-tree guard (test_no_incumbent_data_package_references_in_live_tree) refuses the retired package's full name outside frozen references; the contract document is live text, not a frozen reference. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 of 7 tasks
This branch has not been 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.
Milestone M0 of the ARCH-1 end state Max ruled on 2026-10-15 (cos d1160). It puts the release contract on paper, freezes C1 and C5 as golden fixtures, and clears the 10-09 systems report's retire-now items that are still open. It turns no refusal on. Enforcement starts 2026-11-06 per the ruling; nothing here changes what publishes or any published number.
What changes
docs/release-contract.md(new). It covers:required_release_files,_expected_model_package,line_for_release_id);It replaces the branch-only
us-uk-release-path.md. The emitter section follows what merged in Delegate local telemetry and graph publication to microcosm-emitter (deferred) #1153 (externalmicrocosm-emitter), as d1162's note records.tools/assemble_uk_release_dir.py. The two manifest dicts move intouk_national_release_manifests, a pure function. Output is byte-for-byte unchanged: I ran the old and new assembler on the green fixture with a fixed clock, and the manifests were identical in key order and the evidence files identical in bytes, apart from the NPZ digest, which changes on every run because zip entries carry timestamps.tools/generate_release_contract_fixtures.pywrites the golden fixtures underpackages/microcosm-data/tests/fixtures/release_contract/v1/, following the staging-fixture pattern:build_manifest.jsonandrelease_manifest.json, written by the assembler's own function, plusinventory.json, read from the contract's constants (required files, the files shipped, the certification's kind, schema, fields, parts and signing-key variable).latest.jsonandlatest-national.json, serialized exactly aspublish_releaseuploads them, andregistry.json.SHA256SUMSand a--checkmode.The fixtures carry no gate report or signed certification, on purpose: those embed the live UK gate-spec digests.
uk/gates.jsonchanged 94 times since 2026-09-01, so byte-frozen copies would churn almost daily.Retired:
format_uk_release_id,UKReleaseIdentityandapply_uk_release_identity. None had a caller outside its own tests and the re-export, in this repository or in policyengine.py, microcosm-dynamics or the benchmark, runs or emitter repositories. The line ids and tier vocabulary stay, and the contract still validates existing exact-k ids.Changelog fragments, and pointers from README.md and docs/agent-guide.md.
Invariants the tests hold
generate_release_contract_fixtures.py --checkreproduces every committed byte. A change to the assembler's manifests, the contract's required files or certification fields, the pointer payloads or the registry fails it until the fixtures are regenerated. Mutation checks: rewording the manifest description failed--check, and renaming a registry file failed the C5 test.uk_national_release_manifestsoutput:_check_build_manifest,_check_release_manifestand the cross-manifest check;validate_release_diron the golden UK directory raises exactly two failures, the two files the fixture omits (calibration_diagnostics.json,release_certification.json).latest_pointer_payload/line_pointer_payloadbyte for byte and read back throughlatest_release/latest_line_release. The line pointer names the C1 release at its cut tag.registry.jsonequalsREGISTRY.test_release_contract_keying.py): today's id-string keying, which M3 flips deliberately. One test shows the same release bytes validate undermicrocosm-nz-2025-nationaland fail under apopulace-us-id.Retire list (checked 2026-10-15)
run_outcome) and Keep US staging telemetry on for every build #1082 (belongs in Emit staging telemetry for US exact-K builds #933).tools/build_uk_rowwise_dataset.py: kept. The report's premise fails, because the graph driver takes--candidate-clone-countsonly with--dry-run, and UK-3 is undecided.Review
20261015-061558-m0-1285-review). The Codex lanes reopen at about 14:53Z.🤖 Generated with Claude Code