Register-only lane: two INFRA-REGISTER entries, folded into one PR as doyle ruled. No code change and no REQ.

- **IR-149.** The thin lane never runs `xtask check`, so a PR can go 5/5 green while the generated docs are broken; W3 hit exactly that (PR run 36000133700 at 66bf3c00). The check reads both classifier classes: code, and repo-root `CHANGELOG.md` through `gen_changelog`. So the leg must follow the UNION of the two, not `code == 'true'`; this corrects the first placement. Shape ruled (b): a second classifier output, `docs-drift`, not built yet. Measured cost of the check alone, from golden 35686372341: 67 s on Linux, 122 s on Windows. The extra time for the thin lane to build `spt` is still unmeasured.
- **IR-150.** The teardown rule says "measure size" but not which size. On the kitsubito reap, 71 MB (0.037 %) came back below the size sum and stayed UNEXPLAINED. Proposed fix: before any `rm`, capture apparent and allocated size, plus the count of hard-linked inodes whose other links sit outside the tree (counted per inode, control-tested). It amends the AGENTS.md teardown bullet in whichever lane builds it.

Docs-only (`docs/INFRA-REGISTER.md`); `traceable-reqs check` exits 0. Lands via doyle.

Co-authored by: hertz

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01KR5QdzrHXYGL1djRTBNKEG
