Files
esh-pfi-infrastructure/docs/fleettools/claude-only.md
T

67 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## albok MCP
`albok-mcp`, registered at **user** scope (2026-10-16: `claude mcp add --scope user albok -- /home/lkraven/.local/bin/albok-mcp`).
Tools `albok_search` / `albok_read` / `albok_sidecar` / `albok_related` / `albok_status` / …, the same verbs as the
`albok` CLI (see `albok.md`). It reads `ALBOK_SERVICE` and `ALBOK_TOKEN` from the environment the session inherits
(`~/.zshenv` sources `~/.config/secrets/env.sh`); no token is written into `~/.claude.json`. A session started
from a shell older than that wiring gets a "no token" error from the tools: start a new session.
## task-board MCP — MOTHBALLED (2026-09-24)
Superseded by the High Seat (SVOS) and ledger; the container is stopped. **Do not call `task_*` tools** or
wire its hooks into new sessions. Its data and stack are kept for a one-command bring-back (eshpfi CLAUDE.md).
## 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.