Skip to content

Phase 16: the flagship tree — receipts-first reading - #2

Merged
karolswdev merged 7 commits into
mainfrom
flagship-tree
Jul 8, 2026
Merged

Phase 16: the flagship tree — receipts-first reading#2
karolswdev merged 7 commits into
mainfrom
flagship-tree

Conversation

@karolswdev

Copy link
Copy Markdown
Owner

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

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
@karolswdev
karolswdev merged commit 2406f76 into main Jul 8, 2026
8 checks passed
@karolswdev
karolswdev deleted the flagship-tree branch July 8, 2026 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant