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.
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*.mdin 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.