/sdd-apply¶
Implement the change following tasks.md. One task = one file = one atomic commit.
Usage¶
/sdd-apply # Start from first pending task
/sdd-apply {change-name} # Implement specific change
/sdd-apply T03 # Continue from specific task
/sdd-apply --auto # Skip per-task confirmation
Prerequisites¶
tasks.mdapproved with task list- Correct git branch created
openspec/steering/conventions.mdmust exist — the AI refuses to start without it
How it works¶
Step 0: Load steering¶
Before writing any code, the AI reads:
openspec/steering/project-skill.md(index)openspec/steering/conventions.md(rules)openspec/steering/project-rules.md(learned rules)openspec/steering/tech.md(stack details)
All rules are applied throughout the implementation. This is what makes /sdd-apply project-aware despite being a generic skill.
For each pending task (one agent per task)¶
Each task is implemented by a subagent to keep the main conversation clean. The orchestrator does not accumulate code-reading, test output, or implementation details — only the summary from each agent.
Agent per task:
- Receives the task description, file path, steering files, and spec context
- Reads similar existing code to follow patterns
- Implements the change
- Runs quality checks on the changed file
- Commits atomically:
[change-name] Description - Returns a short summary (what was done, files touched, commit hash, test result)
Orchestrator between tasks:
- Checks the agent result
- Marks task as
[x]in tasks.md - Reports progress and asks before continuing to the next task
With --auto, the orchestrator skips confirmation and proceeds immediately after a successful task. It still pauses if an agent reports an unexpected situation.
Unplanned work¶
If something comes up that's not in tasks.md:
- Register it as
BUGxxorIMPxxintasks.mdbefore implementing - Implement and commit atomically
- Mark as done
Nothing is implemented without being tracked.
Unexpected situations¶
The AI does NOT make unilateral decisions. If something unexpected appears:
During T03 I found {situation}.
The tasks don't cover this case. How should I proceed?
1. {Option A}
2. {Option B}
3. Stop and update design/tasks
Commit format¶
[{change-name}] {Description in English, imperative mood}
Co-Authored-By: AI Assistant <noreply@sdd-skills.dev>
- Max 70 characters on first line
- Imperative mood: "Add", "Fix", "Update" (not "Added", "Fixes")
- Only the file(s) for this task (atomic)
Next step¶
/sdd-verify— final quality checks before PR