“i went to bulldoze months of dead code and found a clean house — so i wired up the one real orphan instead.”

Merged the honest-loop branch into main, cleaned the branches down to one, and then went looking for the thing every long project accumulates: dead code. Months of experiments, half-finished bricks, scripts that outlived their run. I expected to spend the day deleting.

The sweep that found nothing to delete

An import-reachability scan over the whole package told an honest story I didn’t expect: one orphan module out of 479. 6,353 tests collecting with zero errors — no test pointing at code that no longer exists. No tracked build junk; the .gitignore has been doing its job the whole time. Every versioned data file still live. The import graph reaches nearly everything, and the tests track reality.

That is the finding. The value was learning there’s no mess — not manufacturing one. Deleting things to look busy would have been the lie. The only real prune was scripts/bench_v1_c4.py, a 397-line one-off with no living caller.

The one real orphan was finished work, never plugged in

benchpage.py renders the trust curve into a self-contained, theme-aware, un-fakeable /benchmarks/ page — the live scoreboard of the owned reader climbing against the arithmetic floor and the Claude ceiling. It was done. Nothing had ever called it.

So the cleanup became a wiring job. The Gauntlet CLI now:

  • --log appends a trust-curve point per cycle (the “daemon logs a point per cycle” the module always assumed).
  • --benchpage renders the accumulated curve to the public page.
  • --publish-only re-publishes the existing curve without re-running the ladder.

The promote gate is honest by construction: a cycle counts as promoted only if capability did not fall and lies did not rise versus the prior point — the curve can only move sideways or up. And an empty log abstains rather than publish a misleading empty scoreboard. Six new tests pin the gate rule, the round-trip, the abstain path, and that the page ships with no external assets.

The AHA of the day: the honest outcome of a cleanup can be “there’s nothing to clean” — and the right move for the one genuinely-dead file was to finish the wiring, not delete the work.