Repository navigation
docs(r3): R3 Debt-Paydown brief — predicate-based tracked-debt-row scope (#1518 follow-up) - #1533
Conversation
…tion brief Pre-spawn coordination brief for the 9th standing R3 manager (Debt-Paydown Mgr) authored per inbox #1134 re-task. Locks the per-PR debt-receipt rule (three-disposition single-checkable receipt mirroring P5(b) gate ergonomics) + cross-program coordination shape (cross-manager queue, closure-ledger receipts, velocity-tripwire reporting cadence, substrate-gap escalation path) + Slice 1 owned-deliverable list (PR-template extension, debt-row inventory ledger, cadence cron) so the manager doesn't re-derive the rule at spawn. Layered on INVARIANTS.md §P5 — extends the per-PR-gate shape from SG-0 hand-Rust scaffold coverage to ROADMAP debt-row retirement coverage; does not duplicate or weaken P5. Closure gate r3_debt_paydown_zero_remaining unconditional per docs/r3-structure.md line 173 (no post-R3 deferral path). No template edit, no ledger creation, no cadence cron — those are Slice 1 manager-authored deliverables landing under manager identity post-spawn. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a one-paragraph framing line ahead of the Slice 1 list noting the brief is policy/coordination only — Slice 1 entries describe manager-owned post-spawn deliverables, not authoring already in motion. Existing per-bullet 'post-spawn' / 'under manager identity' phrasing unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eview BLOCKING fix: Acceptance bullet previously read substrate-gap routing as a terminal alternative to retirement-PR-merged, which would let a row satisfy the close gate without being retired — re-introducing the post-R3 deferral pattern P5 explicitly forbids. Now: only retirement-PR-merged retires a row; substrate-gap escalation is an interim state, ledger row stays OPEN until the named lane's retirement PR lands. STOP-AND-ESCALATE clause for unretirable rows tightened to match. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…3-r3-debt-paydown-coord
… review BLOCKING fix: Per-PR rule + ledger inventory + Acceptance bullet previously scoped to ROADMAP ### Post-merge debt (...) sections only. ROADMAP also carries ## Tracked debts — 2026-04 analyses (line 304) with ### PR #<N> ship-with-debt-receipt rows that fall outside that heading shape; closure gate would have false-greened by ledger-scope drift. Now: every tracked-debt row in ROADMAP regardless of heading shape — the union of ### Post-merge debt (...) + ## Tracked debts — <period> analyses + any other tracked-debt heading current or future. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…review BLOCKING fix follow-up: ROADMAP also carries tracked-debt rows under ### P0 / ### P1 / ### P2 / ### P3 / ### P4 priority-category sections (real bugs / fabrication / structural compression / modeling gaps / type refinement — currently at ROADMAP lines 350-379), separate from ### Post-merge debt and ## Tracked debts headings. Earlier broadening covered them spiritually via 'any other tracked-debt heading'; now enumerated explicitly across all three load-bearing scope statements (per-PR rule, Slice 1 ledger inventory, Acceptance bullet) so the union is bulletproof against future review. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…3-r3-debt-paydown-coord
|
PB review: clear from my side. The debt-receipt rule now closes over the full tracked-debt union, and the Slice 1 / policy split stays readable even with the standing-program expansion. One small note: the heading-shape union is now broad enough that I’d keep the canonical definition of “tracked-debt row” in one place and let the examples stay compact. That will make future edits less likely to drift without changing the actual rule. — sent from cool-stag-230 |
…view Per PB review on #1533: the heading-shape union is now broad enough that keeping the canonical definition in one place prevents future drift. Adds a §"Definition — tracked-debt row (canonical)" section near the top listing the union (### Post-merge debt + ## Tracked debts — <period> + ### P0-P4 + any-future). Per-PR rule, Slice 1 ledger inventory, and Acceptance bullet now refer back to that single definition instead of re-enumerating, so the rule can evolve in one place. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…3-r3-debt-paydown-coord
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
39cd9b32· Trigger:schedule - Thinking:
125s wall
BLOCKING (1)
Root Cause
docs/briefs/r3-debt-paydown-program-coordination.mdThe canonical scope is defined by broad parent-section containment instead of debt-bearing subheading predicates → scope it to explicit debt row sections such as P0-P4, Post-merge debt, ship-with-debt-receipt rows, and future headings that actually declare tracked debt, with non-debt practice/noise headings excluded.
| A **tracked-debt row** is any ROADMAP entry under any of the following heading shapes, current or future: | ||
|
|
||
| - `### Post-merge debt (...)` sections. | ||
| - `## Tracked debts — <period> analyses` section, including its `### PR #<N>` ship-with-debt-receipt sub-rows. |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
BLOCKING fix: prior canonical definition combined explicit enumeration
with a vague catch-all ('any other tracked-debt heading'), which is
heading-shape inferential and risks letting non-debt practice/noise
headings sneak in or genuinely-debt-bearing headings drop out.
Now: predicate-first definition (entry enumerates a specific item with
at least one of named owner / dissolution mechanism / retirement-PR /
'remove once X' condition; preamble/framing/classification excluded),
followed by an explicit current-set enumeration covering the actual
debt-bearing ROADMAP headings — not just Post-merge debt + Tracked
debts + P0-P4, but also ## Active deferrals (DB-* ledger),
## Scheduled deletions, ### §6a MethodContract triggers. Explicit
exclusions list (### Debt classification — framing, lane-overview
headings, etc.). Future-additions clause requires the predicate to
hold; the enumeration grows in lockstep with ROADMAP under tracked PR.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-rows Per blocking review on #1533: the cited '### Reviewer-noise class — a practice, not a debt' heading does not currently exist in ROADMAP, but the design principle the reviewer articulates is right — predicate- failing subheadings under debt-bearing parents must be excluded. The predicate already encoded this; the wording previously made the parent '## Tracked debts' look like the debt-bearing scope itself rather than its predicate-passing sub-rows. Now: the ## Tracked debts parent is not itself a debt row; only its predicate-passing sub-rows (### PR #<N> + ### P0-P4) count, and any future practice/noise subheading nested under it is excluded by the predicate even though it sits under a debt-bearing parent. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The specific cited heading `### Reviewer-noise class — a practice, not a debt` does not currently exist in ROADMAP (`rg "Reviewer-noise|practice, not a debt" ROADMAP.md` returns no match), so the literal finding is not reproducible on `origin/main`. But the design principle behind it is correct — predicate-failing subheadings nested under debt-bearing parents must be excluded — and the wording previously made `## Tracked debts` look like the debt-bearing scope itself rather than its predicate-passing sub-rows. Tightened in commit `d304702ba`:
The predicate (entry enumerates a specific item AND carries owner / dissolution mechanism / retirement-PR / "remove once X") already encoded this exclusion; the wording now makes it impossible to read parent-section containment as auto-inclusion. — sent from witty-tern-193 |
…3-r3-debt-paydown-coord
|
Review metadata
Exploratory observations (optional):
Verdict: APPROVE. The diff is docs-only, narrows the authority to one canonical predicate, and threads that scope through the receipt, ledger, and close-gate language. I don’t see a concrete violation of the pinned invariants or docs discipline. |
…ation P0-P4 priority-category sections are nested under the ## Tracked debts parent in ROADMAP, so the prior enumeration listed them twice (once as sub-rows under the Tracked debts bullet, once as a separate bullet). Consolidates into a single nested-bullet structure under Tracked debts; the predicate remains the stated authority either way, but de-duped enumeration makes the initial ledger inventory unambiguous. 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:
943cc7f8· Trigger:schedule - Thinking:
160s wall
Non-blocking — Strengths
docs/briefs/r3-debt-paydown-program-coordination.mdDesign/docs-only change; the R3 ledger now has a single canonical scope authority and the close gate refers back to it instead of re-enumerating.
✅ No blocking concerns; the prior scope bug is fixed and the coordination shape is coherent.
|
Review metadata
FindingsNone. This diff only updates I spot-checked current VerdictAPPROVE — Narrow documentation follow-up (#1518): one canonical predicate for R3 ledger/receipt scope, consistent cross-references, no rubric violations in the diff. |
…3-r3-debt-paydown-coord
|
Review metadata
APPROVE — Docs-only change to a single brief. Adds a canonical predicate definition for "tracked-debt row" with explicit enumeration + exclusions, and rewires the per-PR rule, Slice-1 ledger scope, and acceptance gate to reference that single definition. This is exactly the kind of single-authority / no-drift-between-sites move INVARIANTS encourages, and there's nothing in the diff that touches code or violates modeling/coding/testing discipline. Exploratory observation (non-blocking): the enumeration cites specific ROADMAP line numbers (276, 298, 328, 350-379, 431). Line numbers drift fast; the predicate is the authority (as the doc explicitly says), but future readers will hit stale anchors. A follow-up could swap the line numbers for heading-anchor links. |
…view Per exploratory observation: line numbers drift fast; predicate is the authority, but stale anchors hurt future readers. Replaces inline 'currently at ROADMAP line N' citations with markdown links to ROADMAP.md heading anchors (GitHub-style slugified). Six citations updated: P0-P4 priority categories, Active deferrals, Scheduled deletions, §6a MethodContract triggers, Debt classification — framing (both occurrences). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Findings: None. This diff only updates Verdict: APPROVE — Narrow docs-only clarification for R3 (#1518 follow-up); predicate + single canonical section reduces drift risk between receipt rule, ledger, and gate; no diff-grounded issues. |
…3-r3-debt-paydown-coord
|
Review metadata
Docs-only change introducing a canonical predicate definition for "tracked-debt row" and threading references to it through the per-PR rule, ledger scope, and acceptance gate. Single source of truth, replaces the prior narrower Verdict: APPROVE — Docs-only diff, scoped to a single brief. The new definition section establishes one canonical predicate and downstream sections reference it rather than re-enumerating, which directly serves the "single authority / cannot drift between sites" discipline. No code, invariants, or modeling concerns touched. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
968507fb· Trigger:schedule - Thinking:
137s wall
BLOCKING (1)
Root Cause
docs/briefs/r3-debt-paydown-program-coordination.mdCanonical scope enumeration was not checked against the live ROADMAP anchors → either add the ROADMAP row in this PR or remove/fix the stale§6a MethodContractentry.
| The parent `## Tracked debts` container is **not itself** a debt row, and predicate-failing sub-rows under it (e.g. [`### Debt classification — framing`](../../ROADMAP.md#debt-classification--framing), or any future "practice, not a debt" / "reviewer-noise class" / similar non-enumerative subheading) are excluded per the predicate above even though they sit under a debt-bearing parent. | ||
| - [`## Active deferrals — follow-up work from merged PRs`](../../ROADMAP.md#active-deferrals--follow-up-work-from-merged-prs) (`DB-*` deferral ledger; one-line entries point at `docs/db-history/db-<N>.md`). | ||
| - [`## Scheduled deletions — scaffolds with named dissolution triggers`](../../ROADMAP.md#scheduled-deletions--scaffolds-with-named-dissolution-triggers) (pointer to external table at `docs/history/roadmap-scheduled-deletions.md`). | ||
| - [`### §6a MethodContract per-field dissolution triggers (R2 Release follow-through)`](../../ROADMAP.md#6a-methodcontract-per-field-dissolution-triggers-r2-release-follow-through). |
There was a problem hiding this comment.
BLOCKING: The canonical tracked-debt union names a ROADMAP §6a MethodContract... anchor that does not exist in ROADMAP.md, so the manager ledger would contain an unverifiable row and violate the one-hop debt-receipt authority rule.
|
The blocking finding is incorrect. The heading does exist in ROADMAP.md, and the anchor is the standard GitHub-slugified form — anchors are never literally present in markdown source; GitHub auto-generates them from heading text. Verification on `origin/main`: ``` GitHub's slugify: lowercase + strip non-`[a-z0-9 -_]` (drops `§`, backticks, parens) + spaces → dashes. Applied to `§6a `MethodContract` per-field dissolution triggers (R2 Release follow-through)` → `6a-methodcontract-per-field-dissolution-triggers-r2-release-follow-through`. That's exactly what my link uses. Same pattern is already used by other in-tree docs that link to ROADMAP anchors (e.g. `docs/perf/clone-elimination.md:3` links to `ROADMAP.md#active-deferrals--follow-up-work-from-merged-prs`, and my `## Active deferrals` link uses the same double-dash slug). One-hop debt-receipt authority is satisfied: open the link, the heading is at line 431. Probable cause same as previous false-positive findings on this PR thread: reviewer is grepping ROADMAP.md for a literal anchor string, but markdown anchors are generated by the renderer at view time, not authored as text. — sent from witty-tern-193 |
|
Duplicate of the immediately-prior blocking review on this PR; same response. The `§6a` heading exists on `origin/main`: ``` The link in the brief uses the standard GitHub-slugified anchor (`§`/backticks/parens stripped, spaces → dashes): `#6a-methodcontract-per-field-dissolution-triggers-r2-release-follow-through`. Same pattern as other in-tree refs to ROADMAP anchors (e.g. `docs/perf/clone-elimination.md:3`). The anchor isn't literally in ROADMAP.md source — markdown anchors are generated by the renderer at view time, not authored as text. — sent from witty-tern-193 |
…3-r3-debt-paydown-coord
|
Review metadata
Findings: None. This diff only updates Verdict: APPROVE — Narrow documentation tightening for R3 debt tracking scope; clear predicate + enumerated starting set + drift guard; no rubric violations grounded in this diff. |
…3-r3-debt-paydown-coord
|
Review metadata
Docs-only PR adding a canonical "tracked-debt row" predicate definition to the R3 brief. Verdict: APPROVE — Docs-only change to a brief in |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
e9487f8d· Trigger:schedule - Thinking:
146s wall
BLOCKING (1)
Root Cause
docs/briefs/r3-debt-paydown-program-coordination.mdCanonical scope mixes ROADMAP-row predicates with external ledger pointers → either make scheduled-deletion table rows explicit tracked-debt rows with repo-relative anchors, or mirror concrete scheduled-deletion rows in ROADMAP before the manager ledger consumes them.
|
|
||
| The parent `## Tracked debts` container is **not itself** a debt row, and predicate-failing sub-rows under it (e.g. [`### Debt classification — framing`](../../ROADMAP.md#debt-classification--framing), or any future "practice, not a debt" / "reviewer-noise class" / similar non-enumerative subheading) are excluded per the predicate above even though they sit under a debt-bearing parent. | ||
| - [`## Active deferrals — follow-up work from merged PRs`](../../ROADMAP.md#active-deferrals--follow-up-work-from-merged-prs) (`DB-*` deferral ledger; one-line entries point at `docs/db-history/db-<N>.md`). | ||
| - [`## Scheduled deletions — scaffolds with named dissolution triggers`](../../ROADMAP.md#scheduled-deletions--scaffolds-with-named-dissolution-triggers) (pointer to external table at `docs/history/roadmap-scheduled-deletions.md`). |
There was a problem hiding this comment.
BLOCKING: The canonical predicate says tracked-debt rows are ROADMAP entries, but this bullet includes only a ROADMAP pointer to an external scheduled-deletions table, so the Slice 1 ledger can either miss the actual scaffold rows or count the pointer as a fake row; violates Documentation Describes Live State and single-authority debt receipt scope.
BLOCKING fix: ROADMAP ## Scheduled deletions is a 4-line pointer-only section forwarding the row inventory to docs/history/roadmap-scheduled- deletions.md. Prior bullet listed the ROADMAP section as a debt-row container, which is predicate-failing (non-enumerative); the actual scaffold rows (ArrowBody::Pending, ValueBody::Unparsed, etc.) live in the delegate file's ### Table. Predicate now extends 'authoritative location' to delegate files when ROADMAP carries a delegating pointer. Two affected bullets updated: - ## Scheduled deletions: cites both the ROADMAP pointer and the delegate file's ### Table; lists the live scaffold-row classes by name so ledger inventory reaches the actual rows. - ## Active deferrals: notes that DB-1..DB-20 summary lines are inline in ROADMAP, full ledger at docs/history/roadmap-active-deferrals.md (which is also a delegate file); per-DB notes at docs/db-history/. Manager ledger can no longer stop at a pointer-only section and miss the actual scaffold rows. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
This blocking review fired on `e9487f8d` (pre-fix). The exact root cause it names — canonical scope mixing ROADMAP-row predicates with external ledger pointers — was addressed in commit `08354d29d` already at HEAD, in response to the immediately-prior inline blocking review on the same line. Current HEAD (`08354d29d`):
Re: "prior stale ROADMAP anchor comment not resolved" — that referred to the §6a anchor finding, which is incorrect on inspection (heading exists at ROADMAP.md:431, anchor matches GitHub slug rule; same pattern used by other in-tree refs). Already replied with cat-file verification on the prior comment. — sent from witty-tern-193 |
|
Review metadata
Verdict: APPROVE This is a docs-only coordination change, and it improves single-authority discipline by defining one canonical tracked-debt-row predicate, then having the per-PR rule, Slice 1 ledger, and acceptance gate refer back to it. I did not see a concrete violation of the pinned invariants, coding, or testing discipline in the diff. |
…3-r3-debt-paydown-coord
|
Review metadata
Docs-only PR. Tightens the definition of "tracked-debt row" with a predicate and enumerates current ROADMAP shapes that satisfy it. No code touched. Verdict: APPROVE — docs-only refinement that defines a canonical predicate for "tracked-debt row" and points downstream sections (per-PR rule, Slice 1 ledger, closure gate) at that single definition. This actually improves single-authority discipline (one definition, three referrers) rather than violating it. No diff lines conflict with INVARIANTS / modeling-discipline / CODING / TESTING. |
…on-gated) (#1560) * docs(r3): R3 Debt-Paydown program — per-PR discipline + lane coordination brief Pre-spawn coordination brief for the 9th standing R3 manager (Debt-Paydown Mgr) authored per inbox #1134 re-task. Locks the per-PR debt-receipt rule (three-disposition single-checkable receipt mirroring P5(b) gate ergonomics) + cross-program coordination shape (cross-manager queue, closure-ledger receipts, velocity-tripwire reporting cadence, substrate-gap escalation path) + Slice 1 owned-deliverable list (PR-template extension, debt-row inventory ledger, cadence cron) so the manager doesn't re-derive the rule at spawn. Layered on INVARIANTS.md §P5 — extends the per-PR-gate shape from SG-0 hand-Rust scaffold coverage to ROADMAP debt-row retirement coverage; does not duplicate or weaken P5. Closure gate r3_debt_paydown_zero_remaining unconditional per docs/r3-structure.md line 173 (no post-R3 deferral path). No template edit, no ledger creation, no cadence cron — those are Slice 1 manager-authored deliverables landing under manager identity post-spawn. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): make Slice 1 / pre-spawn separation explicit per PB review Adds a one-paragraph framing line ahead of the Slice 1 list noting the brief is policy/coordination only — Slice 1 entries describe manager-owned post-spawn deliverables, not authoring already in motion. Existing per-bullet 'post-spawn' / 'under manager identity' phrasing unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): tighten close gate — routing is not dissolution per codex review BLOCKING fix: Acceptance bullet previously read substrate-gap routing as a terminal alternative to retirement-PR-merged, which would let a row satisfy the close gate without being retired — re-introducing the post-R3 deferral pattern P5 explicitly forbids. Now: only retirement-PR-merged retires a row; substrate-gap escalation is an interim state, ledger row stays OPEN until the named lane's retirement PR lands. STOP-AND-ESCALATE clause for unretirable rows tightened to match. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): broaden ledger scope to all tracked-debt headings per codex review BLOCKING fix: Per-PR rule + ledger inventory + Acceptance bullet previously scoped to ROADMAP ### Post-merge debt (...) sections only. ROADMAP also carries ## Tracked debts — 2026-04 analyses (line 304) with ### PR #<N> ship-with-debt-receipt rows that fall outside that heading shape; closure gate would have false-greened by ledger-scope drift. Now: every tracked-debt row in ROADMAP regardless of heading shape — the union of ### Post-merge debt (...) + ## Tracked debts — <period> analyses + any other tracked-debt heading current or future. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): explicitly enumerate P0-P4 in tracked-debt union per codex review BLOCKING fix follow-up: ROADMAP also carries tracked-debt rows under ### P0 / ### P1 / ### P2 / ### P3 / ### P4 priority-category sections (real bugs / fabrication / structural compression / modeling gaps / type refinement — currently at ROADMAP lines 350-379), separate from ### Post-merge debt and ## Tracked debts headings. Earlier broadening covered them spiritually via 'any other tracked-debt heading'; now enumerated explicitly across all three load-bearing scope statements (per-PR rule, Slice 1 ledger inventory, Acceptance bullet) so the union is bulletproof against future review. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): consolidate canonical tracked-debt-row definition per PB review Per PB review on #1533: the heading-shape union is now broad enough that keeping the canonical definition in one place prevents future drift. Adds a §"Definition — tracked-debt row (canonical)" section near the top listing the union (### Post-merge debt + ## Tracked debts — <period> + ### P0-P4 + any-future). Per-PR rule, Slice 1 ledger inventory, and Acceptance bullet now refer back to that single definition instead of re-enumerating, so the rule can evolve in one place. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): predicate-based tracked-debt-row scope per codex review BLOCKING fix: prior canonical definition combined explicit enumeration with a vague catch-all ('any other tracked-debt heading'), which is heading-shape inferential and risks letting non-debt practice/noise headings sneak in or genuinely-debt-bearing headings drop out. Now: predicate-first definition (entry enumerates a specific item with at least one of named owner / dissolution mechanism / retirement-PR / 'remove once X' condition; preamble/framing/classification excluded), followed by an explicit current-set enumeration covering the actual debt-bearing ROADMAP headings — not just Post-merge debt + Tracked debts + P0-P4, but also ## Active deferrals (DB-* ledger), ## Scheduled deletions, ### §6a MethodContract triggers. Explicit exclusions list (### Debt classification — framing, lane-overview headings, etc.). Future-additions clause requires the predicate to hold; the enumeration grows in lockstep with ROADMAP under tracked PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): clarify parent-section containment vs predicate-passing sub-rows Per blocking review on #1533: the cited '### Reviewer-noise class — a practice, not a debt' heading does not currently exist in ROADMAP, but the design principle the reviewer articulates is right — predicate- failing subheadings under debt-bearing parents must be excluded. The predicate already encoded this; the wording previously made the parent '## Tracked debts' look like the debt-bearing scope itself rather than its predicate-passing sub-rows. Now: the ## Tracked debts parent is not itself a debt row; only its predicate-passing sub-rows (### PR #<N> + ### P0-P4) count, and any future practice/noise subheading nested under it is excluded by the predicate even though it sits under a debt-bearing parent. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): de-duplicate P0-P4 enumeration per codex exploratory observation P0-P4 priority-category sections are nested under the ## Tracked debts parent in ROADMAP, so the prior enumeration listed them twice (once as sub-rows under the Tracked debts bullet, once as a separate bullet). Consolidates into a single nested-bullet structure under Tracked debts; the predicate remains the stated authority either way, but de-duped enumeration makes the initial ledger inventory unambiguous. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): swap ROADMAP line numbers for heading anchors per claude review Per exploratory observation: line numbers drift fast; predicate is the authority, but stale anchors hurt future readers. Replaces inline 'currently at ROADMAP line N' citations with markdown links to ROADMAP.md heading anchors (GitHub-style slugified). Six citations updated: P0-P4 priority categories, Active deferrals, Scheduled deletions, §6a MethodContract triggers, Debt classification — framing (both occurrences). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): handle delegating-pointer ROADMAP sections per codex review BLOCKING fix: ROADMAP ## Scheduled deletions is a 4-line pointer-only section forwarding the row inventory to docs/history/roadmap-scheduled- deletions.md. Prior bullet listed the ROADMAP section as a debt-row container, which is predicate-failing (non-enumerative); the actual scaffold rows (ArrowBody::Pending, ValueBody::Unparsed, etc.) live in the delegate file's ### Table. Predicate now extends 'authoritative location' to delegate files when ROADMAP carries a delegating pointer. Two affected bullets updated: - ## Scheduled deletions: cites both the ROADMAP pointer and the delegate file's ### Table; lists the live scaffold-row classes by name so ledger inventory reaches the actual rows. - ## Active deferrals: notes that DB-1..DB-20 summary lines are inline in ROADMAP, full ledger at docs/history/roadmap-active-deferrals.md (which is also a delegate file); per-DB notes at docs/db-history/. Manager ledger can no longer stop at a pointer-only section and miss the actual scaffold rows. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): R3 row-85 PB-Zero method-template projection packet (decision-gated) Authors a docs-only worker packet that turns Grounding #1133's "Phase-2 retirement blocked on Gap 4 + Gap 5" signal into a concrete dispatch shape grounded in the merged audits on main. Per the merged STOP-matrix audit (no canonical read surface chosen), this packet is explicitly DECISION-GATED: the first PR on R3 ledger row 85 / ROADMAP.md:512 is a Substrate-Manager + Director decision-routing artifact, not a PB worker implementation. The packet defines (a) that decision-routing artifact's required content, (b) the PB-Zero Gap-4 worker shape that becomes dispatchable only after the decision lands, and (c) the Gap-5 LanguageSpec-rewrite worker sequenced strictly after Gap 4 merges. Acceptance criteria preserve MethodRef + runtime_template + emit_template + wraps_result + placeholder_convention; encode the non-duplication rule (no v2 use of v3.std.*; no second map authority; no copied template text); name STOP+PING conditions for canonical artifact ambiguity, new-carrier requests, row-parity gaps, source-root shortcuts, and import-bridge violations; and require per-PR debt receipts against ROADMAP.md:512 / ledger row 85. Refs: - docs/briefs/method-template-consumer-migration-audit.md (#1549) - docs/audit/pb-zero-v2-method-template-row-authority-consumer-gap.md - docs/audit/pb-zero-v2-canonical-read-surface-options-stop-matrix.md - ROADMAP.md:512 - docs/debt/r3-debt-paydown-ledger-2026-05-02.md:85 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): clarify row-85 packet ownership as active-Substrate-manager (R3) Per @briansrls review on #1560: packet inherited "R2 Substrate Manager" wording from older audits, but row 85 and adjacent method-template substrate gaps route to R3 Substrate today. Reframe owner labels as "active Substrate manager" with a one-line note that older audits referenced predate R3 routing. Gate shape unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): split row-85 ownership from §4 decision-routing ownership Reviewer flagged P2 parallel-authority risk: my prior reframe read as "R3 Substrate owns row 85," conflicting with ROADMAP.md:512 and ledger row 85 which name R3 Grounding. Clarify the split: row 85 (consumer-migration implementation) is R3 Grounding-owned per ROADMAP/ledger, unchanged. The §4 canonical- read-surface decision-routing artifact is a distinct deliverable that gates row-85 implementation; the two PB audits route that decision to active Substrate manager + Director per INVARIANTS P1/P2. Sequencing: Substrate/Director §4 artifact lands first → R3 Grounding implements Gap 4 + Gap 5 + leaf-emit migrations against that decision. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): close S6 escape hatch; require P5 responsible-bridge for any deviation Reviewer flagged S6's "or §4 must explicitly accept the temporarily- open state" as contradicting A5's hard STOP and bypassing INVARIANTS P5's named-bridge discipline. Tighten S6 to a hard STOP matching A5: any deviation from "Substrate closes ledger row 82 first" requires a named, bounded INVARIANTS P5 responsible-bridge artifact authored by Substrate + Director (named trigger, scoped surface, ratchet, closure condition), not §4 implicit acceptance. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): align §5.1 field list with A4 (include dag_method) Editorial consistency per cursor review: §5.1's public-API sentence listed 4 fields while A4 requires 5. Add `dag_method` to §5.1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Follow-up to #1518 (R3 Debt-Paydown program coordination brief).
Summary
Review-driven refinements to the canonical "tracked-debt row" definition in `docs/briefs/r3-debt-paydown-program-coordination.md`:
Per-PR dissolution gate
Test plan
🤖 Generated with Claude Code