PolicyEngine / PolicyEngine/microcosm-dynamics

Registration 5: the anchor context report (forecast ledger entry 10)

Open
#328 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1
Forks
1
Avg merge
1h 46m
Merged PRs (30d)
28

Description

Registration 5 of the entry-10 anchor-context report ceremony, under the ratified design (docs/design/anchor_context_extraction.md, 1ad337d3) and the §5.3 execution law. Registrations 1–4 were consumed (#317, #319, #322, #324 — incidents 1–5 all committed, latest records merge 809eeeb2).

What changed since registration 4

Incident 4's diagnosis (#324) found an implementation defect: the input loader asserted inputs are compact-canonical JSON, which the pretty-printed published first-estimates artifact can never satisfy. The fix — strict parse fidelity (duplicate-key, non-finite-literal, and float-overflow rejection) in place of byte-form identity, with the registered-sha256 gate unchanged — merged as PR #327 after an adversarial referee round, with regression fixtures byte-shaped like production.

Fresh-registration adjudication (stale durable claims)

Run 4 issued its initial attempt before aborting, leaving the two durable claim files at their canonical paths. Registration 4 is dead (incident 4 is not retry-eligible: reason not external_*), so under the coordinator law ("fresh-registration adjudication is required") the coordinator clears both before this registration's launch:

  • runs/anchor_context_report_attempt.claim — 24,556 bytes, sha256 7a247fd6c4148b09ad5750372cbcffbed9132feb974409aa358db61c71028bd4. Its prelaunch evidence duplicates what incident 4's committed record and the registration-4 document already carry.
  • runs/anchor_context_report_retry_authority.claim — 0 bytes (the empty reservation is the designed persistent state for a non-retryable incident; no retry authority was ever sealed), sha256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.

Both are untracked working files; the committed incident record is the published trace. This mirrors the entry-8 first-estimates precedent.

The registered configuration

  • registration_reference: populace-dynamics#328
  • implementation_commit: 2500adfdbad8038c18e34fadc6ccbd15d3056e90 (the loader-fix merge; the identity law admits records-only descendants)
  • Design binding: revision 4 at 1ad337d3a3eaeba3369a3405469b1e74335e156a (unchanged)
  • Inputs (unchanged, immutable): runs/first_estimates_v1.json sha256 719604ca4364e7cdef2293329ed0beb0e011e5d4d1c34f0e508c8f2fd9932977; data/external/ssa_level_anchors_supplement2025_trustees2026_vintage1.json sha256 adc782a1a11c50969103c125a82b1539a7017241662d545d86bc6fc9227730c1 (vintage ssa_level_anchors.supplement2025_trustees2026.vintage1)
  • Registered isolated invocation (8 elements, byte-exact):
/Users/maxghenis/PolicyEngine/social-security-model-worktrees/sol-c3-runner/.venv/bin/python
-I
-B
-X
pycache_prefix=/tmp/e10-run5-pyc
scripts/run_anchor_context_report.py
--registration
docs/registrations/anchor_context_registration_5_configuration.json
  • Document: docs/registrations/anchor_context_registration_5_configuration.json, canonical bytes sha256 32e9821724e3f610415a62d532f84cb9253934b0f3390f60349ac1b677a759f7 (21,136 bytes), committed via the records PR referenced below.

Execution acknowledgement

One registered run; publishes_regardless; no_self_rescue; retry only for a §5.2 retry-eligible (external_*, no-yield) incident, after its incident publishes. A report pair or a second failure of any kind ends this registration. Entry 10 (p50 2026-07-31, p80 2026-08-05) resolves only at the merge of a publication PR carrying the complete validator-passing report pair.

Pre-launch: the seven-point checklist (tree pristine at the records merge; attempt claim absent; retry marker absent; report pair absent; registered document present and tracked; no bytecode under src/ or scripts/; launcher invocation equal to the registered array element-wise) runs after adjudication, and the sentinel /tmp/e10-run5-pyc is recreated fresh-empty immediately before launch.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading docs/design/anchor_context_extraction.md at revision 1ad337d3 and docs/registrations/anchor_context_registration_5_configuration.json. Run scripts/run_anchor_context_report.py with the registered configuration and verify the seven-point pre-launch checklist, including the canonical claim paths and fresh pycache sentinel. Done means a publication PR carries the complete validator-passing report pair.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.