Files
esh-pfi-infrastructure/persistent-memory.d/2026-09-18-fleettools-agent-index.md
T
vh 148a5a34da memory: snapshot — three silent fleet faults found and fixed in one afternoon
An infrastructure day with no training work, and the through-line is that
every fault was invisible to monitoring. NH3↔Anaheim had been crossing a
throttled DERP relay rather than a direct path for long enough to carry 78 GB;
`.internal` DNS was failing roughly one lookup in ten from two independent
causes; SearXNG had exactly one working general web engine. Nothing alarmed on
any of it. All three surfaced because tts-dev had a 1545 ms voice-loop budget
and chose to measure rather than adapt around the problem.

Also landed: althing v3.6.3, which makes hyphenated search work for the first
time on a fleet whose hostnames are nearly all hyphenated; FleetTools, a
capability index autoloaded by Claude, Codex and Grok from one symlinked file;
Miranda's Hermes plugin moved from a copy to a repo symlink; Worldtree's
env.sh secrets vaulted.

Six detail files. The in-flight section is rewritten and shrinks 142 lines to
64 — it opens on the one thing this session did NOT verify, lv-mccarthy's run
outcome, which was left untouched and must not be assumed good.

Two foot-guns recorded, both mine: the ESH egress experiment reverted on a
diagnosis the rollback itself falsified, and `!ENV` in searxng settings, which
has no constructor in that build and crash-looped the container ten times.

No archival this run. 165 of 169 dated entries are under the 14-day guard and
the remaining four all carry open deferred pointers, so the index stays over
the soft cap at 480 lines — an over-cap file that keeps live decisions beats a
scannable one that lost one.
2026-09-18 20:09:01 -07:00

2.8 KiB

[2026-09-18] FleetTools — one capability index, autoloaded by three agent families

Every agent on nh3-dev needs the same answers — what runs here, how do I call it, what will bite me — but that knowledge lived in ~/.claude/CLAUDE.md, which only Claude sessions load, interleaved with operator preferences other families have no use for.

Shape

Two-tier, matching the persistent-memory split. FLEETTOOLS.md is a ~135-line index an agent reads whole; each entry links to a detail file it opens only when it needs that tool. Reading the index costs about a fifth of reading the tree.

  • Canonical: docs/fleettools/ in this repo (git-tracked)
  • Discovery: ~/FLEETTOOLS.md → symlink to the index
  • Detail links are ABSOLUTE paths, not relative markdown — a non-Claude agent cats the path rather than following a link, and may be anywhere on the filesystem.

Covers: althing, the Booth, secret, LiteLLM, inference seats + Asset Engine, speech, Arbo, elway, fleet SSH, observability, graphify, Playwright, the Henge, and a segregated Claude-only file (ratecheck, remote-ssh MCP, task-board, skills).

Autoload — verified per family, not assumed

  • Codex reads $CODEX_HOME/AGENTS.md — the binary carries the string "Failed to read global AGENTS.md instructions from".
  • Grok always scans $GROK_HOME/rules/ and loads every *.md in it regardless of name — from its own embedded docs.

Both locations were empty. AGENT-BOOTSTRAP.md is symlinked into each rather than copied — one file, three families, no drift surface.

⚠ Grok also scans ~/.claude/rules/ and recognises CLAUDE.md via harness-compat settings. That directory is empty today, but Grok can see Claude's config.

Rule zero, which is the load-bearing part

Query live inventories, never a written list. The index points at 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 — the LiteLLM roster was already at 40 models where the old CLAUDE.md note said ~30.

The CLAUDE.md swap

~/.claude/CLAUDE.md's "Global tools available" section went from 231 lines to 39 (file 1218 → 1026, a 16% cut to what every Claude session loads). Three things stayed inline deliberately because they govern BEHAVIOUR rather than lookup: run ratecheck before expensive work, post operator-facing links to the Booth board, and the vault is the credential source of truth. A rule behind a file read is a rule that stops firing. Backup at ~/.claude/CLAUDE.md.bak-20260918-074048.

The shared all-agents LiteLLM key stays inline there too — every session needs it and a vault round-trip measured over two minutes — but it is now ALSO vaulted at litellm/all-agents-shared-key, since it had been single-copy.

Commits 53c3e80 21d24c5.