plugins/ainb-fleet/skills/standup/SKILL.md
Show fleet status — every claude session running on the host, merged across ainb + claude-peers broker + background jobs. Use when you need to enumerate sessions before composing an action, see which sessions have a peer registered (broker-routable) vs tmux-only, check the `summary` of each session, or pipe the list into jq for filtering. Default output: text table. Pass --format json for LLM consumption.
npx skillsauth add stevengonsalvez/agents-in-a-box ainb-fleet:standupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
List every claude session across the host. Three sources merged + deduped by cwd.
ainb fleet standup # text table (default)
ainb fleet --format json standup # JSON for piping
| field | meaning |
|---|---|
| id | session id (peer id preferred, else ainb session_id, else bg job id) |
| cwd | working dir — primary dedupe key |
| pid | OS pid (when known — peers + bg jobs publish; ainb does not) |
| tmux_session | tmux session name if running in tmux |
| workspace_name | ainb workspace name |
| worktree_path | ainb worktree path |
| peer_id | broker peer id (if registered) |
| sources | array — subset of ["ainb","peers","jobs"] |
| summary | peer-published summary (may start with WAITING: to flag block) |
| last_seen_ms | unix ms of last activity any source observed |
Just names:
ainb fleet --format json standup | jq -r '.[].tmux_session // .workspace_name'
Sessions in a specific repo:
ainb fleet --format json standup | jq '.[] | select(.cwd | contains("shotclubhouse"))'
Only sessions with peer registration (broker-routable):
ainb fleet --format json standup | jq '.[] | select(.peer_id != null)'
Group by source mix:
ainb fleet --format json standup \
| jq -r 'group_by(.sources | sort | join(",")) | .[] | "\(.[0].sources | sort | join(",")): \(length)"'
/ainb-fleet:needsAfter rendering standup, scan the result for sessions whose summary
contains AskUserQuestion (literal string — the JSONL-synthesised
summary surfaces this when the last assistant turn fired the tool).
If ANY such session exists, the standup MUST NOT stop at the standup table. Immediately:
Tell Stevie explicitly:
N session(s) blocked on AskUserQuestion — firing `/ainb-fleet:needs`
to surface the questions + answer them in one batch.
Invoke the ainb-fleet:needs skill (via the Skill tool) OR run
ainb --format json fleet needs directly and render the Jarvis HUD
per the ainb-fleet:needs SKILL.md. No second Stevie-typed slash
command required — the handover is automatic.
Detection one-liner:
ainb --format json fleet standup \
| jq -r '[.[] | select(.summary // "" | contains("AskUserQuestion"))] | length'
If 0 → skip the chain, standup is the final word. If >0 → chain immediately.
Rationale: standup is a snapshot; the moment it reveals an
answerable question, the fleet's center control panel (needs)
already knows how to extract the structured options + route the
answer back. Don't make Stevie type another slash command for a
mechanically inevitable next step.
Sub-100ms cold start. Reads broker SQLite directly + shells out to ainb list
once. Safe to call frequently.
documentation
Report reflect drain spend over a time window — tokens split by cached (cache_read), uncached writes (cache_creation), and io (input+output), with a $ estimate, grouped by day / outcome / model / transcript. Reads the drainer's cost log and surfaces outlier runs and cache-reuse health (the 41.5M-token failure mode = low cache reuse + high cache writes). Use to answer "what is reflection costing me" for the last day / week.
testing
Ordered multi-step prompts to fleet targets, ack-gated between steps via JSONL assistant-turn-end detection. Use for cycles like disconnect→reconnect→verify, or any flow where step N+1 requires step N to have completed first. The skill BLOCKS until each target's transcript shows the next assistant turn finishing OR per-step timeout fires (default 300s).
development
Center control panel — enumerate every claude session that is blocked waiting on something: a user answer (AskUserQuestion fired), an API error retry, an idle assistant turn-end with no follow-up, or an explicit WAITING: marker. Returns rich JSON with signal kind + context per session. Use this when you've stepped away from the fleet and want one place to see everything that wants your attention and answer it.
development
Workflow-backed Jarvis control panel. Runs the deterministic `hangar` workflow with verb=needs (discover → enrich → prioritize), renders the Jarvis HUD from its render-ready cards, fires AskUserQuestion per blocked session, and routes each answer back via tmux send-keys (broker fallback only). Requires the workflow gate (CLAUDE_CODE_WORKFLOWS=1). If the gate is off, fall back to the prompt-driven `/ainb-fleet:needs` skill.