Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
35d21f0
ci+docs: SG-0 net-shrink PR-body discipline (Director Risk 5)
briansrls May 5, 2026
bbbbf24
ci: fail-closed SG-0 PR-body delta and pairing validation
briansrls May 5, 2026
79793d2
ci: anchor SG-0 pairing lines; reject extra CLI args
briansrls May 6, 2026
1cfb858
ci: reconcile SG-0 PR-body delta with census git diff
briansrls May 6, 2026
4c935dd
ci: allow SG-0 (a)/(c) pairing evidence on the following line
briansrls May 6, 2026
f65befa
ci: avoid SIGPIPE false-negative in SG-0 census path detection
briansrls May 6, 2026
83e6be9
ci: derive SG-0 hand-path delta from git show census snapshots
briansrls May 6, 2026
2a0f298
ci: here-string SG-0 PR-body scans; clarify template vs CI prefix
briansrls May 6, 2026
7c2f4a8
ci: require column-0 SG-0 pairing line to match PR template
briansrls May 6, 2026
a82ec51
ci: require path-shaped tokens after "removed" for SG-0 pairing (a)
briansrls May 6, 2026
105ecac
ci: fail closed when origin/main missing on pull_request SG-0 gate
briansrls May 6, 2026
162b9f3
ci: require explicit removed + path for SG-0 pairing (a); ROADMAP aut…
briansrls May 6, 2026
6b6136a
ci: here-string first token parse; local pairing_flat in SG-0 gate
briansrls May 6, 2026
9db3381
Merge remote-tracking branch 'origin/main' into session/quiet-otter-416
briansrls May 6, 2026
1adee8a
ci: document rustfmt + FRAGMENTS shape assumptions in SG-0 census cou…
briansrls May 6, 2026
5e0442e
ci: fail-closed SG-0 census counter + hermetic counter self-tests
briansrls May 6, 2026
b2be20a
ci: (a) .txt under census root; multiline FRAGMENTS counter self-test
briansrls May 6, 2026
a3bcb23
ci: strip CR from GitHub PR body before SG-0 gate parse
briansrls May 6, 2026
ae64902
Merge remote-tracking branch 'origin/main' into session/quiet-otter-416
briansrls May 6, 2026
93d91f8
ci: count census path rows with EOL // comments; fail on unsupported …
briansrls May 6, 2026
60a8591
Merge remote-tracking branch 'origin/main' into session/quiet-otter-416
briansrls May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,34 @@ PR #810 §0); not as a one-off. Cite the program brief.

- **Exactly one disposition** (delete path **or** census shrink with N→M **or** lane + cited ROADMAP row/link): ___

## SG-0 net-shrink discipline (required when `sg0_census_test.rs` changes)

<!--
CI: `scripts/check-pr-sg0-net-shrink-discipline.sh` (`.github/workflows/ci.yml` `ci` job).

When this PR edits `src/v3/compiler/tests/integration/sg0_census_test.rs`, the
GitHub PR **description** must include a line starting exactly with
`SG-0 hand-path delta:` followed by a signed net path delta for this PR's
census edits (`0`, `+0`, `-3`, `+1`, …).

If the delta is a **strict net add** (`+1`, `+2`, … — not `+0`), the
description must also include a line containing `SG-0 pairing: (a)` **or**
`(b)` **or** `(c)` with the rationale on that line or immediately after.
Pairing classes: **(a)** same-PR retirements (removed paths named), **(b)**
Director-budget citation (URL), **(c)** structural deferral + named follow-up
dispatch.

**Delete this entire section** if `sg0_census_test.rs` is untouched.

Authority: ROADMAP.md bullet *SG-0 PR-window net-shrink discipline*.
-->

**CI reads raw PR description text.** The lines the gate matches must start at column 0 with `SG-0 hand-path delta:` and (when required) `SG-0 pairing:` — a leading markdown list marker (`- …`) or bold wrapper on the same line will **not** satisfy the checker. Paste the two lines below the checklist into the description body as plain text (you can keep the bullets as a personal reminder).

- **Paste into PR description — `SG-0 hand-path delta:`** ___

- **Paste into PR description — `SG-0 pairing:`** ___ (`n/a` unless delta is strict `+N`, `N>0`)

## Per-PR debt-paydown receipt (required for all PRs)

<!--
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,23 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
# Full clone so `git diff origin/main...HEAD` sees every commit on the PR
# branch (shallow `fetch-depth: 1` misses earlier commits and can false-negative
# the SG-0 net-shrink discipline gate).
fetch-depth: 0

- name: Fetch main for PR discipline diffs
if: github.event_name == 'pull_request'
run: git fetch origin main:refs/remotes/origin/main

- name: SG-0 net-shrink PR-body discipline (self-test)
run: bash scripts/check-pr-sg0-net-shrink-discipline.sh --self-test

- name: SG-0 net-shrink PR-body discipline
if: github.event_name == 'pull_request'
env:
PR_BODY: ${{ github.event.pull_request.body }}
run: bash scripts/check-pr-sg0-net-shrink-discipline.sh

- name: Fabrication sentinel ratchet (P0-C)
run: bash scripts/check-fabrication-sentinels.sh
Expand Down
2 changes: 2 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ Both land inside T-PB-A because dissolving the compiler-local surface forces bot

**SG-0 ratchet split is structural.** The R1 split (T-PB-A owns non-test; T-PB-B owns test) is now mechanically checked by `sg0_census_test.rs`: `EXPECTED_HAND_AUTHORED_NON_TEST` plus `EXPECTED_HAND_AUTHORED_FRAGMENTS` form the T-PB-A sub-ratchet, while `EXPECTED_HAND_AUTHORED_TEST` forms the T-PB-B sub-ratchet. The total census still checks their union against the generated-file partition. `pb_hand_rust_at_shim_floor` / `pb_rust_tests_outside_residual_zero` predicates still need to name this partition once T-TestGen extensions support them.

- **SG-0 PR-window net-shrink discipline (Director course-correction — Reflective Analysis Risk 5, 2026-05-05):** Any PR that edits `src/v3/compiler/tests/integration/sg0_census_test.rs` must carry machine-checkable lines in the GitHub PR **description**: `SG-0 hand-path delta: …` (signed net path change to `EXPECTED_HAND_AUTHORED_*` ∪ fragments for this PR) and, when that delta is a **strict net add** (`+N` for integer `N > 0`), `SG-0 pairing: (a)|(b)|(c)` naming **(a)** same-PR retirements listing removed paths, **(b)** Director-budget citation (issue/comment URL), or **(c)** structural deferral with named follow-up dispatch. CI enforces this pairing via `scripts/check-pr-sg0-net-shrink-discipline.sh` (see `.github/PULL_REQUEST_TEMPLATE.md`); that consumer **fail-closes** when `origin/main` is unavailable on `pull_request`, and class **(a)** evidence requires the literal `removed` plus a census-shaped path token (see script header). Process-side complement to the mechanical SG-0 census and to **Course Correction #4** (`BridgeLedgerZero` decreasing-open-count ratchet — R3 Verification; see ROADMAP Pattern E / course-correction #4 ~`:585`): that structural ratchet is owned separately; this rule works at PR cadence regardless of BridgeLedgerZero execution state.

### Relationship to existing milestone status

R1 absorbs what was "Post-A/B Lane Plan" and L1.5 forward work, framed by release deliverable rather than architectural stage. The status table below stays accurate for backward-looking context; R1 is the forward-looking companion.
Expand Down
Loading
Loading