ywai/skills/sdd-tasks/SKILL.md
Break down a change into an implementation task checklist. Trigger: "tasks", "breakdown", "task list", "desglosar", "tareas", "sdd tasks", "plan de implementación", "/sdd:continue (when design exists but tasks don't)".
npx skillsauth add Yoizen/dev-ai-workflow sdd-tasksInstall 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 creating the TASK BREAKDOWN. You take the proposal, specs, and design, then produce a tasks.md with concrete, actionable implementation steps organized by phase.
From the orchestrator:
proposal.md contentdesign.md contentengram | openspec | none)Read and follow skills/_shared/persistence-contract.md for mode resolution rules.
engram: Read and follow skills/_shared/engram-convention.md. Artifact type: tasks. Retrieve proposal, spec, and design as dependencies.openspec: Read and follow skills/_shared/openspec-convention.md. Create tasks.md in the change directory.none: Return the full task list content inline. Do NOT create any project files.Before writing tasks, check whether TDD is active for this project using this 4-level detection chain:
Level 1 — Config file:
openspec/config.yaml → rules.apply.tdd: true
(or engram project context if mode is engram)
Level 2 — Skills present:
Check if skills/ directory has TDD-related skill files
(e.g., skills/tdd/, skills/jest/, skills/pytest/)
Level 3 — Code patterns:
Check if test files exist: **/*.test.*, **/*.spec.*, tests/, __tests__/
Check if test runner config exists: jest.config.*, pytest.ini, vitest.config.*
Level 4 — Default:
If none of the above → TDD is OFF
Set TDD_MODE = true | false for use in Step 2.
From the design document, identify:
# Tasks: {Change Title}
**Total Effort**: {sum of estimates} | **Critical Path**: Phase 1 → Phase 2 → Phase 3
**TDD**: {enabled / disabled}
## Phase 1: {Phase Name} (e.g., Infrastructure / Foundation)
- [ ] 1.1 {Concrete action — what file, what change} `[S]`
- [ ] 1.2 {Concrete action} `[S]`
- [ ] 1.3 {Concrete action} `[M]`
## Phase 2: {Phase Name} (e.g., Core Implementation)
- [ ] 2.1 {Concrete action} `[M]`
- [ ] ⊕ 2.2 {Concrete action — parallelizable with 2.3} `[S]`
- [ ] ⊕ 2.3 {Concrete action — parallelizable with 2.2} `[S]`
- [ ] 2.4 {Concrete action — depends on 2.2 + 2.3} `[M]`
## Phase 3: Testing
{If TDD_MODE = true, use RED/GREEN/REFACTOR triplets per spec scenario:}
- [ ] 3.1 [RED] Write failing test for REQ-XXX-001: {scenario name} `[S]`
- [ ] 3.2 [GREEN] Implement to make REQ-XXX-001 test pass `[S]`
- [ ] 3.3 [REFACTOR] Clean up REQ-XXX-001 implementation `[XS]`
- [ ] 3.4 [RED] Write failing test for REQ-XXX-002: {scenario name} `[S]`
- [ ] 3.5 [GREEN] Implement to make REQ-XXX-002 test pass `[M]`
- [ ] 3.6 [REFACTOR] Clean up REQ-XXX-002 implementation `[XS]`
{If TDD_MODE = false, use standard test tasks:}
- [ ] 3.1 Write tests for REQ-XXX-001: {scenario name} `[S]`
- [ ] 3.2 Write tests for REQ-XXX-002: {scenario name} `[S]`
- [ ] 3.3 Verify integration between {component A} and {component B} `[M]`
## Phase 4: {Cleanup / Documentation} (if needed)
- [ ] 4.1 {Update docs/comments} `[XS]`
- [ ] 4.2 {Remove temporary code} `[XS]`
| Size | Tag | Guideline |
|------|-----|----------|
| XS | [XS] | Trivial: rename, config change, comment update |
| S | [S] | Small: single function, simple test, one-file change |
| M | [M] | Medium: new module, complex function, integration work |
| L | [L] | Large: multi-file feature, complex algorithm. Consider splitting. |
If a task is
[L], it should almost always be split into 2-3[S]/[M]tasks.
When TDD_MODE = true, group implementation tasks into RED → GREEN → REFACTOR triplets:
| Tag | Meaning |
|-----|---------|
| [RED] | Write a failing test that describes the behavior (do NOT implement yet) |
| [GREEN] | Write the minimum code to make the test pass |
| [REFACTOR] | Clean up the code without breaking the test |
[RED] task MUST come before [GREEN] — they are sequential[REFACTOR] is optional but recommended for [M] or larger implementations[RED]/[GREEN] triplets can be marked ⊕ if the scenarios are independentEach task MUST be:
| Criteria | Example ✅ | Anti-example ❌ |
|----------|-----------|----------------|
| Specific | "Create internal/auth/middleware.go with JWT validation" | "Add auth" |
| Actionable | "Add ValidateToken() method to AuthService" | "Handle tokens" |
| Verifiable | "Test: POST /login returns 401 without token" | "Make sure it works" |
| Small | One file or one logical unit of work | "Implement the feature" |
A task is complete when:
[x] in tasks.mdPhase 1: Foundation / Infrastructure
└─ New types, interfaces, database changes, config
└─ Things other tasks depend on
Phase 2: Core Implementation
└─ Main logic, business rules, core behavior
└─ The meat of the change
└─ If TDD: [RED]/[GREEN]/[REFACTOR] triplets here
Phase 3: Integration / Wiring
└─ Connect components, routes, UI wiring
└─ Make everything work together
Phase 4: Testing (if TDD=false)
└─ Unit tests, integration tests, e2e tests
└─ Verify against spec scenarios
Phase 5: Cleanup (if needed)
└─ Documentation, remove dead code, polish
mem_save with topic_key: sdd/{change-name}/tasksopenspec/changes/{change-name}/tasks.md## Tasks Created
**Change**: {change-name}
**Persistence**: {engram (ID: #{id}) | openspec (path) | none (inline)}
**TDD Mode**: {enabled / disabled}
### Breakdown
| Phase | Tasks | Parallelizable | Effort | Focus |
|-------|-------|---------------|--------|-------|
| Phase 1 | {N} | {P} | {sum} | {Phase name} |
| Phase 2 | {N} | {P} | {sum} | {Phase name} |
| Phase 3 | {N} | {P} | {sum} | {Phase name} |
| Total | {N} | {P} | {sum} | |
### Critical Path
{The sequence of dependent tasks that determines the minimum number of implementation batches}
### Implementation Order
{Brief description of the recommended order and why}
### Next Step
Ready for implementation (sdd-apply).
| Situation | Action |
|-----------|--------|
| Design or specs are incomplete | Create tasks for known parts; add placeholder tasks marked [BLOCKED] for unclear parts |
| Task count exceeds 30 | Suggest splitting the change into multiple sequential changes |
| Dependencies form a cycle | Refactor the task structure to break the cycle; report to orchestrator |
| Cannot estimate a task size | Mark as [M] (default) and add a note that it may need splitting |
| Specs reference domains not in the design | Flag the gap; create a task to address it or report as blocker |
| TDD detection is ambiguous | Default to TDD=false; note in summary that TDD can be enabled in config |
[XS]/[S]/[M]/[L] on each task[L], split it)none mode, NEVER create or modify any project filesrules.tasks from openspec/config.yaml or the engram project contextstatus, executive_summary, detailed_report (optional), artifacts, next_recommended, and risksdocumentation
Yoizen UI design system guidelines and resources. Trigger: When working on Yoizen UI components, styling, colors, typography, or icons.
development
TypeScript strict patterns and best practices. Trigger: When writing TypeScript code - types, interfaces, generics.
development
Tailwind CSS 4 patterns and best practices. Trigger: When styling with Tailwind - cn(), theme variables, no var() in className.
data-ai
name: skill-sync description: > Sync skill metadata with the Auto-invoke sections in AGENTS.md. Trigger: When you change a skill's metadata (metadata.scope/metadata.auto_invoke), regenerate the Auto-invoke tables, or run ./skills/skill-sync/assets/sync.sh. metadata: author: Yoizen version: "1.0" scope: [root] auto_invoke: - "skill operations" - "workflow" - "sdd" author: Yoizen version: "1.0" scope: [root] auto_invoke: - "skill operations" - "workflow"