traceable-reqs.toml | 9 +++++++++ 1 file changed, 9 insertions(+) === TOML DELTA === diff --git a/traceable-reqs.toml b/traceable-reqs.toml index 8c0a9812..99f1798d 100644 --- a/traceable-reqs.toml +++ b/traceable-reqs.toml @@ -2707,6 +2707,15 @@ required_stages = ["impl", "unit"] # ACTIVATED 2026-07-20 (doyle). Rig/CI-recip # pushes also run thin CI only" means ci.yml rather than golden (units still ran on every # main push). In REQ-CI-PUSH-DOCS-ONLY-THIN, thin means lint+unit SKIPPED, and it now applies # to docs-only main pushes too (doyle ruling). The ruled text below is kept verbatim; read both. +# ALSO NARROWED (IR-147, 0854bbe8; doyle accepted 2026-09-24, carried to the operator in the +# milestone close note): the ruled title's docs set, "Markdown OUTSIDE docs-site/", is no longer +# what the classifier does. The docs set is now named POSITIVELY: traceable-reqs.toml, repo-root +# *.md, and docs/**.md minus Markdown compiled into a binary or test. Everything else is code, +# so a PR touching only crates/x/README.md, releases-repo/*.md or .github/*.md now runs units. WHY: +# Markdown can be compiled in or be load-bearing. docs/ER-SKELETON.md is include_str!'d into an +# spt bin test (cli.rs), so a skeleton edit changes a unit's input while the old rule called it +# docs. DIRECTION: conservative only. The narrowing can run MORE units, never fewer, so it cannot +# fabricate a green. [[requirements]] id = "REQ-CI-DOCS-ONLY-THIN" title = "CI (operator-ruled 2026-07-16, from PR #8 review; registry-only extension operator-approved 2026-07-27; superseded for main pushes by ADR-0050 on 2026-07-29): a PR whose ENTIRE diff is Markdown OUTSIDE docs-site/ and/or the declarative `traceable-reqs.toml` registry runs THIN CI — the heavy build/test jobs are skipped via a changed-files classifier job. `traceable-reqs.toml` has no Rust/product consumer; its load-bearing correctness gate is traceability. Invariants: the traceability gate ALWAYS runs (doc/registry tags and activated-stage coverage are load-bearing evidence, and a run with zero checks is unmergeable); any docs-site/ change runs the PR lint/unit/traceability lane; any other non-Markdown path runs that same lane. Main pushes also run thin CI only; the full evidence for main's exact SHA is the uncancelled golden run that produced it, and main advances only by fast-forward to that tested SHA. The classifier is plain git diff over the PR merge commit (HEAD^1..HEAD, fetch-depth 2) — no third-party changed-files action on the self-hosted runners. Skipped-required-check note: GitHub treats an if-skipped job as satisfying required status checks, and the classifier + traceability always report, so thin PRs stay mergeable." [exited with code 0]