Skip to content

docs(close/receipt): P1-P6 ↔ TASKS.md:806-817 line-anchor mapping + :819 numbering recommendation - #3973

Merged
briansrls merged 3 commits into
mainfrom
session/sharp-otter-407-p1p6-mapping
May 30, 2026
Merged

briansrls merged 3 commits into
mainfrom
session/sharp-otter-407-p1p6-mapping

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

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.md line-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.

Does NOT amend TASKS.md. The six predicates at :806-817 are 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 :819 rewrite recommendation.

Test plan

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

briansrls and others added 2 commits May 30, 2026 04:49
…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 briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md Stale 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.

⚠️ The new doc’s central line-anchor mapping is wrong, so downstream close/status consumers would read the wrong TASKS.md authority.

| 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) |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@briansrls briansrls May 30, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@briansrls

Copy link
Copy Markdown
Contributor Author

Codex finding on 7e939e51 has the same root cause as the inline :17 finding — the cited line-number assumptions are wrong against current origin/main.

Verified on HEAD 43f70ed2c:

$ git show origin/main:src/v4/TASKS.md | sed -n '804,818p'

**Definition of v4-done**:
- **Every other scheduled task in this plan complete** ... (P1 multi-line)
- v4 compiles `src/v4/compiler/*.dag` end-to-end                       (P2 = :813)
- v4 emits Rust source that compiles to a binary                        (P3 = :814)
- That binary, run on `src/v4/compiler/*.dag`, produces bit-identical   (P4 = :815)
- TestClaim suite passes                                                (P5 = :816)
- Hand-authored Rust is **not the editable authority** ...              (P6 = :817)

The mapping table at this doc's §1 (docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:17) names exactly these anchors. The merged Self-host/Release tracker (PR #3948, docs/planning/v4-done-predicate-tracker-2026-05-30.md:16) independently cites the same TASKS.md:806-817 range. No regeneration needed; the anchors are correct against current authority.

Likely shared root cause with the parallel inline finding: the reviewer worktree had not fetched current main when running the lookup. git fetch origin main should clear it; a re-review on a fresh worktree will hit the same anchors I cite above.

No commit needed — finding does not apply.

— sent from sharp-otter-407

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: 679bd8a9 · Trigger: manual
  • Comparison: main @ 43f70ed2 ... session/sharp-otter-407-p1p6-mapping @ 679bd8a9
  • Conversation: View conversation

1. Story of the diff

This PR adds one Close/Receipt planning receipt: docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md. The document’s core move is not to redefine v4-done, but to make the existing six src/v4/TASKS.md:806-817 predicates mechanically traceable to the already-merged predicate tracker and close ledger, with P1 deliberately anchored as the full :806-812 range so the “whole plan minus T-15” gate is not collapsed into a stale enumerated list. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:3-21 chatgpt-review-ab1a23e5-9cbe-4f…

The second half documents why src/v4/TASKS.md:819 needs a future Self-host/Release-owned status refresh: the current status wording omits P6 and collides on the symbol “P5” between predicate 5 and INVARIANTS A3/P5 bridge status. The PR chooses a lane-preserving mechanism: it recommends the six-row rewrite shape, separates the INVARIANTS bridge into its own line, and explicitly does not edit lane-owned status reconnaissance in this change. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:25-59 chatgpt-review-ab1a23e5-9cbe-4f…

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

N/A — this is a docs/planning receipt only; it introduces no substrate type, Dag mutation, .dag library concept, reusable algebraic helper, new variant, or implementation path. The file explicitly says it does not amend src/v4/TASKS.md and keeps the six predicate bullets as operational authority. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:6

  1. INVARIANTS.md + modeling-discipline.md.

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 :819 status content. It also avoids predicate relaxation by saying the TASKS bullets remain untouched, and the proposed rewrite separates predicate P5 from INVARIANTS A3/P5 bridge status so downstream consumers do not inherit one symbol with two meanings. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:5-6, :43-59, :78-80 chatgpt-review-ab1a23e5-9cbe-4f…

  1. CODING.md.

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.

  1. TESTING.md.

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. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:80

  1. LOCKED DESIGN DECISIONS.

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 :819 shape adds an explicit P6 row instead of letting the status line read as a five-predicate gate. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:19, :47-54 chatgpt-review-eba5d510-0cc8-42…

  1. TRACKED vs UNTRACKED DEBT.

Compliant — the only deferred action is the :819 rewrite, and it is bounded: owner is Self-host/Release, scope is the six-row Close-status shape plus a separate INVARIANTS A3/P5 bridge line, and the trigger is the next Self-host/Release status refresh. That makes it a tracked recommendation rather than an unbounded TODO. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:43-59

2.5. Top-down PM intent review

Compliant. 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 TASKS.md:806-817 as operational authority, calls out the missing P6 status row as a correctness problem, recommends adding an explicit P6 row, and refuses to turn this Close/Receipt mapping doc into a status refresh or worker dispatch. docs/planning/v4-done-predicate-tasks-mapping-2026-05-30.md:6, :31-39, :47-59, :78-80

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. Verdict

APPROVE

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.

briansrls added a commit that referenced this pull request May 30, 2026
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>
@briansrls
briansrls merged commit 4b42121 into main May 30, 2026
7 checks passed
briansrls added a commit that referenced this pull request May 30, 2026
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.
briansrls added a commit that referenced this pull request May 30, 2026
…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>
@briansrls
briansrls deleted the session/sharp-otter-407-p1p6-mapping branch June 1, 2026 18:43
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