Loading...
Loading...
Breaks down the design into an atomic, ordered, and verifiable task plan stored in tasks.md. Trigger: /sdd-tasks <change-name>, task plan, break down implementation, task breakdown.
npx skill4agent add fearovex/claude-config sdd-tasksBreaks down the design into an atomic, ordered, and verifiable task plan.
/sdd-tasks <change-name>sdd-apply1. .claude/skills/sdd-tasks/SKILL.md (project-local — highest priority)
2. ~/.claude/skills/sdd-tasks/SKILL.md (global catalog — fallback)docs/SKILL-RESOLUTION.mdskills/_shared/sdd-phase-common.mdmem_search(query: "sdd/{change-name}/design")mem_get_observation(id)mem_search(query: "sdd/{change-name}/spec")mem_get_observation(id)## Supersedesmem_search(query: "sdd/{change-name}/proposal")mem_get_observation(id)## SupersedesINFO: no Supersedes section in proposal.md — skipping removal task generationRemove: [feature name]Remove old: [old feature name]Implement new: [new feature name]### Phase 1: Removals and Replacements
- [ ] 1.1 Remove: [feature name] from `path/to/file`
Linked spec: [Requirement name from spec, or "N/A — no spec for this removal"]
Files: `path/to/file` (DELETE), `path/to/other.ts` (remove registration/import)
Acceptance: File deleted AND related flows continue without runtime errors
- [ ] 1.2 Remove old: [old feature name] from `path/to/old-file`
Linked spec: [Requirement: Replacement requirement name]
Files: `path/to/old-file` (DELETE or MODIFY)
Acceptance: Old implementation fully removed; no lingering imports or references
- [ ] 1.3 Implement new: [new feature name] in `path/to/new-file`
Linked spec: [Requirement: new feature requirement]
Depends on: 1.2
Files: `path/to/new-file` (CREATE or MODIFY)
Acceptance: New implementation active; spec scenarios pass
---
⚠️ Phase 2 MUST NOT begin until all Phase 1 tasks are complete.
---Phase 1 — Removals and Replacements [if Supersedes has items] OR Foundation [if purely additive]
Phase 2 — Foundation: types, interfaces, schemas, configuration [if Phase 1 is Removals]
Phase N — Core: main business logic
Phase N+1 — Integration: connect with the rest of the system
Phase N+2 — Testing: tests for previous phases
Phase N+3 — Cleanup: remove temporary code, update docsMUST_RESOLVE"business rule decision — external system behavior is ambiguous"ADVISORY"performance consideration — does not affect correctness""style or naming preference — no impact on current task"tasks.md- [ ] X.Y Task description [WARNING: MUST_RESOLVE]
Warning: [human-readable warning text]
Reason: [classification reason, e.g., "business rule decision — external system field ambiguous"]
Question: [clarifying question derived from the warning]- [ ] X.Y Task description [WARNING: ADVISORY]
Warning: [human-readable warning text]
Reason: [classification reason, e.g., "performance consideration — does not affect correctness"]- [ ] 2.1 Create `src/services/payment.service.ts` with method `processPayment(dto: PaymentDto): Promise<PaymentResult>` [WARNING: MUST_RESOLVE]
Warning: Stripe invoice field for failure date is ambiguous — `status_transitions.marked_uncollectible_at` vs `status_transitions.voided_at` may both apply depending on invoice state.
Reason: business rule decision — external system behavior is ambiguous
Question: Which Stripe invoice field should be used to record the payment failure date?mem_savetopic_key: sdd/{change-name}/taskstype: architectureproject: {project}# Task Plan: [change-name]
Date: [YYYY-MM-DD]
Design: engram:sdd/[name]/design
## Progress: 0/[total] tasks
## Phase 1: [Phase Name]
- [ ] 1.1 Create `src/types/auth.types.ts` with interfaces `LoginRequest`, `LoginResponse`, `JwtPayload`
- [ ] 1.2 Create `src/schemas/auth.schema.ts` with Zod schemas for login validation
- [ ] 1.3 Modify `src/config/jwt.config.ts` — add `refreshSecret` and `refreshExpiresIn`
## Phase 2: [Phase Name]
- [ ] 2.1 Create `src/services/auth.service.ts` with methods `login()`, `logout()`, `refreshToken()`
- [ ] 2.2 Modify `src/repositories/user.repository.ts` — add `findByEmail()` method
- [ ] 2.3 Create `src/middleware/auth.middleware.ts` for JWT validation on protected routes
## Phase 3: [Phase Name]
- [ ] 3.1 Create `src/controllers/auth.controller.ts` with endpoints POST /login, POST /logout, POST /refresh
- [ ] 3.2 Modify `src/routes/index.ts` — register auth routes
- [ ] 3.3 Modify `src/app.ts` — integrate auth middleware on protected routes
## Phase 4: Testing
- [ ] 4.1 Create `tests/unit/auth.service.spec.ts` — unit tests for AuthService
- [ ] 4.2 Create `tests/integration/auth.controller.spec.ts` — endpoint tests
- [ ] 4.3 Verify scenario coverage from spec (review engram:sdd/[name]/spec)
## Phase 5: Cleanup
- [ ] 5.1 Update `README.md` — document new endpoints
- [ ] 5.2 Update `ai-context/architecture.md` if there were structural changes
---
## Implementation Notes
[Design decisions the implementer must keep in mind:]
- [important note 1]
- [important note 2]
## Blockers
[Tasks that cannot start until something external is ready:]
- [blocker]: [what resolves it]
[If none: "None."]- [ ] 2.1 Create `src/services/payment.service.ts` with method `processPayment(dto: PaymentDto): Promise<PaymentResult>`- [ ] Add payment logic{
"status": "ok|warning|blocked",
"summary": "Plan for [change-name]: [N] phases, [M] total tasks. Estimate: [Low/Medium/High].",
"artifacts": ["engram:sdd/{change-name}/tasks"],
"next_recommended": ["sdd-apply"],
"risks": ["[blocker if any]"]
}next_recommended/sdd-applytasks.md