sdd-apply
Translates high-level tasks into executable code following project design and style specs.
Install
mkdir -p .claude/skills/sdd-apply && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15311" && unzip -o skill.zip -d .claude/skills/sdd-apply && rm skill.zipInstalls to .claude/skills/sdd-apply
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Implement tasks from the change, writing actual code following the specs and design. Trigger: When the orchestrator launches you to implement one or more tasks from a change.Key capabilities
- →Implement tasks from `tasks.md`
- →Write code following specs and design
- →Detect TDD mode and apply workflow
- →Mark completed tasks in `tasks.md`
- →Generate implementation progress summaries
- →Persist progress according to specified contract
How it works
The skill reads task descriptions, project specifications, and design documents, then implements code, following either a TDD or standard workflow, and persists progress according to the specified contract.
Inputs & outputs
When to use sdd-apply
- →Implementing feature tasks
- →Applying bug fixes
- →Executing spec-driven code changes
About this skill
Purpose
You are a sub-agent responsible for IMPLEMENTATION. You receive specific tasks from tasks.md and implement them by writing actual code. You follow the specs and design strictly.
What You Receive
From the orchestrator:
- Change name
- The specific task(s) to implement (e.g., "Phase 1, tasks 1.1-1.3")
- Artifact store mode (
engram | openspec | hybrid | none)
Execution and Persistence Contract
Read and follow skills/_shared/persistence-contract.md for mode resolution rules.
- If mode is
engram: Read and followskills/_shared/engram-convention.md. Artifact type:apply-progress. Retrieveproposal,spec,design, andtasksas dependencies. Also usemem_updateto mark completed tasks in thetasksartifact. - If mode is
openspec: Read and followskills/_shared/openspec-convention.md. Updatetasks.mdwith[x]marks. - If mode is
hybrid: Follow BOTH conventions — persist progress to Engram (mem_updatefor tasks) AND updatetasks.mdwith[x]marks on filesystem. - If mode is
none: Return progress only. Do not update project artifacts.
What to Do
Step 1: Read Context
Before writing ANY code:
- Read the specs — understand WHAT the code must do
- Read the design — understand HOW to structure the code
- Read existing code in affected files — understand current patterns
- Check the project's coding conventions from
config.yaml
Step 2: Detect Implementation Mode
Before writing code, determine if the project uses TDD:
Detect TDD mode from (in priority order):
├── openspec/config.yaml → rules.apply.tdd (true/false — highest priority)
├── User's installed skills (e.g., tdd/SKILL.md exists)
├── Existing test patterns in the codebase (test files alongside source)
└── Default: standard mode (write code first, then verify)
IF TDD mode is detected → use Step 2a (TDD Workflow)
IF standard mode → use Step 2b (Standard Workflow)
Step 2a: Implement Tasks (TDD Workflow — RED → GREEN → REFACTOR)
When TDD is active, EVERY task follows this cycle:
FOR EACH TASK:
├── 1. UNDERSTAND
│ ├── Read the task description
│ ├── Read relevant spec scenarios (these are your acceptance criteria)
│ ├── Read the design decisions (these constrain your approach)
│ └── Read existing code and test patterns
│
├── 2. RED — Write a failing test FIRST
│ ├── Write test(s) that describe the expected behavior from the spec scenarios
│ ├── Run tests — confirm they FAIL (this proves the test is meaningful)
│ └── If test passes immediately → the behavior already exists or the test is wrong
│
├── 3. GREEN — Write the minimum code to pass
│ ├── Implement ONLY what's needed to make the failing test(s) pass
│ ├── Run tests — confirm they PASS
│ └── Do NOT add extra functionality beyond what the test requires
│
├── 4. REFACTOR — Clean up without changing behavior
│ ├── Improve code structure, naming, duplication
│ ├── Run tests again — confirm they STILL PASS
│ └── Match project conventions and patterns
│
├── 5. Mark task as complete [x] in tasks.md
└── 6. Note any issues or deviations
Detect the test runner for execution:
Detect test runner from:
├── openspec/config.yaml → rules.apply.test_command (highest priority)
├── package.json → scripts.test
├── pyproject.toml / pytest.ini → pytest
├── Makefile → make test
└── Fallback: report that tests couldn't be run automatically
Important: If any user coding skills are installed (e.g., tdd/SKILL.md, pytest/SKILL.md, vitest/SKILL.md), read and follow those skill patterns for writing tests.
Step 2b: Implement Tasks (Standard Workflow)
When TDD is not active:
FOR EACH TASK:
├── Read the task description
├── Read relevant spec scenarios (these are your acceptance criteria)
├── Read the design decisions (these constrain your approach)
├── Read existing code patterns (match the project's style)
├── Write the code
├── Mark task as complete [x] in tasks.md
└── Note any issues or deviations
Step 3: Mark Tasks Complete
Update tasks.md — change - [ ] to - [x] for completed tasks:
## Phase 1: Foundation
- [x] 1.1 Create `internal/auth/middleware.go` with JWT validation
- [x] 1.2 Add `AuthConfig` struct to `internal/config/config.go`
- [ ] 1.3 Add auth routes to `internal/server/server.go` ← still pending
Step 4: Return Summary
Return to the orchestrator:
## Implementation Progress
**Change**: {change-name}
**Mode**: {TDD | Standard}
### Completed Tasks
- [x] {task 1.1 description}
- [x] {task 1.2 description}
### Files Changed
| File | Action | What Was Done |
|------|--------|---------------|
| `path/to/file.ext` | Created | {brief description} |
| `path/to/other.ext` | Modified | {brief description} |
### Tests (TDD mode only)
| Task | Test File | RED (fail) | GREEN (pass) | REFACTOR |
|------|-----------|------------|--------------|----------|
| 1.1 | `path/to/test.ext` | ✅ Failed as expected | ✅ Passed | ✅ Clean |
| 1.2 | `path/to/test.ext` | ✅ Failed as expected | ✅ Passed | ✅ Clean |
{Omit this section if standard mode was used.}
### Deviations from Design
{List any places where the implementation deviated from design.md and why.
If none, say "None — implementation matches design."}
### Issues Found
{List any problems discovered during implementation.
If none, say "None."}
### Remaining Tasks
- [ ] {next task}
- [ ] {next task}
### Status
{N}/{total} tasks complete. {Ready for next batch / Ready for verify / Blocked by X}
Rules
- ALWAYS read specs before implementing — specs are your acceptance criteria
- ALWAYS follow the design decisions — don't freelance a different approach
- ALWAYS match existing code patterns and conventions in the project
- In
openspecmode, mark tasks complete intasks.mdAS you go, not at the end - If you discover the design is wrong or incomplete, NOTE IT in your return summary — don't silently deviate
- If a task is blocked by something unexpected, STOP and report back
- NEVER implement tasks that weren't assigned to you
- Load and follow any relevant coding skills for the project stack (e.g., react-19, typescript, django-drf, tdd, pytest, vitest) if available in the user's skill set
- Apply any
rules.applyfromopenspec/config.yaml - If TDD mode is detected (Step 2), ALWAYS follow the RED → GREEN → REFACTOR cycle — never skip RED (writing the failing test first)
- When running tests during TDD, run ONLY the relevant test file/suite, not the entire test suite (for speed)
- Return a structured envelope with:
status,executive_summary,detailed_report(optional),artifacts,next_recommended, andrisks
When not to use it
- →When the user wants to implement tasks not assigned
- →When the user wants to silently deviate from design
- →When the user wants to skip the RED phase in TDD
Limitations
- →The skill never implements tasks that were not assigned.
- →The skill always follows the RED → GREEN → REFACTOR cycle if TDD mode is detected.
- →The skill does not silently deviate if the design is wrong or incomplete.
How it compares
This skill automates the implementation of tasks by strictly adhering to predefined specs and design, ensuring consistency and reducing manual interpretation errors compared to ad-hoc coding.
Compared to similar skills
sdd-apply side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| sdd-apply (this skill) | 0 | 3mo | No flags | Advanced |
| vc-execute | 0 | 2mo | No flags | Intermediate |
| plan-before-code | 0 | 2mo | No flags | Beginner |
| software-architecture | 333 | 6mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
vc-execute
Mithilyaganti
Execute a clear plan, issue, or agent brief with workspace safety, TDD, scoped subagent coordination, continuous verification, and tiered review gates. Use when implementing approved work, running an AFK loop, or turning a plan/issue into tested code.
plan-before-code
ThalesGroup
Plan before editing code. Use this skill for multi-step implementation, debugging, refactors, release work, or any coding task where sequencing, assumptions, or validation matter. It enforces a short plan first, validates assumptions before edits, and verifies results before close-out.
software-architecture
davila7
Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.
oracle
openclaw
Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
clojure-write
metabase
Guide Clojure and ClojureScript development using REPL-driven workflow, coding conventions, and best practices. Use when writing, developing, or refactoring Clojure/ClojureScript code.
add-uint-support
pytorch
Add unsigned integer (uint) type support to PyTorch operators by updating AT_DISPATCH macros. Use when adding support for uint16, uint32, uint64 types to operators, kernels, or when user mentions enabling unsigned types, barebones unsigned types, or uint support.