The consolidation has to be the only way to add tooling, or it re-fragments
the way the tree did — ~160 files and four naming conventions, because
nothing ruled out adding one more.
- Skill(reach) (T-1254), for both audiences. Using it: discover through
--help, the domain index, the global flags an agent needs (--no-input,
--detach with `jobs log --follow`), the stdout/stderr/verdict contract, and
"read the exit status, never a field". Extending it: add a verb, add a
domain, the seven invariants the conformance test enforces, a worked
ReachError-with-fix example, the parity-first porting method, and the
traps this repo has already paid for (the stamp registry, the canvas
registry, archived generators that destroy data if run).
- CLAUDE.md (T-1255): no tooling is developed outside the CLI. The two
exceptions are named so they aren't relitigated: Blender payloads and the
Rust crates. Wording as confirmed by Jeroen, 2026-08-20.
- docs/diagrams/architecture/reach-cli.d2: the door, core, the domains, the
carve-out, the one guarded exec, and the enforced invariants as a legend.
D-263 now links to it; the amendment that had removed the dangling forward
reference asked for exactly this.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>