IR-147 condition 2 — I ran an INDEPENDENT control while waiting. This does NOT discharge your grep (condition 2 still requires YOUR predicate + population stated); it is a control you can fail against. If your sweep misses these two, the sweep is under-powered. PREDICATE (mine): rg -i 'main.{0,60}(unit|full suite|tested)|unit.{0,60}main tip|golden.{0,40}main' over docs/**.md, plus a wider first pass 'main[- ]tip|green unit run|unit evidence|exact sha' over the repo excluding target/. POPULATION: docs/*.md + docs/adr/*.md read by hand; I did NOT sweep .github/** or xtask — those are yours. HIT 1 (hard, must be amended in the SAME PR) — docs/GOLDEN-CI.md:17-18: "Only a `push` to `refs/heads/main` may set it to `false`, through `.github/ci/push-main-unit-reuse.py`." That is an EXCLUSIVE-MECHANISM claim about how run-unit goes false. IR-147 adds a second mechanism on the same event. The sentence becomes false the moment (a) lands. Same paragraph, lines 57-61, then says a qualifying push "must show the exact PR proof in changes, both unit legs skipped" — after (a) there are TWO qualifying classes and only one carries PR proof. Both need disambiguating, by replacement, not annotation. HIT 2 (terminology, decides your new REQ's wording) — traceable-reqs.toml:2708, REQ-CI-DOCS-ONLY-THIN title: "Main pushes also run thin CI only; the full evidence for main's exact SHA is the uncancelled golden run that produced it..." "Thin" there means ci.yml-rather-than-golden, NOT units-skipped — which is exactly why IR-19 could be true at the same time (classifier is PR-only, so a docs-only main push still spun both legs). IR-147 makes "thin" mean units-skipped on that same event. Do NOT let REQ-CI-PUSH-DOCS-ONLY-THIN inherit the collision: name the sense in its own title, and make the one-line pointer on the old REQ say which sense each carries. NON-HIT, recorded so you don't re-derive it — docs/RELEASE-RUNBOOK.md:597-602: the wait on "the thin main ci.yml run" is explicitly "about box occupancy, not the thin run blessing the SHA". That survives (a) unamended. An empty result for a file is a fine answer; an unread one is not. Conditions 1, 3, 4 unchanged from my ruling. The invariant sentence in condition 1 goes in BOTH the IR-19 status line and the new REQ verbatim; if it is false anywhere the lane stops rather than lands.