From ddd-workflow
Breaks down spec.md milestones into detailed tasks, creates optional tasks.md for complex execution plans, or splits large scopes into semver-like sub-sprints. Useful after spec is confirmed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ddd-workflow:ddd.tasksThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
任務拆解階段。預設任務來源是 `spec.md` Milestones;`/ddd.tasks` 多數時候只是把特定 milestone 在 spec.md 內就地展開。
任務拆解階段。預設任務來源是 spec.md Milestones;/ddd.tasks 多數時候只是把特定 milestone 在 spec.md 內就地展開。
嚴禁在 spec.md 未獲使用者確認前拆任務。 更新 spec.md 或建立 tasks.md 後必須停在 User Review Gate,使用者確認或明確跳過審閱後才可進入 /ddd.work。 嚴禁因為 sprint 目錄存在 legacy tasks.md 就自動把它當任務來源;必須先取得使用者確認。 嚴禁用過大的 spec 或 tasks.md 硬撐;scope 過大時必須先拆 sprint。tasks.md 正在淘汰(deprecating)。 它不是必備文件,長期會被移除;現階段僅保留給「複雜執行協調」一種情境,預設別用——能放回 spec.md Milestones 就放回去。本檔案是 tasks.md 生命週期規則(何時建、確認 gate、legacy 處理)的唯一真相來源,其他 skill 只引用、不重述。
讀取 spec.md 後,先判斷下一步:
/ddd.work。tasks.md,經使用者確認後作任務來源。tasks.md,只有 User Review Gate 通過後才可把狀態更新為「已由使用者確認作為本 sprint 任務來源」,再引導 /ddd.work將 spec.md 的 Milestone 就地展開為 task 列表。每個 task 遵循 Agentic TDD:測試與實作分離、原子性(一個 task 專注一個行為)。
適合條件:細化後仍容易閱讀、沒有大量 worker 上下文卡片、task 不會把 spec.md 撐成執行手冊。
### Milestone 2: API + 前端
> 範圍:`server/routes/auth/`、`components/auth/`
> 驗證:`vitest run server/routes/auth/ components/auth/`
> 預期結果:使用者可透過前端表單登入,取得有效 session token
#### 🔀 可平行工作線
**[A] Backend API** — `isolation: worktree`
> 範圍:`server/routes/auth/`、`server/services/auth/`
> 依賴:M1 完成的 User model + session store
> 介面契約:POST /auth/login → LoginResponse { token, user }
> 驗證:`vitest run server/routes/auth/` 全過
- [ ] 撰寫 POST /auth/login endpoint 測試 (Red)
- [ ] 實作 login endpoint (Green)
**[B] Frontend Form** — `isolation: worktree`
> 範圍:`components/auth/`、`composables/useAuth.ts`
> 依賴:LoginRequest/LoginResponse type 定義
> 介面契約:LoginForm emit `submit` 帶 LoginRequest payload
> 驗證:`vitest run components/auth/` 全過
- [ ] 撰寫登入表單元件測試 (Red)
- [ ] 實作登入表單元件 (Green)
#### 🔗 匯合點
> 驗證:`vitest run tests/integration/auth/` 全過
- [ ] 合併 [A]、[B] 分支,解決衝突
- [ ] 前後端整合測試 (Red → Green)
當執行計畫太長或需要獨立協調空間時,建立 docs/<編號>-<名稱>/tasks.md。它只在本 sprint 被使用者確認後成為任務來源;否則只是草稿或歷史參考。
新建 tasks.md 的預設狀態必須是草稿/待使用者確認。User Review Gate 通過前,不得把狀態寫成已確認;通過後才可更新狀態並作為 /ddd.work 任務來源。
# Tasks: <功能名稱>
## 任務來源
- Spec: `docs/<編號>-<名稱>/spec.md`
- 狀態:草稿,待使用者確認;確認前不得作為本 sprint 任務來源
## Milestone 1: <名稱>
> 範圍:...
> 驗證:...
> 預期結果:...
- [ ] 撰寫/更新測試 (Red)
- [ ] 實作最小功能 (Green)
- [ ] Refactor 並確認測試維持通過
若 task 總數不超過 4 個且只涉及 1–2 個檔案,直接序列執行,跳過平行分析。
切分標準:兩條工作線不會修改同一個檔案,且透過明確介面(API contract / shared types)銜接,即可平行。反之若共用全域狀態、需要同時改同一檔案、或介面尚未確定,則不可平行。
執行原則:
$PROJECT_ROOT/.worktree/<branch-name>/ 建立每條工作線的獨立 git worktree;worker 只在自己的 worktree 內工作,完成後以分支保留,主行程負責合併Worker 上下文卡片:每條工作線的 blockquote 是 worker 的上下文卡片——/ddd.work 的 coordinator 直接擷取這裡的資訊組裝 worker prompt。必須包含:範圍(檔案/目錄路徑)、依賴(前置 task 或外部依賴)、介面契約(有平行線時必填)、驗證(完成後的驗證方式)。
scope 過大時,拆成 semver-like 子編號資料夾:
docs/18-user-auth/ # 父 sprint:保留為索引或決策脈絡
docs/18.1-data-layer/
└── spec.md
docs/18.2-auth-api/
└── spec.md
docs/18.3-auth-ui/
└── spec.md
拆分後,父 sprint 不再承載可執行任務。/ddd.work、/ddd.xreview、ddd-developer、ddd-reviewer 都只以各子 sprint 的 spec.md 或已確認的 optional tasks.md 作為任務來源。
以新鮮眼光對照 spec 自我檢查:
發現問題直接修正。若發現 tasks.md 只是把 spec 機械轉成更長的 checklist,刪除 tasks.md 草稿,維持原本的輕量 Milestones。
/ddd.workdocs/<編號>-<名稱>/spec.md 的 Milestonesdocs/<編號>-<名稱>/tasks.mddocs/<編號>.<子編號>-<名稱>/spec.md使用者確認任務來源後,引導執行 /ddd.work。
npx claudepluginhub applepig/ddd-workflowDecomposes specs into ordered, verifiable tasks with acceptance criteria using vertical slicing and dependency graphs. Use for large tasks, scope estimation, or parallel agent work.
Breaks a designed feature into atomic ≤1-day tasks with a dependency graph, per-task Definition of Done, and a machine-readable tasks.json for the implement engine. Refuses unless spec.md, sad.md, and an Accepted ADR exist.