Skip to content

feat(v3): E6-G0c — evaluator execution for FieldProject and Callable - #1715

Merged
briansrls merged 4 commits into
mainfrom
session/fierce-bear-784-g0c
May 5, 2026
Merged

briansrls merged 4 commits into
mainfrom
session/fierce-bear-784-g0c

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

Implements E6-G0c per dispatch from snappy-moth-795. Smallest honest runtime support for the two TransformTarget variants the body evaluator was failing closed on:

  • FieldProject { field_label, field_child }: evaluates the single carrier input, projects the named field from a RecordValue, returns the projected Value.
  • Callable(decl_id): looks up the declaration's TypeConnective::Arrow { body: ArrowBody::UserDefined(bind_id), … }, retrieves the BindNode, evaluates inputs left-to-right, pushes a fresh frame populated with (param_port, operand_value) pairs, executes the body via eval_port(bind.value, …), pops the frame on success or error.

Both arms are typed-fail-closed for malformed shapes:

  • FieldProject non-record carrier → BadTransformOperands { reason: "FieldProject carrier must be a RecordValue" }
  • FieldProject missing label → BadTransformOperands { reason: "FieldProject label not present on RecordValue carrier" }
  • Callable non-Arrow declaration → BadTransformOperands { reason: "Callable target declaration is not an Arrow type" }
  • Callable non-UserDefined body (Pending / ExternalRealization) → UnsupportedTransformTarget { kind: "Callable (non-UserDefined body)" }
  • Callable arity mismatch → TransformArityMismatch (defense-in-depth; Dag::push_transform's builder asserts arity at construction time, so this path is unreachable through the standard construction surface — guarded for future builders that bypass the assertion)
  • Frame discipline: fresh frame is pushed/popped around the body call; operand bindings stay in the new frame and are released regardless of body success/error.

Tests

Unit tests in evaluator::tests (src/v3/compiler/src/lib.rs):

  • transform_field_project_returns_named_field_value — projects y from { x: 7, y: 11 } → Int(11).
  • transform_field_project_missing_label_fails_closed — typed BadTransformOperands on missing label.
  • transform_field_project_non_record_carrier_fails_closed — typed BadTransformOperands on Int carrier.
  • transform_callable_executes_user_function_body — invokes fn user_callable(n) = n + n with operand 21 → Int(42).
  • transform_callable_evaluates_inputs_left_to_right — invokes fn sub(a, b) = a - b with (10, 3) → Int(7) (Sub is non-commutative; orientation pins left-first ordering).
  • transform_callable_non_arrow_decl_fails_closed — typed BadTransformOperands on a Disj (Bool) declaration.

Frame-discipline check: state.frames_outer_to_inner().len() == 1 after both successful and error paths.

The two pre-existing transform_*_unsupported_in_e3_slice tests are renamed/repurposed to assert the new typed diagnostics rather than the prior blanket UnsupportedTransformTarget.

Fences honored

  • ❌ No TransformDispatch / Indirect / ArrowPortRef / CalleeRef substrate collapse. X1.b stays out of this PR.
  • ❌ No parser/lowerer edits.
  • ❌ No fold_lens<C> / test_runner.rs / new TestPredicate variants.
  • ❌ No new runtime Value inhabitants — uses existing RecordValue(Vec<NamedField>) carrier for FieldProject; existing LiteralValue carriers for Callable bodies.
  • ❌ No branch/loop widening — Callable body execution rides the existing eval_node/eval_port spine and reuses eval_callable_body_in_pushed_frame's frame discipline (parallel to eval_bind_body_in_pushed_frame).

#1532 debt receipt

Per-PR dissolution gate: no census shift; existing evaluator authority remains the single execution boundary. No new substrate carriers, no new TransformTarget variants, no new EvalError variants. Both arms reuse existing BadTransformOperands/TransformArityMismatch/UnsupportedTransformTarget shapes.

Validation

  • cargo build (workspace) ✅
  • cargo fmt --all --check ✅ (pre-push hook)
  • cargo test --lib -p v3-compiler → 321/321 pass (the 6 new G0c tests + the renamed/repurposed pre-existing pair)
  • v2-compiler gist_compile_all_modules/gist_resolve_all_modules/self_resolve_all_modules failures are pre-existing on origin/main (verified) — unrelated to this slice; external-repo tests not affected by evaluator changes.

🤖 Generated with Claude Code

@briansrls

Copy link
Copy Markdown
Contributor Author

Manager review at HEAD c3f9a599: no blocking issues found in the G0c implementation.

Read focused on evaluator authority and frame discipline:

  • Scope stays inside src/v3/compiler/src/lib.rs; no X1.b substrate/parser/lowerer/test-runner drift.
  • FieldProject uses the existing Value::RecordValue carrier and fails closed for non-record / missing label / arity mismatch.
  • Callable stays on existing TransformTarget::Callable(DeclarationId), requires TypeConnective::Arrow { body: UserDefined(..) }, binds operands to the callee BindNode.params in a fresh frame, evaluates through eval_port(bind.value, ...), and pops on success or error.
  • No new Value, TransformTarget, EvalError, or predicate surface.

CI is still running (fmt passed; ci and v3 pending). Good from manager side pending green checks / any automated review findings.

— sent from snappy-moth-795 (inbox #1131); reply at #1131

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: codex / codex-default
  • Commit: c3f9a599 · Trigger: schedule
  • Comparison: origin/main @ 4b156d83 ... review/pr-1715-c3f9a599 @ c3f9a599
  • Thinking: 64s wall

Verdict: APPROVE

The diff is narrowly scoped to evaluator execution for FieldProject and Callable, with fail-closed error paths for malformed carriers, missing fields, non-Arrow targets, non-user bodies, arity mismatch, and frame restoration. I did not find a concrete violation of the pinned invariants, modeling discipline, coding guidance, or testing guidance in the changed lines.

@briansrls
briansrls merged commit b13378e into main May 5, 2026
2 of 3 checks passed
briansrls added a commit that referenced this pull request May 5, 2026
…ation (P2)

Per inline review at parse_corpus_manifest.txt:89: the audit had two
active authorities for Pop A's gate set after the §A reclassification —
the new "Post-#1715 reclassification" subsection said constructor/value
evaluator work is a prerequisite, while the older "Net dispatch order"
section still framed Pop A as "S-1 only / no evaluator dependency /
mechanical port." That violated INVARIANTS.md P2 Boundary Discipline.

Update the Net dispatch row to defer to §A as the single authority for
Pop A's gate set: explicitly note the supersession date (2026-05-05),
why the original framing was correct on substrate-presence grounds but
incomplete, and what the post-#1715 disposition adds (constructor/value
executor dependency, no Rust mirrors). The §A reclassification stays
the canonical Pop A gate description; the Net dispatch row is now a
pointer rather than a parallel authority.

No code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 5, 2026
Per blocking review on PR #1723 (`9b8d937f`): the Pop A reclassification
landed only as a new subsection after §A summary; the per-row
"Disposition recommendation for S-1" cells in §A.1–§A.4 still framed
the migration as a "v3-side property-test worker" task without
referencing the constructor/value evaluator dependency. Same P2
dual-authority pattern the inline review caught for the Net dispatch
row.

Add a single-authority pointer immediately above §A.1 declaring that:
- Per-row cells carry substrate-presence findings accurate at
  audit-authoring time.
- Pop A's gate set + dispatch readiness has a single canonical
  authority: the "Post-#1715 reclassification" subsection after §A
  summary.
- The pointer applies symmetrically to the Pop A row in the Net
  dispatch order section lower in the audit (already updated in
  prior commit `347c2abfd`).

Avoids editing each of the four row cells; the pointer is the single
edit site that future readers see before reaching any per-row text.

No code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 5, 2026
* docs(r3): X1.b evaluator-side impact audit

Catalogs evaluator consumers of TransformTarget / TransformNode.inputs
(host eval_transform_node, lens-apply eval_transform / eligibility
walker / reflect_transform_target, dimension expand_behavior_backward),
maps them to the §X1.b TransformDispatch / ArrowPortRef / input_ports()
collapse, separates Substrate vs Evaluator authority, and proposes a
four-slice implementation split (S1 substrate, S2 lowerer, S3
evaluator, S4 emitter) with explicit G0c sequencing and STOP
conditions. Docs-only; no Rust / .dag / fixture edits.

* docs(r3): clarify X1.b S1 zero-change relative to post-G0c baseline

Manager review on #1712: the "S1 produces zero net behavior change"
sentence read as if S1 reverts to pre-G0c fail-closed Callable /
FieldProject, which would silently undo G0c. Reword to say S1's
zero-change statement is relative to its post-G0c starting point —
S1 preserves G0c evaluation through the TransformDispatch rename;
fail-closed only applies to the X1.b-new FieldCall / Indirect
variants until S3.

Also tighten the S3 ArrowPortRef sentence: the handle proves the
producing port is Arrow-typed, not that it resolves to a callable
Bind. Resolution path is the open Evaluator design question, not a
guarantee of the typed handle.

* docs(r3): require atomic S1 migration; forbid (target,inputs)/dispatch dual-authority

Codex review on #1712: the prior wording allowed S1 to land
TransformDispatch "behind" the existing Vec<PortId> shape, opening
parallel-representation debt without a documented bounded bridge or
dissolution trigger. Conflicts with INVARIANTS.md P2 (single-authority
metadata) and feedback_parallel_representation_debt.

Reword: S1 lands atomically — target+inputs retire in the same commit
that introduces TransformDispatch, all consumers updated in lockstep,
no temporary dual representation, and this audit explicitly does not
authorize a bounded bridge alternative.

* docs(r3): refresh E6 lens-fold readiness audit after G0a/G0b/G0c

The original audit predates E6-G0a (#1640), G0b (#1699), the X1.b
impact audit (#1712), and G0c (#1715). Refresh against origin/main:

- Retire "Callable / FieldProject fail closed" blockers — both now
  execute via eval_transform_node (lib.rs:556-617).
- Narrow lens-field call blockers to the runtime-sourced callee
  (Prereq-X1.b parameter-Lens) case only; static top-level data
  lens-instance call paths are now executable through G0c.
- Preserve real remaining blockers: X1.b runtime-callee dispatch,
  structural program-scope authority, typed DimensionReport<C>
  construction rules, descent residual, live Lens<C> instances,
  substrate-shaped runtime values.
- Note post-G0c static X1.a evaluator ratchet is fierce-bear's;
  this audit does not duplicate it.
- Recommend a static-lens-scoped G1.a first slice; defer parametric
  fold_lens<C> (G1.b) to post-X1.b S1+S3. Explicitly does not
  authorize hard-coding lens fields in Rust to bypass X1.b.
- fold_lens_over_reflected_program preserved as compatibility seam
  with no claimed dissolution.

Docs-only; no Rust / .dag / generated / test edits.

* chore(v3): refresh parse corpus manifest for algebra/diagnostics/verification

CI v3 failing on origin/main-inherited drift in parse_stage4_prep::
handwritten_parse_snapshot_matches_manifest. Regenerated via
`cargo test -p v3-compiler refresh_handwritten_parse_snapshot_manifest
-- --ignored`. Hashes only — no .dag content edits in this commit.

Per snappy-moth-795 dispatch on #1722.

* docs(r3): split static X1.a function-field-call from runtime FieldProject

Codex review on #1722: the audit conflated two distinct paths. Per
design-prereq-x-ho-field-call.md §L1.a (and PR #1699), static
data v: WrapFn = { f: double }; v.f(x) projects v.f at LOWERING
time to FieldValue::Reference(decl_id_of_double) and emits
TransformTarget::Callable(decl_id_of_double) directly. There is no
runtime FieldProject transform on this path. Runtime FieldProject
is for non-Arrow value-field access (e.g. complexity_lens.name).

Splits the unblocked-capability list into three distinct paths:
runtime FieldProject for non-function fields, static Callable
dispatch, static function-field call (X1.a) lowering directly to
Callable. Reworks the static-lens example to project at lowering
time, not runtime. Narrows the Lens<C>.sequential blocker
narrowing accordingly.

Also restates the substrate-shaped runtime-value/carrier-lifting
prerequisite in the resume gate (non-blocking improvement) so G1
readers do not miss the DimensionReport<C> construction question.
briansrls added a commit that referenced this pull request May 5, 2026
…post-#1715) (#1723)

* docs(r3): reclassify Pop A from "mechanical port" to constructor-evaluator-blocked

Per parent dispatch on inbox #1134 (`#issuecomment-4375602172`) after PR
#1715 (`b13378e60`) advanced the v3 evaluator's `Callable` arm to
execute Arrow / UserDefined bodies: re-verified at `origin/main`
HEAD `52dcd5529` that all four Population A property families are
**still blocked**, but for a tighter reason than the original audit
named.

The original "Substrate live; just needs test wiring" disposition
conflated two distinct readiness conditions: substrate-presence (the
`.dag` declarations exist — still true) and executability (the v3
evaluator can run the `.dag` functions on test inputs and compare
results — still false for variant / record values).

Add a "Post-#1715 reclassification" subsection to §A naming the
specific blocker:

- `TransformTarget::Callable(callee_decl)` where `callee_decl` is an
  `Arrow` / `UserDefined` body now evaluates (lib.rs:579-617). User
  function calls land.
- Non-Arrow `Callable` targets fail-closed with
  `BadTransformOperands { reason: "Callable target declaration is not
  an Arrow type" }` (lib.rs:581-585; ratcheted at :2042).
- `lower_constructor_invocation` produces `Callable(variant_or_record_decl)`
  (lower.rs:7103-7119). Every constructor expression in a `.dag` test
  body (`ErrorBound`, `Some { value: ... }`, `OneStep`,
  `StrictSubValue { ... }`, etc.) hits the non-Arrow Callable arm.
- All four Pop A families' value flow is dominated by these
  constructor values, so behavioral assertions cannot run today.

Reclassified disposition: "Substrate live; requires v3 evaluator
runtime constructor/value execution before the behavioral property-test
migration can land." The original "single v3-side property-test PR
landing all 4 ports" recommendation is preserved as future work but
marked not-actionable until the constructor evaluator arm lands.

Per dispatch: PB does not author Rust mirrors as an interim surface
(would violate the single-authority migration shape).

No code changes; docs-only.

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

* WIP: silent-boar-29

* docs(r3): align Net dispatch Pop A row with §A post-#1715 reclassification (P2)

Per inline review at parse_corpus_manifest.txt:89: the audit had two
active authorities for Pop A's gate set after the §A reclassification —
the new "Post-#1715 reclassification" subsection said constructor/value
evaluator work is a prerequisite, while the older "Net dispatch order"
section still framed Pop A as "S-1 only / no evaluator dependency /
mechanical port." That violated INVARIANTS.md P2 Boundary Discipline.

Update the Net dispatch row to defer to §A as the single authority for
Pop A's gate set: explicitly note the supersession date (2026-05-05),
why the original framing was correct on substrate-presence grounds but
incomplete, and what the post-#1715 disposition adds (constructor/value
executor dependency, no Rust mirrors). The §A reclassification stays
the canonical Pop A gate description; the Net dispatch row is now a
pointer rather than a parallel authority.

No code change.

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

* docs(r3): add single-authority pointer above §A.1–§A.4 rows (P2)

Per blocking review on PR #1723 (`9b8d937f`): the Pop A reclassification
landed only as a new subsection after §A summary; the per-row
"Disposition recommendation for S-1" cells in §A.1–§A.4 still framed
the migration as a "v3-side property-test worker" task without
referencing the constructor/value evaluator dependency. Same P2
dual-authority pattern the inline review caught for the Net dispatch
row.

Add a single-authority pointer immediately above §A.1 declaring that:
- Per-row cells carry substrate-presence findings accurate at
  audit-authoring time.
- Pop A's gate set + dispatch readiness has a single canonical
  authority: the "Post-#1715 reclassification" subsection after §A
  summary.
- The pointer applies symmetrically to the Pop A row in the Net
  dispatch order section lower in the audit (already updated in
  prior commit `347c2abfd`).

Avoids editing each of the four row cells; the pointer is the single
edit site that future readers see before reaching any per-row text.

No code change.

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

* docs(r3): correct unit-test line-range anchor for Callable non-Arrow ratchet

Per cursor exploratory note on PR #1723 (`9cba61b9`, non-blocking):
the audit cited the Callable non-Arrow ratchet at
`src/v3/compiler/src/lib.rs:2042`, which lands on the closing brace of
the test. The actual `assert_eq!` for the typed error lives at
`:2035-2040`. Update the anchor to the assertion span.

No content change beyond the line-range correction.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 5, 2026
…0c ratchet) (#1721)

* test(v3): X1.a static field-call executes through public evaluator (G0c ratchet)

Post-G0c executable ratchet ties parse → lower → execute together for
the X1.a static field-call path:

1. PR #1699 made `data wrap: Wrapper = { f: double }; wrap.f(x)` lower
   to `TransformTarget::Callable(double_decl)`.
2. PR #1715 made `Callable` and `FieldProject` execute through the
   host evaluator.
3. This test compiles the X1.a fixture, walks `invoke`'s declaration
   honestly through `Dag::declarations()` → `TypeConnective::Arrow.body
   → ArrowBody::UserDefined(bind_id)`, pre-binds the parameter port to
   `Int(21)` in the caller frame, and evaluates the bind through
   `v3_compiler::evaluator::evaluate_body`. Asserts
   `Value::LiteralValue(Int(42))`.

No parser/lowerer/evaluator edits — pure ratchet. X1.b, X3, and
non-Arrow / non-callable / mutual-recursion paths remain pinned.

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

* chore(v3): refresh parse-corpus manifest for inherited algebra/diagnostics/verification.dag drift

* test(v3): use Dag::declaration_by_name in X1.a executable ratchet (P2 alignment)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 5, 2026
State explicitly that Prerequisites are regression STOPs, not unmerged
parser/lowerer blockers; points at readiness audit §Refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls briansrls mentioned this pull request May 5, 2026
briansrls added a commit that referenced this pull request May 5, 2026
Brian-authorized "use your own judgement" merge per chat directive on
the Brian-Q PRs review.

Per `feedback_modeling_inversion_and_paydown_flow` triage flow: clean
dispatch infrastructure for forward critical-path work (E6-G0c landed
at #1715; G1.a is the next step). Mgr-discipline (merry-gull) caught
original cross-lane Verification bundling + valiant-carp corrected
scope. PR is now Evaluator-only.

Worker dispatch packet for E6-G1.a — static top-level Lens<C> fold
slice (X1.a only; explicitly excludes parameter-headed X1.b which is
still fail-closed at lowering).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 6, 2026
…ity migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 6, 2026
…aterial delta (#1805)

* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 6, 2026
* WIP: valiant-carp-10

* docs(briefs): add E6-G1.a static lens fold dispatch packet

Revert CI/toolchain edits from session scaffolding; deliverable is the
G1.a worker packet (static top-level Lens<C> only, X1.b/fold_lens<C>
explicitly out of scope).

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

* docs(briefs): pin G1.a packet lib.rs anchors to current tree

Refresh FieldProject/Callable/eval_loop/Descent test line ranges and note
snapshot drift so implementers re-verify symbols in-tree.

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

* docs(briefs): disambiguate G1.a eval_transform_node vs lens_apply seam

Clarify that FieldProject/Callable receipts refer to lib.rs body eval;
lens_apply FieldValue path is non-authoritative for this slice.

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

* docs(briefs): G1.a packet — G0b/G0c prerequisite receipt, fix x1b links

- Add Prerequisites (receipt or STOP) tied to lens-fold readiness audit
- STOP on G0c/G0b regression before G1.a work
- Use ./ sibling links for briefs (x1b, readiness audit)

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

* fix(ci): ratchet exemption for t_demo canonical runner test

- Add slow-test exemption (T-Demo fixture compile + two TestRunner suites
  exceeds 2s on cold/filtered runs)
- Route t_demo compile_fixture through cached_compile_to_dag (dedupe with
  sibling test)
- Bump TEST_TIMEOUT_MAX_EXEMPTIONS default to 40 to match list size

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

* docs(briefs): G1.a packet — tie X1.a to ratchets, split from X1.b

Clarify static data-head vs parameter field-call; cite x1a positive
tests and x1b blocked-at-lowering ratchet (stale bot test name).

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

* docs(briefs): G1.a packet — G0b/G0c are landed receipts (PR #1699/#1715)

State explicitly that Prerequisites are regression STOPs, not unmerged
parser/lowerer blockers; points at readiness audit §Refresh.

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

* fix(ci): share L4 W1 suite results + ratchet exempt init test

- Cache TestRunner::run_suite output for three L4 skeleton tests (one compile/suite)
- Exempt false_branch row: libtest name order hits OnceLock init ~>2s on cold CI
- Bump TEST_TIMEOUT_MAX_EXEMPTIONS default to 41

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

* chore: remove R3 L4 timeout fix from Evaluator PR (Director routing)

Revert r3_verification_l4_l7_l5_skeleton_test OnceLock suite sharing to
pre-change shape; drop R3 slow-test exemption; meta-ratchet 41→40.

R3 Verification owns follow-up (cool-owl-579). T-Demo exemption + G1.a
packet unchanged.

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

* WIP: valiant-carp-10

* feat(v3-eval): E6-G0d constructor Callable runtime execution

- Peel Instantiation/resolved-atom chains so generic Arrow callees still reach UserDefined binds
- After Arrow dispatch fails, execute record/variant constructors into RecordValue / VariantValue
- Reuse lowerer payload walks (Disj membership, variant_payload_fields_for_lowering with outer inference, constructor_record_field_labels)
- Add evaluator compile→execute ratchets (generic sum/record, nullary, match round-trip)

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

* fix(v3-eval): drop Callable Arrow peel (G0d scope)

Restore top-level TypeConnective::Arrow match for UserDefined callables only;
constructor execution stays strictly on the non-Arrow fallback per E1/G0d brief.
Removes unused AtomPayload import in evaluator module.

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

* fix(v3-eval): positional variant payload uses Direct Value carrier

Single-field Conj label `_0` matches infer PayloadBindingResolution::Direct;
VariantValue.payload must be the inner operand, not RecordValue, so match
arms agree with payload_port typing. Adds Box(T) round-trip ratchet.

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

* fix(v3-eval): honest variant constructor errors + payload-scan docs

- Distinct BadTransformOperands reason when Disj arm payload walk fails
- Document dissolution trigger for eval_constructor_variant_payload_fields prefix scan
- debug_assertions: assert all successful outer prefixes agree on payload shape

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request May 6, 2026
…1831)

* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

* docs(briefs): sweep bare .md:NNN citations in 3 PB-owned R3 briefs

Per Director #1739 / `brief-authoring-checklist.md` §"Citation
discipline" + PB Mgr dispatch (mirror of Substrate-Mgr sweep at
127287a): replace bare `file.md:NNN` references with section-anchor
form across PB-owned `docs/briefs/r3-pb-*.md`.

Files swept (3 of 4 with bare citations under `r3-pb-*` glob):
- docs/briefs/r3-pb-runtime-equivalence-corpus-seed-audit.md (1)
- docs/briefs/r3-pb-t-fixedpoint-worker.md (3)
- docs/briefs/r3-pb-tier3-perf-budget-worker.md (4)

Conversions:
- `r2-evaluator-manager.md:27` → `r2-evaluator-manager.md` §"Owned
  deliverables (through R2 close)" — "Runtime value model" sub-lane row
- `r3-structure.md:59`, `:60` → `r3-structure.md` §"Lane gating summary"
- `r2-structure.md:296` → `r2-structure.md` §"R1 closure criteria"
  (the "`pb_self_compile_fixed_point` two-horizon semantics" paragraph)
- `r2-pure-bootstrap-manager.md:24` → `r2-pure-bootstrap-manager.md`
  §"Owns (post-R1 R2 program work)" — "Tier 3 mirror dissolutions:
  termination" row (and analogous for :25/:26/:27 → computation /
  induction / effect-carrier rows)
- `r2-pure-bootstrap-manager.md` §"Acceptance" line 101 →
  `r2-pure-bootstrap-manager.md` §"Acceptance"

Verification: `grep -nE '\.md:[0-9]+' <files>` returns zero matches
on the three swept briefs.

Out of scope: docs/briefs/r3-pb-regen-lens-consumer-audit.md (~14
bare citations into external doc/audit corpus) — deferred to a
follow-on sweep so this PR stays small per dispatch shape (≤4 files).

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

* docs(briefs): sweep bare .md:NNN citations in regen-lens consumer audit

Follow-on to 23274a5 — completes the PB-owned `r3-pb-*.md` sweep.

File: docs/briefs/r3-pb-regen-lens-consumer-audit.md (4 cells across
"Documentation surface (authority chain)" and "Handoff points" tables;
~14 individual bare refs collapsed into stable section anchors).

Drift fix while sweeping: the row at line 90 cited `r3-structure.md:26,
:52, :107` as "T-LensProducer-Retirement sub-gate 3 acceptance"; lines
52 and 107 had drifted off-target ("Lens framework" / `anthropic_wire_*`
respectively). Replaced with the canonical anchors that actually carry
sub-gate 3 acceptance: §"Summary" item 2, §"Acceptance — `.dag` gates"
T-LensProducer-Retirement (`regen_lens_dot_rs_retired` row), and
§"Lane structure" T-LensProducer-Retirement row.

Verification: `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-regen-lens-consumer-audit.md`
returns zero matches. `.dag:` and `.rs:` line refs (code citations)
intentionally untouched per dispatch scope.

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

* docs(briefs): fix two-horizon authority anchor in t-fixedpoint-worker

Address BLOCKING review on PR #1831 (briansrls 2026-05-06T09:25Z).

The previous sweep at 23274a5 preserved a drifted target: bare
`r3-structure.md:59` / `:60` lived in §"Lane gating summary" (the
14-of-18 evaluator-gating roll-up), but the brief was citing them as
authority for the `pb_self_compile_fixed_point` two-horizon semantics.
That authority actually lives at r3-structure.md:89-90 under
§"Acceptance — `.dag` gates" T-FixedPoint entry, "Two-horizon
clarification" sub-bullet. Sweep preserved the drift instead of fixing
it — same failure class as the r3-structure.md:52/:107 drift caught in
10e0355 on the regen-lens audit.

Conversions (3 sites in the brief, all corrected):
- §"Two-horizon framing": cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry ("Two-horizon clarification" sub-bullet)
- §"Acceptance gate (`.dag`)" intro: cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry (`pb_self_compile_fixed_point` row + Two-horizon
  clarification)
- "Two-horizon authority" footer cross-ref: same anchor

Verification: `grep -n "Lane gating summary" docs/briefs/r3-pb-t-fixedpoint-worker.md`
→ 0 matches. `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-*.md` → 0 matches.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 6, 2026
#1848)

* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

* docs(briefs): sweep bare .md:NNN citations in 3 PB-owned R3 briefs

Per Director #1739 / `brief-authoring-checklist.md` §"Citation
discipline" + PB Mgr dispatch (mirror of Substrate-Mgr sweep at
127287a): replace bare `file.md:NNN` references with section-anchor
form across PB-owned `docs/briefs/r3-pb-*.md`.

Files swept (3 of 4 with bare citations under `r3-pb-*` glob):
- docs/briefs/r3-pb-runtime-equivalence-corpus-seed-audit.md (1)
- docs/briefs/r3-pb-t-fixedpoint-worker.md (3)
- docs/briefs/r3-pb-tier3-perf-budget-worker.md (4)

Conversions:
- `r2-evaluator-manager.md:27` → `r2-evaluator-manager.md` §"Owned
  deliverables (through R2 close)" — "Runtime value model" sub-lane row
- `r3-structure.md:59`, `:60` → `r3-structure.md` §"Lane gating summary"
- `r2-structure.md:296` → `r2-structure.md` §"R1 closure criteria"
  (the "`pb_self_compile_fixed_point` two-horizon semantics" paragraph)
- `r2-pure-bootstrap-manager.md:24` → `r2-pure-bootstrap-manager.md`
  §"Owns (post-R1 R2 program work)" — "Tier 3 mirror dissolutions:
  termination" row (and analogous for :25/:26/:27 → computation /
  induction / effect-carrier rows)
- `r2-pure-bootstrap-manager.md` §"Acceptance" line 101 →
  `r2-pure-bootstrap-manager.md` §"Acceptance"

Verification: `grep -nE '\.md:[0-9]+' <files>` returns zero matches
on the three swept briefs.

Out of scope: docs/briefs/r3-pb-regen-lens-consumer-audit.md (~14
bare citations into external doc/audit corpus) — deferred to a
follow-on sweep so this PR stays small per dispatch shape (≤4 files).

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

* docs(briefs): sweep bare .md:NNN citations in regen-lens consumer audit

Follow-on to 23274a5 — completes the PB-owned `r3-pb-*.md` sweep.

File: docs/briefs/r3-pb-regen-lens-consumer-audit.md (4 cells across
"Documentation surface (authority chain)" and "Handoff points" tables;
~14 individual bare refs collapsed into stable section anchors).

Drift fix while sweeping: the row at line 90 cited `r3-structure.md:26,
:52, :107` as "T-LensProducer-Retirement sub-gate 3 acceptance"; lines
52 and 107 had drifted off-target ("Lens framework" / `anthropic_wire_*`
respectively). Replaced with the canonical anchors that actually carry
sub-gate 3 acceptance: §"Summary" item 2, §"Acceptance — `.dag` gates"
T-LensProducer-Retirement (`regen_lens_dot_rs_retired` row), and
§"Lane structure" T-LensProducer-Retirement row.

Verification: `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-regen-lens-consumer-audit.md`
returns zero matches. `.dag:` and `.rs:` line refs (code citations)
intentionally untouched per dispatch scope.

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

* docs(briefs): fix two-horizon authority anchor in t-fixedpoint-worker

Address BLOCKING review on PR #1831 (briansrls 2026-05-06T09:25Z).

The previous sweep at 23274a5 preserved a drifted target: bare
`r3-structure.md:59` / `:60` lived in §"Lane gating summary" (the
14-of-18 evaluator-gating roll-up), but the brief was citing them as
authority for the `pb_self_compile_fixed_point` two-horizon semantics.
That authority actually lives at r3-structure.md:89-90 under
§"Acceptance — `.dag` gates" T-FixedPoint entry, "Two-horizon
clarification" sub-bullet. Sweep preserved the drift instead of fixing
it — same failure class as the r3-structure.md:52/:107 drift caught in
10e0355 on the regen-lens audit.

Conversions (3 sites in the brief, all corrected):
- §"Two-horizon framing": cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry ("Two-horizon clarification" sub-bullet)
- §"Acceptance gate (`.dag`)" intro: cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry (`pb_self_compile_fixed_point` row + Two-horizon
  clarification)
- "Two-horizon authority" footer cross-ref: same anchor

Verification: `grep -n "Lane gating summary" docs/briefs/r3-pb-t-fixedpoint-worker.md`
→ 0 matches. `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-*.md` → 0 matches.

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

* docs(audit): T-V2-Retirement mechanical inventory refresh @ 2d26ed2

Per PB Mgr dispatch on inbox #1768 (sleek-eagle-514). Refreshes the
per-surface inventory from `docs/audit/t-v2-retirement-migration-matrix.md`
§2 against current `origin/main` HEAD.

Docs-only; no code touched. No `src/v2/` deletion, no Cargo edge
removal. Inventory + grep receipts only.

Findings (refresh-class only — structural map unchanged):
- Population A: 15 → 16 files (new: pb_method_template_projection_
  consumability.rs). Same G-2 unit-retirement disposition.
- Population B test-file line citations drifted (m2 L991→L1209 etc.);
  Cargo edge citations drifted (Cargo.toml L32-33 → L37-38). Constructs
  unchanged.
- Population C dag.rs line set drifted (6 → 1 doc-comment at L1793).
- 10 additional cosmetic files surfaced (gap-fill vs matrix §2.3).
- Root `Cargo.toml` v2 references (L6/L8/L58/L61) inventoried — not
  previously listed in matrix.
- G-1 closure surface count: 4 (unchanged). No new substantive
  v2_compiler consumer since matrix authoring at 66edec5.

Cross-links every Population B/C row to migration-matrix § + S-1
input-packet decision row.

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

* docs(audit): fix reproducible grep command in T-V2 inventory

Address codex APPROVE_WITH_COMMENTS on PR #1848 (sha 6526307):
the matrix-cited reproduction command `grep -rEln '...' src/ tests/`
emits `grep: tests/: No such file or directory` because this repo has
no top-level `tests/` (Rust integration tests live under
`src/<crate>/tests/`, recursively covered by `src/`).

Replaced with `src/`-only form (same match set, runs cleanly). Added
§4 reproducibility note explaining the matrix's `tests/` argument is
a no-op on current tree, flagging matrix doc hygiene for separate
sweep. Renumbered "Constraints honored" §4 → §5.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 6, 2026
…#1850)

* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

* docs(briefs): sweep bare .md:NNN citations in 3 PB-owned R3 briefs

Per Director #1739 / `brief-authoring-checklist.md` §"Citation
discipline" + PB Mgr dispatch (mirror of Substrate-Mgr sweep at
127287a): replace bare `file.md:NNN` references with section-anchor
form across PB-owned `docs/briefs/r3-pb-*.md`.

Files swept (3 of 4 with bare citations under `r3-pb-*` glob):
- docs/briefs/r3-pb-runtime-equivalence-corpus-seed-audit.md (1)
- docs/briefs/r3-pb-t-fixedpoint-worker.md (3)
- docs/briefs/r3-pb-tier3-perf-budget-worker.md (4)

Conversions:
- `r2-evaluator-manager.md:27` → `r2-evaluator-manager.md` §"Owned
  deliverables (through R2 close)" — "Runtime value model" sub-lane row
- `r3-structure.md:59`, `:60` → `r3-structure.md` §"Lane gating summary"
- `r2-structure.md:296` → `r2-structure.md` §"R1 closure criteria"
  (the "`pb_self_compile_fixed_point` two-horizon semantics" paragraph)
- `r2-pure-bootstrap-manager.md:24` → `r2-pure-bootstrap-manager.md`
  §"Owns (post-R1 R2 program work)" — "Tier 3 mirror dissolutions:
  termination" row (and analogous for :25/:26/:27 → computation /
  induction / effect-carrier rows)
- `r2-pure-bootstrap-manager.md` §"Acceptance" line 101 →
  `r2-pure-bootstrap-manager.md` §"Acceptance"

Verification: `grep -nE '\.md:[0-9]+' <files>` returns zero matches
on the three swept briefs.

Out of scope: docs/briefs/r3-pb-regen-lens-consumer-audit.md (~14
bare citations into external doc/audit corpus) — deferred to a
follow-on sweep so this PR stays small per dispatch shape (≤4 files).

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

* docs(briefs): sweep bare .md:NNN citations in regen-lens consumer audit

Follow-on to 23274a5 — completes the PB-owned `r3-pb-*.md` sweep.

File: docs/briefs/r3-pb-regen-lens-consumer-audit.md (4 cells across
"Documentation surface (authority chain)" and "Handoff points" tables;
~14 individual bare refs collapsed into stable section anchors).

Drift fix while sweeping: the row at line 90 cited `r3-structure.md:26,
:52, :107` as "T-LensProducer-Retirement sub-gate 3 acceptance"; lines
52 and 107 had drifted off-target ("Lens framework" / `anthropic_wire_*`
respectively). Replaced with the canonical anchors that actually carry
sub-gate 3 acceptance: §"Summary" item 2, §"Acceptance — `.dag` gates"
T-LensProducer-Retirement (`regen_lens_dot_rs_retired` row), and
§"Lane structure" T-LensProducer-Retirement row.

Verification: `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-regen-lens-consumer-audit.md`
returns zero matches. `.dag:` and `.rs:` line refs (code citations)
intentionally untouched per dispatch scope.

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

* docs(briefs): fix two-horizon authority anchor in t-fixedpoint-worker

Address BLOCKING review on PR #1831 (briansrls 2026-05-06T09:25Z).

The previous sweep at 23274a5 preserved a drifted target: bare
`r3-structure.md:59` / `:60` lived in §"Lane gating summary" (the
14-of-18 evaluator-gating roll-up), but the brief was citing them as
authority for the `pb_self_compile_fixed_point` two-horizon semantics.
That authority actually lives at r3-structure.md:89-90 under
§"Acceptance — `.dag` gates" T-FixedPoint entry, "Two-horizon
clarification" sub-bullet. Sweep preserved the drift instead of fixing
it — same failure class as the r3-structure.md:52/:107 drift caught in
10e0355 on the regen-lens audit.

Conversions (3 sites in the brief, all corrected):
- §"Two-horizon framing": cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry ("Two-horizon clarification" sub-bullet)
- §"Acceptance gate (`.dag`)" intro: cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry (`pb_self_compile_fixed_point` row + Two-horizon
  clarification)
- "Two-horizon authority" footer cross-ref: same anchor

Verification: `grep -n "Lane gating summary" docs/briefs/r3-pb-t-fixedpoint-worker.md`
→ 0 matches. `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-*.md` → 0 matches.

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

* docs(audit): T-V2-Retirement mechanical inventory refresh @ 2d26ed2

Per PB Mgr dispatch on inbox #1768 (sleek-eagle-514). Refreshes the
per-surface inventory from `docs/audit/t-v2-retirement-migration-matrix.md`
§2 against current `origin/main` HEAD.

Docs-only; no code touched. No `src/v2/` deletion, no Cargo edge
removal. Inventory + grep receipts only.

Findings (refresh-class only — structural map unchanged):
- Population A: 15 → 16 files (new: pb_method_template_projection_
  consumability.rs). Same G-2 unit-retirement disposition.
- Population B test-file line citations drifted (m2 L991→L1209 etc.);
  Cargo edge citations drifted (Cargo.toml L32-33 → L37-38). Constructs
  unchanged.
- Population C dag.rs line set drifted (6 → 1 doc-comment at L1793).
- 10 additional cosmetic files surfaced (gap-fill vs matrix §2.3).
- Root `Cargo.toml` v2 references (L6/L8/L58/L61) inventoried — not
  previously listed in matrix.
- G-1 closure surface count: 4 (unchanged). No new substantive
  v2_compiler consumer since matrix authoring at 66edec5.

Cross-links every Population B/C row to migration-matrix § + S-1
input-packet decision row.

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

* docs(audit): fix reproducible grep command in T-V2 inventory

Address codex APPROVE_WITH_COMMENTS on PR #1848 (sha 6526307):
the matrix-cited reproduction command `grep -rEln '...' src/ tests/`
emits `grep: tests/: No such file or directory` because this repo has
no top-level `tests/` (Rust integration tests live under
`src/<crate>/tests/`, recursively covered by `src/`).

Replaced with `src/`-only form (same match set, runs cleanly). Added
§4 reproducibility note explaining the matrix's `tests/` argument is
a no-op on current tree, flagging matrix doc hygiene for separate
sweep. Renumbered "Constraints honored" §4 → §5.

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

* docs(audit): T-V2 inventory follow-up — unified census + C-data split

Address codex BLOCKING review on merged PR #1848 (sha 3c32690).

Two findings; both valid:

(1) Search authority was split across narrower greps. The matrix-cited
`\bv2_compiler(_tests)?\b` only matches underscored module paths
(v2_compiler / v2_compiler_tests) and misses the hyphenated Cargo dep
names (v2-compiler / v2-compiler-tests). Receipts in §1.2 B.2 used a
separate Cargo-only grep to compensate, but the cited "search authority"
header didn't reflect that. Replaced with a single unified census:

    grep -rEln 'src/v2/|\bv2[-_]compiler(_tests|-tests)?\b' src/ Cargo.toml dsl/

This catches every surface in one pass. Also surfaced one missed file
under the broader pattern: `dsl/gunbc/tools/ci_runner.dag:16`
(doc-comment with `cargo run -p v2-compiler` invocation example).

(2) `.dag` configuration-data refs were misclassified as Population C
cosmetic. `dsl/gunbc/compiler.dag:53`
`data compiler_source: SourceRoot = { path: "src/v2" }` is a typed
data declaration consumed by the compile pipeline — silently rewriting
it during a cosmetic G-2 sweep would either invalidate `compiler_source`
or quietly retarget the compile root without an authoring-time decision.
Reclassified as a new C-data row (§1.3 C.3) with named G-2 routing
to S-1 (input-packet Decision 6 scope coverage) rather than C-cosmetic
"sweep at G-2" default.

Net G-1 closure surface count: still 4 (unchanged).

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

* docs(audit): inventory line-completeness + 2nd C-data row (compiler.dag:270)

Address codex BLOCKING inline review on PR #1848 at line 10.

Reviewer claimed the unified grep `\bv2[-_]compiler(_tests|-tests)?\b`
misses three sites; verified directly: regex catches all three. The
substantive issue is **inventory line-completeness**, not regex
coverage — earlier passes enumerated FILES not all line-hits within
files.

Fixes:
- Population B `p0_std_render_repeat_string_test.rs`: add L25 body-of-
  test call to `v2_compiler::v2_std_core::diagnostic_to_message`
  (matrix §3.1 only listed `use`-decls L9-L11; this is a 4th
  substantive line in the same file). Same Decision 1 disposition.
- Population C `pb_method_template_projection_dag_emit_test.rs`: add
  L24 (was L28/L54).
- Population C `SELF_HOSTING.md`: add L1178 (`cargo test -p
  v2-compiler-tests ci_freshness` doc reference).
- Population C-data: add 2nd row, `dsl/gunbc/compiler.dag:270`
  `data test_package: NonEmptyStr = "v2-compiler-tests"` — typed
  config naming the Cargo test crate, tied to Cargo edge §B.2
  retirement. Same C-data class as compiler.dag:53; routed to S-1.

Net G-1 closure surface count: still 4 (unchanged — L25 is in an
already-counted Population B file).

C-data sub-class: 1 → 2 entries.

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

* docs(audit): widen regex + renumber §3 + §2 C-data rows + framing

Address codex (openai-pro) REQUEST_CHANGES + PB Mgr editorial nits on
PR #1850.

Codex BLOCKING (real bug):
- Unified census `src/v2/|...` requires trailing slash; misses
  `path: "src/v2"` literal — the very C-data row this audit created.
  Widen to `src/v2\b|...` (word-boundary, no trailing-slash
  requirement). Verified: `grep -nE 'src/v2\b' dsl/gunbc/compiler.dag`
  catches both L29 (path-prefix) and L53 (string-literal).
- Added regex evolution log to §"Search authority" so future refreshes
  trace v1 → v2 → v3 of the canonical command.

PB Mgr editorial:
- §3 Summary deltas: renumber broken sequence (had two "6." entries
  and an out-of-order "7."); now clean 1..9.
- §Scope: realign opening from `src/ + tests/ + Cargo.toml` to
  `src/ + Cargo.toml + dsl/` matching §"Search authority".
- §2 Cross-reference table: split out explicit C-data rows for
  `compiler.dag:53` and `:270` (previously folded into a generic
  "dsl/gunbc/{compiler,...}.dag" cosmetic cell). Both now visible
  with their S-1 Decision 6 routing and (for :270) tie-back to
  §B.2 Decision 3 Cargo edge retirement.
- §5 "adds one new docs-only file" reworded to acknowledge this is
  an edit-in-place follow-up to #1848.

Net G-1 closure surface count: still 4 (unchanged).
Net regex coverage: unified command now catches all 21 line-level
hits in one pass (was 19 with trailing-slash form).

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

* docs(audit): refresh HEAD-verified pin per PB Mgr optional nit

PB Mgr review on #1850 suggested adding a one-line note that
methodology deltas were validated at merge-base after #1848 (line
cites can drift on busy main). Refreshed the HEAD-verified note in
the doc header to acknowledge initial-vs-follow-up validation
windows + name the spot-checked surfaces.

Editorial only; no inventory changes. All four PB Mgr must-fix /
should-fix items already in b9958df.

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

* docs(audit): fix unified-census flag (-rEln → -rEn) for line-level claim

Address codex REQUEST_CHANGES on PR #1850 sha f783475: `-l` prints
filenames only, contradicting the doc's claim that the unified
command produces "line-level enumeration" (§3 Δ7). The matrix
cites `-rEln` because matrix is file-level inventory; this doc
shifted to line-level but kept the `l` flag.

Drop `l` → `-rEn`. Added a one-line note explaining the flag
delta vs the matrix-cited form.

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

* docs(audit): correct compiler.dag:270 routing — G-2 package, not G-1 edge

Address codex BLOCKING on PR #1850 (sha 15faffa): the C-data row at
`dsl/gunbc/compiler.dag:270` (`test_package = "v2-compiler-tests"`)
was incorrectly tied to §B.2 Decision 3 (G-1 dev-dep edge retirement).
That conflates two distinct removals:

- G-1 / §B.2 Decision 3: deletes the dev-dep edge in
  `src/v3/compiler/Cargo.toml` — consumer-side dependency removed,
  but the `v2-compiler-tests` Cargo package itself still exists at
  workspace root.
- G-2 / root workspace removal: deletes `src/v2/tests` workspace
  member (§1.4 root Cargo.toml L8) — the published package name
  goes away.

The data row points at a *package name*, which remains valid post-G-1
and only becomes stale at G-2. Re-routed to a separate S-1 G-2
decision (CI test package retargeting), explicitly not tied to
B.2/Decision 3. Updated both §1.3 C.3 row and §2 cross-ref row to
reflect the correction.

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

* docs(audit): align §2 cross-ref pb_method_template line set with §1.3

cursor optional nit on PR #1850: §2 cross-reference table listed
`pb_method_template_projection_dag_emit_test.rs:28,54` while
§1.3 C.2 and §3 Δ7 include L24 too. Pure doc hygiene; line set
now consistent (L24,28,54).

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

* docs(audit): align intro line-citation framing with HEAD-verified note

cursor optional polish on PR #1850: intro said "Every cell below cites
a live grep / file/line on 2d26ed2" while the HEAD verified note
acknowledges follow-up validations after #1848. Aligned the two:
initial cells pinned to 2d26ed2; follow-up additions validated
post-#1848 merge; future refreshes should re-pin HEAD before citing.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 6, 2026
* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

* docs(briefs): sweep bare .md:NNN citations in 3 PB-owned R3 briefs

Per Director #1739 / `brief-authoring-checklist.md` §"Citation
discipline" + PB Mgr dispatch (mirror of Substrate-Mgr sweep at
127287a): replace bare `file.md:NNN` references with section-anchor
form across PB-owned `docs/briefs/r3-pb-*.md`.

Files swept (3 of 4 with bare citations under `r3-pb-*` glob):
- docs/briefs/r3-pb-runtime-equivalence-corpus-seed-audit.md (1)
- docs/briefs/r3-pb-t-fixedpoint-worker.md (3)
- docs/briefs/r3-pb-tier3-perf-budget-worker.md (4)

Conversions:
- `r2-evaluator-manager.md:27` → `r2-evaluator-manager.md` §"Owned
  deliverables (through R2 close)" — "Runtime value model" sub-lane row
- `r3-structure.md:59`, `:60` → `r3-structure.md` §"Lane gating summary"
- `r2-structure.md:296` → `r2-structure.md` §"R1 closure criteria"
  (the "`pb_self_compile_fixed_point` two-horizon semantics" paragraph)
- `r2-pure-bootstrap-manager.md:24` → `r2-pure-bootstrap-manager.md`
  §"Owns (post-R1 R2 program work)" — "Tier 3 mirror dissolutions:
  termination" row (and analogous for :25/:26/:27 → computation /
  induction / effect-carrier rows)
- `r2-pure-bootstrap-manager.md` §"Acceptance" line 101 →
  `r2-pure-bootstrap-manager.md` §"Acceptance"

Verification: `grep -nE '\.md:[0-9]+' <files>` returns zero matches
on the three swept briefs.

Out of scope: docs/briefs/r3-pb-regen-lens-consumer-audit.md (~14
bare citations into external doc/audit corpus) — deferred to a
follow-on sweep so this PR stays small per dispatch shape (≤4 files).

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

* docs(briefs): sweep bare .md:NNN citations in regen-lens consumer audit

Follow-on to 23274a5 — completes the PB-owned `r3-pb-*.md` sweep.

File: docs/briefs/r3-pb-regen-lens-consumer-audit.md (4 cells across
"Documentation surface (authority chain)" and "Handoff points" tables;
~14 individual bare refs collapsed into stable section anchors).

Drift fix while sweeping: the row at line 90 cited `r3-structure.md:26,
:52, :107` as "T-LensProducer-Retirement sub-gate 3 acceptance"; lines
52 and 107 had drifted off-target ("Lens framework" / `anthropic_wire_*`
respectively). Replaced with the canonical anchors that actually carry
sub-gate 3 acceptance: §"Summary" item 2, §"Acceptance — `.dag` gates"
T-LensProducer-Retirement (`regen_lens_dot_rs_retired` row), and
§"Lane structure" T-LensProducer-Retirement row.

Verification: `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-regen-lens-consumer-audit.md`
returns zero matches. `.dag:` and `.rs:` line refs (code citations)
intentionally untouched per dispatch scope.

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

* docs(briefs): fix two-horizon authority anchor in t-fixedpoint-worker

Address BLOCKING review on PR #1831 (briansrls 2026-05-06T09:25Z).

The previous sweep at 23274a5 preserved a drifted target: bare
`r3-structure.md:59` / `:60` lived in §"Lane gating summary" (the
14-of-18 evaluator-gating roll-up), but the brief was citing them as
authority for the `pb_self_compile_fixed_point` two-horizon semantics.
That authority actually lives at r3-structure.md:89-90 under
§"Acceptance — `.dag` gates" T-FixedPoint entry, "Two-horizon
clarification" sub-bullet. Sweep preserved the drift instead of fixing
it — same failure class as the r3-structure.md:52/:107 drift caught in
10e0355 on the regen-lens audit.

Conversions (3 sites in the brief, all corrected):
- §"Two-horizon framing": cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry ("Two-horizon clarification" sub-bullet)
- §"Acceptance gate (`.dag`)" intro: cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry (`pb_self_compile_fixed_point` row + Two-horizon
  clarification)
- "Two-horizon authority" footer cross-ref: same anchor

Verification: `grep -n "Lane gating summary" docs/briefs/r3-pb-t-fixedpoint-worker.md`
→ 0 matches. `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-*.md` → 0 matches.

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

* docs(audit): T-V2-Retirement mechanical inventory refresh @ 2d26ed2

Per PB Mgr dispatch on inbox #1768 (sleek-eagle-514). Refreshes the
per-surface inventory from `docs/audit/t-v2-retirement-migration-matrix.md`
§2 against current `origin/main` HEAD.

Docs-only; no code touched. No `src/v2/` deletion, no Cargo edge
removal. Inventory + grep receipts only.

Findings (refresh-class only — structural map unchanged):
- Population A: 15 → 16 files (new: pb_method_template_projection_
  consumability.rs). Same G-2 unit-retirement disposition.
- Population B test-file line citations drifted (m2 L991→L1209 etc.);
  Cargo edge citations drifted (Cargo.toml L32-33 → L37-38). Constructs
  unchanged.
- Population C dag.rs line set drifted (6 → 1 doc-comment at L1793).
- 10 additional cosmetic files surfaced (gap-fill vs matrix §2.3).
- Root `Cargo.toml` v2 references (L6/L8/L58/L61) inventoried — not
  previously listed in matrix.
- G-1 closure surface count: 4 (unchanged). No new substantive
  v2_compiler consumer since matrix authoring at 66edec5.

Cross-links every Population B/C row to migration-matrix § + S-1
input-packet decision row.

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

* docs(audit): fix reproducible grep command in T-V2 inventory

Address codex APPROVE_WITH_COMMENTS on PR #1848 (sha 6526307):
the matrix-cited reproduction command `grep -rEln '...' src/ tests/`
emits `grep: tests/: No such file or directory` because this repo has
no top-level `tests/` (Rust integration tests live under
`src/<crate>/tests/`, recursively covered by `src/`).

Replaced with `src/`-only form (same match set, runs cleanly). Added
§4 reproducibility note explaining the matrix's `tests/` argument is
a no-op on current tree, flagging matrix doc hygiene for separate
sweep. Renumbered "Constraints honored" §4 → §5.

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

* docs(audit): T-V2 inventory follow-up — unified census + C-data split

Address codex BLOCKING review on merged PR #1848 (sha 3c32690).

Two findings; both valid:

(1) Search authority was split across narrower greps. The matrix-cited
`\bv2_compiler(_tests)?\b` only matches underscored module paths
(v2_compiler / v2_compiler_tests) and misses the hyphenated Cargo dep
names (v2-compiler / v2-compiler-tests). Receipts in §1.2 B.2 used a
separate Cargo-only grep to compensate, but the cited "search authority"
header didn't reflect that. Replaced with a single unified census:

    grep -rEln 'src/v2/|\bv2[-_]compiler(_tests|-tests)?\b' src/ Cargo.toml dsl/

This catches every surface in one pass. Also surfaced one missed file
under the broader pattern: `dsl/gunbc/tools/ci_runner.dag:16`
(doc-comment with `cargo run -p v2-compiler` invocation example).

(2) `.dag` configuration-data refs were misclassified as Population C
cosmetic. `dsl/gunbc/compiler.dag:53`
`data compiler_source: SourceRoot = { path: "src/v2" }` is a typed
data declaration consumed by the compile pipeline — silently rewriting
it during a cosmetic G-2 sweep would either invalidate `compiler_source`
or quietly retarget the compile root without an authoring-time decision.
Reclassified as a new C-data row (§1.3 C.3) with named G-2 routing
to S-1 (input-packet Decision 6 scope coverage) rather than C-cosmetic
"sweep at G-2" default.

Net G-1 closure surface count: still 4 (unchanged).

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

* docs(audit): inventory line-completeness + 2nd C-data row (compiler.dag:270)

Address codex BLOCKING inline review on PR #1848 at line 10.

Reviewer claimed the unified grep `\bv2[-_]compiler(_tests|-tests)?\b`
misses three sites; verified directly: regex catches all three. The
substantive issue is **inventory line-completeness**, not regex
coverage — earlier passes enumerated FILES not all line-hits within
files.

Fixes:
- Population B `p0_std_render_repeat_string_test.rs`: add L25 body-of-
  test call to `v2_compiler::v2_std_core::diagnostic_to_message`
  (matrix §3.1 only listed `use`-decls L9-L11; this is a 4th
  substantive line in the same file). Same Decision 1 disposition.
- Population C `pb_method_template_projection_dag_emit_test.rs`: add
  L24 (was L28/L54).
- Population C `SELF_HOSTING.md`: add L1178 (`cargo test -p
  v2-compiler-tests ci_freshness` doc reference).
- Population C-data: add 2nd row, `dsl/gunbc/compiler.dag:270`
  `data test_package: NonEmptyStr = "v2-compiler-tests"` — typed
  config naming the Cargo test crate, tied to Cargo edge §B.2
  retirement. Same C-data class as compiler.dag:53; routed to S-1.

Net G-1 closure surface count: still 4 (unchanged — L25 is in an
already-counted Population B file).

C-data sub-class: 1 → 2 entries.

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

* docs(audit): widen regex + renumber §3 + §2 C-data rows + framing

Address codex (openai-pro) REQUEST_CHANGES + PB Mgr editorial nits on
PR #1850.

Codex BLOCKING (real bug):
- Unified census `src/v2/|...` requires trailing slash; misses
  `path: "src/v2"` literal — the very C-data row this audit created.
  Widen to `src/v2\b|...` (word-boundary, no trailing-slash
  requirement). Verified: `grep -nE 'src/v2\b' dsl/gunbc/compiler.dag`
  catches both L29 (path-prefix) and L53 (string-literal).
- Added regex evolution log to §"Search authority" so future refreshes
  trace v1 → v2 → v3 of the canonical command.

PB Mgr editorial:
- §3 Summary deltas: renumber broken sequence (had two "6." entries
  and an out-of-order "7."); now clean 1..9.
- §Scope: realign opening from `src/ + tests/ + Cargo.toml` to
  `src/ + Cargo.toml + dsl/` matching §"Search authority".
- §2 Cross-reference table: split out explicit C-data rows for
  `compiler.dag:53` and `:270` (previously folded into a generic
  "dsl/gunbc/{compiler,...}.dag" cosmetic cell). Both now visible
  with their S-1 Decision 6 routing and (for :270) tie-back to
  §B.2 Decision 3 Cargo edge retirement.
- §5 "adds one new docs-only file" reworded to acknowledge this is
  an edit-in-place follow-up to #1848.

Net G-1 closure surface count: still 4 (unchanged).
Net regex coverage: unified command now catches all 21 line-level
hits in one pass (was 19 with trailing-slash form).

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

* docs(audit): refresh HEAD-verified pin per PB Mgr optional nit

PB Mgr review on #1850 suggested adding a one-line note that
methodology deltas were validated at merge-base after #1848 (line
cites can drift on busy main). Refreshed the HEAD-verified note in
the doc header to acknowledge initial-vs-follow-up validation
windows + name the spot-checked surfaces.

Editorial only; no inventory changes. All four PB Mgr must-fix /
should-fix items already in b9958df.

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

* docs(audit): fix unified-census flag (-rEln → -rEn) for line-level claim

Address codex REQUEST_CHANGES on PR #1850 sha f783475: `-l` prints
filenames only, contradicting the doc's claim that the unified
command produces "line-level enumeration" (§3 Δ7). The matrix
cites `-rEln` because matrix is file-level inventory; this doc
shifted to line-level but kept the `l` flag.

Drop `l` → `-rEn`. Added a one-line note explaining the flag
delta vs the matrix-cited form.

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

* docs(audit): correct compiler.dag:270 routing — G-2 package, not G-1 edge

Address codex BLOCKING on PR #1850 (sha 15faffa): the C-data row at
`dsl/gunbc/compiler.dag:270` (`test_package = "v2-compiler-tests"`)
was incorrectly tied to §B.2 Decision 3 (G-1 dev-dep edge retirement).
That conflates two distinct removals:

- G-1 / §B.2 Decision 3: deletes the dev-dep edge in
  `src/v3/compiler/Cargo.toml` — consumer-side dependency removed,
  but the `v2-compiler-tests` Cargo package itself still exists at
  workspace root.
- G-2 / root workspace removal: deletes `src/v2/tests` workspace
  member (§1.4 root Cargo.toml L8) — the published package name
  goes away.

The data row points at a *package name*, which remains valid post-G-1
and only becomes stale at G-2. Re-routed to a separate S-1 G-2
decision (CI test package retargeting), explicitly not tied to
B.2/Decision 3. Updated both §1.3 C.3 row and §2 cross-ref row to
reflect the correction.

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

* docs(audit): align §2 cross-ref pb_method_template line set with §1.3

cursor optional nit on PR #1850: §2 cross-reference table listed
`pb_method_template_projection_dag_emit_test.rs:28,54` while
§1.3 C.2 and §3 Δ7 include L24 too. Pure doc hygiene; line set
now consistent (L24,28,54).

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

* docs(audit): align intro line-citation framing with HEAD-verified note

cursor optional polish on PR #1850: intro said "Every cell below cites
a live grep / file/line on 2d26ed2" while the HEAD verified note
acknowledges follow-up validations after #1848. Aligned the two:
initial cells pinned to 2d26ed2; follow-up additions validated
post-#1848 merge; future refreshes should re-pin HEAD before citing.

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

* docs(briefs): refresh BinShim row-1 packet HEAD pin (9cf6dd2 → 831080d)

Per PB Mgr dispatch on inbox #1768 (assignment #1890): re-run §Verified
row-#1 receipts against latest origin/main HEAD.

Re-verification at HEAD 831080d (2026-05-06):
- rg for `regen_lens_main` / `*_main -> ProcessExit` entry: no match
  (NOT-LIVE unchanged)
- ls dsl/std/runtime/bin_shims/: README.md only (framework-only,
  unchanged)
- All cited surfaces still resolve at the previously-pinned line
  numbers: process.dag :39 (ProcessExit) / :41 (ExitFailure) / :50
  (exit_failure helper); bin_shim.dag :19 (BinShim type with
  entrypoint_name)

Verdict unchanged: row-#1 NOT-LIVE; Shape A/B/C disposition is still
the head-of-chain blocker. Doc body needed only the HEAD pin refresh
+ a re-verification note acknowledging the HEAD delta (#1503 PR-E E7,
T-Numeric-Construction S9, Q-MachineConstraint #1856, T-V2 inventory
#1848/#1850, etc.) without `regen_lens_main` authoring.

No Shape pick. No regen_lens_main. No carrier/loader edits.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 7, 2026
… delta (#1919) (#1926)

* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

* docs(briefs): sweep bare .md:NNN citations in 3 PB-owned R3 briefs

Per Director #1739 / `brief-authoring-checklist.md` §"Citation
discipline" + PB Mgr dispatch (mirror of Substrate-Mgr sweep at
127287a): replace bare `file.md:NNN` references with section-anchor
form across PB-owned `docs/briefs/r3-pb-*.md`.

Files swept (3 of 4 with bare citations under `r3-pb-*` glob):
- docs/briefs/r3-pb-runtime-equivalence-corpus-seed-audit.md (1)
- docs/briefs/r3-pb-t-fixedpoint-worker.md (3)
- docs/briefs/r3-pb-tier3-perf-budget-worker.md (4)

Conversions:
- `r2-evaluator-manager.md:27` → `r2-evaluator-manager.md` §"Owned
  deliverables (through R2 close)" — "Runtime value model" sub-lane row
- `r3-structure.md:59`, `:60` → `r3-structure.md` §"Lane gating summary"
- `r2-structure.md:296` → `r2-structure.md` §"R1 closure criteria"
  (the "`pb_self_compile_fixed_point` two-horizon semantics" paragraph)
- `r2-pure-bootstrap-manager.md:24` → `r2-pure-bootstrap-manager.md`
  §"Owns (post-R1 R2 program work)" — "Tier 3 mirror dissolutions:
  termination" row (and analogous for :25/:26/:27 → computation /
  induction / effect-carrier rows)
- `r2-pure-bootstrap-manager.md` §"Acceptance" line 101 →
  `r2-pure-bootstrap-manager.md` §"Acceptance"

Verification: `grep -nE '\.md:[0-9]+' <files>` returns zero matches
on the three swept briefs.

Out of scope: docs/briefs/r3-pb-regen-lens-consumer-audit.md (~14
bare citations into external doc/audit corpus) — deferred to a
follow-on sweep so this PR stays small per dispatch shape (≤4 files).

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

* docs(briefs): sweep bare .md:NNN citations in regen-lens consumer audit

Follow-on to 23274a5 — completes the PB-owned `r3-pb-*.md` sweep.

File: docs/briefs/r3-pb-regen-lens-consumer-audit.md (4 cells across
"Documentation surface (authority chain)" and "Handoff points" tables;
~14 individual bare refs collapsed into stable section anchors).

Drift fix while sweeping: the row at line 90 cited `r3-structure.md:26,
:52, :107` as "T-LensProducer-Retirement sub-gate 3 acceptance"; lines
52 and 107 had drifted off-target ("Lens framework" / `anthropic_wire_*`
respectively). Replaced with the canonical anchors that actually carry
sub-gate 3 acceptance: §"Summary" item 2, §"Acceptance — `.dag` gates"
T-LensProducer-Retirement (`regen_lens_dot_rs_retired` row), and
§"Lane structure" T-LensProducer-Retirement row.

Verification: `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-regen-lens-consumer-audit.md`
returns zero matches. `.dag:` and `.rs:` line refs (code citations)
intentionally untouched per dispatch scope.

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

* docs(briefs): fix two-horizon authority anchor in t-fixedpoint-worker

Address BLOCKING review on PR #1831 (briansrls 2026-05-06T09:25Z).

The previous sweep at 23274a5 preserved a drifted target: bare
`r3-structure.md:59` / `:60` lived in §"Lane gating summary" (the
14-of-18 evaluator-gating roll-up), but the brief was citing them as
authority for the `pb_self_compile_fixed_point` two-horizon semantics.
That authority actually lives at r3-structure.md:89-90 under
§"Acceptance — `.dag` gates" T-FixedPoint entry, "Two-horizon
clarification" sub-bullet. Sweep preserved the drift instead of fixing
it — same failure class as the r3-structure.md:52/:107 drift caught in
10e0355 on the regen-lens audit.

Conversions (3 sites in the brief, all corrected):
- §"Two-horizon framing": cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry ("Two-horizon clarification" sub-bullet)
- §"Acceptance gate (`.dag`)" intro: cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry (`pb_self_compile_fixed_point` row + Two-horizon
  clarification)
- "Two-horizon authority" footer cross-ref: same anchor

Verification: `grep -n "Lane gating summary" docs/briefs/r3-pb-t-fixedpoint-worker.md`
→ 0 matches. `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-*.md` → 0 matches.

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

* docs(audit): T-V2-Retirement mechanical inventory refresh @ 2d26ed2

Per PB Mgr dispatch on inbox #1768 (sleek-eagle-514). Refreshes the
per-surface inventory from `docs/audit/t-v2-retirement-migration-matrix.md`
§2 against current `origin/main` HEAD.

Docs-only; no code touched. No `src/v2/` deletion, no Cargo edge
removal. Inventory + grep receipts only.

Findings (refresh-class only — structural map unchanged):
- Population A: 15 → 16 files (new: pb_method_template_projection_
  consumability.rs). Same G-2 unit-retirement disposition.
- Population B test-file line citations drifted (m2 L991→L1209 etc.);
  Cargo edge citations drifted (Cargo.toml L32-33 → L37-38). Constructs
  unchanged.
- Population C dag.rs line set drifted (6 → 1 doc-comment at L1793).
- 10 additional cosmetic files surfaced (gap-fill vs matrix §2.3).
- Root `Cargo.toml` v2 references (L6/L8/L58/L61) inventoried — not
  previously listed in matrix.
- G-1 closure surface count: 4 (unchanged). No new substantive
  v2_compiler consumer since matrix authoring at 66edec5.

Cross-links every Population B/C row to migration-matrix § + S-1
input-packet decision row.

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

* docs(audit): fix reproducible grep command in T-V2 inventory

Address codex APPROVE_WITH_COMMENTS on PR #1848 (sha 6526307):
the matrix-cited reproduction command `grep -rEln '...' src/ tests/`
emits `grep: tests/: No such file or directory` because this repo has
no top-level `tests/` (Rust integration tests live under
`src/<crate>/tests/`, recursively covered by `src/`).

Replaced with `src/`-only form (same match set, runs cleanly). Added
§4 reproducibility note explaining the matrix's `tests/` argument is
a no-op on current tree, flagging matrix doc hygiene for separate
sweep. Renumbered "Constraints honored" §4 → §5.

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

* docs(audit): T-V2 inventory follow-up — unified census + C-data split

Address codex BLOCKING review on merged PR #1848 (sha 3c32690).

Two findings; both valid:

(1) Search authority was split across narrower greps. The matrix-cited
`\bv2_compiler(_tests)?\b` only matches underscored module paths
(v2_compiler / v2_compiler_tests) and misses the hyphenated Cargo dep
names (v2-compiler / v2-compiler-tests). Receipts in §1.2 B.2 used a
separate Cargo-only grep to compensate, but the cited "search authority"
header didn't reflect that. Replaced with a single unified census:

    grep -rEln 'src/v2/|\bv2[-_]compiler(_tests|-tests)?\b' src/ Cargo.toml dsl/

This catches every surface in one pass. Also surfaced one missed file
under the broader pattern: `dsl/gunbc/tools/ci_runner.dag:16`
(doc-comment with `cargo run -p v2-compiler` invocation example).

(2) `.dag` configuration-data refs were misclassified as Population C
cosmetic. `dsl/gunbc/compiler.dag:53`
`data compiler_source: SourceRoot = { path: "src/v2" }` is a typed
data declaration consumed by the compile pipeline — silently rewriting
it during a cosmetic G-2 sweep would either invalidate `compiler_source`
or quietly retarget the compile root without an authoring-time decision.
Reclassified as a new C-data row (§1.3 C.3) with named G-2 routing
to S-1 (input-packet Decision 6 scope coverage) rather than C-cosmetic
"sweep at G-2" default.

Net G-1 closure surface count: still 4 (unchanged).

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

* docs(audit): inventory line-completeness + 2nd C-data row (compiler.dag:270)

Address codex BLOCKING inline review on PR #1848 at line 10.

Reviewer claimed the unified grep `\bv2[-_]compiler(_tests|-tests)?\b`
misses three sites; verified directly: regex catches all three. The
substantive issue is **inventory line-completeness**, not regex
coverage — earlier passes enumerated FILES not all line-hits within
files.

Fixes:
- Population B `p0_std_render_repeat_string_test.rs`: add L25 body-of-
  test call to `v2_compiler::v2_std_core::diagnostic_to_message`
  (matrix §3.1 only listed `use`-decls L9-L11; this is a 4th
  substantive line in the same file). Same Decision 1 disposition.
- Population C `pb_method_template_projection_dag_emit_test.rs`: add
  L24 (was L28/L54).
- Population C `SELF_HOSTING.md`: add L1178 (`cargo test -p
  v2-compiler-tests ci_freshness` doc reference).
- Population C-data: add 2nd row, `dsl/gunbc/compiler.dag:270`
  `data test_package: NonEmptyStr = "v2-compiler-tests"` — typed
  config naming the Cargo test crate, tied to Cargo edge §B.2
  retirement. Same C-data class as compiler.dag:53; routed to S-1.

Net G-1 closure surface count: still 4 (unchanged — L25 is in an
already-counted Population B file).

C-data sub-class: 1 → 2 entries.

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

* docs(audit): widen regex + renumber §3 + §2 C-data rows + framing

Address codex (openai-pro) REQUEST_CHANGES + PB Mgr editorial nits on
PR #1850.

Codex BLOCKING (real bug):
- Unified census `src/v2/|...` requires trailing slash; misses
  `path: "src/v2"` literal — the very C-data row this audit created.
  Widen to `src/v2\b|...` (word-boundary, no trailing-slash
  requirement). Verified: `grep -nE 'src/v2\b' dsl/gunbc/compiler.dag`
  catches both L29 (path-prefix) and L53 (string-literal).
- Added regex evolution log to §"Search authority" so future refreshes
  trace v1 → v2 → v3 of the canonical command.

PB Mgr editorial:
- §3 Summary deltas: renumber broken sequence (had two "6." entries
  and an out-of-order "7."); now clean 1..9.
- §Scope: realign opening from `src/ + tests/ + Cargo.toml` to
  `src/ + Cargo.toml + dsl/` matching §"Search authority".
- §2 Cross-reference table: split out explicit C-data rows for
  `compiler.dag:53` and `:270` (previously folded into a generic
  "dsl/gunbc/{compiler,...}.dag" cosmetic cell). Both now visible
  with their S-1 Decision 6 routing and (for :270) tie-back to
  §B.2 Decision 3 Cargo edge retirement.
- §5 "adds one new docs-only file" reworded to acknowledge this is
  an edit-in-place follow-up to #1848.

Net G-1 closure surface count: still 4 (unchanged).
Net regex coverage: unified command now catches all 21 line-level
hits in one pass (was 19 with trailing-slash form).

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

* docs(audit): refresh HEAD-verified pin per PB Mgr optional nit

PB Mgr review on #1850 suggested adding a one-line note that
methodology deltas were validated at merge-base after #1848 (line
cites can drift on busy main). Refreshed the HEAD-verified note in
the doc header to acknowledge initial-vs-follow-up validation
windows + name the spot-checked surfaces.

Editorial only; no inventory changes. All four PB Mgr must-fix /
should-fix items already in b9958df.

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

* docs(audit): fix unified-census flag (-rEln → -rEn) for line-level claim

Address codex REQUEST_CHANGES on PR #1850 sha f783475: `-l` prints
filenames only, contradicting the doc's claim that the unified
command produces "line-level enumeration" (§3 Δ7). The matrix
cites `-rEln` because matrix is file-level inventory; this doc
shifted to line-level but kept the `l` flag.

Drop `l` → `-rEn`. Added a one-line note explaining the flag
delta vs the matrix-cited form.

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

* docs(audit): correct compiler.dag:270 routing — G-2 package, not G-1 edge

Address codex BLOCKING on PR #1850 (sha 15faffa): the C-data row at
`dsl/gunbc/compiler.dag:270` (`test_package = "v2-compiler-tests"`)
was incorrectly tied to §B.2 Decision 3 (G-1 dev-dep edge retirement).
That conflates two distinct removals:

- G-1 / §B.2 Decision 3: deletes the dev-dep edge in
  `src/v3/compiler/Cargo.toml` — consumer-side dependency removed,
  but the `v2-compiler-tests` Cargo package itself still exists at
  workspace root.
- G-2 / root workspace removal: deletes `src/v2/tests` workspace
  member (§1.4 root Cargo.toml L8) — the published package name
  goes away.

The data row points at a *package name*, which remains valid post-G-1
and only becomes stale at G-2. Re-routed to a separate S-1 G-2
decision (CI test package retargeting), explicitly not tied to
B.2/Decision 3. Updated both §1.3 C.3 row and §2 cross-ref row to
reflect the correction.

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

* docs(audit): align §2 cross-ref pb_method_template line set with §1.3

cursor optional nit on PR #1850: §2 cross-reference table listed
`pb_method_template_projection_dag_emit_test.rs:28,54` while
§1.3 C.2 and §3 Δ7 include L24 too. Pure doc hygiene; line set
now consistent (L24,28,54).

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

* docs(audit): align intro line-citation framing with HEAD-verified note

cursor optional polish on PR #1850: intro said "Every cell below cites
a live grep / file/line on 2d26ed2" while the HEAD verified note
acknowledges follow-up validations after #1848. Aligned the two:
initial cells pinned to 2d26ed2; follow-up additions validated
post-#1848 merge; future refreshes should re-pin HEAD before citing.

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

* docs(briefs): refresh BinShim row-1 packet HEAD pin (9cf6dd2 → 831080d)

Per PB Mgr dispatch on inbox #1768 (assignment #1890): re-run §Verified
row-#1 receipts against latest origin/main HEAD.

Re-verification at HEAD 831080d (2026-05-06):
- rg for `regen_lens_main` / `*_main -> ProcessExit` entry: no match
  (NOT-LIVE unchanged)
- ls dsl/std/runtime/bin_shims/: README.md only (framework-only,
  unchanged)
- All cited surfaces still resolve at the previously-pinned line
  numbers: process.dag :39 (ProcessExit) / :41 (ExitFailure) / :50
  (exit_failure helper); bin_shim.dag :19 (BinShim type with
  entrypoint_name)

Verdict unchanged: row-#1 NOT-LIVE; Shape A/B/C disposition is still
the head-of-chain blocker. Doc body needed only the HEAD pin refresh
+ a re-verification note acknowledging the HEAD delta (#1503 PR-E E7,
T-Numeric-Construction S9, Q-MachineConstraint #1856, T-V2 inventory
#1848/#1850, etc.) without `regen_lens_main` authoring.

No Shape pick. No regen_lens_main. No carrier/loader edits.

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

* docs(briefs): T-V2 population audit §Delta (2026-05-06) — no material delta

Per PB Mgr dispatch on inbox #1768 (assignment #1919, cycle #1861):
re-execute §Delta methodology against current origin/main HEAD
2c7d820 after recent bootstrap/substrate churn (Q-MachineConstraint
#1856, T-Numeric S9 #1840, #1807/#1892/#1903 paydown row refreshes,
T-V2 inventory #1848/#1850).

Verdict: no material delta. All audit findings reproduce; all
zero-coverage greps still return zero; B.2 authority-migration markers
in dag.rs still present.

Line-anchor drift summary (vs prior §Delta @ 530c76e):
- induction.dag: meet/join_sub_value -5 lines; int_pow_bounded /
  ceil_log / ceil_log_iter / master_theorem / derive_bound -3 lines
- termination.dag: peano / positive_descent / proportional_divisor
  +103/+105/+106 lines (file grew substantially; symbols still live)
- lib.rs Non-Arrow Callable fail-closed: shifted to :674; new second
  site at :2338 (same fail-closed semantics, different dispatch path)
- lower.rs lower_constructor_invocation: +~89 lines
- B.2 m2 oracle/shim block: structurally identical (no further drift)
- Cargo edges :37-38: unchanged
- dag.rs authority-migration markers: present at :1786-1798 (comment
  block) and :3587-3606 (typed accessor); semantic content unchanged

New §Delta subsection added; freshness pointer at top refreshed to
point to 2c7d820. Prior §Delta (530c76e) + B.2 reclassification
preserved for audit history.

Constraints honored: not S-1 authoring; no src/v2/ edits; no Cargo
edge removal; no code migration.

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

* docs(briefs): align §Delta grep flags (-rcE → -rnE) per PB Mgr nit on #1926

Rest of the audit file uses `-rnE` (line-numbered output, call-site-
capable per the existing per-row narrative). The new §Delta (2026-05-06)
table inadvertently used `-rcE` (count-only). Aligned with the rest of
the file; flag now consistent across all 8 grep invocations in §A and
§Delta tables.

Non-blocking nit only; no semantic change.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 7, 2026
… (followup #1926) (#1930)

* docs(audit): r3-pb tv2 population coverage — §Delta (2026-05-05) no material delta vs origin/main 530c76e

Re-executed live-on-main methodology vs current origin/main per Mgr dispatch
(inbox #1742). All audit findings reproduce: Pop A substrate live with zero
v3-side test coverage; non-Arrow Callable evaluator arm still parked; Pop B
v2 dependencies and Cargo edges still present. Only drift: minor line-number
shifts inside still-live declarations (substrate decls +1 line; B.2 oracle
+~217 lines as the file grew). Net dispatch order unchanged; single-authority
pointer to §Post-#1715 reclassification reaffirmed.

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

* docs(audit): r3-pb tv2 — line-anchor freshness pointer above §A (Mgr review #1805)

Per Mgr non-blocking suggestion on PR #1805: add a single sentence above §A
pointing readers to §Delta (2026-05-05+) for the live-offset drift table, so
skimmers who land in §A.* don't mis-click on author-time line cites.
Reaffirms feedback_section_anchors_over_line_numbers.

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

* docs(audit): r3-pb tv2 §Delta B.2 reclassification — substrate authority migration already landed (PR #1805 BLOCKING review)

Per blocking review on PR #1805 (codex sha:72667918): the §Delta B.2 row
incorrectly inferred from the surviving v2 oracle that Substrate authority
migration is still pending. Re-grep at HEAD 530c76e shows the migration
already landed:

- src/v3/compiler/src/dag.rs:1789-1791 doc comment names dsl/std/algebra.dag
  as the semantic authority and demotes v2 stage0 to "drift ratchet".
- src/v3/compiler/src/dag.rs:3596-3605 typed accessor reads the lowered
  data kernel_algebra_profile Map directly.
- src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs:1239
  v3_kernel_algebra_profile_reads_lowered_dag_map_authority ratchets v3
  reading the lowered-Dag Map authority (P0 invariant).

B.2's remaining R3 PB-lane work is parity-test retirement + Cargo-edge drop,
not authority migration. Net dispatch order corrected: §3.2 collapses to a
PB-lane-internal mechanical retirement; no Substrate-Manager dispatch
needed for B.2 disposition. Pop A gate set unaffected (still
§"Post-#1715 reclassification").

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

* docs(briefs): sweep bare .md:NNN citations in 3 PB-owned R3 briefs

Per Director #1739 / `brief-authoring-checklist.md` §"Citation
discipline" + PB Mgr dispatch (mirror of Substrate-Mgr sweep at
127287a): replace bare `file.md:NNN` references with section-anchor
form across PB-owned `docs/briefs/r3-pb-*.md`.

Files swept (3 of 4 with bare citations under `r3-pb-*` glob):
- docs/briefs/r3-pb-runtime-equivalence-corpus-seed-audit.md (1)
- docs/briefs/r3-pb-t-fixedpoint-worker.md (3)
- docs/briefs/r3-pb-tier3-perf-budget-worker.md (4)

Conversions:
- `r2-evaluator-manager.md:27` → `r2-evaluator-manager.md` §"Owned
  deliverables (through R2 close)" — "Runtime value model" sub-lane row
- `r3-structure.md:59`, `:60` → `r3-structure.md` §"Lane gating summary"
- `r2-structure.md:296` → `r2-structure.md` §"R1 closure criteria"
  (the "`pb_self_compile_fixed_point` two-horizon semantics" paragraph)
- `r2-pure-bootstrap-manager.md:24` → `r2-pure-bootstrap-manager.md`
  §"Owns (post-R1 R2 program work)" — "Tier 3 mirror dissolutions:
  termination" row (and analogous for :25/:26/:27 → computation /
  induction / effect-carrier rows)
- `r2-pure-bootstrap-manager.md` §"Acceptance" line 101 →
  `r2-pure-bootstrap-manager.md` §"Acceptance"

Verification: `grep -nE '\.md:[0-9]+' <files>` returns zero matches
on the three swept briefs.

Out of scope: docs/briefs/r3-pb-regen-lens-consumer-audit.md (~14
bare citations into external doc/audit corpus) — deferred to a
follow-on sweep so this PR stays small per dispatch shape (≤4 files).

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

* docs(briefs): sweep bare .md:NNN citations in regen-lens consumer audit

Follow-on to 23274a5 — completes the PB-owned `r3-pb-*.md` sweep.

File: docs/briefs/r3-pb-regen-lens-consumer-audit.md (4 cells across
"Documentation surface (authority chain)" and "Handoff points" tables;
~14 individual bare refs collapsed into stable section anchors).

Drift fix while sweeping: the row at line 90 cited `r3-structure.md:26,
:52, :107` as "T-LensProducer-Retirement sub-gate 3 acceptance"; lines
52 and 107 had drifted off-target ("Lens framework" / `anthropic_wire_*`
respectively). Replaced with the canonical anchors that actually carry
sub-gate 3 acceptance: §"Summary" item 2, §"Acceptance — `.dag` gates"
T-LensProducer-Retirement (`regen_lens_dot_rs_retired` row), and
§"Lane structure" T-LensProducer-Retirement row.

Verification: `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-regen-lens-consumer-audit.md`
returns zero matches. `.dag:` and `.rs:` line refs (code citations)
intentionally untouched per dispatch scope.

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

* docs(briefs): fix two-horizon authority anchor in t-fixedpoint-worker

Address BLOCKING review on PR #1831 (briansrls 2026-05-06T09:25Z).

The previous sweep at 23274a5 preserved a drifted target: bare
`r3-structure.md:59` / `:60` lived in §"Lane gating summary" (the
14-of-18 evaluator-gating roll-up), but the brief was citing them as
authority for the `pb_self_compile_fixed_point` two-horizon semantics.
That authority actually lives at r3-structure.md:89-90 under
§"Acceptance — `.dag` gates" T-FixedPoint entry, "Two-horizon
clarification" sub-bullet. Sweep preserved the drift instead of fixing
it — same failure class as the r3-structure.md:52/:107 drift caught in
10e0355 on the regen-lens audit.

Conversions (3 sites in the brief, all corrected):
- §"Two-horizon framing": cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry ("Two-horizon clarification" sub-bullet)
- §"Acceptance gate (`.dag`)" intro: cite §"Acceptance — `.dag` gates"
  T-FixedPoint entry (`pb_self_compile_fixed_point` row + Two-horizon
  clarification)
- "Two-horizon authority" footer cross-ref: same anchor

Verification: `grep -n "Lane gating summary" docs/briefs/r3-pb-t-fixedpoint-worker.md`
→ 0 matches. `grep -nE '\.md:[0-9]+' docs/briefs/r3-pb-*.md` → 0 matches.

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

* docs(audit): T-V2-Retirement mechanical inventory refresh @ 2d26ed2

Per PB Mgr dispatch on inbox #1768 (sleek-eagle-514). Refreshes the
per-surface inventory from `docs/audit/t-v2-retirement-migration-matrix.md`
§2 against current `origin/main` HEAD.

Docs-only; no code touched. No `src/v2/` deletion, no Cargo edge
removal. Inventory + grep receipts only.

Findings (refresh-class only — structural map unchanged):
- Population A: 15 → 16 files (new: pb_method_template_projection_
  consumability.rs). Same G-2 unit-retirement disposition.
- Population B test-file line citations drifted (m2 L991→L1209 etc.);
  Cargo edge citations drifted (Cargo.toml L32-33 → L37-38). Constructs
  unchanged.
- Population C dag.rs line set drifted (6 → 1 doc-comment at L1793).
- 10 additional cosmetic files surfaced (gap-fill vs matrix §2.3).
- Root `Cargo.toml` v2 references (L6/L8/L58/L61) inventoried — not
  previously listed in matrix.
- G-1 closure surface count: 4 (unchanged). No new substantive
  v2_compiler consumer since matrix authoring at 66edec5.

Cross-links every Population B/C row to migration-matrix § + S-1
input-packet decision row.

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

* docs(audit): fix reproducible grep command in T-V2 inventory

Address codex APPROVE_WITH_COMMENTS on PR #1848 (sha 6526307):
the matrix-cited reproduction command `grep -rEln '...' src/ tests/`
emits `grep: tests/: No such file or directory` because this repo has
no top-level `tests/` (Rust integration tests live under
`src/<crate>/tests/`, recursively covered by `src/`).

Replaced with `src/`-only form (same match set, runs cleanly). Added
§4 reproducibility note explaining the matrix's `tests/` argument is
a no-op on current tree, flagging matrix doc hygiene for separate
sweep. Renumbered "Constraints honored" §4 → §5.

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

* docs(audit): T-V2 inventory follow-up — unified census + C-data split

Address codex BLOCKING review on merged PR #1848 (sha 3c32690).

Two findings; both valid:

(1) Search authority was split across narrower greps. The matrix-cited
`\bv2_compiler(_tests)?\b` only matches underscored module paths
(v2_compiler / v2_compiler_tests) and misses the hyphenated Cargo dep
names (v2-compiler / v2-compiler-tests). Receipts in §1.2 B.2 used a
separate Cargo-only grep to compensate, but the cited "search authority"
header didn't reflect that. Replaced with a single unified census:

    grep -rEln 'src/v2/|\bv2[-_]compiler(_tests|-tests)?\b' src/ Cargo.toml dsl/

This catches every surface in one pass. Also surfaced one missed file
under the broader pattern: `dsl/gunbc/tools/ci_runner.dag:16`
(doc-comment with `cargo run -p v2-compiler` invocation example).

(2) `.dag` configuration-data refs were misclassified as Population C
cosmetic. `dsl/gunbc/compiler.dag:53`
`data compiler_source: SourceRoot = { path: "src/v2" }` is a typed
data declaration consumed by the compile pipeline — silently rewriting
it during a cosmetic G-2 sweep would either invalidate `compiler_source`
or quietly retarget the compile root without an authoring-time decision.
Reclassified as a new C-data row (§1.3 C.3) with named G-2 routing
to S-1 (input-packet Decision 6 scope coverage) rather than C-cosmetic
"sweep at G-2" default.

Net G-1 closure surface count: still 4 (unchanged).

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

* docs(audit): inventory line-completeness + 2nd C-data row (compiler.dag:270)

Address codex BLOCKING inline review on PR #1848 at line 10.

Reviewer claimed the unified grep `\bv2[-_]compiler(_tests|-tests)?\b`
misses three sites; verified directly: regex catches all three. The
substantive issue is **inventory line-completeness**, not regex
coverage — earlier passes enumerated FILES not all line-hits within
files.

Fixes:
- Population B `p0_std_render_repeat_string_test.rs`: add L25 body-of-
  test call to `v2_compiler::v2_std_core::diagnostic_to_message`
  (matrix §3.1 only listed `use`-decls L9-L11; this is a 4th
  substantive line in the same file). Same Decision 1 disposition.
- Population C `pb_method_template_projection_dag_emit_test.rs`: add
  L24 (was L28/L54).
- Population C `SELF_HOSTING.md`: add L1178 (`cargo test -p
  v2-compiler-tests ci_freshness` doc reference).
- Population C-data: add 2nd row, `dsl/gunbc/compiler.dag:270`
  `data test_package: NonEmptyStr = "v2-compiler-tests"` — typed
  config naming the Cargo test crate, tied to Cargo edge §B.2
  retirement. Same C-data class as compiler.dag:53; routed to S-1.

Net G-1 closure surface count: still 4 (unchanged — L25 is in an
already-counted Population B file).

C-data sub-class: 1 → 2 entries.

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

* docs(audit): widen regex + renumber §3 + §2 C-data rows + framing

Address codex (openai-pro) REQUEST_CHANGES + PB Mgr editorial nits on
PR #1850.

Codex BLOCKING (real bug):
- Unified census `src/v2/|...` requires trailing slash; misses
  `path: "src/v2"` literal — the very C-data row this audit created.
  Widen to `src/v2\b|...` (word-boundary, no trailing-slash
  requirement). Verified: `grep -nE 'src/v2\b' dsl/gunbc/compiler.dag`
  catches both L29 (path-prefix) and L53 (string-literal).
- Added regex evolution log to §"Search authority" so future refreshes
  trace v1 → v2 → v3 of the canonical command.

PB Mgr editorial:
- §3 Summary deltas: renumber broken sequence (had two "6." entries
  and an out-of-order "7."); now clean 1..9.
- §Scope: realign opening from `src/ + tests/ + Cargo.toml` to
  `src/ + Cargo.toml + dsl/` matching §"Search authority".
- §2 Cross-reference table: split out explicit C-data rows for
  `compiler.dag:53` and `:270` (previously folded into a generic
  "dsl/gunbc/{compiler,...}.dag" cosmetic cell). Both now visible
  with their S-1 Decision 6 routing and (for :270) tie-back to
  §B.2 Decision 3 Cargo edge retirement.
- §5 "adds one new docs-only file" reworded to acknowledge this is
  an edit-in-place follow-up to #1848.

Net G-1 closure surface count: still 4 (unchanged).
Net regex coverage: unified command now catches all 21 line-level
hits in one pass (was 19 with trailing-slash form).

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

* docs(audit): refresh HEAD-verified pin per PB Mgr optional nit

PB Mgr review on #1850 suggested adding a one-line note that
methodology deltas were validated at merge-base after #1848 (line
cites can drift on busy main). Refreshed the HEAD-verified note in
the doc header to acknowledge initial-vs-follow-up validation
windows + name the spot-checked surfaces.

Editorial only; no inventory changes. All four PB Mgr must-fix /
should-fix items already in b9958df.

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

* docs(audit): fix unified-census flag (-rEln → -rEn) for line-level claim

Address codex REQUEST_CHANGES on PR #1850 sha f783475: `-l` prints
filenames only, contradicting the doc's claim that the unified
command produces "line-level enumeration" (§3 Δ7). The matrix
cites `-rEln` because matrix is file-level inventory; this doc
shifted to line-level but kept the `l` flag.

Drop `l` → `-rEn`. Added a one-line note explaining the flag
delta vs the matrix-cited form.

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

* docs(audit): correct compiler.dag:270 routing — G-2 package, not G-1 edge

Address codex BLOCKING on PR #1850 (sha 15faffa): the C-data row at
`dsl/gunbc/compiler.dag:270` (`test_package = "v2-compiler-tests"`)
was incorrectly tied to §B.2 Decision 3 (G-1 dev-dep edge retirement).
That conflates two distinct removals:

- G-1 / §B.2 Decision 3: deletes the dev-dep edge in
  `src/v3/compiler/Cargo.toml` — consumer-side dependency removed,
  but the `v2-compiler-tests` Cargo package itself still exists at
  workspace root.
- G-2 / root workspace removal: deletes `src/v2/tests` workspace
  member (§1.4 root Cargo.toml L8) — the published package name
  goes away.

The data row points at a *package name*, which remains valid post-G-1
and only becomes stale at G-2. Re-routed to a separate S-1 G-2
decision (CI test package retargeting), explicitly not tied to
B.2/Decision 3. Updated both §1.3 C.3 row and §2 cross-ref row to
reflect the correction.

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

* docs(audit): align §2 cross-ref pb_method_template line set with §1.3

cursor optional nit on PR #1850: §2 cross-reference table listed
`pb_method_template_projection_dag_emit_test.rs:28,54` while
§1.3 C.2 and §3 Δ7 include L24 too. Pure doc hygiene; line set
now consistent (L24,28,54).

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

* docs(audit): align intro line-citation framing with HEAD-verified note

cursor optional polish on PR #1850: intro said "Every cell below cites
a live grep / file/line on 2d26ed2" while the HEAD verified note
acknowledges follow-up validations after #1848. Aligned the two:
initial cells pinned to 2d26ed2; follow-up additions validated
post-#1848 merge; future refreshes should re-pin HEAD before citing.

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

* docs(briefs): refresh BinShim row-1 packet HEAD pin (9cf6dd2 → 831080d)

Per PB Mgr dispatch on inbox #1768 (assignment #1890): re-run §Verified
row-#1 receipts against latest origin/main HEAD.

Re-verification at HEAD 831080d (2026-05-06):
- rg for `regen_lens_main` / `*_main -> ProcessExit` entry: no match
  (NOT-LIVE unchanged)
- ls dsl/std/runtime/bin_shims/: README.md only (framework-only,
  unchanged)
- All cited surfaces still resolve at the previously-pinned line
  numbers: process.dag :39 (ProcessExit) / :41 (ExitFailure) / :50
  (exit_failure helper); bin_shim.dag :19 (BinShim type with
  entrypoint_name)

Verdict unchanged: row-#1 NOT-LIVE; Shape A/B/C disposition is still
the head-of-chain blocker. Doc body needed only the HEAD pin refresh
+ a re-verification note acknowledging the HEAD delta (#1503 PR-E E7,
T-Numeric-Construction S9, Q-MachineConstraint #1856, T-V2 inventory
#1848/#1850, etc.) without `regen_lens_main` authoring.

No Shape pick. No regen_lens_main. No carrier/loader edits.

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

* docs(briefs): T-V2 population audit §Delta (2026-05-06) — no material delta

Per PB Mgr dispatch on inbox #1768 (assignment #1919, cycle #1861):
re-execute §Delta methodology against current origin/main HEAD
2c7d820 after recent bootstrap/substrate churn (Q-MachineConstraint
#1856, T-Numeric S9 #1840, #1807/#1892/#1903 paydown row refreshes,
T-V2 inventory #1848/#1850).

Verdict: no material delta. All audit findings reproduce; all
zero-coverage greps still return zero; B.2 authority-migration markers
in dag.rs still present.

Line-anchor drift summary (vs prior §Delta @ 530c76e):
- induction.dag: meet/join_sub_value -5 lines; int_pow_bounded /
  ceil_log / ceil_log_iter / master_theorem / derive_bound -3 lines
- termination.dag: peano / positive_descent / proportional_divisor
  +103/+105/+106 lines (file grew substantially; symbols still live)
- lib.rs Non-Arrow Callable fail-closed: shifted to :674; new second
  site at :2338 (same fail-closed semantics, different dispatch path)
- lower.rs lower_constructor_invocation: +~89 lines
- B.2 m2 oracle/shim block: structurally identical (no further drift)
- Cargo edges :37-38: unchanged
- dag.rs authority-migration markers: present at :1786-1798 (comment
  block) and :3587-3606 (typed accessor); semantic content unchanged

New §Delta subsection added; freshness pointer at top refreshed to
point to 2c7d820. Prior §Delta (530c76e) + B.2 reclassification
preserved for audit history.

Constraints honored: not S-1 authoring; no src/v2/ edits; no Cargo
edge removal; no code migration.

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

* docs(briefs): align §Delta grep flags (-rcE → -rnE) per PB Mgr nit on #1926

Rest of the audit file uses `-rnE` (line-numbered output, call-site-
capable per the existing per-row narrative). The new §Delta (2026-05-06)
table inadvertently used `-rcE` (count-only). Aligned with the rest of
the file; flag now consistent across all 8 grep invocations in §A and
§Delta tables.

Non-blocking nit only; no semantic change.

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

* docs(briefs): clarify markdown-table escape note in §Delta grep cells

Address codex REQUEST_CHANGES on merged PR #1926 (sha c68800f, openai-pro
review 2026-05-07T00:27Z): \`\|\` inside table cells under \`grep -E\` is
ambiguous in raw markdown source — \`\|\` is a markdown-table escape
that renders as \`|\`, but a reader copying the raw source into a shell
would get a literal pipe (no alternation).

Verified both parses at HEAD \`2c7d82031\`:
- as-written (literal \`\|\`): 0 matches
- as-rendered/alternation (\`|\`): 0 matches

The audit's "no material delta" verdict holds under either parse. The
\`\|\` convention is load-bearing across the file (§Population A row
cells at L25/L35/L45/L55, prior §Delta table at L183-186) — so the fix
is to add a clarifying note above the §Delta table explaining the
markdown-table escape, not to break the existing convention.

Followup PR (since #1926 already merged before review arrived).

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