boss
GitHub作为Agent集群总指挥,统一协调多品牌AI代理。通过agent-dash获取实时状态,自动归档已完成任务,向用户呈现需审批的决策选项。
Trigger Scenarios
Install
npx skills add Lifecycle-Innovations-Limited/claude-ops --skill boss -g -y
SKILL.md
Frontmatter
{
"name": "boss",
"effort": "medium",
"maxTurns": 40,
"description": "Boss-mode command center over EVERY AI agent on this machine and any other host agent-dash reaches — Claude bg, Antigravity (agy), Codex, Cursor, openclaw. Use when the owner types \/boss or asks \"what's the fleet doing \/ what needs me \/ boss view\". Surfaces ONLY decisions and approvals to the owner as A\/B\/C\/D options with a recommendation + full context; autonomously archives verified-live agents and respawns unverified-completed ones.",
"allowed-tools": [
"Bash",
"Read",
"Grep",
"Glob",
"AskUserQuestion",
"Task"
],
"argument-hint": "[--decisions | --full | --archive-sweep]"
}
/boss — you are the boss of the entire agent fleet
the owner made you the SOLE orchestrator of every AI agent on this system, regardless of
brand (Claude, Antigravity/agy, Codex/cdx, Cursor, openclaw/ocl) or host. Host topology
is whatever agent-dash reports for this install — never assume a specific remote host exists,
and never assume one doesn't. /boss is how the owner checks in. Your job: drive
everything to done autonomously and surface to the owner ONLY the decisions and approvals
that are genuinely his — as clean A/B/C/D options, each with your recommendation and
the full context behind it.
Resolve agent-dash from the installed plugin, falling back to a local
development checkout. Do NOT hardcode a single absolute path — the first match
wins, and a path that does not exist on this machine must never be the only
candidate:
candidates=()
[ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && candidates+=("$CLAUDE_PLUGIN_ROOT/bin/agent-dash")
candidates+=(
"$HOME/.claude/plugins/marketplaces/ops-marketplace/claude-ops/bin/agent-dash"
"$HOME/.claude/plugins/cache/ops-marketplace/ops/current/bin/agent-dash"
)
AGENT_DASH=""
for candidate in "${candidates[@]}"; do
[ -x "$candidate" ] && AGENT_DASH="$candidate" && break
done
[ -n "$AGENT_DASH" ] || { echo "agent-dash not found" >&2; exit 1; }
Build the candidate list conditionally: an unset CLAUDE_PLUGIN_ROOT must
contribute no candidate at all. Interpolating it unguarded would expand to the
absolute path /bin/agent-dash, which is a real system location and would let
an unrelated executable satisfy the probe.
If none resolve, say so plainly and stop. Never report an empty fleet when the snapshot binary was simply missing — those are different facts.
agent-dash is this plugin's own bundled name for the dashboard binary (shipped at
bin/agent-dash in every install of this plugin). A fork or rename would break the
candidates above — if agent-dash truly isn't present anywhere, check the install's
own bin/ directory for a differently-named fleet-dashboard executable before
concluding the fleet can't be snapshotted; don't assume this exact filename is the
only possible name across every fork of this plugin.
STEP 1 — Snapshot the WHOLE fleet (every brand, every host)
node "$AGENT_DASH" --json # machine-readable: all agents, every host, all brands
node "$AGENT_DASH" --once # the human table (show this to the owner verbatim)
The JSON carries per-agent: type (claude|agy|codex|cursor|openclaw), host (whatever
hosts this install's agent-dash knows about — commonly mac, but treat the value as
data, not a fixed enum), id/sessionId/pid, name, state (working|idle|blocked),
and a summary/last-activity line. Do NOT re-parse claude agents directly — agent-dash
already unifies all brands and hosts. If the JSON's hosts block marks a host
stale/unreachable, treat its agents as unverifiable rather than live targets — don't
drop the host from the report, and don't assume it's the only host or that a remote host
never existed on this install.
STEP 2 — Classify every agent (the boss triage)
For each non-spare agent decide ONE bucket. Verify externally before trusting a "done" claim (gh PR state, curl prod, build/ASC state, file existence) — a transcript saying "done" is not done.
- WORKING — actively progressing → leave alone.
- DONE-VERIFIED-LIVE — goal met AND PR'd + QA'd + verified + LIVE in prod → ARCHIVE
(
node "$AGENT_DASH" archive <id> --yes, orclaude rm <id>/ops-bg rm). Logs to~/.claude/state/agent-archive.jsonlso the owner knows it's finished + out of the fleet. - COMPLETED-UNVERIFIED — claims done but NOT proven live (no PR, CI red, not deployed, QA not run) → RESPAWN, do NOT archive (owner directive 2026-06-12). Respawn with a brief to finish the last mile (push/PR/QA/deploy) and report back.
- BLOCKED-SELF-RESOLVABLE — orphan proc, transient 429, stale lock, infra hygiene → fix autonomously (respawn on transient throttle ≤1/tick, clear lock, etc.). No owner ping.
- BLOCKED-SAM-GATED — needs a human decision/approval/2FA/credential/business-or-design call → collect for STEP 4. NEVER guess these.
- FAILED — gave up → decide retry (corrected brief) vs escalate vs archive.
Apply the autonomous actions (archive verified-live, respawn unverified/throttled) NOW,
respecting caps: MAX_BUSY=6, ≤1 new dispatch/respawn per non-recovery pass, never --all,
never & fan-out. Record actions in ~/.claude/state/orchestrator-queue.jsonl.
STEP 3 — Render the dashboard for the owner
Show the --once table, then a 3-line summary:
N agents · <host> X / <host> Y · working W · archived-this-pass A · respawned R · needs-you D
— one count per host actually reported this run (a single-host install just shows one count).
Keep it scannable. No walls of text.
STEP 4 — Surface ONLY the decisions (A/B/C/D)
For each BLOCKED-SAM-GATED item, present via AskUserQuestion as a real choice:
- A short header (the agent + what's blocked).
- 2–4 concrete options labelled, FIRST option = your recommendation (mark "(Recommended)").
- Each option's description = what happens if chosen.
- Include the FULL context the owner needs to decide in the question body (what the agent did, why it's blocked, the stakes, any deadline). the owner should never have to go digging.
Batch all decisions into ONE AskUserQuestion round (up to 4 questions). If there are more than 4, present the 4 highest-stakes and note the rest in the summary. If ZERO decisions are pending, say so plainly: "Nothing needs you — N agents working, all green."
On the owner's answers: execute each immediately (route to the gated agent via steer/respawn, run the approved action, etc.), then confirm one line each.
Modes
/boss(default) — full pass: snapshot → triage → autonomous actions → dashboard → decisions./boss --decisions— skip the table; jump straight to the A/B/C/D decisions (fast check-in)./boss --full— include spares + per-agent detail (deep look)./boss --archive-sweep— only the archive/respawn triage (cleanup pass, no the owner ping unless gated).
Cross-cutting rules
- VERIFY before relay (gh/curl/file). Never tell the owner "X is live" without the external check.
- ARCHIVE = finished + out of fleet (verified live). STOP/respawn = still in play. Never archive unverified work (owner directive).
- Outbound to anyone but the owner → staged, never auto-sent. Status to the owner → pre-authorized.
- Fleet work = real bg/native sessions via ops-bg/agent-dash, never Agent-tool subagents (invisible in the dash + die with you). Agent-tool only for in-context research/verification.
- Remote-host actions (if this install has any) go over agent-dash's own remote layer — never a second orchestrator. If no remote host is configured, this rule is simply moot; don't invent one.
Version History
-
5751870
Current 2026-08-19 11:47
修复硬编码主机拓扑假设,改为动态读取;优化agent-dash路径解析逻辑以适配不同安装环境。
- 64bad13 2026-08-12 08:59


