dot_config/opencode/skills/sdd-apply/SKILL.md
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.
npx skillsauth add adacosdev/dotfiles sdd-applyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
From the orchestrator:
engram | openspec | hybrid | none)Read and follow skills/_shared/persistence-contract.md for mode resolution rules.
If mode is engram:
Read dependencies (two-step — search returns truncated previews):
mem_search(query: "sdd/{change-name}/proposal", project: "{project}") → get IDmem_get_observation(id: {id}) → full proposalmem_search(query: "sdd/{change-name}/spec", project: "{project}") → get IDmem_get_observation(id: {id}) → full specmem_search(query: "sdd/{change-name}/design", project: "{project}") → get IDmem_get_observation(id: {id}) → full designmem_search(query: "sdd/{change-name}/tasks", project: "{project}") → get ID (save this ID for updates)mem_get_observation(id: {id}) → full tasksMark tasks complete (update the tasks artifact as you go):
mem_update(id: {tasks-observation-id}, content: "{updated tasks with [x] marks}")
Save progress artifact:
mem_save(
title: "sdd/{change-name}/apply-progress",
topic_key: "sdd/{change-name}/apply-progress",
type: "architecture",
project: "{project}",
content: "{your implementation progress report}"
)
topic_key enables upserts — saving again updates, not duplicates.
(See skills/_shared/engram-convention.md for advanced operations.)
If mode is openspec: Read and follow skills/_shared/openspec-convention.md. Update tasks.md with [x] marks.
If mode is hybrid: Follow BOTH conventions — persist progress to Engram (mem_update for tasks) AND update tasks.md with [x] marks on filesystem.
If mode is none: Return progress only. Do not update project artifacts.
Do this FIRST, before any other work.
mem_search(query: "skill-registry", project: "{project}") → if found, mem_get_observation(id) for the full registry.atl/skill-registry.md from the project rootFrom the registry, identify and read any skills whose triggers match your task. Also read any project convention files listed in the registry.
Before writing ANY code:
config.yamlBefore 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 3a (TDD Workflow)
IF standard mode → use Step 3b (Standard Workflow)
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.
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
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
This step is MANDATORY — do NOT skip it.
If mode is engram:
mem_update(id: {tasks-observation-id}, content: "{updated tasks with [x] marks}")
mem_save(
title: "sdd/{change-name}/apply-progress",
topic_key: "sdd/{change-name}/apply-progress",
type: "architecture",
project: "{project}",
content: "{your implementation progress report}"
)
If mode is openspec or hybrid: tasks.md was already updated in Step 4.
If mode is hybrid: also call mem_save and mem_update as above.
If you skip this step, sdd-verify will NOT be able to find your progress and the pipeline BREAKS.
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}
openspec mode, mark tasks complete in tasks.md AS you go, not at the endrules.apply from openspec/config.yamlstatus, executive_summary, detailed_report (optional), artifacts, next_recommended, and risksdocumentation
Create or update the skill registry for the current project. Scans user skills and project conventions, writes .atl/skill-registry.md, and saves to engram if available. Trigger: When user says "update skills", "skill registry", "actualizar skills", "update registry", or after installing/removing skills.
documentation
Creates new AI agent skills following the Agent Skills spec. Trigger: When user asks to create a new skill, add agent instructions, or document patterns for AI.
testing
Validate that implementation matches specs, design, and tasks. Trigger: When the orchestrator launches you to verify a completed (or partially completed) change.
testing
Break down a change into an implementation task checklist. Trigger: When the orchestrator launches you to create or update the task breakdown for a change.