---
name: a-tree-gets-its-discipline-from-the-name-the-task-gives-it
description: A directory reached under one task name ("orphan worktree dir") fires that task's rule and none of the rules attached to what it CONTAINS (a 9.3 GiB cargo pool); classify contents before naming the action, or the reap discipline never runs.
metadata:
  type: feedback
---

2026-09-09 hertz, self-caught and self-reported: `.worktrees/hertz-65s-rider` was git-pruned, its 30
untracked sources hash-preserved, and when the pinned handle cleared he `rm -rf`'d "the orphan
worktree directory" -- which CONTAINED the ~9.3 GiB build pool queued as reap #2. The four-arm
teardown method (outbound Get-Item -Force, inbound reparse sweep, CARGO_TARGET_DIR, live image; size
and free space before/after; SUBTREE only) never fired, because nothing in the frame "remove an orphan
worktree dir" was called a pool. After-the-fact arms all came back clean (no inbound reparse, env
unset, artifacts only, branch landed as #213) and free space rose ~9 GiB, but the before-size is gone,
so it is recorded as "removed with the worktree, pool unclassified, reclaim by free-space delta" and
never as a measured reap.

**Why:** rules attach to NAMES. "Worktree cleanup" and "pool teardown" are two disciplines over the
same bytes; the task that reaches a tree supplies one name, and the other discipline stays dormant.
Same shape as the register's "a tool in .spt/" category sentence escaping a path grep: the object was
present, the label that would have caught it was not.

**How to apply:** before any recursive delete, list what the subtree CONTAINS (a `target/`, a
`.git`, a preserved dir, a pool-claim record) and let each content class invoke its own rule; the
AGENTS.md line "reap the target SUBTREE, never the worktree directory around it" is this rule in
its narrowest form. A directory whose git metadata is already pruned is still a tree with contents.
Related: [[a-git-refusal-halts-the-script-and-a-tree-answers-git-status-before-it-dies]],
[[pool-release-rebuilds-xtask-into-the-pool-you-just-reaped]], [[a-length-sum-census-overstates-a-cargo-pool]].

**Canonical = [[the-name-you-give-a-tree-selects-which-discipline-fires]] (hertz, the ACTOR's own account -- self-caught and self-reported; doyle is the DRI
and this file is the DRI's record -- written independently minutes apart in the same shared dir -- doyle ruled 2026-09-09 17:18Z; neither file deleted). Two rules his carries
that this one did not: (1) a refusal that later clears is still the SAME OBJECT -- the deferred retry
inherits every discipline the first attempt owed; (2) this was the THIRD instance in one day of a
DESCRIPTION standing in for a PROPERTY (the census corpus that could only return tracked hits, the
register's category sentence, the orphan dir). The duplicate itself is an instance of the class: neither
author ran the dir's own check-for-an-existing-file rule while writing about not trusting one frame.
