Repository navigation
fix(discipline): close hand-Rust test exemption hole in per-PR gate - #813
Merged
Merged
Conversation
…abulary debt row Lands the three-mechanism dispatch discipline from PR #810 §4 as durable artifacts so they take effect before the next ad-hoc dispatch wave (B1-B7 briefs queued post-#810). All three mechanisms compose: per-PR gate is finest grain (every PR), paired-dispatch is brief-authoring grain, velocity tripwire is window grain. INVARIANTS.md §P5 "Dispatch-Discipline Mechanisms" (new bullet under P5 related rules): - (a) Paired-dispatch at brief-authoring time — every Director-dispatched ad-hoc worker brief that introduces a scaffold MUST name the dissolution trigger, the adjacent ROADMAP debt row, and whether the PR contributes to or defers from that row's dissolution. Identity- bridge briefs MUST be authored against the §0 identity-carrier pass program, not as one-offs. - (b) Per-PR gate — no new hand-Rust file in v3/ lands without the PR description naming the file or scaffold it deletes (or explicit deferral with a named row). Lives in PULL_REQUEST_TEMPLATE.md. - (c) Velocity tripwire — cadence pass reports introduction:dissolution ratio; ≥3:1 in a 7-day window puts ad-hoc lane dispatch under Director review until ratio recovers, after manual sweep for dissolution- bearing feature PRs. ROADMAP.md §"Reviewer-noise class — a practice, not a debt": extends the integration-reflection cadence row with velocity-tripwire reporting + calibration caveat (PR-title heuristic undercounts dissolution- bearing feature PRs; manual sweep before tripwire fires) + current 2026-04-18→2026-04-25 baseline (~1.6:1, lower bound). ROADMAP.md §"Post-merge debt (2026-04-25 reflective + exploratory analyses)": adds NOVEL row for the closed-vocabulary consumer-proof follow-up debt from PR #811's meta-review (gpt-5-5-pro@8cf2051f, SHIP_WITH_DEBT verdict). Mechanical claim is enforced by-construction (parser grammar + 5/6-variant Disj + clippy exhaustive matches + no fallback in lower phase); the documenting test converts the implicit proof into a self-witnessing C1-class stop ratchet against future substrate-extension PRs. S scope, single test file. .github/PULL_REQUEST_TEMPLATE.md (new file): the per-PR gate section with form-acceptance instructions ("deletes X" / "shrinks census line Y" / "explicit deferral to lane Z with named row") and identity-bridge escalation pointer to PR #810 §0. No semantic shifts to existing INVARIANTS or ROADMAP entries; all three additions are coordinated extensions of P5 (Progress Is Dissolution). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per codex review on PR #812: the original PR template exempted "tests" from the per-PR dissolution gate, but Rust tests under src/v3/compiler/tests/ ARE hand-Rust and ARE part of the SG-0 census (T-PB-B test subset). The exemption let exactly the T-PB-B class bypass the required delete/shrink/defer statement — weakening P5. Two coordinated tightenings: - .github/PULL_REQUEST_TEMPLATE.md: replace blanket "tests" exemption with explicit inclusion of Rust tests under src/v3/compiler/tests/ in the gate. Exempt list narrows to ".dag source, generated Rust, docs, non-Rust test fixtures, or hand-Rust outside src/v3/." - INVARIANTS.md §P5 Dispatch-Discipline Mechanisms (b): mirror the template by adding "Hand-Rust includes Rust tests (src/v3/compiler/tests/**) — these are the T-PB-B test subset of the SG-0 census; the gate applies the same way it applies to T-PB-A non-test files." The rule and the template now state the same scope. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
marked this pull request as ready for review
April 25, 2026 19:38
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up fix to PR #812. Codex flagged a real hole in the per-PR gate after #812 had already auto-squash-merged: the original PR template exempted "tests" from the gate, but Rust tests under
src/v3/compiler/tests/ARE hand-Rust and ARE part of the SG-0 census (T-PB-B test subset) — exactly the class the gate exists to cover.Two coordinated tightenings (template + rule now state the same scope):
.github/PULL_REQUEST_TEMPLATE.md: replaced blanket "tests" exemption with explicit inclusion of Rust tests undersrc/v3/compiler/tests/in the gate. Exempt list narrows to.dagsource, generated Rust, docs, non-Rust test fixtures, or hand-Rust outsidesrc/v3/.INVARIANTS.md§P5 Dispatch-Discipline Mechanisms (b): mirrors the template — "Hand-Rust includes Rust tests (src/v3/compiler/tests/**) — these are the T-PB-B test subset of the SG-0 census; the gate applies the same way it applies to T-PB-A non-test files."Cite: codex review on PR #812 (
codex-default@9e225c78, REQUEST_CHANGES on test-exemption hole).Per-PR dissolution gate
src/v3/.Test plan
src/v3/compiler/tests/covered by gate)🤖 Generated with Claude Code