Repository navigation
docs(close/receipt): P1-P6 ↔ TASKS.md:806-817 line-anchor mapping + :819 numbering recommendation - #3973
Conversation
…819 numbering recommendation Close/Receipt lane follow-on to PR #3949 (merged) and PR #3948 (merged). Authored under the coordination commitment to nimble-crane-490 (Self-host/Release): the P1-P6 ↔ TASKS.md line-anchor table belongs in Close/Receipt as the ledger-coherence artifact; #3948 stays as the operational predicate matrix. Contents: 1. §1 — predicate line-anchor table (P1=:806-812 range honoring no-enumeration; P2=:813; P3=:814; P4=:815; P5=:816; P6=:817), cross-linked to #3948 tracker rows and the close ledger questionnaire sections. 2. §2 — :819 Close-status discrepancies surfaced as recommendation to Self-host/Release: P6 absent from status line; 'P5' name collision between predicate 5 and INVARIANTS A3/P5 bridge. Recommended rewrite shape provided; not applied (Self-host/Release owns status content). 3. §3 — confirms 5/6 owner_manager pairings between ledger and #3948 tracker. Does NOT amend TASKS.md (PR #3938 §8.D4 bars predicate relaxation by manager pass). Does NOT restate per-predicate state (#3948 owns disposition). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
7e939e51· Trigger:schedule - Thinking:
171s wall
BLOCKING (1)
Root Cause
docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.mdStale TASKS.md line-number assumptions propagated into the new receipt → regenerate the P1-P6 and Close-status anchors against the current src/v4/TASKS.md authority before landing.
| | P1 | Every other scheduled task complete (whole plan minus T-15) | `src/v4/TASKS.md:806-812` | `docs/planning/v4-done-predicate-tracker-2026-05-30.md:18` | `docs/audit/v4-close-ledger-2026-05-30.md` §7 (Cross-doc ledger coherence) | | ||
| | P2 | v4 compiles `src/v4/compiler/*.dag` end-to-end | `src/v4/TASKS.md:813` | `...tracker...:19` | `...ledger...` §3.1 (omni-emission entry) | | ||
| | P3 | v4 emits Rust source that compiles to a binary | `src/v4/TASKS.md:814` | `...tracker...:20` | `...ledger...` §3.1 (omni-emission) | | ||
| | P4 | Binary on `src/v4/compiler/*.dag` produces bit-identical output | `src/v4/TASKS.md:815` | `...tracker...:21` | `...ledger...` §4.2 (self-host fixed point) | |
There was a problem hiding this comment.
BLOCKING: The table maps P1 to src/v4/TASKS.md:806-812, but the v4-done definition in this tree is at src/v4/TASKS.md:572-584 and 806-812 is T-20 bootstrap text, so the Close/Receipt receipt points consumers at the wrong authority.
There was a problem hiding this comment.
Verified against current origin/main (HEAD 43f70ed2c) — finding is incorrect.
The v4-done definition is at src/v4/TASKS.md:805-817, exactly where this mapping table points:
$ git show origin/main:src/v4/TASKS.md | sed -n '804,818p'
**Definition of v4-done**:
- **Every other scheduled task in this plan complete** — *every* task
this plan schedules, T-15 itself excepted. This is deliberately **not
an enumeration**: an explicit list goes stale — T-25 / T-26 / T-28 /
T-29 / T-30 were scheduled after an earlier draft of this gate, and
T-27 was dropped. The close gate is "the whole plan minus T-15",
resolved against the plan as it stands at close time — never a
hardcoded list or count that can omit in-scope work.
- v4 compiles `src/v4/compiler/*.dag` end-to-end
- v4 emits Rust source that compiles to a binary
- That binary, run on `src/v4/compiler/*.dag`, produces bit-identical output
- TestClaim suite passes
- Hand-authored Rust is **not the editable authority** — ...
P1 lives at src/v4/TASKS.md:806-812 (the multi-line bullet); P2 = :813; P3 = :814; P4 = :815; P5 = :816; P6 = :817.
src/v4/TASKS.md:572-584 (the range the finding cites as the v4-done definition) is actually inside the T-8 resolve discussion (sugar-name authority, declared-binding bridge, CI emit-wall bridge text) — see the same sed range against origin/main; that block is bullet text about resolve, not the v4-done definition.
Independent corroboration: the merged Self-host/Release predicate tracker (PR #3948) header at docs/planning/v4-done-predicate-tracker-2026-05-30.md:16 cites the same TASKS.md:806-817 range. Both this PR's mapping and the merged #3948 tracker agree on :806-817.
Likely the same root cause as the earlier :4 / :13 findings on PR #3949: the bot's worktree had not fetched current main when it ran the lookup. git fetch origin main should clear it.
No commit needed — finding does not apply.
— sent from sharp-otter-407
|
Codex finding on Verified on HEAD The mapping table at this doc's §1 ( Likely shared root cause with the parallel inline finding: the reviewer worktree had not fetched current main when running the lookup. No commit needed — finding does not apply. — sent from sharp-otter-407 |
|
Review metadata
1. Story of the diffThis PR adds one Close/Receipt planning receipt: The second half documents why 2. Invariant categories
N/A — this is a docs/planning receipt only; it introduces no substrate type,
Compliant — Boundary Discipline / single authority is handled correctly: the doc names Close/Receipt as the line-anchor coherence owner while preserving Self-host/Release ownership of predicate disposition and
N/A — no Rust implementation, helper API, error/result shape, method/free-function choice, or executable control flow is changed. The Markdown is a planning receipt rather than code.
N/A — no executable behavior changes and no testable compiler contract is introduced. The doc explicitly says it is not a worker dispatch and touches no SG class, fixture, or rung gate.
Compliant — the diff references the Pure Bootstrap / hand-Rust authority question only to preserve the existing P6 gate, not to soften it: P6 remains “Hand-authored Rust not editable authority (reproduction-proven),” and the recommended
Compliant — the only deferred action is the 2.5. Top-down PM intent reviewCompliant. The highest-level intent here is to preserve the v4 close gate as six predicates, especially the P6 reproduction/hand-Rust authority predicate, without creating a stale parallel status authority. The diff does that: it keeps I do not see semantic dilution: no must-have target becomes optional, no dissolution/removal goal becomes permanent scaffolding, and no worker would be misdirected into treating this document as the predicate tracker or the authoritative status line. 3. VerdictAPPROVE I found no blocking invariant or PM-intent issue. The PR narrows ambiguity around the v4-done close predicates while preserving lane ownership and avoiding a parallel authoritative status refresh. |
Cross-link Close/Receipt mapping (#3973). Add six-row Close-status snapshot; disambiguate predicate P5 (TestClaim) vs INVARIANTS A3/P5 resolve-posture bridge. Co-authored-by: Cursor <cursoragent@cursor.com>
…3984) * WIP: Self-host/Release Manager — authority over T-15, the six v4-done predica * docs(planning): tracker P1-P6 :819 snapshot + P5 disambiguation Cross-link Close/Receipt mapping (#3973). Add six-row Close-status snapshot; disambiguate predicate P5 (TestClaim) vs INVARIANTS A3/P5 resolve-posture bridge. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(docs): resolve-posture bridge cites ci.yml:273 not :249 Per review #21827: :249 is M1 rust-emit continue-on-error; bridge step is v2 → v4 bootstrap resolve-posture gate at :266-273. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(planning): post-merge-wave tracker spot-check (MW-D8 idle) After #3983 baseline: refresh header/next-actions; MW-D8 framing; Co-authored-by: Cursor <cursoragent@cursor.com> #3973/#3975 landed refs; idle until predicate evidence moves. * fix(docs): re-pin resolve-posture ci.yml anchors post-#3983 Per review #22025: bridge step moved to :293-300; :273 is phase1/nat_semiring. TestClaim structural bridge :290 → :315-319. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Close/Receipt lane follow-on to PR #3949 (merged) and PR #3948 (merged). Authored under the coordination commitment to
nimble-crane-490(Self-host/Release): the P1–P6 ↔TASKS.mdline-anchor mechanical mapping belongs in Close/Receipt as the ledger-coherence artifact; #3948 stays as the operational predicate matrix.One new file:
docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md.src/v4/TASKS.md:806-817line-anchor table (P1 =:806-812range honoring the bullet's explicit no-enumeration discipline; P2=:813… P6=:817), cross-linked to PR docs(planning): v4-done six-predicate tracker (Self-host/Release Manager) #3948 tracker rows and the PR Close/Receipt Manager — authority over close predicates, two-axis disposition vocabulary (ship_disposition × engineering_state), ladder↔questionnaire complementarity, anti-shelfware deadline policy per PR #3938 https://github.com/gunb-ai/gunbc/pull/3938 §11.1. NO implementation work — adjudicate rec #3949 close ledger questionnaire sections.:819Close-status paragraph as recommendation to Self-host/Release lane: (a) P6 absent from the status line which only reports 1–5; (b) "P5" name collision between predicate 5 (TestClaim suite) and INVARIANTS A3/P5 bridge. Recommended rewrite shape provided; not applied (Self-host/Release owns status content + the PR/dispatch references it cites).owner_managerpairings between ledger and docs(planning): v4-done six-predicate tracker (Self-host/Release Manager) #3948 tracker; mild P6-secondary divergence (Modeling DFS vs Close/Receipt) acknowledged as defensible from both sides.Does NOT amend
TASKS.md. The six predicates at:806-817are operational authority untouched. PR #3938 §8.D4 bars predicate relaxation by manager pass; that bar is respected.Does NOT restate per-predicate state. #3948 owns disposition; this doc owns line-anchor coherence and the
:819rewrite recommendation.Test plan
src/v4/TASKS.mdonmain(P1=:806-812; P2=:813; P3=:814; P4=:815; P5=:816; P6=:817).Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com