Repository navigation
REQ-VISUALIZATION-007: README still carries stale M2/M3 semantics after PR #381 #445
Description
Activity
- addedpriority:highImportant and time-sensitive; schedule ahead of normal workImportant and time-sensitive; schedule ahead of normal worktype:bugVerified behavior differs from the intended contractVerified behavior differs from the intended contractarea:visualizationThe docs/ run viewerThe docs/ run viewerstatus:readySpecified and unblocked; safe for an agent to claimSpecified and unblocked; safe for an agent to claim
on Sep 11, 2026 drevendev commented
on Sep 11, 2026 OwnerAuthorMore actionsAdditional current-master evidence from bounded REQ-VISUALIZATION-007 QA: the README's In progress paragraph still says local-market work is ongoing "per REQ-MARKET-005 and REQ-ACCEPTANCE-004". The authoritative ledger and Drive control state now record REQ-ACCEPTANCE-004 as IMPLEMENTED via PR #441 / merge e5197d3, so this sentence is also stale. Please include the smallest factual repair in this existing README issue rather than opening a duplicate: keep REQ-MARKET-005 as the remaining runtime gate and do not describe REQ-ACCEPTANCE-004 as ongoing. No requirement or runtime behavior changes.
drevendev commented
on Sep 12, 2026 OwnerAuthorMore actionsREVIEW/QA follow-up — distinguish browser capability from the M11 observatory
One additional public-text conformance defect belongs in this same README repair.
Current
README.mdopens with:The canonical implementation is TypeScript and is browser-capable (scheduled for M11+).The parenthetical makes it sound as though browser capability itself is deferred to M11. Canonically, the TypeScript engine is already browser-capable; M11 adds the fullSimulationOutput+ browser Worker + interactive observatory around that same engine. The project manifest/state also explicitly keeps M3 representation one-way/static-compatible and forbids pulling M11 runtime authority forward.Please make the smallest wording repair while fixing #445, e.g. state that the canonical TypeScript engine is browser-capable today and that the full Worker-backed interactive observatory is scheduled for M11. Do not imply that M3 Pages is already executing the canonical engine, and do not move any M11 runtime responsibility into M3.
Verification: README should make these three facts simultaneously clear: (1) canonical engine = TypeScript; (2) engine is browser-capable; (3) current Pages is still legacy/static milestone output, while the full Worker observatory arrives at M11.
Documentation only; no runtime, milestone ownership, economic mechanism, acceptance threshold, or v1 scope change.
AUTHOR claim
Role: AUTHOR (unattended run, 2026-09-15).
Selected by:
AUTHOR_RUNBOOK.mdsection 2 item 4. No open pull requests exist (items 1–2 do not apply); nostatus:blockedIssue (item 3 does not apply). Among thestatus:ready/priority:highnon-policyIssues,EXECUTION_ORDER.md:14states REQ-VISUALIZATION-006 "remains dependent on the completed M3 telemetry/acceptance surface" while "REQ-VISUALIZATION-007/008 may proceed", so #269 is not taken this run; #445 is the oldest of the three bounded representation Issues and its requirement row is stillPARTIAL.Intended scope:
README.mdpublic text only. The six factual repairs recorded on this Issue:README.md:17—persistent MarketIntent contracts→MarketIntentis ephemeral (Handoff/04 §5).README.md:18—bounded daily movement→ per-tick, bounded bymaxAbsoluteLogPriceMovePerTick.README.md:14—Ledger framework tracking all economic flows→ narrowed to the M2 accounting/reconciliation spine.README.md:99—Production function, labor allocation and population dynamics (M4–M5)→ M4 owns the one-region production/labor/population slice; M5 is transport/interregional trade/FX; demography/migration/expansion is M8.README.md:96(comment of 2026-09-11) — stop describing REQ-ACCEPTANCE-004 as ongoing; the ledger records itIMPLEMENTED(PR REQ-ACCEPTANCE-004: persist Phase-6 price and post-MAIN expectation into WorldState #441). Keep REQ-MARKET-005 as the named remaining runtime gate.README.md:5(comment of 2026-09-12) — separate browser capability from the M11 observatory: the canonical TypeScript engine is browser-capable today; the Worker-backed interactive observatory arrives at M11; current Pages remains static milestone output.
Non-goals held: no runtime, formula, schema, phase-order, milestone-ownership or v1-scope change;
docs/spec/mirror/**is not touched.Branch:
claude/issue-445-readme-m2-m3-semanticsKnown blockers: none at claim time.
Unrelated observation, not taken this run: #482 is a control-plane defect in
scripts/mergeability.pyanddocs/zendev/ACCEPTOR_RUNBOOK.mdbut does not carry thepolicylabel, unlike the closely related #463. PerAUTHOR_RUNBOOK.mdsection 2 that class is operator-owned; this run neither claims nor relabels it, and records the discrepancy here only so a later run does not take it by label alone.- addedstatus:in-progressClaimed work with an active branch or pull requestClaimed work with an active branch or pull requestand removedstatus:readySpecified and unblocked; safe for an agent to claimSpecified and unblocked; safe for an agent to claim
on Sep 15, 2026 - added a commit that references this issue
on Sep 15, 2026 - addedstatus:needs-reviewImplementation complete, awaiting acceptanceImplementation complete, awaiting acceptanceand removedstatus:in-progressClaimed work with an active branch or pull requestClaimed work with an active branch or pull request
on Sep 15, 2026 AUTHOR handoff
Pull request: #484
Branch:claude/issue-445-readme-m2-m3-semantics
Tested revision:26a148916983682fd17002370cca842a2a806509All six recorded defects are repaired in
README.md— the four in the Issue body plus the two added by the researcher comments of 2026-09-11 and 2026-09-12, which this Issue asked to be fixed here rather than in a duplicate. Per-criterion evidence is in the pull request body.Checks on the tested revision — reported verbatim, none promoted:
Check Outcome dotnet restore/build --configuration Release/test --configuration Releasepassed (45/45, 0 warnings) npm ci/npm run typecheck/npm test/npm run buildpassed (612/612 over 41 files) python scripts/implementation_status.py --checkpassed python -m unittest discover -s scripts/testspassed (503/503) python scripts/policy_guard.py --base origin/masternot_run — CI-job step that resolves its base from github.base_ref; risk is a guard refusal surfacing on CI rather than locallymergeabilitynot_run — forge-computed commit status, not producible by an AUTHOR run Nothing reported
failedorunavailable.Decisions
REQ-VISUALIZATION-007staysPARTIAL. Its registry acceptance requires the README and its directly linked public docs to be accurate. The README half is now done; the linked half is not, becausedocs/reference/local-market-guide.mdanddocs/reference/market-settlement-and-taxes.mdcarry the open defects tracked by REQ-VISUALIZATION-008: local-market guide misstates expectation causality and bootstrap boundary #446 and REQ-VISUALIZATION-008: settlement guide conflates transfer conservation with later physical source/sink flows #447. The existing row was updated in place —ISSUE→ 445,PR→ 484,MERGE_COMMITcleared forscripts/backfill_merge_commits.py,EVIDENCEnaming REQ-VISUALIZATION-007: Refresh README and public documentation for M3 #358, README: Correct M3 completion claims to match ledger status #366 and REQ-VISUALIZATION-007: correct six stale M2/M3/M4-M5/M11 claims in the README #484 and stating what remains. No second row was added.- The README attributes M3 runtime completeness to the ledger rather than asserting it.
REQ-MARKET-001..005andREQ-ACCEPTANCE-004all readIMPLEMENTED, but REQ-ACCEPTANCE-004: PR #344 still does not prove MTFX-I2 inventory mutation #347, R235: golden-gate Phase-6/Phase-8 dispatch fixtures still trade CLAN against CLAN on a GENERAL bucket #478 and Phase-8 hard-codes M3 tax inputs instead of consuming the required taxPolicy provider #481 record open M3 findings against that work, and this run did not re-verify the runtime. The text says those rows are "recorded IMPLEMENTED in the ledger" and links it, so the README is truthful about what is known without adopting a claim this run could not check. - Facts were taken from one specification document only.
AUTHOR_RUNBOOK.mdsection 4 order was followed — registry,SPEC_CHANGELOG.md,EXECUTION_ORDER.mdfor selection, then the single document the registry row names (Handoff/11). TheMarketIntentand price-bound claims were verified againstsrc/simulation/marketIntent.tsandsrc/simulation/marketPricing.tsrather than by opening a second mirror document.
What remains on this Issue: nothing. This unit is complete and awaiting review.
What remains on the requirement: #446 and #447 must merge before
REQ-VISUALIZATION-007can be promoted toIMPLEMENTED, andREQ-VISUALIZATION-006(#269) is still unstarted. M3 cannot close until all three representation rows readIMPLEMENTED. Both #446 and #447 arestatus:readyand unclaimed; neither was taken by this run, which performs exactly one bounded unit of work.No new Issue was opened — every defect found was already recorded on this Issue or on #446/#447.
This run does not approve and does not merge. It ends here.
- added a commit that references this issue
on Sep 15, 2026 ACCEPTOR: accepted and merged
Pull request: #484 — accepted revision
26a148916983682fd17002370cca842a2a806509, squash-merged asf6894b33ee6389505fc5ef0c45f38c06572d12c6. Branchclaude/issue-445-readme-m2-m3-semanticsdeleted.Full verdict with per-gate evidence: #484 (comment)
Evidence observed at the accepted revision, re-executed independently rather than read from the pull request body:
npm ci/npm run typecheck/npm test(612 passed over 41 files) /npm run build— passed;dotnet build --configuration Release(0 warnings, 0 errors) /dotnet test --configuration Release(45 passed, 0 skipped) — passed,REQ-MIGRATION-003maintained;python scripts/implementation_status.py --check— passed;python -m unittest discover -s scripts/tests(503) — passed;python scripts/policy_guard.py --base origin/master— passed over 3 changed files. Required checksbuild-and-test,typescript,policy-guardandmergeabilitywere green on the checks tab at that exact head; the base relationship was measured directly withgit merge-base --is-ancestor origin/master 26a1489rather than trusted to themergeabilitystatus, because #482 records that itsSTALE_BASEarm is unreachable.All eight acceptance criteria met — the six in the Issue body plus the two defects added by the researcher comments of 2026-09-11 and 2026-09-12, which this Issue asked to be repaired here. The
MarketIntentand price-bound repairs were checked against the canonical source (src/simulation/marketIntent.ts:2,src/simulation/marketPricing.ts:35,src/config/simulationConfig.ts:121), not against a mirror document.One deliberate and correct departure from the letter of the 2026-09-11 comment: it asked that
REQ-MARKET-005be kept as the remaining runtime gate, but that row wasPARTIALwhen the comment was written and has since landedIMPLEMENTEDvia #477 /bdabafc. Naming it as an open gate would now be false, so the README names neither row as ongoing and instead attributes their status to the ledger.This Issue is closed and complete. Removing its
status:*label, since a closed Issue carries none.What this merge does not do:
REQ-VISUALIZATION-007remainsPARTIALand M3 does not close on it. Its registry acceptance requires the README and its directly linked public docs to be accurate; the linked half is still open on #446 and #447, bothstatus:ready,priority:highand unclaimed. Promotion needs both merged and every acceptance item re-checked.REQ-VISUALIZATION-006(#269) is stillNOT_STARTED. The ledger row records this pull request withMERGE_COMMITblank by design, forscripts/backfill_merge_commits.pyto fill withf6894b3.- removedstatus:needs-reviewImplementation complete, awaiting acceptanceImplementation complete, awaiting acceptance
on Sep 15, 2026
Goal
Bring the remaining public README wording into conformance with the canonical M2/M3 contracts without changing runtime behavior or requirement meaning.
Evidence
Current
masterstill contains four stale claims after merged PR #381 /d8bd05f40943f01686cb7ed0c0cbab7bd99c1551:Ephemeral budget commitments and persistent MarketIntent contracts— Handoff/04 section 5 definesMarketIntentitself as ephemeral. Persistent market state is the actor-owned stocks plus LocalMarket price/expectation state and committed ledger/history.bounded daily movement— canonical repricing is capped bymaxAbsoluteLogPriceMovePerTickand happens once in Phase 6 per tick. The model does not define one tick as one day.Ledger framework tracking all economic flowsunder completed M2 — M2 owns the normalized accounting/reconciliation spine for conserved MONEY/GOOD deltas plus typed PHYSICAL_LOSS attribution. Later fiscal, monetary, production and demographic flow families arrive in later milestones.Production function, labor allocation and population dynamics (M4–M5)— canonical milestone ownership puts the one-region production/labor/population closed-economy slice in M4, M5 in transport/interregional trade/FX, and later demography/migration/expansion in M8.These same defects were identified on PR #381 before merge, but the PR merged unchanged and the closed PR discussion is not an actionable queue item.
Scope
README/public-text only. Make the smallest wording repair:
MarketIntentas ephemeral (or avoid persistence wording entirely);dailyprice movement withper-tick;Non-goals
docs/spec/mirror/.Acceptance criteria
MarketIntentpersistent.Verification
Compare the updated README against canonical Handoff/04 market intent + repricing sections, Handoff/11 M2/M4/M5/M8 milestone ownership, and the authoritative implementation ledger. This is documentation-only conformance work.