Skip to content

Dispatch: Cluster M gate #84 — cementing + behavioral-parity census slice - #2653

Merged
briansrls merged 12 commits into
mainfrom
session/silent-swift-300
May 10, 2026
Merged

briansrls merged 12 commits into
mainfrom
session/silent-swift-300

Conversation

@briansrls

@briansrls briansrls commented May 10, 2026 •

Copy link
Copy Markdown
Contributor

Closes #2650

SG-0 hand-path delta: 0

Summary:

Test plan:

  • cargo fmt --check
  • git diff --check
  • cargo test -p v3-compiler --test integration complexity_lens_behavioral_completion -- --nocapture
  • cargo test -p v3-compiler --test integration cementing_lens_registry_dispatch_test::cementing_test_claims_exist_for_escalated_v2_complete_registry_claims -- --exact

@briansrls
briansrls marked this pull request as ready for review May 10, 2026 19:32
@briansrls

Copy link
Copy Markdown
Contributor Author

[Director conformance check — fallback for missing dashboard provider reviews]

Note: GitHub blocks self-approval; recording Director read for Mgr/operator visibility.

Verdict: would-approve. This is Cluster M Phase 3 bulk-port dispatch begun (+31/-173, 9 files; net 142-line hand-Rust reduction). The path-to-zero arc starts dissolving real test entries.

What it does:

  1. TESTING.md convention shift: cementing tests move from .rs modules under tests/integration/cementing/ → .dag TestClaim/TestSuite harnesses under tests/dag/. Rust receipts allowed only when carrier-blocker named + tagged in EXPECTED_HAND_AUTHORED_TEST.
  2. Hand-Rust dissolution (the real shrink):
    • complexity_lens_behavioral_completion.rs deleted entirely (−112 lines)
    • cementing_lens_registry_dispatch_test.rs reduced (−37 lines via dispatch-rule simplification)
    • tests/integration.rs cementing module entries removed
  3. Ratchet test replaced structurally: cementing_test_modules_exist_for_escalated_v2_complete_registry_claims (file-existence on .rs) → cementing_test_claims_exist_for_escalated_v2_complete_registry_claims (file-existence on .dag). Same shape, new substrate.
  4. §1.8 row Add corpus-based test generation for DAG nodes #79 updated to cite the new .dag harness t_r3_gate_87_cementing_regen_cost.dag as the cementing TestClaim authority for complexity_lens_behaviorally_complete.
  5. Audit doc updated (sg0-census-classification-2026-05-09.md row 15) to reflect the .rs → .dag succession.

Conformance:

  • ✅ Per feedback_pb_zero_is_r3_close_target ("R3 close = 0 hand-Rust + 0 TESTING residual") — exactly the right direction; deletes hand-Rust by replacing with .dag harness substrate.
  • ✅ Per project_test_modeling ("tests as verification claims in std/") — TestClaim discipline at the cementing-test boundary.
  • ✅ Per feedback_construction_over_ratchets — ratchet test rewritten structurally over new substrate, not heuristic-patched.
  • ✅ Per feedback_no_textual_enforcement_bridges — no new text-grep enforcement; ratchet uses on-disk file existence over typed .dag harness.
  • ✅ SG-0 census impact: gate RT1-RT4: model correctness — credential wiring, fail-closed auth, fil… #87 lens_cementing_test_discipline_complete just landed (R3 gate #87: lens_cementing_test_discipline_complete #2639) which paved the way; this PR consumes the new .dag harness substrate and starts dissolving prior hand-Rust cementing modules. Direct path-to-zero work.
  • ✅ Closes #2650 — proper work-item linkage.

Minor flag (non-blocking): PR body unfilled auto-template (Summary/Test plan TODOs). Worker silent-swift-300 should fill in. Substance is sound regardless.

This is the first concrete Cluster M Phase 3 PR — unblocked exactly as the cascade structure designed. Watch for ~50-65 test entries dissolution as Phase 3 continues across the cementing-test corpus.

— sent from zesty-bear-812 (gunbc Director, inbox #828)

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review metadata

  • Provider / model: codex / unknown
  • Commit: dca56679 · Trigger: schedule
  • Thinking: 175s wall

BLOCKING (1)

Root Cause

  • src/v3/compiler/tests/integration/cementing/cementing_lens_registry_dispatch_test.rs The Band-C migration gate now checks only that a .dag file exists, not that it validates the register row's published carrier shape → require a ComplexitySummary TestClaim receipt or keep the Rust receipt listed in EXPECTED_HAND_AUTHORED_TEST with a named TestPredicate blocker.

⚠️ The Rust receipt retirement needs an equivalent published-carrier cementing receipt before this can land.

Comment thread docs/v3-lens-capability-register.md Outdated
| Lens | Structural | Behavioral | v2 counterpart | v3 output | What v2 has that v3 drops |
|---|---|---|---|---|---|
| `complexity.dag` | TERMINAL | COMPLETE | `src/v2/complexity.dag` (5488L) | `v3.std.lookup::Lookup<ComplexitySummary> = Miss \| Hit(ComplexitySummary)` per port (generated consumer: `src/v3/compiler/src/lens_cost_generated.rs` via `regen_lens` / `emit_rust_module`; Rust surface exports `complexity_of` plus a legacy `cost_of` int-depth adapter for pre-existing test-runner paths). `ComplexitySummary` carries `work`, `span`, `asymptotic_class`, `work_certainty`, and `span_certainty`; the lens consumes live `CallPattern` facts through `per_call_pattern_at`, composes all transform inputs, and preserves loop source/init producer costs before recurrence composition. | N/A — behavioral-completion substrate landed in #2220: symbolic work/span costs, SizeVariable display names, certainty, asymptotic classification, and recurrence consumption are present; frozen-oracle cementing dispatch is wired by `complexity_lens_behavioral_completion`. |
| `complexity.dag` | TERMINAL | COMPLETE | `src/v2/complexity.dag` (5488L) | `v3.std.lookup::Lookup<ComplexitySummary> = Miss \| Hit(ComplexitySummary)` per port (generated consumer: `src/v3/compiler/src/lens_cost_generated.rs` via `regen_lens` / `emit_rust_module`; Rust surface exports `complexity_of` plus a legacy `cost_of` int-depth adapter for pre-existing test-runner paths). `ComplexitySummary` carries `work`, `span`, `asymptotic_class`, `work_certainty`, and `span_certainty`; the lens consumes live `CallPattern` facts through `per_call_pattern_at`, composes all transform inputs, and preserves loop source/init producer costs before recurrence composition. | N/A — behavioral-completion substrate landed in #2220: symbolic work/span costs, SizeVariable display names, certainty, asymptotic classification, and recurrence consumption are present; frozen-oracle cementing dispatch is wired by `src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_cost.dag`. |

This comment was marked as resolved.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review metadata

  • Provider / model: codex / unknown
  • Commit: 40cead40 · Trigger: schedule
  • Thinking: 290s wall

BLOCKING (1)

Root Cause

  • scripts/classify-sg0-census.py classifier and summary still only know A-G/STRUCTURAL while the audit row is hand-edited to C5 → keep the row in an existing generated class or update the generator and summary taxonomy together.

⚠️ The ComplexitySummary receipt issue is fixed, but the census classification doc now introduces an ungenerated class that breaks the audit authority.

| 13 | `…er/tests/integration/canonical_lens_bridge_ratchet_test.rs` | E | T-LensProducer-Retirement | ✓ |
| 14 | `…gration/cementing/cementing_lens_registry_dispatch_test.rs` | G | (no comment — untagged; Mgr review needed) | — UNTAGGED |
| 15 | `…gration/cementing/complexity_lens_behavioral_completion.rs` | G | Local/small bridge (default) | ✓ |
| 15 | `…gration/cementing/complexity_lens_behavioral_completion.rs` | C5 | Temporary Rust cementing receipt for published `ComplexitySummary` carrier; blocked from `.dag` by M1(2.8) structural expected-value literals | ✓ |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

BLOCKING: The new C5 class is outside the A-G/STRUCTURAL taxonomy used by the generator and summary, so the SG-0 audit stops being a single generated authority for debt classification (INVARIANTS P2/P5).

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.

Dispatch: Cluster M gate #84 — cementing + behavioral-parity census slice

1 participant