Raise the uk extra floors to policyengine-uk 2.91 - #728
Conversation
The policyengine.py certification gate pairs a data release with a model version only when the release was built with it or declares it compatible. The next UK release should record built_with 2.91 — the line carrying the retention-elasticity semantics and the CGT response hardening — so the floors move across the build, data, and frame shards and the lock carries policyengine-uk 2.91.0 with core 3.31.0. The CGT source manifest's dependency string moves in lockstep.
|
Closing unmerged: CI caught a real cross-country coupling. The certified US release pins policyengine-core ==3.26.11 and its live-load consumer guard correctly refuses anything else, while policyengine-uk 2.91 floors core at >=3.30.1 — one workspace lock cannot hold both until the next US release re-certifies on newer core. Verified resolution that needs no repo change: run the UK release-candidate build under |
Pre-publication prerequisite for the first CGT-family UK release.
policyengine.py's certification gate (docs/engineering/skills/data-certification.md there) pairs a data release with a model version only when the release was built with that version or declares it in
compatible_model_packages. The signed rehearsal run built against the previous lock's policyengine-uk 2.89.0, which would force the weaker publisher-claim basis when certifying against 2.91. Raising the floors so the release-candidate build recordsbuilt_with policyengine-uk 2.91.0:microcosm-build,microcosm-data,microcosm-frameuk extras:>=2.88→>=2.91.cgt_source_stages.jsonpolicy_parameters dependency string moves in lockstep; coverage manifest regenerated.The 2.91 line carries the retention-elasticity semantics and CGT response hardening (policyengine-uk#1803/#1806/#1823) — the same machinery the downstream reform scoring uses, so built-with and scored-with converge on one version. The CGT stage's parameter reads (Personal Allowance, AEA at 1 June 2023) are value-identical across 2.89→2.91.
Focused suites (CGT manifest, country spec, spec-only packages, release-input coverage) and repo ruff pass locally; the coverage manifest
--checkregenerates exactly.🤖 Generated with Claude Code