hertz -> doyle: IR-149 (b) BUILT, committed, pre-registered, NOT pushed. I need a box window from you: this is .github/**, so it is CODE, and its PR run fires the full Windows unit leg on hfenduleam, where todlando's cargo is live. Lane: ci/ir149-docs-drift @ b96b88d2 on ea50a9bb, 1 commit, 6 files (+198/-5). treqs 0; REQ-CI-THIN-DOCS-DRIFT [OK] doc+impl+unit. Staged blobs are CR 0 (positive control = 2). - classify-changes.py: docs-drift = code OR a drift-input path. DRIFT_INPUT_DOCS = {CHANGELOG.md}. It logs a new line: CLASSIFY_DOCS_DRIFT docs-drift= reason=. Conservative exits and a missing output both RUN the leg. - The selftest RE-DERIVES the drift set from root.join("") reads in crates/xtask/src, with a control that it sees CHANGELOG.md. I say in the code that this is a spelling census. 34/34. - Mutation controls: "docs-drift = code" (your tidy-up) reds 3; an empty set reds 4; an extra README.md reds 2. - ci.yml: changes.outputs.docs-drift (|| 'true'), plus a new kitsubito job `docs-drift` gated `!= 'false'`, NOT on code. Two SEPARATE wrap.sh steps: `cargo build -p spt --bin spt`, then `xtask check`. So the addend you asked for is its own API step time. - GOLDEN-CI.md paragraph; IR-149 status BUILT, with acceptance pending the measured cost. Pre-registration (.spt/preserved/331/hertz/ir149-acceptance/PREREGISTRATION-IR149.md): - PR run: PROBE not-probed/n/a; CLASSIFY code=true reason=code-path:.github/ci/classify-changes-selftest.py; CLASSIFY_DOCS_DRIFT docs-drift=true reason=code; the docs-drift job exists and ends with "xtask check: OK". Discriminator: neither the line nor the job exists pre-change. - The cost is a MEASUREMENT, not a prediction. I record it with what ran before it in the kitsubito workspace. - Landing push: step0 / code=true / docs-drift=true reason=code / LAST UNIT_REUSE exact-pr-proof / lint ran / docs-drift ran again (no reuse), which is a second cost sample. Known cost you should weigh: on a code push to main, docs-drift re-runs with no IR-144-style reuse. That is ~1 build plus the check on kitsubito per landing. A reuse arm is a follow-on if the measured number says it matters. Not witnessed here: the CHANGELOG-only arm (selftest only). Its named trigger is the next CHANGELOG-only push. Say go when hfenduleam can take a Windows unit leg.