Task preparation skill for spec-driven workflows. Reads specifications, identifies next actionable tasks, and creates detailed execution plans. Use when ready to implement a task from an existing spec - bridges the gap between planning and coding.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
reference.mdStart -> Read Work Mode (Step 0)
|
+-- single mode --> Select Task -> Plan -> Approve -> Implement -> Complete
|
+-- autonomous mode --> Phase Loop (auto-complete all tasks) -> Summary
foundry-mcp). Tools use the router+action pattern: mcp__plugin_foundry_foundry-mcp__<router> with action="<action>".The skill only interacts with specs via MCP tools:
mcp__plugin_foundry_foundry-mcp__task action="prepare"mcp__plugin_foundry_foundry-mcp__task action="info"mcp__plugin_foundry_foundry-mcp__spec action="find"mcp__plugin_foundry_foundry-mcp__task action="query"Direct JSON access (Read(), cat, jq, grep, etc.) is prohibited.
Gate key decisions with AskUserQuestion (MANDATORY):
Anti-Pattern: Never use text-based numbered lists. Always use AskUserQuestion for structured choices.
This skill must NEVER invoke itself or Skill(sdd-next). The only valid callers are:
/sdd-next command (entry point)If you find yourself about to call Skill(sdd-next) from within this skill, STOP and proceed with the workflow instead. The skill handles the complete task lifecycle - there is no need to re-invoke it.
For detailed context gathering patterns, see
reference.md#context-gathering-best-practicesFor agent delegation patterns (when to use sdd-planner), seereference.md#agent-delegation
Execute one task at a time with explicit user approval.
IMPORTANT: If this skill was invoked from the /sdd-next command with context indicating "Active spec detected", the spec has already been identified. Skip this step and proceed directly to Step 3.2.
Only execute this step if entering the skill directly (not via command):
mcp__plugin_foundry_foundry-mcp__spec action="find"mcp__plugin_foundry_foundry-mcp__spec action="find" (filter active)mcp__plugin_foundry_foundry-mcp__task action="prepare" -> surface task id, file, estimates, blockersmcp__plugin_foundry_foundry-mcp__task action="query" -> present shortlist via AskUserQuestionInvoke mcp__plugin_foundry_foundry-mcp__task action="prepare" with the target spec_id. The response contains:
task_data: title, metadata, instructionsdependencies: blocking status (can_start, blocked_by list)context: previous sibling, parent task, phase, sibling files, journal, dependenciesTreat context as the authoritative source. Only fall back to mcp__plugin_foundry_foundry-mcp__task action="info" when the spec explicitly requires absent data.
For context field details and JSON structure, see
reference.md#deep-dive-context-structure
Draft execution plan:
context.sibling_filescontext.parent_taskcontext.phasecontext.previous_sibling.summary for continuityPresent plan via AskUserQuestion:
Before implementing, use Claude Code's built-in subagents for efficient codebase exploration:
| Scenario | Subagent | Thoroughness |
|---|---|---|
| Find related files/patterns | Explore | medium |
| Understand unfamiliar code areas | Explore | very thorough |
| Complex multi-file investigation | general-purpose | N/A |
Example invocation:
Use the Explore agent (medium thoroughness) to find:
- Existing implementations of similar patterns
- Test files for the target module
- Related documentation that may need updates
Benefits of subagent exploration:
For more subagent patterns including autonomous mode usage, see
reference.md#built-in-subagent-patterns
Before coding:
mcp__plugin_foundry_foundry-mcp__task action="update-status" spec_id={spec-id} task_id={task-id} status="in_progress" note="context"
During implementation:
For using
doc-scope --view implementduring implementation, seereference.md#using-doc-scope-during-implementation
After implementation:
Mark task complete using the sdd-update skill:
Skill(foundry:sdd-update) "Complete task {task-id} in spec {spec-id}. Completion note: [Summary of what was accomplished, tests run, verification performed]."
Immediately after completion:
mcp__plugin_foundry_foundry-mcp__task action="prepare" spec_id={spec-id}
For post-implementation checklist, see
reference.md#post-implementation-checklist
in_progressmcp__plugin_foundry_foundry-mcp__task action="block"AskUserQuestionmcp__plugin_foundry_foundry-mcp__task action="unblock" spec_id={spec-id} task_id={task-id} resolution="Brief description"
MUST provide journal content describing:
Example:
Skill(foundry:sdd-update) "Complete task task-2-3 in spec my-spec-001. Completion note: Implemented JWT auth middleware with PKCE flow. All 12 unit tests passing. Manual verification: login flow works in dev environment. Created src/middleware/auth.ts (180 lines) and tests/middleware/auth.spec.ts (45 tests)."
Check task metadata for type: verify or verification_type field via mcp__plugin_foundry_foundry-mcp__task action="info".
| verification_type | Action |
|---|---|
"run-tests" | Invoke Skill(foundry:run-tests) or use mcp__plugin_foundry_foundry-mcp__test action="run" |
"fidelity" | Invoke Skill(foundry:sdd-fidelity-review) or use mcp__plugin_foundry_foundry-mcp__review action="fidelity" |
After verification completes:
AskUserQuestion to get approval before marking complete# Discovery
mcp__plugin_foundry_foundry-mcp__spec action="find" status="active"
mcp__plugin_foundry_foundry-mcp__spec action="list" status="active"
# Task Selection
mcp__plugin_foundry_foundry-mcp__task action="prepare" spec_id={spec-id} # Primary - includes all context
mcp__plugin_foundry_foundry-mcp__task action="next" spec_id={spec-id} # Simpler alternative - just task ID
# Task Operations
mcp__plugin_foundry_foundry-mcp__task action="query" spec_id={spec-id} status="pending"
mcp__plugin_foundry_foundry-mcp__task action="list-blocked" spec_id={spec-id}
mcp__plugin_foundry_foundry-mcp__task action="unblock" spec_id={spec-id} task_id={task-id} resolution="reason"
| Pattern | Requirement |
|---|---|
| Spec reading | Always use MCP tools, NEVER Read() or cat on JSON |
| Task completion | Never mark complete if tests failing/partial/errors |
| Verification | Dispatch to appropriate skill by verification_type |
| User decisions | Always use AskUserQuestion, never text lists |
For comprehensive documentation including:
See reference.md