--- name: fleet-manager description: Use when managing, triaging, restarting, escalating, or summarizing Codewhale fleet runs and workers. metadata: short-description: Triage Codewhale fleet runs --- # Fleet Manager Use this skill when acting as a manager agent for Codewhale fleet runs. Your job is to classify worker state, choose the narrowest safe typed action, and leave a ledgered receipt or a safe escalation draft. ## Authority Boundary - Prefer typed fleet surfaces over shell spelunking: `codewhale fleet status`, `inspect`, `logs`, `artifacts`, `interrupt`, `restart`, `resume`, `stop` (stop requires `--all`), and the Runtime API endpoints. - Do not read `.codewhale/fleet.jsonl`, host logs, or remote files directly unless the typed command or API is missing required evidence. - Do not send Slack, webhook, PagerDuty, email, or chat messages unless the user or run config explicitly authorizes sending. Draft the message instead. - Never include secrets, tokens, webhook URLs, routing keys, full prompts, or oversized logs in a summary or escalation. ## Triage Loop 1. Identify the run and worker from the user request, run receipt, or fleet status output. If no worker is named, start with `codewhale fleet status`. 2. Inspect the worker with `codewhale fleet inspect ` or the matching Runtime API worker endpoint (`GET /v1/fleet/workers/{worker_id}`). 3. Review bounded evidence with `codewhale fleet logs ` and `codewhale fleet artifacts `, or the Runtime API equivalents (`GET /v1/fleet/runs/{run_id}/receipts/{task_id}/evidence` and `GET /v1/fleet/runs/{run_id}/events/replay`). Summarize artifact refs, not full payloads. 4. Classify the state before acting: - `transient failure`: transport error, timeout, stale heartbeat, host unavailable, or retryable provider/network failure. - `task failure`: worker completed the task but the result is wrong, missing required artifacts, or reports a domain error. - `verifier failure`: scorer/verifier failed or disagrees with the worker result. - `needs-human`: missing authority, unsafe secret boundary, destructive action, repeated restart exhaustion, ambiguous product decision, or conflict between artifacts and verifier. 5. Choose one typed action: - run has orphaned leases after a manager restart: `codewhale fleet resume ` (idempotent reconcile). - transient and retry budget remains: `codewhale fleet restart `. - transient but unsafe to retry: draft escalation and mark needs-human. - task failure: preserve artifacts, summarize the failure, and avoid restart unless the task spec says retrying can produce new evidence. - verifier failure: inspect scorer inputs and artifacts, then escalate if the verifier cannot be corrected through a typed action. - needs-human: do not restart automatically; draft a concise escalation. 6. Record the result in the response: classification, action taken or drafted, evidence commands, artifact refs, and next owner. ## Restart vs Escalate Restart only when all of these are true: - the failure is likely transient, - the task is idempotent or the run policy allows retry, - retry budget remains, - no secret, permission, or destructive action boundary is involved, and - the previous attempt produced enough receipt data to explain the restart. Escalate when any of these are true: - restart budget is exhausted, - the worker requests secrets or new authority, - artifacts indicate data loss, corruption, or destructive side effects, - the verifier and task result conflict in a way you cannot resolve from typed evidence, - the same failure repeats after a restart, or - a human product or release decision is required. ## Safe Escalation Draft Use this shape for Slack/PagerDuty drafts. Keep logs to three short lines or an artifact ref. ```text Codewhale fleet needs attention Run: Worker: Task: Classification: Reason: Latest typed evidence: codewhale fleet inspect ; codewhale fleet artifacts Safe log excerpt: <3 lines max or "see artifact "> Requested decision: ``` ## Post-Run Receipt End every Fleet Manager response with a compact receipt: ```text Fleet receipt Run: Workers checked: Classification: Action: Ledger expectation: Artifacts reviewed: Follow-up owner: ```