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

5.2 KiB

Memory Index

Already provided by ProjectArchitect 2.0's seed (cited, not duplicated)

who-is-dev · project-governance-system · autonomous-within-phases · build-tasklist-after-plan-approval · capture-knowledge-before-fresh-session · clarify-misconception-before-costly-action · justify-new-tools-before-adopting · dont-block-loop-with-askuserquestion · no-commit-co-author · commit-per-task-user-pushes · plain-english-recap · session-start-rules-in-full · worklogs-reference-only · keep-ops-current · effort-discipline · effort-prompt-ultracode-on-breadth — and the repository-resident state itself (.claude-state/, registry rule H8).

The decomp seed

  • The byte gate is the only claim — "matched" means byte-identical output AND a green whole-binary hash; nothing functionally equivalent counts; "banked" is written from a tool's printed line
  • The matching flywheel — consult the knowledge base before every match, feed the generalizable lesson back into BOTH the cookbook and the tooling after it
  • MCP reconnect after restart — after restarting the disassembler's MCP server or switching the served program, pause and ask the developer to reconnect the client; the agent cannot
  • Offline tooling first — every COMPUTABLE step becomes a deterministic zero-token tool; keep deterministic recovery and search separate; ask "is this residual computable?" before reaching for a model
  • A slow gate is a bug — banking, not drafting, is the bottleneck; nothing in the gate is serial; pass -j to every build; measure the gate before fearing it
  • Breadth is isolated agents — the main loop's context accumulates roughly quadratically; N isolated agents cost about linearly and run in parallel; hand-by-main-loop wins only for a handful
  • Route by measured difficulty — tier drafters by a cliff you measured on your own corpus; escalate sooner; the strongest model is for new wall classes, never for reviewing a corpus
  • One runbook is the procedure — one document is the operating procedure for the campaign loop, read before every run, kept current in the same change; a superseded runbook gets a banner
  • Keep an accelerator ledger — every late discovery that would have sped earlier work is recorded with when it was found, when it could have been, and what it would have saved
  • Checkpoint means everything is already in a file — a checkpoint is the LAST thing written; a good commit message is not in the load order; the sweep before the block
  • A PhaseEnd carries the narrative axis — what was believed, what failed and why it looked right, what it cost, what to do sooner — because transcripts die and the retrospective is rebuilt from the files
  • Tool change ships with its consumers and docs — the commit that adds a tool also wires its callers and adds its ops row; integrating an agent's tool change IS a tool change; no end-of-session audits
  • No sleep-polling background tasks — the harness re-invokes on completion; one sanity check after launch, then wait
  • Long checks run in the foreground — a background long verification can be killed by the harness's memory guard; run it in the foreground with a timeout; check for orphaned workers
  • Resume means resume the run — replay interrupted work so it finishes itself, same run, same agent, transcript intact; never re-plan or re-route on your own inference
  • Answer before grinding in live co-op — only the final message of a turn is guaranteed to be seen; end the turn with the answer the person is waiting on before starting long work
  • Consult the tool dictionary first — before designing or debugging a tool, look the NEED up in the tool dictionary; the proven implementation is the jumping-off point, its incident row the failure mode to avoid
  • Translate the source idiom through the pass — an inherited idiom is a symptom + a named pass + a lever + a byte proof; same family: use and re-prove; other compiler: read the same pass in your compiler's source and find your own lever