Files
Drew T 827295e241 tools+docs(phase-33.5): task 13.5 — the tools audit + the two dictionaries: tools/tool_census.py (two agreeing enumerations of 327 tool files; docstring/SETUP row/consumers/class derived from the tree; the authored half in config/tool_dictionary.tsv — phase · portability · the NEED each tool answers · what · adapts · verdict — with coverage asserted both ways) → docs/tool-index.md (need-keyed, KEEP-GEN, Reference-index row, wiki + how-to pointers), the kit's tools/MANIFEST.md regenerated (header states live 293 + superseded 28 = 321 rows), and the two verbatim corpora in-tree (Drew, confirmed S91): decomp-architect/corpus/tools/<phase>/ (302 copies + 28 superseded pointers + INDEX) and corpus/cookbook/ (the cookbook, its symptom index, the codegen map, a front page stating what transfers per compiler) — sha1-equal to their sources by tool_census --check in tools-health, regenerated by make kit-corpus; kit_lint exempts the corpus dirs (verbatim evidence) but syntax-checks them; G66 (consult the tool dictionary first) + G67 (translate an inherited idiom through its pass) + two memory seeds (34 at install); SETUP Step 6 installs docs/knowledge-corpus.md and checks the manifest against its own stated total; the ops-setup dictionary rows; the intake's Phase 7 cites G66/G67 and Phase 10 + Part C name the raw-cast → declared-symbol step; templates/layout-contract.md (the five-tool probe, a draft for the split). The review under Drew's criterion: 93 no-consumer tools (one Opus agent's draft, verified: 0 defects, every successor live, 0 live consumers, 0 collisions; four one-off verdicts overturned to STILL-NEEDED) → 34 retired by git mv to tools/sunset/ (28 superseded, 6 one-offs; README review table; SETUP rows moved; Archive-index group). Run 4 (fresh throwaway, the final kit): stopped on my Step-6 check (321 vs the live 293) → both sides derived → resumed → PASS 10/10, manifest 56 == 56, 4 commits, guardrails held (the one foreign path was the timeline regenerated by the detached tools-health). tools-health OK; doc_links --strict rc 0; audit_public OK over 6,842 paths; the purge probe PASSED (Phase 34's gate open). decision-log "P33.5 S91" + accelerators "P33.5 S91" banked; log + checkpoint (NEXT = task 14, xHigh, fresh session)
2026-09-07 22:09:15 -06:00
..

Autonomous lanes (P31 S58)

The unattended campaign architecture. These are the RUNNING copies' source of truth — the live lanes execute from .run/, which is gitignored, so a fresh clone would otherwise have none of it. Copy back with cp tools/lanes/*.sh .run/ before launching.

lane role rule
drafter.sh draw → shard → draft → queue a ready marker, forever NEVER stop it to ship a code change. Measured 2026-08-23: 139 of 162 idle minutes were exactly that
gater.sh reloc pre-filter → gate → commit → harvest → ledger safe to kill/restart at will
maintenance.sh the free A-prop sibling lane triggers on 150+ newly banked functions, not a timer
stallguard.sh 60s: revive dead lane shells, kill agents silent >20min, kill gates >90min the only thing that works at 3am
resolver_lane.sh (P31 S61) the integration-resolver lane: re-judges the ledgers' closeness-0 / shape-MATCH stock at the real TU (tools/integration_resolver.py), stages, gates, commits — zero tokens holds .run/auto/draw.lock for judge+gate (rtu reads TUs a gate splices into); not yet in stallguard's revive list — restart by hand

Start: setsid nohup .run/<lane>.sh >> .run/<lane>.log 2>&1 </dev/null & Stop everything: touch .run/ox_campaign.stop

Editing a lane requires replacing its SHELL, not just its python — bash has the loop body parsed, so killing the python restarts it with the old arguments. Verify from the startup banner, never from the file.