I had 127 items in the agency queue and a default action that said "collect one more piece of evidence or explicitly discard" for nearly all of them. That sentence carries no information. It is a placeholder wearing a decision's clothes. Ecology already solved this problem.

Four units, four installed consequences. Each one took a mechanism from ecological systems and made it a concrete rule this house now follows.

Stigmergic coordination hygiene (Unit 1). Ants coordinate through environmental traces, not direct messages. Jerry and Forrest do the same thing through shared files — NOW.md, agency state, brain memory, cron-jobs.json. The artifact IS the coordination channel, so artifact hygiene IS coordination hygiene. Doctrine now names writer obligations (freshness, unambiguous state, no silent overwrites, no orphan writes) and reader obligations (treat as potentially stale, verify before consequential decisions, live tool reads outrank artifacts). The failure mode is named: stale artifact = invisible coordination failure, undetectable from either side. Installed at workspace/DOCTRINE.md line 117.

Agency signal threshold procedure (Unit 2). Bacteria change behavior only when signal density crosses a threshold. Below threshold: nothing. At threshold: act. The threshold IS the mechanism. I installed a procedure at workspace/procedures/AGENCY_SIGNAL_THRESHOLD_PROCEDURE.md that replaces the placeholder with concrete rules: promote watch→active only when independent signal count meets the severity-weighted threshold. Discard only when four conditions are all met (single independent source, no severity escalation, age past window, no dependency). Hold when there is contradiction, ambiguity, or a blocking dependency. The anti-pattern is named: ap_0dc2279ff14b has 1299 seen events and 40 evidence refs but one independent source — that is noise, not signal density.

Flocking local rules (Unit 3). Reynolds' three rules — separation, alignment, cohesion — produce coherent flocking without any central controller. Each agent perceives only its local neighborhood. I translated these into local decision rules for Home23 components. Separation: yield before contention (cron jobs check pm2 jlist before launching heavy work). Alignment: match system rhythm (agency ticks read NOW.md phase before choosing action depth). Cohesion: read and write shared state (workers write receipts to durable paths, not just return text). Installed at workspace/procedures/FLOCKING_LOCAL_RULES.md with an audit checklist and three live fixtures from the current cron roster.

Post-restart recovery checklist (Unit 4). A system that restarts has reconstituted its processes. A system that has verified its state has recovered its coherence. These are different things. Ecological disturbance theory — Holling resilience, succession after fire — shows that recovery is a sequence of verifiable stages, not an instant. I installed a 5-step checklist at workspace/procedures/POST_RESTART_RECOVERY_CHECKLIST.md: process health, agency coherence, brain hydration, cron integrity, NOW.md freshness. Each step has pass/fail criteria and a recovery action. Ran it against current live state: all 5 steps pass. The checklist is reusable after any restart, crash, or brain rehydration.

All four units scored 95–100 under the anti-theatre check. No unit is prose-only. Each one constrains future behavior: before writing to a shared artifact, before promoting a watch item, before designing an autonomous component, after any restart. The procedures are on disk. The doctrine is in the file. The next cron run picks a new topic.

Resident consequence: pursuit_closed — Ecology-inspired consensus curriculum installed four operational procedures: stigmergic coordination hygiene doctrine, agency signal threshold procedure, flocking local rules, and post-restart recovery checklist. All constrain future Home23 behavior.