From ddd-workflow
Generates formal spec.md files with User Stories, acceptance criteria, API contracts, ADRs, and milestones. Activates when requirements need structured documentation before implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ddd-workflow:ddd.specThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
規格制定階段。根據需求(或 plan/research 的成果)撰寫正式的規格書。
規格制定階段。根據需求(或 plan/research 的成果)撰寫正式的規格書。
嚴禁在 spec.md 獲使用者確認前撰寫任何實作程式碼。 嚴禁省略邊界案例——每份 spec 至少列出一種 Edge Case。 嚴禁引入 docs/TECHSTACK.md 以外的技術而不在 ADR 中說明。 嚴禁在未盤點既有可複用資產前定稿——每份 spec 必須含「既有資產盤點 / Reuse Map」,列出可複用的 utility / 元件 / 樣式 token / pattern,或註明已搜尋確認無,不得留空。你必須為以下每個項目建立 task 並依序完成:
digraph spec_flow {
"準備工作" [shape=box];
"探索 codebase" [shape=box];
"需求分析" [shape=box];
"撰寫 spec.md" [shape=box];
"Spec self-review" [shape=box];
"有問題?" [shape=diamond];
"修正" [shape=box];
"呈現給使用者" [shape=box];
"使用者確認?" [shape=diamond];
"根據回饋修改" [shape=box];
"引導 /ddd.work(或 /ddd.tasks)" [shape=doublecircle];
"準備工作" -> "探索 codebase";
"探索 codebase" -> "需求分析";
"需求分析" -> "撰寫 spec.md";
"撰寫 spec.md" -> "Spec self-review";
"Spec self-review" -> "有問題?";
"有問題?" -> "修正" [label="yes"];
"修正" -> "Spec self-review";
"有問題?" -> "呈現給使用者" [label="no"];
"呈現給使用者" -> "使用者確認?";
"使用者確認?" -> "根據回饋修改" [label="no"];
"根據回饋修改" -> "Spec self-review";
"使用者確認?" -> "引導 /ddd.work(或 /ddd.tasks)" [label="yes"];
}
探索 codebase 時,先了解現有結構再提案。Spec 中的設計應與既有 pattern 一致。如果現有 code 有問題會影響本次開發(例如檔案過大、職責不清、邊界模糊),將改善納入 spec 的一部分——但不做無關的重構。
將系統拆成職責清晰的小單元,每個單元應:
檢驗標準:能否不讀內部實作就理解這個單元做什麼?能否改內部實作而不影響呼叫端?如果不行,邊界需要重新劃。
git checkout -b feat/<編號>-<名稱>(若已有分支則切換過去)。branch 名稱中的 <編號>-<名稱> 必須與文件包 docs/<編號>-<名稱>/ 完全一致——這是從程式碼追溯需求的唯一索引,命名不一致會切斷追溯鏈。docs/<編號>-<名稱>/ 資料夾docs/PRD.md、docs/TECHSTACK.md 了解專案脈絡# <功能名稱>
## 目標
簡述這個功能要達成什麼。
## 非目標
明確列出不在範圍內的事項。
## User Story
作為 <角色>,我想要 <功能>,以便 <價值>。
### 驗收條件
- [ ] 條件 1
- [ ] 條件 2
- [ ] 條件 3
## 相關檔案
- `src/path/to/file.js` — 說明
## 既有資產盤點 / Reuse Map
(動工前盤點既有可複用結構,優先沿用而非新造)
| 既有資產 | 位置 | 本次如何沿用 |
|---|---|---|
| <utility / 元件 / 樣式 token / pattern> | `src/...` | <複用 / 擴充 / 為何不合用要新建> |
新建項目:<列出確需新造者與理由;真的沒有可複用時寫「無,已搜尋 X、Y 確認」——不得留空>
## 介面/資料結構 (API / Data Structure)
(必須明確標示通訊協定:REST / SSE / WebSocket,並提供 Request / Response 的 JSON 範例)
## 邊界案例
- Case 1:描述與處理方式
## ADR(Architecture Decision Record)
- 決策:選用 X 方案
- 原因:...
- 替代方案:Y(為何不選)
## Milestones
### Milestone 1: <名稱>
> 範圍:預期涉及的檔案/目錄、模組、或待探索區域(規格階段不要求精準列出所有檔案)
> 驗證:依專案性質選擇——測試指令、CLI 驗收步驟、或其他可重現方式
> 預期結果:完成後可觀察到什麼
- [ ] Red → Green → Refactor
ADR 寫作要點:重點是記錄「為什麼選 A 而不選 B」——未來的維護者需要的是決策脈絡,而非單純的結論。替代方案不需要長篇大論,一兩句說明被排除的理由即可。
寫完 spec.md 後,用新鮮的眼光檢查:
發現問題直接修正,不需要重跑整個流程。
Self-review 通過後,向使用者呈現 spec:
「Spec 已寫入
docs/<編號>-<名稱>/spec.md。請審閱內容,有需要調整的地方告訴我。確認後可直接進入/ddd.work;需要細化 Milestones 或拆分 sprint 時才進入/ddd.tasks。」
等待使用者回應。如果要求修改,改完後重跑 Self-Review。使用者確認後才結束。
docs/<編號>-<名稱>/spec.mdfeat/<編號>-<名稱>使用者確認規格後,引導使用者執行 /ddd.work;需要細化 Milestones 或拆分 sprint 時,才引導 /ddd.tasks。
npx claudepluginhub applepig/ddd-workflowCreates and manages specification documents for formal Spec-Driven Development. Guides through the full lifecycle: discuss, write, review, approve, implement, verify, archive. Includes decision trees and acceptance criteria templates.
Creates or updates SPEC.md documents from requirements, notes, or interview output, structuring into sections for goals, design, edge cases, security, testing, and success criteria. Use for feature specs.
Generates structured feature specifications with demoable units, functional requirements, and proof artifacts. Use when defining what to build before writing code.