Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jorgeferrando/sdd-skills/llms.txt
Use this file to discover all available pages before exploring further.
/sdd-apply is the implementation skill. It reads tasks.md, loads your project’s steering files, then implements each pending task using a dedicated subagent — one agent per task, one commit per task. After each task, the orchestrator marks it complete, reports progress, and asks before starting the next one. Nothing is implemented outside of tasks.md: unexpected work is registered as a tracked item before any code is written. Use /sdd-apply after tasks.md is approved.
Usage
Prerequisites
openspec/changes/{change-name}/tasks.mdapproved with a task list- Correct git branch created (done by
/sdd-tasks) openspec/steering/conventions.mdmust exist
Architecture: orchestrator + subagents
/sdd-apply uses a two-level architecture:
- The orchestrator (haiku) manages task sequencing, loads steering files, updates
tasks.md, and reports progress. - One subagent (sonnet) is launched per task. Each agent receives its task, the steering content inline, and spec context. Implementation details — code read, test output, attempts — stay inside the agent and do not accumulate in the main conversation.
What it does
Verify bootstrap and load steering
Checks that
openspec/steering/conventions.md exists. Stops with an error if it does not.Then loads steering files silently (no output unless something relevant is found):- If
openspec/steering/project-skill.mdexists → reads it as the index, which references the rest - Otherwise → reads
conventions.md,project-rules.md, andtech.mdin parallel
conventions-testing.md, conventions-security.md, etc.) when the current task’s file matches the specialist’s domain. Base conventions.md is always sufficient; specialists are loaded only when relevant.Load current state
Reads
tasks.md and identifies:- Tasks already completed (
[x]) - The next pending task
- Dependencies between tasks
/sdd-apply T03 was used, starts from that specific task.Implement task by task
For each pending task, launches a subagent with:With
- The full task line from
tasks.md(file path + description) - Dependency task IDs
- Steering content (inline, for prompt caching)
- Spec and design context file paths
- Reads similar existing code to follow established patterns
- Implements the change
- Runs tests and lint on the changed file
- Commits atomically:
[{change-name}] Description - Returns a short summary: what was done, files touched, commit hash, test result
[x] in tasks.md, reports progress, and asks before launching the next agent:--auto, confirmation is skipped and the next agent starts immediately after a successful task. If an agent reports an unexpected situation, the orchestrator always pauses regardless of mode.Commit format
Every commit follows a consistent format:- Maximum 70 characters on the first line
- Imperative mood: “Add”, “Fix”, “Update” (not “Added”, “Fixes”)
- Only the file(s) for the current task are staged (atomic commit)
Handling unplanned work
If the user requests a change not already intasks.md, or if unexpected code appears during implementation:
Register before implementing
Add the item to
tasks.md under a dedicated section before writing any code:Implement and commit atomically
Implement the fix as a separate commit following the same task rules.
Unexpected situations
When a subagent encounters something not covered by its task, it does not make a unilateral decision. It returns the situation description to the orchestrator, which presents options to the user:Completion summary
When all tasks are done:Skill metadata
| Property | Value |
|---|---|
model_hint | haiku (orchestrator) |
model_hint_subagents | sonnet (per-task agents) |
requires | openspec/changes/{change}/tasks.md, openspec/steering/conventions.md |
produces | code commits (no new OpenSpec artifacts) |
Next steps
After all tasks complete, run/sdd-verify to run the full test suite, quality checks, self-review checklist, and spec compliance check before creating the PR.