Fleet cleanup plan

October 10, 2026. Before any driver is restarted. Built from three read-only audits run on the Mac mini (wakers, helper scripts, logging), the October 2–9 pool-drain report, and separate rulings from Fable and Astra.

The short version

Full plan: Gera's decisions, the five steps, what to delete, and what else was found

What Gera decided (in chat, October 10)

Step 1: stop the waste now (small, reversible)

ChangeWakes saved per dayHow
Supervisor checks the pause file before idle and mail wakes, and stops re-waking every 10 minutes over the same unread mail~286It already checks for stand-down on exit asks; reuse that
The GitHub review notifier skips paused sessions≥71 (the most expensive: into a session at 96% context)One check before it types
fleet-medic skips paused sessions, for both nudges and account moves~81One check. 52 of its 53 other nudges hit sessions already waiting on a person
nudge and its hourly timer check the pause file, not only the stand-down file~120One stand-down was undone 71 seconds after a pause
Turn off the "not done, keep driving" stop gate while drivers are off~1,500 refused stopsKeep the finisher count as a report

Step 2: delete or merge helpers that earn nothing

HelperMeasuredVerdict
branch-updaterUpdates the same stuck PRs ~100 times each; every update runs CIDelete
pr-cleaner305 runs, 0 PRs ever closedDelete
matrix-watcher556 runs, never changed anything; its schedule isn't installedDelete
session-cap "reap"Never switched onDelete (keep "expire")
decider-sweep (every 20 min)Asks the decider the same questions the puller asksMerge into the puller
cleaner-jobs19 lock files a weekMerge into worker-cleaner
red-main fixer0 runs in 24h. Gera wants it machine-wideReplace with one event: main goes red, start one fix job
Supervisor, nudge, fleet-medic, watcher-doctorThe wakersRetire when the job-starter is in
decider (fable-decide)79 calls a day; the only path that answers without a personKeep
updater, slack-poster, worker-cleaner (48.7 GB freed in 7 days), blocked / decisions page, puller, dock-finisher (as a report)Cheap scriptsKeep

Step 3: review once

The PR reviewer is the biggest single AI cost after the drivers: 333–938 reviews a day, because it re-runs on every push. Change it to review when a PR is marked ready, and once more only if the code changes after a review. Astra's caution: a later push must not merge on an old approval. The existing exact-head rule already stops that.

Step 4: daily cost table (logging)

Every Claude Code transcript already records each reply's usage: fresh input, cached re-reads, cache writes and output. Nothing adds it up. One small script, fleet-usage-daily, about 300 lines:

Waste then shows up the day it starts. Also give every waker a "target session plus reason" log line. The review notifier logs a lane id, not the session, and the stop gate logs nothing.

Step 5: the job-starter (replaces the drivers)

  1. Events in: a board row becomes ready, a decision is answered, main goes red, a scheduled sweep time arrives. A periodic catch-up sweep finds any events that were missed.
  2. A cheap script decides. No AI. One Temporal workflow per item id, so the same item never runs twice; worker slots cap how many run at once. It writes a one-page brief from the row, the linked rulings and the last receipt.
  3. One short session (claude -p) does the item, records its receipt on the row, and exits. If it gets blocked, it saves its place, raises the question on the decisions page, and exits. The answer re-starts it.
  4. Sweep: a fresh security and alignment sweep on a schedule. It files what it finds and checks that board work matches the design.
  5. Start small: a few board rows as a trial, measured with the daily cost table, before turning it on widely.

Also found

Order

  1. Steps 1 and 2: cleanup, small PRs, no drivers running.
  2. Steps 3 and 4: review-once and the daily cost table.
  3. Write the decision (a new ADR that replaces the standing-coordinator one).
  4. Step 5: build the job-starter and trial it on a few rows.
  5. Then restart work on the board.

Sources: audit-wakers.md, audit-scripts.md, audit-logging.md and specialists-inventory.md in the coordinator's scratchpad; Fable ruling f9a8613b6; Astra ruling ff13e77c6; claude-pool-drain-2026-10-09.

PropFlow Docs