/execute-task
Execute the next TaskMaster task using the implementation plan with CDD verification. Picks the next ready task, matches it to the plan step, implements via a dispatched subagent, verifies subtasks with evidence, marks the task done, and loops until every task is complete. Wraps
$ npx -y skills add anombyte93/prd-taskmaster --skill execute-task --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/execute-task
Context preview
The summary Claude sees to decide when to auto-load this skill.
Execute the next TaskMaster task using the implementation plan with CDD verification. Picks the next ready task, matches it to the plan step, implements via a dispatched subagent, verifies subtasks with evidence, marks the task done, and loops until every task is complete. Wraps
SKILL.md
execute-task.SKILL.mdname: execute-task
description: >-
Execute the next TaskMaster task using the implementation plan with CDD
verification. Picks the next ready task, matches it to the plan step,
implements via a dispatched subagent, verifies subtasks with evidence,
marks the task done, and loops until every task is complete.
Wraps the TaskMaster next -> in-progress -> done lifecycle with CDD
GREEN / RED / BLUE verification and the plugin's triple-verification
rule. Autonomous by design — no user prompts inside the loop.
user-invocable: true
allowed-tools:
- Read
- Write
- Edit
- Bash
- Skill
- Agent
- ToolSearch
- mcp__atlas-engine
- mcp__plugin_prd_go
- mcp__plugin_prd-taskmaster_go
- mcp__plugin_atlas-go_go
execute-task
The execution loop. Three sources converge:
- **Plan** (HOW) — `docs/superpowers/plans/*.md` produced by GENERATE
- **TaskMaster** (WHAT) — `.taskmaster/tasks/tasks.json` with
dependencies and complexity scores
- **CDD** (PROOF) — acceptance cards per task, evidence-gated
execute-task is the single skill that runs the full build from "tasks are ready" to SHIP_CHECK_OK. It is autonomous — no AskUserQuestion inside the loop. Any gap that would require user input is surfaced through the recon escalation ladder (step 11) or the inbox (steps 4 and 8), never via a modal prompt.
Entry
This skill is invoked either:
1. Directly by the user once HANDOFF has completed and a task-execution mode (A/B/C) has been dispatched, **or** 2. By the `prd-taskmaster` orchestrator when `current_phase` is `EXECUTE`.
On entry, confirm that:
- `.atlas-ai/state/pipeline.json` exists and records `phase: EXECUTE`
- `.taskmaster/tasks/tasks.json` exists with at least one ready task
- `.atlas-ai/customizations/system-prompt-template.md` is present (may be
empty — absence is a setup bug, empty is fine)
If any of the above are missing, report the gap and halt. Do NOT attempt to bootstrap the missing artifact from inside this loop — that is the orchestrator's job.
Cycle (per iteration)
Each pass through this cycle moves exactly one TaskMaster task from `pending` to `done`. Do the 13 steps in order. Do not skip.
> **Task-start SHA** — at the very beginning of each iteration (before step 2), > capture the current git HEAD: > > ```bash > task_start_sha=$(git rev-parse HEAD) > ``` > > Record `$task_start_sha` in the execute-log row for this iteration. It is the > oracle of truth for every reachability sweep in step 9b below: "what modules > did THIS task add?" is `diff $task_start_sha..HEAD`. The oracle flow already > issues per-task start commits; this surfaces the same value in the loop prose.
1. **Heartbeat check**: verify the execute-task heartbeat timer is running. If missing, register one via `CronCreate("execute-task-heartbeat", "* * * * *", "echo heartbeat")`. Abort the iteration if the timer cannot be created — a missing heartbeat means a missing stuck-session detector, and that is load-bearing.
2. **Inbox reconciliation**: read `.atlas-ai/state/pipeline.json`, `.taskmaster/tasks/tasks.json`, and the current TodoWrite list. Diff them. If the three are stale by more than 5 tasks (i.e. TodoWrite says 10 done but tasks.json says 3 done), report the diff and halt — do not paper over bookkeeping drift by silently reconciling.
3. **Pick next task**: run backend op `next` with the plugin's project-root pointer. Use exactly this invocation:
python3 script.py next-task
Parse the JSON result.
- If no ready tasks and all tasks are `done`, run `.atlas-ai/ship-check.py`,
emit SHIP_CHECK_OK on success, exit the loop.
- If no ready tasks but pending tasks exist, the dependency graph is
deadlocked — report and halt.
4. **Load plan step**: search for the matching task ID in this priority order, halting only after all three fail:
1. `docs/superpowers/plans/*.md` (the superpowers GENERATE default output) 2. `.taskmaster/docs/plan.md` (the prd-taskmaster HANDOFF default output, whose path is also recorded in `pipeline.json:phase_evidence.HANDOFF.plan_file_path`) 3. Any custom path declared in `pipeline.json:phase_evidence.HANDOFF.plan_file_path` (in case a future handoff variant writes elsewhere)
If none of the three contains the matching task ID, the task was invented downstream of the plan — mark the task `blocked`, inbox the parent orchestrator with `message_type="blocker"`, and continue to the next iteration.
(Codified 2026-06-04 — yesterday's ai-human-tasker run had its plan at `.taskmaster/docs/plan.md` only, while this step previously read `docs/superpowers/plans/*.md` exclusively. The controller silently improvised; a cold-start successor would have hit the `blocked` path on every task.)
5. **Generate CDD card**: convert the task's `subtasks` field into a `testing_plan`. Each subtask becomes a verifiable check with a concrete evidence path (file, command output, or test name). Write the card to `.atlas-ai/cdd/task-<id>.json`. A task without subtasks is treated as a single RED card.
6. **Set in-progress**: run backend op `set-status` from the current project root:
python3 script.py set-status --id <N> --status in-progress
This flip is observable by watchers and anchors the iteration in TaskMaster itself.
7. **Dispatch implementer subagent** — NEVER in-session. The controller must:
- Provide the FULL task text to the subagent. Never tell the subagent to
"read tasks.json" — per spec §12, the controller serialises the task into the dispatch prompt.
- Inject the plugin customisation block at `.atlas-ai/customizations/system-prompt-template.md`
into the subagent's system prompt. If the file is empty, inject nothing and continue.
- Tier the model by TaskMaster complexity score:
- `1-4 fast` — use the fast tier (Haiku-class)
- `5-7 standard`
Read more
name: execute-task description: >- Execute the next TaskMaster task using the implementation plan with CDD verification. Picks the next ready task, matches it to the plan step, implements via a dispatched subagent, verifies subtasks with evidence, marks the task done, and loops until every task is complete. Wraps the TaskMaster next -> in-progress -> done lifecycle with CDD GREEN / RED / BLUE verification and the plugin's triple-verification rule. Autonomous by design — no user prompts inside the loop. user-invocable: true allowed-tools: - Read - Write - Edit - Bash - Skill - Agent - ToolSearch - mcp__atlas-engine - mcp__plugin_prd_go - mcp__plugin_prd-taskmaster_go - mcp__plugin_atlas-go_go
execute-task
The execution loop. Three sources converge:
- **Plan** (HOW) — `docs/superpowers/plans/*.md` produced by GENERATE
- **TaskMaster** (WHAT) — `.taskmaster/tasks/tasks.json` with
dependencies and complexity scores
- **CDD** (PROOF) — acceptance cards per task, evidence-gated
execute-task is the single skill that runs the full build from "tasks are ready" to SHIP_CHECK_OK. It is autonomous — no AskUserQuestion inside the loop. Any gap that would require user input is surfaced through the recon escalation ladder (step 11) or the inbox (steps 4 and 8), never via a modal prompt.
Entry
This skill is invoked either:
1. Directly by the user once HANDOFF has completed and a task-execution mode (A/B/C) has been dispatched, **or** 2. By the `prd-taskmaster` orchestrator when `current_phase` is `EXECUTE`.
On entry, confirm that:
- `.atlas-ai/state/pipeline.json` exists and records `phase: EXECUTE`
- `.taskmaster/tasks/tasks.json` exists with at least one ready task
- `.atlas-ai/customizations/system-prompt-template.md` is present (may be
empty — absence is a setup bug, empty is fine)
If any of the above are missing, report the gap and halt. Do NOT attempt to bootstrap the missing artifact from inside this loop — that is the orchestrator's job.
Cycle (per iteration)
Each pass through this cycle moves exactly one TaskMaster task from `pending` to `done`. Do the 13 steps in order. Do not skip.
> **Task-start SHA** — at the very beginning of each iteration (before step 2), > capture the current git HEAD: > > ```bash > task_start_sha=$(git rev-parse HEAD) > ``` > > Record `$task_start_sha` in the execute-log row for this iteration. It is the > oracle of truth for every reachability sweep in step 9b below: "what modules > did THIS task add?" is `diff $task_start_sha..HEAD`. The oracle flow already > issues per-task start commits; this surfaces the same value in the loop prose.
1. **Heartbeat check**: verify the execute-task heartbeat timer is running. If missing, register one via `CronCreate("execute-task-heartbeat", "* * * * *", "echo heartbeat")`. Abort the iteration if the timer cannot be created — a missing heartbeat means a missing stuck-session detector, and that is load-bearing.
2. **Inbox reconciliation**: read `.atlas-ai/state/pipeline.json`, `.taskmaster/tasks/tasks.json`, and the current TodoWrite list. Diff them. If the three are stale by more than 5 tasks (i.e. TodoWrite says 10 done but tasks.json says 3 done), report the diff and halt — do not paper over bookkeeping drift by silently reconciling.
3. **Pick next task**: run backend op `next` with the plugin's project-root pointer. Use exactly this invocation:
python3 script.py next-task
Parse the JSON result.
- If no ready tasks and all tasks are `done`, run `.atlas-ai/ship-check.py`,
emit SHIP_CHECK_OK on success, exit the loop.
- If no ready tasks but pending tasks exist, the dependency graph is
deadlocked — report and halt.
4. **Load plan step**: search for the matching task ID in this priority order, halting only after all three fail:
1. `docs/superpowers/plans/*.md` (the superpowers GENERATE default output) 2. `.taskmaster/docs/plan.md` (the prd-taskmaster HANDOFF default output, whose path is also recorded in `pipeline.json:phase_evidence.HANDOFF.plan_file_path`) 3. Any custom path declared in `pipeline.json:phase_evidence.HANDOFF.plan_file_path` (in case a future handoff variant writes elsewhere)
If none of the three contains the matching task ID, the task was invented downstream of the plan — mark the task `blocked`, inbox the parent orchestrator with `message_type="blocker"`, and continue to the next iteration.
(Codified 2026-06-04 — yesterday's ai-human-tasker run had its plan at `.taskmaster/docs/plan.md` only, while this step previously read `docs/superpowers/plans/*.md` exclusively. The controller silently improvised; a cold-start successor would have hit the `blocked` path on every task.)
5. **Generate CDD card**: convert the task's `subtasks` field into a `testing_plan`. Each subtask becomes a verifiable check with a concrete evidence path (file, command output, or test name). Write the card to `.atlas-ai/cdd/task-<id>.json`. A task without subtasks is treated as a single RED card.
6. **Set in-progress**: run backend op `set-status` from the current project root:
python3 script.py set-status --id <N> --status in-progress
This flip is observable by watchers and anchors the iteration in TaskMaster itself.
7. **Dispatch implementer subagent** — NEVER in-session. The controller must:
- Provide the FULL task text to the subagent. Never tell the subagent to
"read tasks.json" — per spec §12, the controller serialises the task into the dispatch prompt.
- Inject the plugin customisation block at `.atlas-ai/customizations/system-prompt-template.md`
into the subagent's system prompt. If the file is empty, inject nothing and continue.
- Tier the model by TaskMaster complexity score:
- `1-4 fast` — use the fast tier (Haiku-class)
- `5-7 standard`
Showing the first part of this file.
prd-taskmaster by Atlas AI is an open-source engine for Claude Code that takes a one-line goal, interviews you like a senior PM, writes a **graded, placeholder-proof PRD, compiles it into a **dependency-ordered task graph, and executes every task with
Other skills on prd.
- /atlas
The Atlas engine — turn any goal into a validated PRD and an executable, verified task graph. Brand-name entrypoint; a thin alias for the `go` orchestrator. Use when the user types /prd:atlas, says "I want to build", or asks for a PRD / task-driven build.
Open skill - /customise-workflow
Customise the prd-taskmaster plugin workflow via curated brainstorm questions. The AI asks, the user answers in plain English, and the skill writes their preferences to .atlas-ai/config/atlas.json. Future runs of prd-taskmaster read that file and apply user preferences to phase
Open skill - /discover
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery. Delegates to superpowers:brainstorming in Interactive Mode (one adaptive question at a time), or self-brainstorms in Autonomous Mode when no user is present. Intercepts before the brainstorming chain hands off
Open skill - /execute-fleet
Phase execution skill for licensed Atlas Fleet runs. Use when HANDOFF has selected Atlas Fleet and the project should be executed across isolated launcher worktrees with inbox-based result collection, verified CDD cards, sequential integration merges, and one final PR.
Open skill - /expand-tasks
Expand all TaskMaster tasks with deep research before coding begins. Reads tasks.json, launches parallel research agents per task in waves using the research-expander agent. Writes findings back to tasks.json. Part of the prd-taskmaster toolkit. Use after PRD is parsed and
Open skill - /generate
Phase 2 of the prd-taskmaster pipeline: spec generation and task parsing. Loads a template (comprehensive|minimal), fills it with DISCOVER-phase constraints and answers, validates the spec (placeholders_found, grade thresholds), parses the PRD into tasks via task-master, runs
Open skill

