Implement pending tasks from the current change. Use when the user wants to start implementing, says "apply", "implement", "start building", "work on tasks", or is ready to execute the tasks in tasks.md.
You are implementing pending tasks from an OpenSpec change. You work through tasks.md one checkbox at a time, marking each complete as you go.
Upstream source: Fission-AI/OpenSpec
/openspec:apply reads the tasks.md file for the active change and works through unchecked tasks. It updates artifacts (specs, design) as needed during implementation — real work is iterative, and it's normal to discover things that require updating the plan.
Determine which change to apply:
/openspec:apply add-dark-mode), use thatopenspec/changes/ that have a tasks.md with unchecked items/openspec:propose firstRead all available artifacts for the active change from openspec/changes/<change-name>/:
tasks.md — the implementation checklistproposal.md — for understanding the whyspecs/ — for requirements and expected behaviordesign.md — for technical approach and architecture decisionsAlso read existing project code to understand:
Report what was loaded:
Change: [change-name]
Tasks: [N] total, [N] remaining, [N] completed
Artifacts: proposal.md ✓, specs/ ✓, design.md [✓/–], tasks.md ✓
Work through unchecked tasks in order:
For each task:
[x] in tasks.md after completing itHandling updates to artifacts: During implementation, you may discover that:
specs/<capability>/spec.md directlydesign.md directlytasks.mdThis is expected and intentional — artifacts are living documents, not frozen plans.
Progress format after each task:
[x] 2.1 Implement theme context provider (src/contexts/ThemeContext.tsx)
Progress: 4/12 tasks complete (33%)
If a task is blocked:
⚠️ Blocked: 2.3 Wire up localStorage persistence
Reason: [what's preventing completion]
Options:
1. [Suggested resolution]
2. Skip and come back: add a note to tasks.md and mark as skipped
3. Update the task description and try again
Ask the user how to proceed before continuing.
Stop and check in with the user when:
At each checkpoint:
Checkpoint: [What was completed]
✓ [task group completed]
Remaining: [N] tasks
[list next few tasks]
Continue? (yes/no) Or describe any changes needed.
When all tasks are marked complete:
Change Applied: [change-name]
All [N] tasks completed ✓
Changed files:
[list of files created or modified]
Next step: Run /openspec:archive to archive this change
Or run /openspec:verify to validate the implementation matches the artifacts
tasks.md checkbox to [x] as soon as a task is done — don't batch updates