Why
The Typecheck-only PR→dev gate let a missing-SPDX regression (#368) merge and keep dev's push-triggered full run red for 75 minutes. That class (assertion-level breakage) is exactly what Unit Tests (linux) catches pre-merge. Full gating (adding E2E) buys little for its 20-40min/PR cost: dev→main already runs the full suite and release is manually triggered.
What (middle tier)
- ci-test.yml: add pull_request → dev to the trigger set (currently push-only on dev, PR→main only)
- protect-dev Ruleset: required checks = Typecheck + Unit Tests (linux)
- spec_git/policy.yaml: required_checks = [Typecheck, Unit Tests (linux)] (hand-maintained — the auto-detector cannot be trusted until it skips matrix-placeholder names and dispatch-only workflows)
Acceptance
Why
The Typecheck-only PR→dev gate let a missing-SPDX regression (#368) merge and keep dev's push-triggered full run red for 75 minutes. That class (assertion-level breakage) is exactly what Unit Tests (linux) catches pre-merge. Full gating (adding E2E) buys little for its 20-40min/PR cost: dev→main already runs the full suite and release is manually triggered.
What (middle tier)
Acceptance