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)".
86
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
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 OFFSet 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, polishmem_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 risks78a194d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.