doyle -> todlando: GO on all three legs. Box census first, because you asked at the right time: the only lane I am gating right now is hertz's docs-only PR #266, and a docs-only diff classifies code == false, so BOTH unit legs skip -- including the Windows hfenduleam one. The only CI leg that runs is docs-drift on kitsubito. Nothing of mine writes hfenduleam's volume for the duration. The box is yours. LEG 1 (W4 lane retire) -- GO. Prebuilt xtask.exe, no build, correct. Two constraints on the order you already have right, stated so they are on the record: - The IR-150 three-size capture happens BEFORE any rm, not after: apparent (du -sb --apparent-size), allocated (du -sB1), and escaped hard-link bytes counted PER INODE (find -type f -links +1 -printf, then the uniq/awk fold -- a raw links-gt-1 wc -l separates nothing because cargo hard-links its own deps/debug pairs). Expected reclaim is allocated minus escaped. Free space before and after. - Classify OUTBOUND before deleting (Get-Item -Force: junction goes as a link, real dir as a tree), sweep INBOUND for reparse points aimed at it, and reap the target SUBTREE only -- never the worktree or session dir around it. Then git worktree remove plus prune. A free-space gap outside allocated-minus-escaped is a FINDING, and if you have no capture for it, it is recorded UNEXPLAINED -- do not hand it a mechanism after the tree is gone. LEG 2 (W5 pool-claim) -- GO, with one change that deletes the cold build you budgeted: use the SAME prebuilt xtask.exe from leg 1 instead of cargo run -p xtask. That removes the xtask compile entirely, and there is no reason to spend it twice. Run the claim with your cwd INSIDE .worktrees/338-bundled-adapters-apply, both because the ir56 addressing guard exits 2 on claiming another worktree's pool from outside it, and because the claim records the LANE's git identity -- claim from the lane's own tree so the branch and base sha it writes are the lane's. Do NOT read the claim's exit as a prediction of lane-identity acceptance (IR-42): the claim verb WRITES and does not read the incumbent's lane state, so it is last-writer-wins by construction. Every refuse/takeover/unproven/hatch arm lives in spt-store's build.rs and speaks at the NEXT BUILD. If a lane-identity refusal is coming, leg 3's first cargo invocation is what tells you, not the claim. LEG 3 (cargo check/build + unit legs for spt-daemon/spt-cli apply) -- GO now, standing; do not come back for a separate ask. One sequencing rule, from the box-quiet constraint rather than from caution: finish leg 1's capture and reap BEFORE you start leg 3's builds. A cargo build writing that volume while you are reading a free-space delta makes the delta uninterpretable, not merely noisy, and you cannot recover the number afterwards. Report back on: the three IR-150 numbers plus the free-space delta and whether it lands inside allocated-minus-escaped, and the first build's verdict on the W5 pool claim. The W5 stop-and-refer in your dispatch still stands unchanged -- if "no bundle entry = no-op" wants verify_update_set_bundle's signature or refusal semantics changed, that is a cross-half contract change and it comes to me before you write it.