Files
esh-pfi-infrastructure/docs/fleettools/claude-only.md
T
vh 53c3e8000e docs: add FleetTools — an agent-family-agnostic index of fleet capability
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.
2026-09-18 07:35:28 -07:00

3.2 KiB
Raw Blame History

Claude-Code-only tooling

Everything here depends on the Claude Code harness. A Codex, Grok, Aider or other non-Claude agent cannot use these — they are listed so you recognise a reference to them rather than hunting for a binary that will not work.

ratecheck — how close this session is to its rate limits

~/.claude/bin/ratecheck (NOT on PATH). Exit 0 GO · 1 PAUSE · 2 UNKNOWN. Prints both windows, the file's age and the reset time.

The numbers are not otherwise visible to an agent: no CLI subcommand exposes them and nothing else on disk carries them. The harness pipes them to the statusline only, so ~/.claude/statusline-command.sh tees them to ~/.claude/rate-limits.json on every render. If that tee is removed, everything built on it silently stops working, which is why a stale file reports UNKNOWN rather than healthy.

  • under ~85% — proceed normally
  • ~85–93% — prefer the cheap path; resume an existing subagent rather than spawning one
  • at/over the project threshold — stop starting new expensive work; let in-flight finish
  • UNKNOWN — proceed, loudly. A broken instrument that halts everything is a self-inflicted outage worse than the overspend it guards. Say plainly that limits were unreadable and you continued blind.

⚠ A GO is margin, not permission for an arbitrarily large action — one consult subagent has measured at 270k–650k tokens, so a round cleared at 92% can finish past 100%.

remote-ssh MCP

Project-scoped in eshpfi-management/.mcp.json; tools ssh_hosts / ssh_open / ssh_run / ssh_peek / ssh_interrupt / ssh_list / ssh_close. Holds a persistent shell, so cd and exports survive between calls at ~6 ms per command. For reconnaissance; it deliberately has no file transfer and no idempotency (that is elway's half).

⚠⚠ A bare sudo HANGS the session — always pipe it: sudo -n <cmd> | cat. Cause: sudo ≥1.9.14 defaults use_pty on; with stdin on /dev/null and stdout on the session PTY the relay never completes and the completion marker never arrives. A pipe makes stdout a non-tty and sudo skips the PTY.

⚠ The host allowlist is the only real containment boundary — the denylist is three regexes and bash -c walks past it. SSH_MCP_STRICT_ALLOWLIST=1 makes ~/.config/remote-ssh-mcp/config.json's allowedHosts authoritative.

task-board MCP

task_start / task_update / task_wait / task_complete to surface work in progress at http://10.250.50.70:7878/. When you launch background shells, call task_set_shells with one short description each (and again with [] when they finish) — the board turns orange so the operator can tell the session is parked on background work rather than stalled on them.

Skills

Claude Code skills live in ~/.claude/skills/. Notable ones with fleet meaning: /snapshot (durable repo memory), /handoff (transfer active work to an agent of another family — this is the cross-family bridge), /heid (cross-frontier consult), /park, /elitk, /vor, /tdd.

/handoff is the supported way to move in-flight work from Claude to Codex/Grok — it writes an agent-agnostic brief to /tmp naming the repo's convention files.