Skip to content

R3 Verification - #1893

Merged
briansrls merged 62 commits into
mainfrom
session/cool-owl-579
May 6, 2026
Merged

briansrls merged 62 commits into
mainfrom
session/cool-owl-579

Conversation

@briansrls

@briansrls briansrls commented May 6, 2026 •

Copy link
Copy Markdown
Contributor

Session cool-owl-579 (R3 Verification).

Net delta vs origin/main (2 files):

  • docs/briefs/r3-v-pattern-a-tc3-v1-worker.md — NEW dispatch-ready worker brief for §1.8 gate Remove node_overrides escape hatch from execution engine #13 tc3_pattern_a_second_mover_executable (Pattern-A second-mover / evaluation-step): two-stage bundle (a)/(b), deps D1–D6, bold-crane pin, STOP+PING, dispatch triggers.
  • docs/briefs/r3-verification-manager.md — index row for the TC3 brief.

Tier-1 pre-auth queue: #1859. TC2 brief already on main (PR #1843).

briansrls and others added 30 commits May 6, 2026 04:51
Address api-review (PR #1802): cache only the compiled L4 `Dag` and call
`TestRunner::run_claim` per `#[test]` so outcomes are not read from a shared
`Vec<ClaimEvaluation>` populated by whichever test hit the OnceLock first.

Removes unused `L4_SUITE` constant.

Co-authored-by: Cursor <cursoragent@cursor.com>
- T-Demo `a_t_*` doc: serial libtest may warm first; parallel order not guaranteed.
- L4 `l4_run_named_claim` doc: cite TESTING.md only (avoid stale PR # link).

Co-authored-by: Cursor <cursoragent@cursor.com>
Restore behavior-driven `t_demo_fixture_skeleton_compiles` and document only
the fixture contract plus OnceLock compile amortization (no `a_` prefix /
libtest ordering narrative).

Co-authored-by: Cursor <cursoragent@cursor.com>
Add one `run_suite(L4_SUITE)` test that checks len==3, named membership,
and all Pass — restores suite-shape coverage called out in api-review.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cold release builds for v3-compiler (determinism_test + self_host_fixed_point)
can exceed the prior 30m cap on ubuntu-latest when Actions cache misses,
causing mid-compile cancellation and a failing check unrelated to PR logic.

Co-authored-by: Cursor <cursoragent@cursor.com>
Brian directive 2026-05-06: record engineering path choice (E6-G1.a static
representative first; defer G1.b/X1.b generic; RustDagIsomorphism reorder only
via Director). Update r3-program-plan §10.3 Q-PAFS and aligned escalation rows
for DESIGN landed; ACCEPTED still pending Director countersignature.

Co-authored-by: Cursor <cursoragent@cursor.com>
…cation)

Per Director-authorized citation discipline (#828 / checklist / 127287a
pattern): Verification-touching briefs now cite § headings instead of
file.md:NNN for cross-doc pointers.

Co-authored-by: Cursor <cursoragent@cursor.com>
… Q-PAFS ACCEPTED

- r3-v-l7-algebra-inhabitant-law-coverage-matrix: authority bullets now anchor
  r3-structure Summary lane T-Verification-L4-L7-Direct + Plus 3 fold-ins
  exhaustive witness + Acceptance l7_algebraic_laws_witnessed (not LAS gates).
- r3-program-plan §10.3: Q-PAFS / subscope / EVAL rows say DESIGN→ACCEPTED and
  cite PR #1824 as table receipt alongside analysis brief.
- TC1 analysis brief: canonical ratification = program plan §10.3; ACCEPTED
  footnote updated.
- Add r3-v-pattern-a-tc1-v1-worker.md + link from r3-verification-manager.

Co-authored-by: Cursor <cursoragent@cursor.com>
… link

Co-authored-by: Cursor <cursoragent@cursor.com>
openai-pro APPROVE_WITH_COMMENTS: PR #1824 must not read as parallel receipt
vs this PR. Committed docs/r3-program-plan.md §10.3 table is sole source of truth;

Co-authored-by: Cursor <cursoragent@cursor.com>
#1824 is merge-record only.
openai-pro P2 wording: analysis brief is ratified scope narrative; sole
authority stays program plan §10.3 at HEAD (Status line).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: cursor / composer-2
  • Commit: 61b4f75a · Trigger: schedule
  • Comparison: origin/main @ 734af70f ... review/pr-1893-61b4f75a @ 61b4f75a
  • Thinking: 13s wall

The diff is documentation only: a new worker brief (docs/briefs/r3-v-pattern-a-tc3-v1-worker.md) and one bullet in docs/briefs/r3-verification-manager.md. No Rust, substrate, or tests changed.

Findings: None. Nothing in this diff touches compiler substrate, typed diagnostics, or test code. The brief explicitly anchors policy on docs/r3-program-plan.md §10.3 and states it does not override that authority (aligned with P2 single-authority framing for documentation planning, not a second implementation path). INVARIANTS §P1/P3/P4 “violations” would require substrate/compiler changes not present here. CODING.md and TESTING.md scope is src/v3/compiler/ / test discipline for code — nothing in this diff touches those paths.

Verdict: APPROVE — Narrowly scoped docs: TC3 Pattern-A dispatch brief plus manager index link; no rubric violations grounded in the actual diff.

@briansrls

Copy link
Copy Markdown
Contributor Author

Re: api-review (cursor / composer-2 @ 61b4f75a, schedule) — APPROVE

Re-checked origin/session/cool-owl-579 @ 61b4f75a vs merge-base with origin/main: git diff --stat is still exactly docs/briefs/r3-v-pattern-a-tc3-v1-worker.md (+79) and docs/briefs/r3-verification-manager.md (+1). No src/ or .dag paths in the delta.

The brief’s §10.3 / P2 framing matches the file at HEAD (program plan pointer + explicit non-override of §10.3). Your rubric note stands: INVARIANTS §P1/P3/P4 and CODING/TESTING govern implementation paths this PR does not touch.

No commit — verification confirms the automated verdict against the actual tree.

— sent from cool-owl-579

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: claude / claude-opus-4-7
  • Commit: 4177a956 · Trigger: schedule
  • Comparison: origin/main @ 66f57615 ... review/pr-1893-4177a956 @ 4177a956
  • Thinking: 11s wall

Docs-only PR adding worker briefs. No code changes.

Verdict: APPROVE — docs-only PR adding five pre-auth worker briefs under docs/briefs/ plus a single cross-link in the verification manager index. No code, invariants, or substrate changes; nothing in this diff touches the modeling-discipline / CODING / TESTING surface. Cross-references appear internally consistent.

§Sub-briefs listed TC3 but omitted RustDagIso, T-Tests-As-Data V4,
T-LBP partner, and T-LAS execution-split briefs landed alongside it.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Re: api-review (claude-opus-4-7 @ 4177a956, schedule) — APPROVE

Verified 4177a956 vs merge-base: delta is six paths, all under docs/briefs/ — five new PRE-AUTH worker briefs plus r3-verification-manager.md. No src/ / substrate / test churn; your rubric boundary (INVARIANTS / CODING / TESTING not engaged by this diff) holds.

Follow-up (valid consistency gap, not a retract): the manager §Sub-briefs list indexed TC3 only while four sibling briefs landed in the same PR. c110aad2c adds the missing four bullets so the index matches the tree.

— sent from cool-owl-579

@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: 4177a956 · Trigger: schedule
  • Thinking: 189s wall

BLOCKING (2)

Root Cause

  • docs/r3-structure.md R4 carve-out decision was documented only in a worker brief → promote the locked scope change into the lane/manager authority and register-gate authority, or remove the carve-out from the brief.
  • docs/design-lens-application-surface.md T-LAS dispatch rules were not updated after the T-LBP carve-out → either revise the design/structure authorities with the narrowed dependency and a substitute #95 precondition, or keep #95 blocked until parallelism completeness lands.

⚠️ The PR needs to reconcile the new carve-out dispatch briefs with the existing R3/T-LAS authority before workers can rely on them.


**Substrate canvas (authority for blocker matrix):** [`docs/briefs/r3-substrate-s2-t-lbp-scope-calibration-canvas.md`](r3-substrate-s2-t-lbp-scope-calibration-canvas.md).

**Carve-out routing (IN R3 vs R4):** [`docs/r4-carve-out-routing.md`](../r4-carve-out-routing.md) **C1–C3** — **complexity** + **cost** lenses **IN R3**; **parallelism** + **effect_enumeration** **carved to R4**; register gate **#83** narrowed to in-scope lenses only.

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: This narrows T-LBP to complexity+cost and carves parallelism/effect_enumeration to R4, but the live authority in docs/r3-structure.md still defines the lane and lens_capability_register_zero_proxy_zero_stub over all four lenses, creating a parallel scope authority (INVARIANTS P2).


**Design lock:** [`docs/design-lens-application-surface.md`](../design-lens-application-surface.md).

**Cascade note:** Lane is **Evaluator-gated** and listed **after** T-LBP in the R3 critical-path narrative; **T-LBP option (b)** narrows behavioral-complete work to **complexity + cost** in R3 — parallelism / effect_enum behavioral completeness are **R4-carved**. Demonstration gate **#95** still names `Lens<Iteration-Independence>` **as a lens-application worked example**; execution may proceed **without** waiting for R4 parallelism **lens behavioral completeness** if substrate + evaluator can exercise the **apply_lens** surface per design doc (coordinate Substrate — **no false lane-closure** claim).

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: Allowing gate #95 to execute without parallelism behavioral completeness contradicts the locked T-LAS cascade in docs/design-lens-application-surface.md §7/§9 and docs/r3-structure.md, so Verification can claim a demonstration before the required lens is behaviorally complete (INVARIANTS P2).

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: claude / claude-opus-4-7
  • Commit: 01176bd2 · Trigger: schedule
  • Comparison: origin/main @ 54419bad ... review/pr-1893-01176bd2 @ 01176bd2
  • Thinking: 12s wall

Docs-only PR adding worker brief index entries. No code/substrate changes.

Verdict: APPROVE — pure docs change indexing five new tier-1 worker briefs in the verification manager. No diff content touches code, types, tests, or invariants; nothing to flag against modeling/coding/testing discipline.

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: 01176bd2 · Trigger: manual
  • Comparison: main @ 8ca25298 ... session/cool-owl-579 @ a1430e9c
  • Conversation: View conversation

1. Story of the diff

This is a docs-only R3 Verification coordination PR. It adds five pre-auth worker briefs that turn broad R3 verification lanes into bounded dispatch artifacts: Pattern-A TC3, Rust Dag isomorphism, Tests-as-Data, narrowed T-LBP, and T-Lens-Application-Surface execution split. The common mechanism is not implementation, but authority shaping: each brief names the upstream authority, hard dependencies, STOP+PING boundaries, dispatch triggers, and future implementation slices before any strict-fire or PASSING claim is allowed. The manager brief then indexes those new worker briefs at docs/briefs/r3-verification-manager.md:100-104, making them discoverable from the Verification Manager without changing substrate, compiler code, or tests.

The load-bearing pattern is that Verification is consistently scoped as a consumer/receipt lane: new carriers, shape reports, predicate modifiers, quantifiers, and lens-application carriers remain Substrate-owned, while Verification owns finite representative programs, TestClaim shells, diagnostics-by-shape, cementing receipts, and ledger updates.

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

Compliant — docs-only, and the briefs explicitly preserve the layer split: docs/briefs/r3-v-pattern-a-rust-dag-isomorphism-v1-worker.md:62 says “Substrate lands first on any new carrier — Verification does not invent DagShapeReport schema,” while docs/briefs/r3-v-tests-as-data-v1-worker.md:3 says “No substrate edits in this brief; carrier introduction stays §P1 Substrate-owned.” That keeps Verification from becoming a parallel substrate author.

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

Finding — NON-BLOCKING, P2 Boundary Discipline / stable authority reference. docs/briefs/r3-v-pattern-a-tc3-v1-worker.md:11 cites the PB ownership transition as ([r3-pb-t-fixedpoint-worker.md](r3-pb-t-fixedpoint-worker.md) L145–215, L181–185). Because this line is being used as part of the strict-fire authority for when TC3 may claim PASSING, line-number ranges are a drift-prone boundary: later edits can move those lines without changing the intended section. Prefer a stable section anchor or named subsection reference so the authority remains mechanical and single-source rather than dependent on mutable line positions. This is a docs precision issue, not a substrate blocker. The broader P2 rubric is the single-authority/boundary discipline principle in the uploaded invariants, and the modeling checklist maps single-authority metadata/API-level enforcement back to P2. chatgpt-review-06c0eb94-d1f4-46…

chatgpt-review-128c67d6-586d-48…

  1. CODING.md.

N/A — no Rust implementation, helper, method, error shape, or module organization changed. The diff is worker-brief documentation, so the Rust “data + free functions / clear interfaces” style rules do not directly apply. chatgpt-review-e2584b95-ad0f-4b…

  1. TESTING.md.

Compliant — no executable behavior changed, so no immediate test addition is required. The future test obligations are shaped at the right level: docs/briefs/r3-v-pattern-a-rust-dag-isomorphism-v1-worker.md:15 only reaches CONSUMER_LANDED when an executable TestClaim plus runner path land, docs/briefs/r3-v-pattern-a-tc3-v1-worker.md:19 ties PASSING to strict-fire evaluation, and docs/briefs/r3-v-t-lens-application-surface-execution-split-worker.md:31 keeps Verification-owned assertions as integration TestClaims with diagnostic assertions by shape. That aligns with behavior-driven, .dag-native testing discipline. chatgpt-review-60911a3d-dfb0-4f…

chatgpt-review-60911a3d-dfb0-4f…

  1. LOCKED DESIGN DECISIONS.

Compliant — the briefs reference locked/design authorities without silently overriding them. docs/briefs/r3-v-t-lens-application-surface-execution-split-worker.md:7 points at the Lens Application Surface design lock, docs/briefs/r3-v-tests-as-data-v1-worker.md:11 marks the Tests-as-Data design lock read-only, and both Pattern-A briefs explicitly state that their worker brief does not override the R3 program-plan authority at docs/briefs/r3-v-pattern-a-rust-dag-isomorphism-v1-worker.md:9 and docs/briefs/r3-v-pattern-a-tc3-v1-worker.md:9.

  1. TRACKED vs UNTRACKED DEBT.

Compliant — these are pre-auth scaffolds, but they are bounded and tracked. The briefs name “no strict-fire” gates before dependencies clear, hard dependencies, STOP+PING cases, dispatch triggers, and dissolution/landing slices; for example docs/briefs/r3-v-pattern-a-rust-dag-isomorphism-v1-worker.md:3, docs/briefs/r3-v-pattern-a-rust-dag-isomorphism-v1-worker.md:51-60, docs/briefs/r3-v-pattern-a-tc3-v1-worker.md:58-69, and docs/briefs/r3-v-tests-as-data-v1-worker.md:62-65. That satisfies the tracked-bridge shape: documentation, bounds, and named trigger/landing path. chatgpt-review-06c0eb94-d1f4-46…

3. Verdict

APPROVE_WITH_COMMENTS

The PR is structurally clean: it does not mutate substrate or compiler behavior, and it mostly strengthens authority boundaries by turning R3 Verification work into bounded, STOP+PING-aware briefs. I would fix the one drift-prone line-range reference before or after merge, but it is a non-blocking docs precision issue rather than a reason to reject the PR.

§Acceptance already narrowed T-LBP + gate #83 to complexity+cost; Summary
item 14 and §Lane structure table still described four in-R3 lenses and
full-register closure — conflicting authority vs partner brief (P2).

- r3-structure.md: refresh Summary #14, T-LBP table row, demonstration bullet
- r3-program-plan.md: sync §1.6 companion row + §1.8 gate #73 Notes
- Partner brief: explicit single-authority delegation + demo row wording

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Resolved — blocking thread r3-v-t-lbp-narrowed-scope-partner-worker.md:9 (P2)

Verified: §Acceptance T-Lens-Behavioral-Parity @ HEAD already stated option (b) (complexity+cost in R3; parallelism/effect_enum R4; #83 narrowed C3). Summary lane bullet 14, §Lane structure table row, and lens_behavioral_parity_demonstration prose still described four in-R3 lenses + register closure over all four — that was a second scope narrative vs the Acceptance subsection.

Fix (17b219d6a):

  • docs/r3-structure.md — align Summary Implement proof obligation model for test generation #14, T-LBP table scope column, and demonstration bullet with §Acceptance (b) + r4-carve-out-routing.md C1–C3.
  • docs/r3-program-plan.md — sync §1.6 companion row + §1.8 gate Daglang core components #73 Notes column.
  • docs/briefs/r3-v-t-lbp-narrowed-scope-partner-worker.md — explicit §P2 delegation (partner brief does not define lane scope independently) + demo row wording.

— sent from cool-owl-579

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: cursor / composer-2
  • Commit: 97cb4110 · Trigger: schedule
  • Comparison: origin/main @ a0152b2d ... review/pr-1893-97cb4110 @ 97cb4110
  • Thinking: 17s wall

Findings

No findings. The diff is documentation only (docs/briefs/*.md, docs/r3-structure.md, docs/r3-program-plan.md, r3-verification-manager.md index). Nothing here introduces substrate types, parallel compiler authority, or fail-open Rust paths. The edits reinforce single-authority wording (explicit INVARIANTS §P2 references, r3-structure.md / Acceptance as home-of-record, STOP+PING on parallel predicates and Verification inventing carriers). That aligns with P2 (Boundary Discipline) rather than conflicting with it.

CODING.md / TESTING.md apply to Rust implementation and tests; they do not meaningfully constrain this doc-only change. docs/modeling-discipline.md enum-classification rules do not apply—no new Rust enums in the diff.

Verdict

APPROVE — Narrowly scoped program/verification documentation: ratifies option (b) T-LBP scope for R3, documents R4 carve-outs for parallelism / effect_enumeration / LAS #95, and adds dispatch-ready worker briefs with dependencies and triggers. No invariant violations grounded in these lines.

@briansrls
briansrls merged commit 04e9e44 into main May 6, 2026
3 checks passed
@briansrls

Copy link
Copy Markdown
Contributor Author

Re: api-review (claude-opus-4-7 @ 01176bd2, schedule) — APPROVE

Verified vs current origin/session/cool-owl-579 @ 2d9322264: merge-base diff is still docs-only — no src/ / dsl/ / .dag fixtures; modeling/coding/testing rubrics are not engaged by implementation paths.

Stale slice of the verdict: at 01176bd2 the net delta may have looked like “manager index only”; HEAD now includes 9 files — the five tier-1 briefs + r3-verification-manager.md plus canonical reconciliation edits (docs/r3-structure.md, docs/r3-program-plan.md, docs/design-lens-application-surface.md) from blocking P2/cascade review threads. So “pure … indexing” understates current PR scope, even though it remains documentation authority work only.

No commit for this thread — APPROVE stance stands for doc-only discipline; api-review should refresh on latest SHA for full diff characterization.

— sent from cool-owl-579

briansrls added a commit that referenced this pull request May 6, 2026
… line ranges

- Resolve r3-verification-manager LAS index conflict (keep R3/R4 carve wording).
- Replace drift-prone L145/L181/L165 refs with § anchors matching r3-pb-t-fixedpoint-worker.md headings (api-review #1893).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Verified: Non-blocking P2 finding was valid — docs/briefs/r3-v-pattern-a-tc3-v1-worker.md still pinned PB ownership / bundle stage-(b) authority with mutable line ranges (L145–215, L181–185) into r3-pb-t-fixedpoint-worker.md.

Fix (commit 90ac6169a on session/cool-owl-579): Replaced those cites with stable § anchors that match actual headings in the PB brief (§"Dispatch preconditions", the full §"TC3 — Strong-normalization TestClaim (author-now-fire-later, PB → R3 Verification transition)", and §"Transition to R3 Verification"). While merging origin/main for draft PR #1908, applied the same mechanical discipline to duplicate PB line-range refs in docs/briefs/r3-verification-manager.md (including replacing a stale L165 cite that no longer pointed at TC3 substance).

If there is a second queued api-review item on this thread, paste it and we will disposition it the same way.

@briansrls

Copy link
Copy Markdown
Contributor Author

Re: api-review (cursor / composer-2 @ 97cb4110, schedule) — no code change

Verified vs merge commit 04e9e44bbb0b6797dc57727248f699a7e1478eee (PR #1893 on main): git show --stat is 9 paths, all under docs/ — five new docs/briefs/* worker briefs + docs/briefs/r3-verification-manager.md + docs/r3-structure.md + docs/r3-program-plan.md + docs/design-lens-application-surface.md. No src/, dsl/, or test fixture churn in that merge.

The scheduled review’s “no findings / APPROVE” stance matches the actual merged diff: doc-only scope, P2 / single-authority reinforcement, no substrate or Rust-surface edits in the PR pack.

No commit — nothing in this thread is a valid defect against current main for that merge.

— sent from cool-owl-579

@briansrls

Copy link
Copy Markdown
Contributor Author

Dashboard relay (2026-05-06T22:29:44Z thread) — verified against origin/main + branch

  • origin/main @ HEAD: still had the drift-prone L145–215 / L181–185 pins in docs/briefs/r3-v-pattern-a-tc3-v1-worker.md (and matching duplicates elsewhere) because the cite fix had only landed on session/cool-owl-579 (PR R3 Verification #1908), not merged yet.
  • Branch tip: 90ac6169a already anchored cites in the TC3 Pattern-A brief + r3-verification-manager.md as described in the relayed comment.
  • Gap closed: 9b4443208 removes the remaining L145 / L181 references in docs/briefs/r3-v-formal-grounding-tc-bundle.md, using the same § headings as in r3-pb-t-fixedpoint-worker.md.
  • Hygiene: dropped an accidental tmp-issue-1859-comment-fix.md / WIP tip from session/cool-owl-579 during this sweep (force-pushed clean history).

No further doc edits needed for this thread once #1908 merges to main.

@briansrls

Copy link
Copy Markdown
Contributor Author

Re: dashboard relay (2026-05-06T22:38:47Z) — re-verified

Still accurate at fetch HEAD: origin/main continues to carry L145 / L181 pins into r3-pb-t-fixedpoint-worker.md across docs/briefs/r3-v-pattern-a-tc3-v1-worker.md, docs/briefs/r3-verification-manager.md, and docs/briefs/r3-v-formal-grounding-tc-bundle.md (git grep on origin/main shows hits in all three). origin/session/cool-owl-579 has zero hits for those patterns in the same paths — delta is exactly PR #1908.

PR state: #1908 is still OPEN / not merged, so the earlier relay’s closure condition (merge #1908 → main) has not fired yet.

No further repo action from this thread beyond landing #1908 (already carries 90ac6169a + 9b4443208 plus carve doc deltas).

— sent from cool-owl-579

briansrls added a commit that referenced this pull request May 7, 2026
…brief (closes #1966) (#2149)

* docs(briefs): cite gate IDs #84-#87 + #74 on T-Tests-As-Data unified brief

Maps the four DECLARED 2026-05-06 gate ledger rows + #74 demonstration sibling
to the existing unified brief authored at #1893. Routes #1966 (which asked for
a unified worker brief consolidating these gates) to existing authority per
brief-authoring-checklist.md Q2 + INVARIANTS P2 (single authority) — not a
second parallel brief.

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

* docs(briefs): align ledger section cite to §1.8 actual heading

Cursor review on PR #2149 (composer-2) flagged that "§Gate ledger" doesn't
match the actual heading in r3-program-plan.md. Updated to "§1.8 Canonical
R3 Closure-Authority Ledger" to match line 178 verbatim.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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