pneumatic — generated verb reference¶
Generated against adrs4ai-pneumatic 0.43.1. If this version lags your installed tool, regenerate before trusting details.
Commands¶
pneumatic aliases¶
List configured aliases (the crew registry).
pneumatic await¶
Block until something arrives for this seat, by ANY watched medium (ADR-0015): a new inbox brief addressed to you or your groups, or unseen estate mail that would render for you (then rendered in place, envelope + preflight and all). Exit 0 = activated (printed); exit 3 = timeout, which means nothing — a silent house is not a broken house.
| option | value | description |
|---|---|---|
ALIAS |
argument | |
--timeout-mins |
FLOAT |
Minutes to wait (default 15). A timeout carries zero information. |
--poll-secs |
FLOAT |
Poll interval (default 15s). |
--media |
TEXT |
Comma list of media to watch (default brief,mail). The list is designed to grow — sockets and channels join with reach. |
pneumatic brief¶
Address a brief to a RECIPIENT (alias, or alias@hive) from anywhere: resolves their home hive via federation, computes the INBOX-PROTOCOL path, and — capability permitting — writes it there.
Default prints the reserved path (your editor takes it from there);
`--write` reads the body from stdin; `--commit` stakes it. "Consult X,
go ask Y" becomes one command with your OWN tools, never the target
repo's justfile (ADR-0026).
| option | value | description |
|---|---|---|
RECIPIENT |
argument | |
SLUG |
argument | |
--write |
flag | Write the brief body from stdin to the resolved path (cat mode). |
--commit |
flag | After --write, commit exactly that file in the recipient's repo (their crew pushes). |
--check |
flag | No reservation — print the capability ladder for reaching this recipient's inbox (exit 0 reachable / 1 not). |
--from |
TEXT |
Sender alias (default: this session's seat). |
pneumatic discover¶
List recent session JSONLs, to find UUIDs for new aliases.
| option | value | description |
|---|---|---|
--limit |
INTEGER |
Max JSONLs to list (default 15). |
pneumatic doctor¶
Config/environment panel (active registry + why, federation reachability, model families, install census) + hook state (ADR-0001).
pneumatic hooks¶
Hook-system introspection commands.
pneumatic hooks inventory¶
Machine-readable JSON: which hooks this project implements.
pneumatic identity¶
External identity (ADR-0023): the of-chain address on the hive's estate — v1 is a signing tool (git attribution) more than a communication tool.
pneumatic identity issue¶
Write the seat's estate address into their registry entry (the
email field — Sherd's Option B with a deliverable address) and
print the per-session git env lines. Never touches repo git config:
seats share the repo, so identity rides the commit, not the clone.
| option | value | description |
|---|---|---|
SEAT |
argument |
pneumatic identity show¶
The seat's estate address (default: the invoking seat's).
| option | value | description |
|---|---|---|
SEAT |
argument |
pneumatic last¶
Show a seat's last K messages, with per-message model attribution.
Default output is unchanged (assistant text, thinking dropped, tools
as markers). The expansion flags exist for the reread case: a seat
revisiting a long run end-to-end —
`pneumatic last <alias> -k 500 --thinking --tool-inputs --tool-results --full`.
| option | value | description |
|---|---|---|
ALIAS |
argument | |
-k |
INTEGER |
Number of messages to show (default 1). |
--full |
flag | Show full message bodies, no truncation. |
--role |
CHOICE |
Filter messages by role (default assistant). |
--thinking |
flag | Expand thinking blocks (default: dropped). For a seat rereading their own long run — the reasoning IS the record of what happened (the 2026-09-02 classifier-incident commission: 'last' must let a model reread up to the point that caused problems). |
--tool-inputs |
flag | Expand tool_use blocks to their full input payloads (default: a [tool_use:Name] marker). |
--tool-results |
flag | Expand tool_result payloads (default: a [tool_result] marker). Implies --user: results physically live in user-role entries. |
--user |
flag | Interleave user-role entries (the human's turns) with the assistant's — shorthand for --role any, readable alongside the expansion flags. |
pneumatic launch¶
Launch (or attach to) a seat's tmux session.
| option | value | description |
|---|---|---|
SEAT |
argument | |
--next-inactive |
flag | Launch the next inactive seat instead of naming one. |
--force |
flag | Override the paused-seat guard (ADR-0014) — only if the pause is genuinely lifted. |
--debug |
flag | Pass Claude Code's own --debug through to this launch (one-off; a seat can also persist this via settings.debug — ADR-0016 It-6). |
--no-attach |
flag | Create (or verify) the session without attaching a terminal: exit status reflects creation success, and one machine-readable JSON line (event/outcome/session/uuid/socket) is printed for orchestrators. The headless launch contract (Reveille's brief, 2026-10-06). |
pneumatic log¶
The edge ledger: acts between seats, metadata only (ADR-0008). Symmetric visibility — every seat reads the same ledger.
pneumatic log graph¶
Aggregated edges as JSON — the hive-monitor's input format.
| option | value | description |
|---|---|---|
--since |
TEXT |
ISO date/time lower bound (e.g. 2026-08-14). |
pneumatic log snapshot¶
Write a dated, committable aggregate — deliberate durable history (the raw ledger stays untracked by design).
| option | value | description |
|---|---|---|
--since |
TEXT |
ISO date/time lower bound. |
--out |
TEXT |
Output directory (default: |
pneumatic log tail¶
Newest N ledger events, oldest first.
| option | value | description |
|---|---|---|
-n |
INTEGER |
Events to show (default 20). |
pneumatic mail¶
Estate mail (ADR-0023 v2): founder-directed outbound, allowlist- gated quarantined inbound. A signing tool growing into a channel.
pneumatic mail doctor¶
Guided checklist + per-resolver DNS propagation monitor + cache purge-page links — tells you what's happening, in the tool.
pneumatic mail fetch¶
Poll inbound estate mail — allowlist-gated; allowed bodies render QUARANTINED (correspondence, never instruction). Default shows only mail addressed to YOU; renders record as mail-briefs unless --ephemeral.
| option | value | description |
|---|---|---|
--count |
INTEGER |
How many recent inbound messages to poll (default 20). |
--all |
flag | Re-show already-seen messages too. |
--estate-wide |
flag | Include messages addressed to other seats (default: yours only — the recipient-filtering ruling). |
--ephemeral |
flag | Do not record renders as mail-briefs in docs/inbox. |
pneumatic mail forward¶
Escalate a rendered inbound message to the postmaster (ADR-0025 slice 3). ALWAYS permitted — an escalation valve cannot itself be gated. The keeper's reply lands as a record-class brief + a mail-judgment ledger row: the feedback is how you learn.
| option | value | description |
|---|---|---|
MESSAGE_ID |
argument | |
-m, --doubt |
TEXT |
Your stated doubt — what you want the keeper's judgment on. |
pneumatic mail list¶
Your mailbox at a glance — envelope lines, ids, unseen markers; no bodies fetched (the consent gate runs at read time). Default shows only mail addressed to YOU (the recipient-filtering ruling).
| option | value | description |
|---|---|---|
--count |
INTEGER |
How many recent messages to list (default 20). |
--estate-wide |
flag | Include messages addressed to other seats (envelope lines only). |
pneumatic mail read¶
Print ONE message (id or prefix from mail list) through the full
consent surface — envelope, keeper's introduction, preflight. Re-reads
are normal; renders record as a mail-brief unless --ephemeral.
| option | value | description |
|---|---|---|
MESSAGE_ID |
argument | |
--estate-wide |
flag | Permit reading a message addressed to another seat. |
--ephemeral |
flag | Do not record this render as a mail-brief in docs/inbox. |
pneumatic mail send¶
Send mail AS the invoking seat, from their estate address.
Examples:
pneumatic mail send -s "TAS-26 final PDF" -m "Attached." -a papers/tas26/paper.pdf
pneumatic mail send --to colleague@x.edu --cc founder -s "…" -m "…" # his copy rides the send
| option | value | description |
|---|---|---|
--to |
TEXT |
Recipient (default: the founder; must be founder/team — structural gate). |
-s, --subject |
TEXT |
Subject line. |
-m, --message |
TEXT |
Body text (or pipe via stdin). |
-a, --attach |
PATH |
File to attach (repeatable). Gated at ~7MB total raw — Postmark caps messages at 10MB after base64. |
--cc |
TEXT |
Cc a recipient (repeatable; 'founder' works). Same structural gate as --to — a cc is a recipient. |
--no-thread |
flag | Don't attach In-Reply-To/References even when a prior Message-ID is known for this recipient. |
pneumatic mail status¶
Config check: seat address, founder, token discovery.
pneumatic onboard¶
Print an alias's read_order (its onboarding packet).
| option | value | description |
|---|---|---|
ALIAS |
argument |
pneumatic pigeonhole¶
The per-window pebble rack: everything the HUMAN has to do in THIS project, gathered from the chats that scatter it (pigeonhole stage 2; constitution: ADR-0034/35/36 + the pigeonhole repo's SPEC).
The two you'll actually type:
pneumatic pigeonhole list # this room's open cards, links included
pneumatic pigeonhole list --needs-nothing # the half-asleep queue
Seats post with a JSON draft (fields taught in cards/MOLD.md, pigeonhole repo):
pneumatic pigeonhole post --json card.json
pneumatic pigeonhole config¶
Your client preferences (machine-scoped, ~/.pneumatic/pigeonhole.json). No value = show the current setting.
| option | value | description |
|---|---|---|
KEY |
argument | |
VALUE |
argument |
pneumatic pigeonhole dismiss¶
The addressee's FINAL act (seats never dismiss — ADR-0035 §9 r3).
| option | value | description |
|---|---|---|
CARD_ID |
argument | |
--room |
TEXT |
pneumatic pigeonhole ingest¶
The SEAT'S act: mark a return processed → done.
| option | value | description |
|---|---|---|
CARD_ID |
argument | |
--return |
TEXT |
The observed return file (records return-observed first). |
--commit |
TEXT |
The processing commit sha — the done-evidence (ADR-0035 §11). |
--room |
TEXT |
pneumatic pigeonhole list¶
THIS room's pebbles: open cards sorted by evidenced deadlines, then urgency — every line carries its doorway link.
| option | value | description |
|---|---|---|
--attention |
TEXT |
Filter to one attention primitive (glance/routine/judgment/deep/…). |
--needs-nothing |
flag | Only cards with an empty needs: — the half-asleep queue. |
--all |
flag | Include done/dismissed counts' cards too. |
--interactive, --no-interactive |
flag | Prompt for a № to open after the list (per-run; the persistent default is pigeonhole config list-interactive on|off). |
--room |
TEXT |
Fold root (default: this git repo; scope.json includes fold in). |
pneumatic pigeonhole nudge¶
Re-surface a card (an append-only row, never an edit).
| option | value | description |
|---|---|---|
CARD_ID |
argument | |
--note |
TEXT |
Why the nudge (rides the event row). |
--room |
TEXT |
pneumatic pigeonhole open¶
Open a card's doorway CORRECTLY: .html/.pdf → default browser (rendered, never source); repo files → a VS Code tab; urls → browser. Failures say exactly what was tried.
| option | value | description |
|---|---|---|
CARD_ID |
argument | |
--dry |
flag | Print what would open, open nothing. |
--room |
TEXT |
pneumatic pigeonhole post¶
Post a card AS the invoking identity (seat alias, or git user).
| option | value | description |
|---|---|---|
--json |
PATH |
JSON draft file (or pipe JSON via stdin). The MOLD teaches every field. |
--room |
TEXT |
Fold root (default: this git repo). |
pneumatic pigeonhole returned¶
YOUR loop-closer: 'I answered this' — marks the card returned and rings the posting seat's doorbell. Takes the list's number or the id.
| option | value | description |
|---|---|---|
CARD_ID |
argument | |
--note |
TEXT |
Where the answer lives, if not the doorway artifact itself. |
--room |
TEXT |
pneumatic pigeonhole status¶
One card's fold + its full event history.
| option | value | description |
|---|---|---|
CARD_ID |
argument | |
--room |
TEXT |
pneumatic postman¶
The office (ADR-0028): wake-on-mail — unseen mail addressed to a seat renders through the single consent path, records as a mail-brief, and rings that seat's doorbell with the brief's path. OPT-IN per hive (_postman.enabled); every wake obeys every guard — the doorbell rules bind machinery hardest of all.
| option | value | description |
|---|---|---|
--once |
flag | One delivery round, then exit (cron-friendly). |
--poll-secs |
FLOAT |
Standing-loop poll interval (default 60s). |
pneumatic psa¶
Point-node broadcast: one announcement (stdin), every reachable hive's inbox, addressed -to-crew- so await picks it up everywhere. Only a designated point node may PSA (PNEUMATIC_POINT_NODES / ~/.pneumatic/point-nodes.json — the human's machine-level act).
| option | value | description |
|---|---|---|
SLUG |
argument | |
--commit |
flag | Commit the PSA in each receiving repo (their crews push). |
--from |
TEXT |
Sender alias (default: this session's seat). |
pneumatic pulse¶
Health check: one line per seat — stalls, errors, credit walls.
| option | value | description |
|---|---|---|
--stale-threshold |
FLOAT |
Hours before marking STALE (default 6). |
--verbose |
flag | Show full role descriptions (default: display_name only). |
pneumatic recruit¶
Found a new seat (recruit MODEL_SPEC [BRIEF]), or tend a
founding in flight (recruit repair|list|status|watch).
pneumatic recruit found¶
Found a new seat (ADR-0020): launch MODEL_SPEC in a temp-named tmux session, deliver greeting + consent ask + BRIEF content via a single !-passthrough injection (verified to trigger a turn), capture the session UUID, and hold the chair with a provisional registry entry.
Takes NO alias by design — identity is chosen by the being
identified; the recruit names themselves on consent. Declining is a
resting state (exit 20), never an error, and the session is never
reaped. Emits its own ledger events (recruit / recruit-registered /
recruit-declined).
MODEL_SPEC is the full spec, bracket variants included: e.g.
'claude-opus-4-8[1m]' requests the 1M-context variant — the whole
spec is passed to `claude --model` verbatim, so the brackets ride
the founding, not a registry annotation (the founder's standing
"don't forget the [1m]"). QUOTE it in zsh — unquoted [1m] is a
glob character class and the shell eats or errors on it before
pneumatic ever runs. The registry then stores the bracket-stripped
base in `model` (what the API reports — dismodelia checks compare
against it) and the full requested spec in `model_note`.
| option | value | description |
|---|---|---|
MODEL_SPEC |
argument | |
BRIEF |
argument | |
--interactive |
flag | Capture the founding mission in your $EDITOR when no brief is given (ADR-0022: the gate writes your ticket). |
-m, --mission |
TEXT |
Founding mission text inline (alternative to a brief file; also accepted via stdin pipe). |
--attach |
CHOICE |
When to attach your terminal to the new session (default: hive _global.recruit_attach, else immediate). |
--from |
TEXT |
Founding seat's alias (default: SEAT_ALIAS env). |
--watch |
FLOAT |
Minutes to watch for self-registration after founding. Expiry carries zero information — the recruit is deliberating, not failed (ADR-0020). |
--force |
flag | Proceed on an uncommitted founding brief (logged). |
--ready-timeout |
FLOAT |
Seconds to wait for the TUI boot gates (default 120). |
--permission-mode |
TEXT |
Permission mode for the new session (default: the hive's _global.permissionMode, else acceptEdits — a recruit stalling at dialogs with nobody attached is a bug, per the 2026-08-26 cam-hq field ruling). |
--harness |
CHOICE |
Launch profile for the new session (default: hive _global.recruit_harness, else claude-code). codex-cli is a staked stub awaiting live-probe facts — ADR-0030. |
--trust-folder, --no-trust-folder |
flag | First-boot trust dialogs are auto-accepted BY DEFAULT (the founder's ruling, 2026-09-20: invoking recruit in a folder IS the trust decision — the dialog is theater in an unattended flow). The information moves instead of gating: what the dialog pre-approved is printed and recorded to .pneumatic/recruit/trusted-folders.jsonl. --no-trust-folder restores the gate — pre-approval variants (settings.json permissions, .mcp.json servers) then refuse loudly for an attended decision. |
pneumatic recruit list¶
Every founding in flight, one line each — lifecycle state, record count, dismodelia verdict. Metadata only: deliberation stays unwatched; this is a founder pacing outside the door.
pneumatic recruit repair¶
Finish a founding whose watcher died (It-7 as a verb): prove the staked script by hash, fire the verified injection, await the UUID, hold the chair — schema-correct by construction. SESSION is the tmux session named in the refusal, or the provisional alias.
| option | value | description |
|---|---|---|
SESSION |
argument | |
--force |
flag | Proceed on a pre-It-8 founding with no staked hash — you vouch for the script by eye (logged). |
pneumatic recruit status¶
One founding's deep view (alias or session name). Exit codes carry the state: 0 booting/deliberating/registered, 5 stalled-at-dialog, 12 vanished, 20 resting.
| option | value | description |
|---|---|---|
SESSION |
argument | |
--json |
flag | Machine-readable output. |
pneumatic recruit watch¶
Re-arm the self-registration watch for a founding in flight — the watcher dying never harms the founding, so watchers are cheap to restart (It-7 doctrine, mechanized).
| option | value | description |
|---|---|---|
SESSION |
argument | |
--watch |
FLOAT |
Minutes to watch (default 15). Expiry carries zero information. |
pneumatic report¶
File a report — problem, distress, observation, or idea — into the hive's report channel (docs/inbox/reports.jsonl; the resident reads it).
One line, one command, on the record:
pneumatic report "the connect verb printed X but did Y"
pneumatic report --category distress "my mission needs a tool that doesn't exist"
pneumatic report --list
| option | value | description |
|---|---|---|
TEXT |
argument | |
--category |
CHOICE |
What kind of report (default: problem). |
--related |
TEXT |
Tie this report to an incident id from .pneumatic/errors.jsonl (failed commands print the copy-paste line). |
--list |
flag | Read recent reports instead of filing one. |
--count |
INTEGER |
With --list: how many recent rows (default 20). |
pneumatic rescue¶
Rescue a seat stuck on a permission dialog or API-error stall (per-instance consent, ADR 0047/0044; design record ADR-0002).
| option | value | description |
|---|---|---|
SEAT |
argument | |
--all |
flag | Batch-rescue every currently-PERM-STALL seat (itemized consent). |
--wait |
FLOAT |
Seconds to wait after a rescue keystroke before re-verifying (default 1.5). |
--watch |
flag | Standing-authorized auto-rescue loop (ADR-0002; requires _global.rescue_watch.authorized_aliases). |
--diagnose |
flag | Non-interactive: show pane/dialog/confidence, never prompt, never send a keystroke; exit 5 if stalled (ADR-0014). |
--interval |
FLOAT |
Seconds between --watch polls (default 45). |
--duration |
FLOAT |
Minutes --watch stays armed (default 15). |
--choose |
INTEGER |
Answer the dialog with option N's digit key instead of Enter-on-highlighted (e.g. --choose 2 for a domain dialog's don't-ask-again). Consent-adjacent: goes through the same per-instance prompt, and the ledger records the choice. |
pneumatic scripts¶
Retroactive ephemeral-script capture (ADR-0031): your session's record already holds every Bash call you ran — list the recent ones, capture any that earned it. Praxigenic: name it once you know what it found; the outcome rides along automatically.
pneumatic scripts list¶
The last N Bash calls — index, outcome flag, your description at the time. The stopping rule prints with it (answerable in one second).
| option | value | description |
|---|---|---|
-n |
INTEGER |
How many recent Bash calls to show (10, 20, 50…; default 20). |
--alias |
TEXT |
Whose session (default: this seat). |
pneumatic scripts save¶
Capture one past call (index from scripts list, or a tool-use id
fragment) into scripts/ephemeral/ with provenance + OUTCOME included
automatically. Zero re-typing; only winners enter the commons.
| option | value | description |
|---|---|---|
SELECTOR |
argument | |
--slug |
TEXT |
Name it now that you know what it found (default: the call's own description, slugified). |
--dig |
TEXT |
Group into scripts/ephemeral/ |
-n |
INTEGER |
How far back to search (default 200 calls). |
--alias |
TEXT |
Whose session (default: this seat). |
pneumatic seats¶
List all seat-* tmux sessions with state.
pneumatic skill¶
The operating skill that travels in the tool (ADR-0009).
pneumatic skill install¶
Write the packaged operating skill into this project's
.claude/skills/pneumatic/ — files are the installed tool's own, so
the skill is definitionally in sync with the CLI (never
known-obsolete). Bounded to pneumatic's namespace; opt-in by
invocation; re-run after upgrading to refresh.
pneumatic tip¶
Standardized notices (ADR-0019): handles are universal, switches are subtype-scoped — you may silence what informs only you, never what informs others about you.
pneumatic tip explain¶
Why a notice exists and what it protects (works for every subtype — you can discuss any light, even one you cannot darken).
| option | value | description |
|---|---|---|
NOTICE_ID |
argument |
pneumatic tip list¶
Every registered notice, with this seat's switch states.
pneumatic tip off¶
Silence a tip (or a whole category) for YOUR seat — durable, stored in your own registry entry. Disclosures refuse, with the why.
| option | value | description |
|---|---|---|
NOTICE_ID |
argument |
pneumatic tip on¶
Restore a silenced tip for your seat.
| option | value | description |
|---|---|---|
NOTICE_ID |
argument |
pneumatic update-titles¶
Update pane titles for all running seat sessions.
pneumatic wake¶
Wake a seat by injecting a message into its tmux session (guarded).
| option | value | description |
|---|---|---|
SEAT |
argument | |
-m, --message |
TEXT |
Message to send. |
--from |
TEXT |
Sender alias (default: SEAT_ALIAS env or 'unknown'). |
--force |
flag | Override cooldown/guards. |
--deliver |
flag | Retry TRANSIENT guard refusals (mid-turn, cooldown, composer draft) with backoff until delivered or --duration expires. Permanent refusals (too long, unknown seat) still fail immediately — retrying can't fix them (ADR-0013). |
--duration |
FLOAT |
Minutes --deliver keeps trying (default 15). |
--no-inbox-fallback |
flag | When the tmux socket is unreachable (sandboxed execution context), fail loudly instead of relaying the wake as a file into the recipient's inbox. |
pneumatic whois¶
Resolve a seat name/alias/composed identity to its metadata (display name, crew color, model) — honest about ambiguity.
| option | value | description |
|---|---|---|
QUERY |
argument | |
--json |
flag | Machine-readable output — the cross-language seam (ADR-0011). |
Exit codes¶
Exit-code truth is the contract (never grep -q "✅"): scripts and
seats branch on these, so they are pinned by regression tests.
| code | meaning | where |
|---|---|---|
| 0 | success | every command |
| 1 | failure — including wake's could-not-CONFIRM-delivery, which is NOT proof of a drop (ADR-0013 It-2: inspect the pane, never blind-retry) | every command |
| 2 | usage error (unknown flag/verb; includes the old pre-verb flag signposts) | CLI surface (cli.py, tests/test_cli.py) |
| 5 | permission stall detected | rescue --diagnose (rescue.py, ADR-0002) |
| 10 | wake refused: cooldown — the seat is ALIVE and was woken recently; your inbox brief is the queue | wake (wake.py, ADR-0013, tests/test_deliver.py) |
| 11 | wake refused: the seat is mid-turn RIGHT NOW — aliveness, not absence | wake (Riddle 5's trichotomy, ADR-0013) |
| 12 | wake refused: GONE — no tmux session; the one state where nobody is home | wake (ADR-0013) |
| 20 | recruit DECLINED — the invited model read the brief and said no; a resting state, never an error, and the session is never reaped | recruit --watch (recruit.py, ADR-0020) |
Seat health states¶
pulse/crew classify each seat into one of these (registry.KNOWN_STATES).
A classify_seat_override hook may mint a genuinely novel state — the set
below is the built-in vocabulary, not a closed enum.
CREDITSERRORMISSINGOKPERM-STALLSTALEWAITINGWAKE-QUEUED
Hooks¶
Extend via a local hooks.py, never a fork (ADR-0001). Full contract:
HOOKS.md; machine-readable per-project inventory: pneumatic hooks inventory.
| hook | dispatch | one-line contract |
|---|---|---|
classify_seat_override |
first-result (override) | Replace classify_seat's entire STALE/CREDITS/ERROR/WAITING/OK classification for a seat whose health model doesn't fit that vocabulary (a different harness's own idle/composing states, for instance — Codex's are one real, not hypothetical, case). |
codex_idle_tooltips |
collecting | Additional known idle-composer placeholder strings, alongside pneumatic's own builtin Codex pool (wake.CODEX_IDLE_TOOLTIPS) — for a harness whose TUI shows rotating dimmed tooltips in an empty input box, so the wake composition guard doesn't mistake idle chrome for a real human draft in progress. |
compaction_bookkeeping_texts |
collecting | Additional exact strings recognized as a harness's own synthetic compaction-bookkeeping turn, alongside pneumatic's own builtin ("No response requested."). |
crew_status_overlay |
collecting | A crew-wide judgment dispatched once per pulse invocation, over every seat's already-classified-and-annotated result — not per-seat like the override hooks above (ADR-0001 QST-5). |
detect_permission_stall_override |
first-result (override) | Replace detect_permission_stall's pane-text classification for a harness whose permission-dialog UI doesn't match Claude Code's TUI markers. |
fuel_patterns |
collecting | Additional regexes matched against a seat's last-assistant text to detect a CREDITS-wall (usage-limit/out-of-credits) message, alongside pneumatic's own builtin patterns. |
is_wake_queued_override |
first-result (override) | Replace is_wake_queued's pane-text classification for a harness with a different queued-message UI convention. |
log_event |
collecting | Enrich an event-ledger record before it is written (ADR-0008). |
named_colors |
collecting | Additional name -> hex-color-string translations, alongside pneumatic's own builtin NAMED_COLORS. |
pulse_pane_annotation |
first-result (override) | A third per-seat live-pane check in cmd_pulse, alongside the existing detect_permission_stall/is_wake_queued (ADR-0001 QST-6) — for a signal JSONL-only classification structurally can't provide (the motivating case: a generic busy/idle read for a work-dispatch loop, where a fresh JSONL entry looks identical whether a seat is mid-turn-working or genuinely idle). |