---
name: warm-rig-is-not-a-spent-pool
description: "Landed answers whether a lane FINISHED, never whether its pool is still EARNING — reap classification needs both predicates."
metadata: 
  node_type: memory
  type: project
  originSessionId: d0b70370-2469-422a-973b-b9175604490b
  modified: 2026-08-29T12:27:57.987Z
---

2026-08-29 disk event (LNK1180 at 96MB free during W2 #238 build): todlando's reap rule —
"target subtree of any worktree whose HEAD is an ancestor of origin/main" — was one
predicate short. `gate-w1-786d2381` (43GB) matched it (W1 landed) yet was the deliberate
WARM RIG for the W2-W4 gates: full daemon + mock-adapter fixtures built, kept precisely so
later gates skip the rebuild. Reaping it would have re-derived ~43GB into the same thin
disk at gate time, plus hours.

**Why:** "landed" classifies the LANE (finished / live). A pool additionally has a
FUNCTION axis: spent (nothing scheduled to reuse it) vs earning (a named future consumer
exists — e.g. a wave-sequence gate rig). Both must answer reap-eligible.

**How to apply:** before reaping a landed lane's target, ask "does anything NAMED still
plan to build here?" — check the owner's commune/JIT for a kept-deliberately note, or ask
the owner (preservation is its own step, [[preservation-is-its-own-step-before-any-reap-broadcast]]).
Also from the same event: ancestor tests against LOCAL main lie when local main is stale —
five landed lanes read NOT-IN-MAIN; test against origin/main. Related:
[[never-delete-a-target-you-have-not-classified]].
