Skill508 repo starsupdated today
execute-fleet
execute-fleet orchestrates parallel task execution across isolated worker sessions using the Atlas Fleet system, routing individual tasks to appropriately-sized Claude models based on complexity analysis. Use it when executing interdependent workflows from a committed git state with premium-tier capabilities enabled, requiring deterministic wave-based scheduling with centralized state management and worker isolation via worktrees.
Install in Claude Code
Copygit clone --depth 1 https://github.com/anombyte93/prd-taskmaster /tmp/execute-fleet && cp -r /tmp/execute-fleet/skills/execute-fleet ~/.claude/skills/execute-fleetThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# execute-fleet
Atlas Fleet is the premium parallel sibling of `execute-task`. It keeps the
same proof discipline, but the orchestrator owns the scoreboard while workers
only build inside isolated worktrees.
## Hard Gates
Before the first wave, all gates must pass. If any gate fails, report the gap
and stop; do not fall back to solo execution from inside this skill.
1. `mcp__plugin_prd_go__detect_capabilities()` reports
`tier: "premium"` and atlas-launcher MCP registration/aliveness.
2. `mcp__atlas-launcher__inbox_read` is callable for this session.
3. `.taskmaster/tasks/tasks.json` exists.
4. `.taskmaster/reports/task-complexity-report.json` exists.
5. `git status --short` is empty. Fleet starts only from a committed base.
6. The integration branch policy is clear: use `fleet-integration`; main is never auto-touched.
**SOLE-WRITER RULE:** only this orchestrator writes
`.taskmaster/tasks/tasks.json` and `.atlas-ai/state/pipeline.json`. Workers
must never edit those files. The orchestrator may update task state only
through TaskMaster or the plugin pipeline MCP, and only after verification.
## Wave Loop
Repeat until no runnable tasks remain:
1. Call `mcp__plugin_prd_go__compute_fleet_waves(concurrency=<N>, tag=<tag>)`.
Use the returned frontier as the only dispatch source. If it reports a
deadlock, render status, mark the blocked set, and stop dispatching those
tasks.
2. For each chunk in the current wave, spawn exactly one worker:
`mcp__atlas-launcher__session_spawn(isolation="worktree", report_to=<this session>, model=<routing[task_id] model part>, prompt=<worker prompt>)`.
**Model is NEVER left default**: `compute_fleet_waves` returns a `routing`
map (task id -> backend:model) from the capability ladder — Fable for the
hardest/longest-running (frontier tier), down the cost-efficiency curve to
haiku for trivial tasks. Pass the model part explicitly; non-claude backends
require experimental_backends=true and the launcher backend param.
The prompt must include the full task JSON inline; never tell workers to
read shared `tasks.json`.
3. Inspect the spawn result. If `prompt_injected` is false, re-kick once with
`mcp__atlas-launcher__session_send` using the same worker prompt, then
confirm injection/readiness. If it is still false, treat that worker as
failed and apply the retry policy below.
4. Render the fleet status view after the wave starts and after each wave
transition.
5. Poll `mcp__atlas-launcher__inbox_read` for terminal worker messages. The
only accepted terminal status vocabulary is `DONE`, `DONE_WITH_CONCERNS`,
`NEEDS_CONTEXT`, or `BLOCKED`; any other terminal word is a protocol
failure and counts as a worker failure.
6. On a completion message, verify the branch, never the narration:
- The worker branch contains `.atlas-ai/cdd/task-<id>.json`.
- No `.atlas-ai/evidence/` file in that branch contains a non-zero
`Exit status N` line.
- The branch changed only its own worktree scope and did not edit
`.taskmaster/tasks/tasks.json` or `.atlas-ai/state/pipeline.json`.
7. Never mark a task done without the CDD card. Missing card means the worker
did not satisfy the contract, regardless of any `DONE` message.
8. Merge verified worker branches into `fleet-integration` sequentially, one
at a time. After each merge, run the checker/build gate expected for the
project before merging the next branch.
9. Mark the task done only after the merge gate passes:
`python3 script.py set-status --id <id> --status done`.
10. Recompute waves after every accepted merge. Do not keep dispatching from a
stale frontier.
## Worker Prompt Template
Embed this template verbatim for each worker, replacing placeholders before
dispatch:
```text
WORKER_CONTRACT_ORCHESTRATOR_REPORT_TO
You are an Atlas Fleet worker. Your orchestrator is <ORCHESTRATOR_ID>. Report every question, blocker, and terminal result to <REPORT_TO_SESSION>.
WORKER_CONTRACT_FULL_TASK_JSON_INLINE
Your assigned task JSON is inline below. Treat this as the source of truth. Do not read shared .taskmaster/tasks/tasks.json.
<FULL_TASK_JSON>
WORKER_CONTRACT_WORKTREE_BRANCH
Work only in this isolated worktree and branch:
worktree: <WORKTREE_PATH>
branch: <WORKER_BRANCH>
WORKER_CONTRACT_CDD_CARD
Before reporting any terminal status, write this CDD card in your worktree: .atlas-ai/cdd/task-<id>.json. The card must list the checks you ran and the evidence paths that prove them. Evidence files under .atlas-ai/evidence/ must contain the FINAL verification run ONLY (one green run, one exit-status line) — intermediate TDD red runs go to .atlas-ai/logs/, never evidence/ (ship-check Gate 5 reads every Exit status line in evidence/ as final-state proof).
WORKER_CONTRACT_TERMINAL_STATUS
End with exactly one terminal status: DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED.
Report it via mcp__atlas-launcher__inbox_send(target_session=<REPORT_TO_SESSION>, message_type="task_handoff", payload=<JSON string with at least {"task_id": <id>, "status": "<terminal status>", "branch": "<worktree branch>", "cdd_card": ".atlas-ai/cdd/task-<id>.json"}>, sender_session=<your session name>). The launcher message_type allowlist is task_handoff | notification | data | request | heartbeat — terminal reports use task_handoff; the status lives INSIDE the payload JSON.
WORKER_CONTRACT_HARD_RULES
Hard rules: never edit .taskmaster/tasks/tasks.json or .atlas-ai/state/pipeline.json; never git push; commit only in your own worktree branch.
WORKER_CONTRACT_QUESTIONS_INBOX
Ask questions before building if context is missing: use mcp__atlas-launcher__inbox_send(target_session=<REPORT_TO_SESSION>, message_type="request", payload=<your question as a string>, sender_session=<your session name>). ("question"/"completion"/"blocker" are template intents, not runtime message types — see docs/INTEGRATION-prd-taskmaster.md in the atlas-launcher repo, contract v1.)
```
## Failure Paths
- S