Every agent on nh3-dev — Claude, Codex, Grok, Aider — needs the same answers: what runs here, how do I call it, what will bite me. Until now that lived in ~/.claude/CLAUDE.md, which only Claude sessions load, and it was interleaved with operator preferences that other families have no use for. Two-tier by design, matching the persistent-memory split: FLEETTOOLS.md is a 135-line index an agent reads whole, and each entry links to a detail file it opens only when it actually needs that tool. Reading the index costs about a fifth of reading the tree. Detail paths are absolute so they resolve from any working directory, since a non-Claude agent will cat the path rather than follow a markdown link. ~/FLEETTOOLS.md symlinks to the index for discovery. Rule zero is that live inventories get queried, not transcribed: Homepage /api/services, asset-engine /api/v1/services, LiteLLM /v1/models, and every FastAPI seat's /openapi.json. A copied service table would be stale within a month and this repo already has a standing rule against second copies that drift. Contents verified against the running fleet rather than copied from existing docs: binaries resolved on PATH, seven endpoints probed live, the LiteLLM roster counted at 40 models where the old note said ~30. No credentials are included; the vault and its CLI are pointed at instead.
931 B
931 B
The Henge — durable idea parking
URL: http://park.phasefinal.com:8420/ (stonehenge-park, ana-docker)
CLI: park
Replaces per-repo ROADMAP parking lots for deferred ideas. Park an idea with its originating repo as the source; retrieve or resolve it later.
park <idea> # write, tagged with the originating repo
park get <slug>
park promote <slug> # it is happening
park drop <slug> # it is not
park snooze <slug>
park list | park search <q> # triage; the due-queue lives in the browse UI
Claude Code sessions have a /park skill wrapping the same thing.
Why it exists: projects sprawl at v0 when features land with no v1 target to gate them against — every good idea, lacking a home, silently becomes v0 scope. The gate is: on the v1 path? → in; else → park it, and the default is park. When both are defensible, park it.