Phase 16: the flagship tree — receipts-first reading - #2
Merged
Conversation
Scaffolded from the flagship consumer's dogfood: dw check on HoldSpeak reports 397 errors, most of them the reader refusing legacy dialects (4-column tables parse to zero rows; decorated statuses never equal their token; phase 17 of 86 elected current). Four stories: header- mapped tables + normalization, receipts-first evidence pairing, pointer-driven current phase, the flagship before/after. PMO-Story: WLA-16-01, WLA-16-02, WLA-16-03, WLA-16-04 PMO-Contract-Digest: sha256:8efd82a7462594013b187af6712ae5607d7255a9bc00f2ea368926dce653e169
…ation parse_story_rows maps columns from the header row (Evidence optional — the flagship 4-column dialect parses to the same rows), and every read-side consumer compares statuses through normalize_status: '**done** (2026-07-07 — …)' is done, 'CLOSED ✅ (6/6)' is closed, 'host-complete' is deliberately NOT complete (token boundaries, never substring). The write vocabulary and the gate are untouched: gate-parity green, 173 core + 108 telegram tests green. PMO-Story: WLA-16-01 PMO-Contract-Digest: sha256:5e51e4882275b0b7ac730ffad448dd4a3396dcb1a801437f3d38e7217a4b01e2
A story exists when its FILE exists: orphan-evidence now means no story anywhere (row or disk); a file-only story vouches for its own doneness via its header; a done row whose Evidence cell is prose or absent is proven by evidence-story-NN.md on disk. Struck-through rows are retired history — no file or evidence demands, off the belt. Table-less phases read file-derived (one legible warning, never silence). Legacy error phrases preserved wherever the receipt is genuinely absent. 179 core + 108 telegram green; gate-parity green. PMO-Story: WLA-16-02 PMO-Contract-Digest: sha256:850297bc4f1f667e8c35f35e1a7a2dbc9e9f3c37061460b0515f9f8704cc06f9
…s are not actionable next_story skips any phase holding a final-summary (the phase's terminal receipt) and consults the README pointer's phase first within each status tier. The state feed's current_phase is the pointer's phase when it resolves — even closed; that is the tree's truth — with the old fallback chain intact. 183 core + 108 telegram green. PMO-Story: WLA-16-03 PMO-Contract-Digest: sha256:41c1606e44a6f648ae9c9ab77bbb4614fdd020d19dbb657dae451de44392d8bd
…, all real dw check against HoldSpeak's real 86-phase tree, re-run on this branch: every dialect-refusal error is gone; the 31 survivors are triaged line by line in evidence as real desyncs (14 missing final summaries, a missing status doc, genuine header/table drifts, one broken link). current_phase reads the pointer's phase 85; dw next proposes HS-24-03, the genuinely open phase. CHANGELOG gains the Unreleased entry. Rides along: maxsplit deprecation fix in normalize_status (surfaced by this story's captured suite run). PMO-Story: WLA-16-04 PMO-Contract-Digest: sha256:668da2bcba6c247b1a227eb4cc12ad5bff99fd4a9b29b880a8addc52a48e147c
Final summary written; the linter that refused this very close until the summary existed is the phase's own deliverable working. PMO-Contract-Digest: sha256:854fdd31c3a6b018548811762e5a200e86f61d8d6a42f6ce911923826bb080f5
…eyword The flagship tree surfaced a cell whose tail reads '…from a transcript the request never shipped)': keyword search across the whole string called it shipped. Only the decoration-cut head is consulted now; two flagship narrative cells pinned in the mapping test. PMO-Contract-Digest: sha256:ef793cf6d264a8b2c054561cafe185115ce79e6540ea0cb77eab504477e789b0
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.
The read layer meets a decade-shaped legacy roadmap where it is: header-mapped story tables (Evidence column optional), decoration-tolerant status normalization at token boundaries (host-complete never reads as complete), evidence paired against on-disk receipts instead of table prose, struck rows as retired history, table-less phases read file-derived under one legible warning, the README pointer naming current_phase, and dw next skipping closed phases. The write gate is untouched and exactly as strict (gate-parity green).
Proven against the flagship consumer's real 86-phase tree: dw check falls 397 → 31, every survivor triaged in evidence as a real desync. 183 core + 108 telegram tests green; full local CI-equivalent set green.
Full trail: pmo-roadmap/pm/roadmap/work-log-automation/phase-16-flagship-tree/ (4/4, final summary).
🤖 Generated with Claude Code
https://claude.ai/code/session_01CWNwHDFD8prLGXtToBoSZQ