diff --git a/docs/briefs/r3-cementing-discipline-pattern-2026-05-12.md b/docs/briefs/r3-cementing-discipline-pattern-2026-05-12.md index f056d30761d..258fea3077c 100644 --- a/docs/briefs/r3-cementing-discipline-pattern-2026-05-12.md +++ b/docs/briefs/r3-cementing-discipline-pattern-2026-05-12.md @@ -69,14 +69,23 @@ The rows below are the complete Gate #87 `.dag` `Compiles` placeholder set at th These are not a frozen dispatch inventory; the authoritative list is `EXPECTED_HAND_AUTHORED_TEST` in `src/v3/compiler/tests/integration/sg0_census_test.rs`. The table below records the disposition the #84 cementing-class worker must check before selecting pilots — predicate class (§2), blocker if any with owning lane, and the SG-0 hand-path census delta on a successful port. Refresh date: 2026-05-13 (G87-D5 handoff alignment). On disposition change, update this table together with the live census comment above the same row. -Census coverage check (G87-D5, refresh 2026-05-13): the four rows below are the complete set of paths under `src/v3/compiler/tests/integration/cementing/` that appear in `EXPECTED_HAND_AUTHORED_TEST` at HEAD. No new cementing-test residual rows have landed since the prior refresh; no row in this table has been ported away from Rust since the prior refresh, so the §3 dispositions stand. This brief makes no census-delta claim — it is docs-only. +**G87-D5 dispatch category** (per `docs/briefs/r3-gate-87-lens-cementing-test-discipline-dispatch-2026-05-13.md` §G87-D5): each `cementing/*.rs` row still listed in `EXPECTED_HAND_AUTHORED_TEST` must land in exactly one of: -| Rust module | Predicate class (§2) | Blocker / owning lane | SG-0 census delta on port | -|---|---|---|---| -| `tests/integration/cementing/cementing_provenance_origin_integration_test.rs` | C-LensOutEq once unblocked; C-HandRustBlocker today. | Expected-carrier authoring for the `Origin` sum (`NoProducer` / `MissingPort` / `MissingBehavior` / `Source(NodeId)` / `Computed(NodeId)` / `Selected(NodeId)` / `Accumulated(NodeId)`) in `.dag` `TestPredicate` expected values. Owning lane: tests-as-data carrier completeness for sum-typed lens outputs (`docs/design-tests-as-data-completeness.md` §C5). Target `.dag`: `tests/dag/t_r3_gate_87_cementing_regen_provenance.dag` already cements the seam projection; this Rust module pins the per-`Behavior` mirror that the `.dag` receipt cannot yet express. | -1 when the per-`Behavior` mirror moves into the existing `.dag`. | -| `tests/integration/cementing/complexity_lens_behavioral_completion.rs` | C-HandRustBlocker today; C-LensOutEq on unblock. | `Gate73_ReportPredicateCarriers` — `.dag` `TestClaim` predicates cannot yet consume the published `ComplexitySummary` report carrier. Owning lane: T-LBP / `docs/r3-program-plan.md` gate #73 report-predicate carrier authoring. No `.dag` target yet (waiting on the carrier). | -1 on Gate-73 unblock + same-PR move into a new `tests/dag/t_r3_*_complexity_*.dag` receipt. | -| `tests/integration/cementing/cost_lens_symbolic_consumer_test.rs` | NOT a Band-C lens-cementing row — do not select for #84 cementing-class bulk-port. | `cost_symbolic` COMPLETE-row cementing already landed as data at `tests/dag/t_r3_gate_87_cementing_regen_cost_symbolic.dag` (PR #2769 dissolved `M1_2_8_STRUCTURAL_SYMBOLIC_COST_DATA`). The residual is gate #78 `per_call_pattern_at` / `symbolic_cost_of` host-wrapper pin — owning lane: gate #78 host-wrapper retirement, NOT cementing. | 0 from this class. Census decrement happens with the gate #78 host-wrapper retirement, not by reclassifying this row as cementing. | -| `tests/integration/cementing/memory_peak_cost_basis_demo.rs` | C-HandRustBlocker today; C-LensOutEq or C-CompilesHelper on unblock depending on demonstration shape. | Parser-level `apply_lens(cost, DeclarationScope, Enforce { budget: SymbolicCost { dimension: Memory, … } })` consumer. Owning lane: T-LAS Slice B lens-fold consumer, `docs/r3-program-plan.md` gate #91; gate #94 (`memory_peak_cost_basis_demonstrated`) is the consumer-side gate this receipt evidences. No `.dag` target yet (waiting on the parser-level consumer). | -1 on gate #91 unblock + same-PR move into a new `tests/dag/t_r3_*_memory_peak_*.dag` receipt that preserves max-dominance composition and `LensEnforcement` orientation semantics. | +1. **Gate-87 residual** — hand-Rust that extends or pairs with a `regen.dag` lens already covered by `t_r3_gate_87_cementing_regen_*.dag` / `r3_gate_87_lens_cementing_regen_receipts_test.rs`; #84 cementing-class workers must **not** treat these as freestanding bulk-port pilots outside §1. +2. **Band-C bulk-port candidate** — hand-Rust cementing discipline that is **not** authoritative for proving gate #87 on the registry corpus (typical Phase-3 #84 slice for enumeration-outside-`regen.dag` work). +3. **Host-wrapper retirement** — receipt belongs to a named host-wrapper / alias-collapse gate, not to lens-cementing-class #84 port work. +4. **T-LAS demonstration scope** — lens-application-surface demonstration or consumer ratchet owned by T-LAS gates, not registry-cementing inventory. + +Census coverage check (G87-D5, refresh 2026-05-13, re-checked session `proud-koi-122`): the four rows below remain the complete set of paths under `src/v3/compiler/tests/integration/cementing/` that appear in `EXPECTED_HAND_AUTHORED_TEST` at HEAD (matches on-disk `cementing/*.rs` and `tests/integration.rs` `#[path = …/cementing/…]` wiring). No new cementing-test residual rows have landed since the prior refresh; no row in this table has been ported away from Rust since the prior refresh, so the §3 dispositions stand. This brief makes no census-delta claim — it is docs-only. + +**Bulk-port note:** at HEAD, **none** of the four `cementing/` integration modules are classified as **Band-C bulk-port candidate**. Phase-3 #84 cementing-class pilots for work *outside* the `regen.dag` enumeration must be selected from other `EXPECTED_HAND_AUTHORED_TEST` rows (coordinator live inventory), not from this subdirectory. + +| Rust module | G87-D5 category | Predicate class (§2) | Blocker / owning lane | SG-0 census delta on port | +|---|---|---|---|---| +| `tests/integration/cementing/cementing_provenance_origin_integration_test.rs` | Gate-87 residual | C-LensOutEq once unblocked; C-HandRustBlocker today. | Expected-carrier authoring for the `Origin` sum (`NoProducer` / `MissingPort` / `MissingBehavior` / `Source(NodeId)` / `Computed(NodeId)` / `Selected(NodeId)` / `Accumulated(NodeId)`) in `.dag` `TestPredicate` expected values. Owning lane: tests-as-data carrier completeness for sum-typed lens outputs (`docs/design-tests-as-data-completeness.md` §C5). Target `.dag`: `tests/dag/t_r3_gate_87_cementing_regen_provenance.dag` already cements the seam projection; this Rust module pins the per-`Behavior` mirror that the `.dag` receipt cannot yet express. | -1 when the per-`Behavior` mirror moves into the existing `.dag`. | +| `tests/integration/cementing/complexity_lens_behavioral_completion.rs` | Gate-87 residual | C-HandRustBlocker today; C-LensOutEq on unblock. | `Gate73_ReportPredicateCarriers` — `.dag` `TestClaim` predicates cannot yet consume the published `ComplexitySummary` report carrier. Owning lane: T-LBP / `docs/r3-program-plan.md` gate #73 report-predicate carrier authoring. No `.dag` target yet (waiting on the carrier). | -1 on Gate-73 unblock + same-PR move into a new `tests/dag/t_r3_*_complexity_*.dag` receipt. | +| `tests/integration/cementing/cost_lens_symbolic_consumer_test.rs` | Host-wrapper retirement | NOT a Band-C lens-cementing row — do not select for #84 cementing-class bulk-port. | `cost_symbolic` COMPLETE-row cementing already landed as data at `tests/dag/t_r3_gate_87_cementing_regen_cost_symbolic.dag` (PR #2769 dissolved `M1_2_8_STRUCTURAL_SYMBOLIC_COST_DATA`). The residual is gate #78 `per_call_pattern_at` / `symbolic_cost_of` host-wrapper pin — owning lane: gate #78 host-wrapper retirement, NOT cementing. | 0 from this class. Census decrement happens with the gate #78 host-wrapper retirement, not by reclassifying this row as cementing. | +| `tests/integration/cementing/memory_peak_cost_basis_demo.rs` | T-LAS demonstration scope | C-HandRustBlocker today; C-LensOutEq or C-CompilesHelper on unblock depending on demonstration shape. | Parser-level `apply_lens(cost, DeclarationScope, Enforce { budget: SymbolicCost { dimension: Memory, … } })` consumer. Owning lane: T-LAS Slice B lens-fold consumer, `docs/r3-program-plan.md` gate #91; gate #94 (`memory_peak_cost_basis_demonstrated`) is the consumer-side gate this receipt evidences. No `.dag` target yet (waiting on the parser-level consumer). | -1 on gate #91 unblock + same-PR move into a new `tests/dag/t_r3_*_memory_peak_*.dag` receipt that preserves max-dominance composition and `LensEnforcement` orientation semantics. | Rows that remain blocked after this check route to D2 with the named blocker. Rows unblocked by later substrate/compiler work hand back to V2 for same-PR replacement artifact plus census decrement under §4. This table is the only hand-maintained disposition surface for these rows; #84 cementing-class workers must not create a parallel inventory.