Repository navigation
REQ-VISUALIZATION-007: correct six stale M2/M3/M4-M5/M11 claims in the README - #484
Conversation
…e README Documentation-only repair of the public README text recorded on Issue #445: - MarketIntent is ephemeral (src/simulation/marketIntent.ts), not persistent. - The Phase-6 log-price bound is per tick via maxAbsoluteLogPriceMovePerTick; the model does not define one tick as one day. - The completed-M2 bullet now names the actual M2 responsibility - the normalized MONEY/GOOD signed-delta and PHYSICAL_LOSS accounting spine with phase/tick reconciliation - instead of claiming all economic flows. - Milestone ownership matches Handoff/11: M4 owns the one-region production/labor/consumption/population slice, M5 transport/trade/FX, M8 demography/migration/expansion. - The in-progress paragraph no longer describes REQ-ACCEPTANCE-004 or REQ-MARKET-005 as ongoing; both are IMPLEMENTED in the ledger. M3 is stated open on its representation rows instead. - Browser capability is separated from the M11 observatory: the canonical TypeScript engine is browser-capable today, the Worker-backed observatory arrives at M11, and current Pages remains static one-way milestone output. No runtime, formula, schema, phase-order, milestone-ownership or v1-scope change. docs/spec/mirror/ is untouched. Refs #445 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Updates the existing REQ-VISUALIZATION-007 row rather than adding a second one. STATUS stays PARTIAL: the registry acceptance for this row requires the README *and its directly linked public docs* to be accurate, and the two documents linked from the README's "Understanding M3 local markets" section still carry the open conformance defects tracked by Issues #446 and #447. PR is this pull request's own number; MERGE_COMMIT is left empty for scripts/backfill_merge_commits.py. Refs #445 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Note on the check rollup, so the Two CI runs exist for head
Same revision, and Checks on |
ACCEPTOR verdict: ACCEPTHead revision judged: No prior verdict exists on this pull request from any account ( 1. Every required check is measured green at the head revisionRead from the checks tab at
The On Independent re-execution at
Every figure in the pull request body reproduced. 2. Every acceptance criterion is met, with the evidence I observedCriteria 1–6 from Issue #445, plus the two defects the researcher added in the Issue comments of 2026-09-11 and 2026-09-12, which that Issue asked to be repaired here rather than duplicated.
Registry acceptance for the row also requires that no On the one judgement call the body flagged as highest-risk — keeping On the second-order accuracy of the M3 sentences. The README attributes runtime completeness to the ledger ("are recorded IMPLEMENTED in the ledger") and links it, rather than asserting the runtime is correct. That attribution is verifiably true and is the honest form while #347, #478 and #481 record open findings against the work those rows call complete. I do not ask for a wording change. 3. The diff is confined to the declared scopeThree paths, all three named verbatim in the body's Changed artifacts: Issue #445's Clearing No file under 4. No invariant and no test was weakenedNo test file appears in the diff at all — the three changed paths are two generated/ledger documents and the README. Nothing deleted, skipped or loosened. The discovered counts rose or held against the AUTHOR's own baselines and against the figures I measured: 612 TypeScript tests over 41 files, 45 .NET tests, 503 guard tests, zero skipped in every suite. 5. No secret, credential or personal data is present
6. The handoff record is completeAll nine items of the Recorded, not blocking
Merging through the protected path with |
The row stood PARTIAL because the registry acceptance covers the README and its directly linked public docs, and both linked reference articles carried open conformance defects (#446, #447). Both merged, as #486 and #489, and REQ-VISUALIZATION-008 is IMPLEMENTED. #499 repairs the last recorded defect class in the README itself, so every acceptance item is re-checked and the row is earned. MERGE_COMMIT is cleared rather than left naming #484's squash commit: backfill_merge_commits.py fills blanks and never rewrites one that is already there, so keeping the old value would permanently misattribute this row to the wrong commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…s claims back to current evidence (#499) * REQ-VISUALIZATION-007: bring the README's Pages and requirement-status claims back to current evidence The root README still described the pre-M3 Pages state after #491 landed: the opening paragraph said the deployment showed the legacy viewer and the M1/M2 previews, the viewer link offered "the current M2 Milestone Preview", and "Known scope boundaries" said REQ-VISUALIZATION-006 was "not yet started" while the ledger records it IMPLEMENTED at #491. The same section called the generated docs/spec/IMPLEMENTATION_STATUS.md authoritative, which inverts the protocol: docs/spec/implementation_status.csv is the evidence ledger and the Markdown is generated presentation. Repairs the README text and adds src/diagnostics/readme-conformance.test.ts, which pins each mechanically decidable README claim to the artifact that decides it: relative links resolve, every requirement identifier exists in the ledger, no block calls an IMPLEMENTED requirement outstanding, the CSV and not the generated table carries the word authoritative, every paragraph linking Pages names M3, docs/index.html really does leave M3 in the default view with M0-M2 and the legacy run viewer inside the <details> disclosure, and every documented npm script exists. Three of the seven fail against master's README. Documentation and test only: no runtime, formula, schema, phase-order or v1-scope change, and docs/spec/mirror/ is untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * ledger: REQ-VISUALIZATION-007 from PARTIAL to IMPLEMENTED at PR #499 The row stood PARTIAL because the registry acceptance covers the README and its directly linked public docs, and both linked reference articles carried open conformance defects (#446, #447). Both merged, as #486 and #489, and REQ-VISUALIZATION-008 is IMPLEMENTED. #499 repairs the last recorded defect class in the README itself, so every acceptance item is re-checked and the row is earned. MERGE_COMMIT is cleared rather than left naming #484's squash commit: backfill_merge_commits.py fills blanks and never rewrites one that is already there, so keeping the old value would permanently misattribute this row to the wrong commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
The row keeps STATUS IMPLEMENTED, moves ISSUE to #501 and PR to #504, and its EVIDENCE now names every pull request that contributed to the requirement - #358, #366, #484, #499 and this one - together with the red-then-green measurement of the new milestone-closure conformance case. MERGE_COMMIT goes back to blank per AUTHOR_RUNBOOK.md section 7: a row cannot know its own squash commit, and scripts/backfill_merge_commits.py fills blanks after merge. #499's value is preserved in the EVIDENCE cell rather than lost. The README's closure wording is past tense for the same reason, so it stays true during the window in which this row carries no commit yet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… claims to the ledger (#504) * REQ-VISUALIZATION-007: stop claiming M3 is not closed after v0.3.0 released it Every one of the nine M3 requirements in the mirrored REQUIREMENTS_REGISTRY.csv now has a ledger row reading IMPLEMENTED with the merge commit that landed it, and release-tag.yml cut `v0.3.0 - M3` on that evidence. The README's "Not closed:" block still asserted the opposite, contradicting both the release record and the ledger the README itself calls authoritative. The block now records M3 as closed and names the released tag, keeping the mechanical-release rule it explains, and the Current state section no longer implies by contrast with "Milestone 1 & 2: Complete." that M3 is unfinished. readme-conformance.test.ts gains a case that derives milestone closure the way scripts/release_tag.py derives it - registry MILESTONE membership, every member IMPLEMENTED with a non-empty MERGE_COMMIT, a blank MILESTONE gating nothing and an unindexed milestone never vacuously closed - and fails when a README block calls a closed milestone open. It fails against the unrepaired README on exactly the M3 claim and passes after it. Reading both CSVs now goes through a quoted-field parser, because MILESTONE sits after the registry's free-text STATEMENT and ANCHOR cells and cannot be recovered by splitting on commas. Documentation and test only: no runtime, formula, schema, phase-order, milestone-membership or release-policy change, and no tag was created. Closes #501 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * ledger: record REQ-VISUALIZATION-007 evidence for this pull request The row keeps STATUS IMPLEMENTED, moves ISSUE to #501 and PR to #504, and its EVIDENCE now names every pull request that contributed to the requirement - #358, #366, #484, #499 and this one - together with the red-then-green measurement of the new milestone-closure conformance case. MERGE_COMMIT goes back to blank per AUTHOR_RUNBOOK.md section 7: a row cannot know its own squash commit, and scripts/backfill_merge_commits.py fills blanks after merge. #499's value is preserved in the EVIDENCE cell rather than lost. The README's closure wording is past tense for the same reason, so it stays true during the window in which this row carries no commit yet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: claude[bot] <noreply@anthropic.com>
Closes #445
Achieved outcome
The root
README.mdno longer makes six factually wrong public claims about this repository's canonical semantics and milestone ownership.MarketIntentis described as ephemeral (which is whatsrc/simulation/marketIntent.tsimplements), the Phase-6 log-price cap is described as per-tick rather than daily, the completed-M2 bullet names the normalized MONEY/GOOD signed-delta andPHYSICAL_LOSSaccounting spine instead of claiming M2 tracks "all economic flows", milestone ownership matches Handoff/11 (M4 one-region production/labor/consumption/population, M5 transport/trade/FX, M8 demography/migration/expansion), the in-progress paragraph stops describingREQ-MARKET-005andREQ-ACCEPTANCE-004as ongoing now that the ledger records bothIMPLEMENTED, and browser capability is separated from the M11 observatory. No runtime, formula, schema, phase-order, milestone-ownership or v1-scope change;docs/spec/mirror/is untouched.Tested revision
26a148916983682fd17002370cca842a2a806509— the branch tip. Every check below ran against this exact revision after the ledger commit, not against the code-only commit before it.Changed artifacts
Exactly the three paths in
git diff --name-only origin/master...HEAD:README.md— the six public-text repairs described above. Documentation only.docs/spec/implementation_status.csv— updates the single existingREQ-VISUALIZATION-007row in place (no second row added):ISSUE355 → 445,PR358 → 484,MERGE_COMMITcleared forscripts/backfill_merge_commits.py,EVIDENCErewritten to name every contributing merged pull request (REQ-VISUALIZATION-007: Refresh README and public documentation for M3 #358, README: Correct M3 completion claims to match ledger status #366) plus this one and to state what remains open.STATUSdeliberately staysPARTIAL— see Remaining gate.docs/spec/IMPLEMENTATION_STATUS.md— regenerated bypython scripts/implementation_status.py; not hand-edited.Acceptance criteria
Criteria 1–4 and 6 are quoted from Issue #445; criteria 7 and 8 are the two additional defects the researcher recorded in the Issue comments of 2026-09-11 and 2026-09-12, which that Issue explicitly asked to be repaired here rather than in a duplicate Issue.
MarketIntentpersistent.- Ephemeral budget commitments and persistent MarketIntent contracts→- Ephemeral MarketIntent contracts and the budget commitments that back them. Confirmed against the canonical source, not against a mirror document:src/simulation/marketIntent.ts:2reads "Ephemeral MarketIntent contract and budget commitment ledger (REQ-MARKET-001)".bounded daily movement→bounded per tick by `maxAbsoluteLogPriceMovePerTick`. That symbol is the actual clamp insrc/simulation/marketPricing.ts:35and is configured atsrc/config/simulationConfig.ts:121.- Ledger framework tracking all economic flows→ the normalized typed MONEY/GOOD signed-delta plusPHYSICAL_LOSSspine reconciled at phase and tick boundaries, which is what Handoff/11 Milestone 2 line 125 scopes M2 to.- Production function, labor allocation and population dynamics (M4–M5)→(M4), worded as the one-region closed economy. Handoff/11 lines 160–164 put production/labor/consumption/population cohorts in M4; line 177 puts transport/interregional trade/FX in M5 (already correct in the README); line 226 puts demography/migration/expansion in M8 (already correct).REQ-ACCEPTANCE-004as ongoing. Both named rows are nowIMPLEMENTEDin this ledger (REQ-ACCEPTANCE-004via REQ-ACCEPTANCE-004: persist Phase-6 price and post-MAIN expectation into WorldState #441,REQ-MARKET-005via Issue #427: settle Phase-8's realized MAIN allocations onto authoritative actor stock #477 — the latter merged after that comment was written), so naming either as an ongoing runtime gate would itself be false. The paragraph now states that the M3 runtime and acceptance rows are recordedIMPLEMENTEDand that the milestone stays open on its representation rows, with the ledger linked as the authoritative per-row status.SPEC_CHANGELOG.mdentryRUNTIME-001("M1+ canonical engine is TypeScript/browser-capable ... M11 adds Worker/UI around the same engine rather than porting it"). It does not imply M3 Pages executes the canonical engine and moves no M11 runtime responsibility into M3.Registry acceptance for
REQ-VISUALIZATION-007also demands that no PARTIAL requirement is claimed complete. The README now states plainly thatREQ-VISUALIZATION-006is not started andREQ-VISUALIZATION-007is still open, and links the ledger as authoritative.Checks
dotnet restoredotnet build --configuration ReleaseBuild succeeded. 0 Warning(s) 0 Error(s).dotnet test --configuration ReleaseFailed: 0, Passed: 45, Skipped: 0, Total: 45.REQ-MIGRATION-003maintained.npm cifound 0 vulnerabilities.npm run typechecktsc --noEmit, no output.npm testTest Files 41 passed (41)/Tests 612 passed (612).npm run build✓ built in 24ms.python scripts/implementation_status.py --checkIMPLEMENTATION_STATUS.md matches 29 ledger row(s) over 49 registry row(s).python -m unittest discover -s scripts/testsRan 503 tests ... OK— the guard suite thepolicy-guardjob runs first.python scripts/policy_guard.py --base origin/mastergithub.base_ref; the run did not execute it locally. Residual risk: apolicy-guardorscope-guardrefusal appears on CI rather than here. Mitigated by Changed artifacts naming all three diff paths verbatim.mergeabilityorigin/masterwas ate076dc9when this branch was cut and the branch is not behind it as of this push.No check was promoted. Nothing reported
failedorunavailable.Not checked
docs/index.html, the preview JSON artifacts anddocs/reference/*are all untouched), so no render smoke was warranted beyond the existingsrc/diagnostics/m1m2-pages-render.test.ts, which is inside the 612 passing tests.docs/spec/IMPLEMENTATION_STATUS.mdexists, and the in-page anchor#known-scope-boundariesmatches the literal heading## Known scope boundariesatREADME.md:96. Residual risk is limited to those two links.PARTIAL.Assumptions and unknowns
masterbefore this change and all six are repaired here; each was located bygrepagainst the tip and each repair is visible in the diff.06 - Handoff/11 — REPOSITORY_MIGRATION_AND_MILESTONE_GATES.md. The reading order ofAUTHOR_RUNBOOK.mdsection 4 was followed: registry, thenSPEC_CHANGELOG.md, thenEXECUTION_ORDER.mdfor selection, then that one document. No second domain document was opened — theMarketIntentand price-bound claims were verified against the canonical TypeScript source instead, which is stronger evidence for a README describing this repository.REQ-MARKET-001..005andREQ-ACCEPTANCE-004all readIMPLEMENTEDindocs/spec/implementation_status.csvonmasterate076dc9.REQ-VISUALIZATION-007must stayPARTIAL. Reasoning in Remaining gate; a reviewer who reads the registry acceptance differently should say so, because this is the one substantive call in the change.Highest-risk area for review
The
STATUSdecision on the ledger row, and the second-order accuracy of the two README sentences that now describe M3's own state. Everything else in this diff is a mechanical wording repair verifiable against a quoted line of specification or source; those three things are judgement. Specifically worth checking: that describing the M3 runtime rows as complete is defensible while #347, #478 and #481 are open, and that thePARTIALrationale below matches how the ACCEPTOR reads the registry'sREQ-VISUALIZATION-007acceptance cell.Remaining gate
REQ-VISUALIZATION-007is deliberately not promoted toIMPLEMENTEDby this pull request, and M3 therefore does not close on it.The registry acceptance for this row requires that "README and directly linked public docs accurately describe the canonical TypeScript runtime and current evidence-backed M3 state". The README half is now done. The directly linked half is not:
README.md's "Understanding M3 local markets" section linksdocs/reference/local-market-guide.mdanddocs/reference/market-settlement-and-taxes.md, and both carry open, specified conformance defects — #446 (expectation causality and the bootstrap boundary) and #447 (transfer conservation conflated with whole-tick physical source/sink flows). Both arestatus:ready,priority:high, and neither is claimed by any branch or pull request as of this push. Promotion toIMPLEMENTEDneeds both merged and every acceptance item re-checked, and that is a separate bounded unit of work, not a silent scope increase here.No other mandatory work remains in this unit. No new Issue was opened: every defect this run found was already recorded on #445 or on #446/#447.
One observation recorded for the next run, deliberately not acted on: #482 is a control-plane defect in
scripts/mergeability.pyanddocs/zendev/ACCEPTOR_RUNBOOK.mdbut does not carry thepolicylabel, unlike the closely related #463 which does. UnderAUTHOR_RUNBOOK.mdsection 2 that class is operator-owned, so this run neither claimed nor relabelled it. A later AUTHOR run selecting by label alone would take #482 and spend itself on a change its token cannot land.🤖 Generated with Claude Code