Quickstart — reinstated CI
What runs when
(terminology/layer-rule); heavy arch battery only if code-scoped groups match. PR mode = fail-fast: a red predecessor short-circuits its dependents (fewer jobs run; a skipped successor is NOT a pass).
failures (full-spectrum signal), incl. performance/e2e + the above-3.12 interpreter lane + Sonar.
- Open a PR touching
src/** → router selects the affected module shards + fast always-on gates - Docs-only / packs-only PR → 0 code shards; only docs checks / the packs workflow + fast always-on gates.
- Nightly (schedule) or "Run workflow" → run full → full mode: every job runs regardless of
- Any workflow → manually dispatchable from the Actions tab (
workflow_dispatch).
Local pre-PR parity
before pushing — the same authority CI uses, so "green locally / red on CI" drift is closed.
make test-fast— the fast tier (unchanged baseline).- Use the single gate-selection authority (E5/#2476) to preview which shards/gates your diff selects
spec-kitty regen --check,ruff check .,ruff format --check— the shift-left front, run locally first.
Interpreting a run
zero-gated (integrity oracle) and no dead-code test was in the run/denominator (census).
- Green PR ⇒ every enumerated must-run gate executed (its own job is green) and no test was
- A skipped job in PR mode ⇒ its predecessor red; fix the predecessor. It is NOT mergeable-green.
- Nightly red ⇒ the full failure set is present (no early abort); plan one remediation pass.
Warmup / dependencies
latest mainline (upstream-drift signal). The warmup composite builds the env once; shards reuse it.
- PR builds resolve a pinned
spec_kitty_eventsrev (deterministic, cache-hit); nightly resolves
Adding/retiring a workflow (governance)
tests/release/test_release_ci_ownership.py in the same change, or the ownership test reds.
- Net-new workflow → add an
introducedrow todocs/convergence/interim-ci-producer.mdand - Stock runners only; never
SK_CI_TOKENon a public job.