sdd-workflow 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +226 -0
  2. package/bin/sdd-init.js +59 -0
  3. package/package.json +30 -0
  4. package/src/installer.js +558 -0
  5. package/templates/skills/sdd-constitution/SKILL.md +128 -0
  6. package/templates/skills/sdd-implement/SKILL.md +153 -0
  7. package/templates/skills/sdd-init/SKILL.md +302 -0
  8. package/templates/skills/sdd-plan/SKILL.md +226 -0
  9. package/templates/skills/sdd-review/SKILL.md +498 -0
  10. package/templates/skills/sdd-run/SKILL.md +439 -0
  11. package/templates/skills/sdd-specify/SKILL.md +280 -0
  12. package/templates/skills/sdd-split/SKILL.md +432 -0
  13. package/templates/skills/sdd-tasks/SKILL.md +199 -0
  14. package/templates/skills/sdd-testcases/SKILL.md +235 -0
  15. package/templates/specify/README.md +179 -0
  16. package/templates/specify/scripts/create-feature.sh +144 -0
  17. package/templates/specify/templates/constitution-template.md +74 -0
  18. package/templates/specify/templates/plan-modular-template/README.md +98 -0
  19. package/templates/specify/templates/plan-modular-template/architecture.md +127 -0
  20. package/templates/specify/templates/plan-modular-template/backend-api.md +191 -0
  21. package/templates/specify/templates/plan-modular-template/backend-impl.md +134 -0
  22. package/templates/specify/templates/plan-modular-template/changelog.md +34 -0
  23. package/templates/specify/templates/plan-modular-template/data-model.md +130 -0
  24. package/templates/specify/templates/plan-modular-template/frontend-api.md +126 -0
  25. package/templates/specify/templates/plan-modular-template/frontend-impl.md +108 -0
  26. package/templates/specify/templates/plan-modular-template/performance.md +112 -0
  27. package/templates/specify/templates/plan-modular-template/security.md +85 -0
  28. package/templates/specify/templates/plan-template.md +190 -0
  29. package/templates/specify/templates/requirements/metadata-template.json +12 -0
  30. package/templates/specify/templates/requirements/original-template.md +26 -0
  31. package/templates/specify/templates/spec-modular-template/README.md +69 -0
  32. package/templates/specify/templates/spec-modular-template/acceptance-criteria.md +49 -0
  33. package/templates/specify/templates/spec-modular-template/changelog.md +27 -0
  34. package/templates/specify/templates/spec-modular-template/constraints.md +125 -0
  35. package/templates/specify/templates/spec-modular-template/overview.md +60 -0
  36. package/templates/specify/templates/spec-modular-template/user-stories.md +59 -0
  37. package/templates/specify/templates/spec-template.md +214 -0
  38. package/templates/specify/templates/tasks-modular-template/README.md +79 -0
  39. package/templates/specify/templates/tasks-template.md +232 -0
  40. package/templates/specify/templates/testcases-template.md +434 -0
  41. package/templates/teams/sdd-development-team.md +318 -0
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: sdd-tasks
3
+ description: 创建任务分解(Tasks)- 将技术计划和测试用例分解为可执行的开发任务
4
+ invocable: true
5
+ ---
6
+
7
+ # SDD Tasks - 任务分解生成器
8
+
9
+ 将技术计划和测试用例分解为可执行的开发任务,遵循测试优先原则。
10
+
11
+ ## ⚠️ 核心定位:Tasks 是技术实现的执行计划
12
+
13
+ > Tasks 基于 plan.md 的技术方案进行任务拆分,可以包含具体的文件路径、代码片段和实现细节。
14
+ > 这是 SDD 流程中最接近"代码"的文档之一。
15
+
16
+ ## 核心理念
17
+
18
+ > **测试任务先行**
19
+
20
+ 每个实现任务都有对应的测试任务,确保:
21
+ 1. 先写测试,再写实现
22
+ 2. 测试通过才算任务完成
23
+ 3. 红-绿-重构的完整循环
24
+
25
+ ## 前置条件
26
+ - 必须已有功能规格: `.specify/specs/{feature_id}/spec.md`
27
+ - 必须已有技术计划: `.specify/specs/{feature_id}/plan.md`
28
+ - **必须已有测试用例: `.specify/specs/{feature_id}/testcases.md`**
29
+
30
+ ## 执行步骤
31
+
32
+ ### 1. 读取关联文档
33
+ - `.specify/specs/{feature_id}/spec.md` - 功能规格
34
+ - `.specify/specs/{feature_id}/plan.md` - 技术计划
35
+ - **`.specify/specs/{feature_id}/testcases.md` - 测试用例**
36
+ - `.specify/memory/constitution.md` - 项目宪法
37
+
38
+ ### 2. 建立测试与实现的映射
39
+
40
+ 根据测试用例文档,建立测试用例与实现任务的映射关系:
41
+
42
+ | 测试类型 | 对应实现任务 | 测试任务 |
43
+ |----------|--------------|----------|
44
+ | UT-* 单元测试 | 业务逻辑任务 | 对应测试任务 |
45
+ | IT-* 集成测试 | 数据访问任务 | 对应测试任务 |
46
+ | API-* 接口测试 | API层任务 | 对应测试任务 |
47
+ | FT-* 前端测试 | 前端组件任务 | 对应测试任务 |
48
+ | ST-* 状态测试 | 状态管理任务 | 对应测试任务 |
49
+
50
+ ### 3. 分析技术计划
51
+ 提取关键实现点:
52
+ - 数据库变更
53
+ - 后端接口
54
+ - 前端组件
55
+ - 测试要求
56
+
57
+ ### 3. 生成任务分解
58
+
59
+ 基于模板 `.specify/templates/tasks-template.md` 生成文档,包括:
60
+
61
+ #### 标准阶段:
62
+
63
+ ##### Phase 0: 准备工作
64
+ - 环境准备
65
+ - 数据库准备(DDL执行)
66
+ - 依赖安装
67
+ - 测试数据准备
68
+
69
+ ##### Phase 1: 后端开发(测试优先)
70
+
71
+ **每个实现任务遵循红-绿-重构:**
72
+ ```
73
+ Task 1.X-T: 写测试 → Task 1.X: 写实现 → 测试通过
74
+ ```
75
+
76
+ - 数据模型设计 [P]
77
+ - **业务逻辑测试(先)** → 业务逻辑实现
78
+ - 数据访问接口定义 [P]
79
+ - **数据访问测试(先)** → 数据访问实现
80
+ - **应用服务测试(先)** → 应用服务实现
81
+ - **API接口测试(先)** → API层实现
82
+ - 集成测试执行
83
+
84
+ ##### Phase 2: 前端开发(测试优先)
85
+
86
+ **每个实现任务遵循红-绿-重构:**
87
+ ```
88
+ Task 2.X-T: 写测试 → Task 2.X: 写实现 → 测试通过
89
+ ```
90
+
91
+ - API服务层 [P]
92
+ - **状态管理测试(先)** → 状态管理定义
93
+ - **组件测试(先)** → 页面组件
94
+ - 子组件开发
95
+ - 路由配置
96
+
97
+ ##### Phase 3: 测试验收
98
+ - E2E测试执行
99
+ - 接口联调
100
+ - 功能测试(执行testcases.md中的用例)
101
+ - 代码Review
102
+ - 文档更新
103
+
104
+ > [P] 表示可并行执行的任务
105
+ > **粗体** 表示测试任务(测试优先)
106
+
107
+ ### 4. 任务详情
108
+ 每个任务包含:
109
+ - **描述**: 任务内容
110
+ - **文件**: 涉及的文件路径(使用项目实际目录结构,参考 CLAUDE.md)
111
+ - **依赖**: 前置任务
112
+ - **状态**: 待执行/进行中/已完成
113
+ - **验收标准**: 完成标准
114
+
115
+ ### 5. 保存文档
116
+ 保存到: `.specify/specs/{feature_id}/tasks.md`
117
+
118
+ ### 6. 检测文档大小
119
+
120
+ tasks.md 超过 800 行时,自动执行 `/sdd-split tasks {feature_id} --auto` 拆分(在 sdd-run 中)或提示用户使用 `/sdd-split tasks {feature_id}`(手动模式下)。
121
+
122
+ ### 7. 输出摘要
123
+ 向用户展示任务概览和预估工时。
124
+
125
+ ## 输出示例
126
+
127
+ ```
128
+ ✅ 任务分解已生成: .specify/specs/001-user-authentication/tasks.md
129
+
130
+ 📊 任务概览:
131
+ ┌─────────────┬────────┬──────────┐
132
+ │ 阶段 │ 任务数 │ 预估工时 │
133
+ ├─────────────┼────────┼──────────┤
134
+ │ 准备工作 │ 2 │ 1h │
135
+ │ 后端开发 │ 7 │ 8h │
136
+ │ 前端开发 │ 5 │ 6h │
137
+ │ 测试验收 │ 4 │ 3h │
138
+ ├─────────────┼────────┼──────────┤
139
+ │ 总计 │ 18 │ 18h │
140
+ └─────────────┴────────┴──────────┘
141
+
142
+ 🔗 任务依赖图:
143
+ Phase 0 ──→ Phase 1 ──→ Phase 2 ──→ Phase 3
144
+ (后端) (前端) (测试)
145
+
146
+ 📌 检查点:
147
+ - Checkpoint 1: 后端开发完成
148
+ - Checkpoint 2: 前端开发完成
149
+ - Checkpoint 3: 功能验收完成
150
+
151
+ 请检查任务分解,如需调整请告诉我。
152
+ ```
153
+
154
+ ## 任务依赖规则
155
+
156
+ ### 串行依赖
157
+ ```
158
+ Task 0.1 (环境准备)
159
+
160
+ Task 0.2 (数据库准备)
161
+
162
+ Task 1.1 (数据模型)
163
+
164
+ Task 1.2 (数据访问接口)
165
+
166
+ ...
167
+ ```
168
+
169
+ ### 并行执行
170
+ 以下任务可以并行:
171
+ - Task 1.1 (数据模型) 和 Task 1.2 (数据访问接口)
172
+ - Task 2.1 (API服务) 和 Task 2.2 (状态管理)
173
+
174
+ ## 工时估算参考
175
+
176
+ | 任务类型 | 复杂度 | 预估工时 |
177
+ |----------|--------|----------|
178
+ | 简单CRUD | 低 | 0.5h |
179
+ | 带业务逻辑 | 中 | 1-2h |
180
+ | 复杂业务 | 高 | 2-4h |
181
+ | 单元测试 | - | 实现的30% |
182
+ | 集成测试 | - | 1-2h |
183
+
184
+ ## 反馈触发点
185
+
186
+ 分解任务时,以下情况**必须触发向上反馈**:
187
+
188
+ 1. **plan 中有遗漏** → 任务分解发现缺少接口/组件/数据流设计,反馈回 plan 补充
189
+ 2. **plan 方案过度复杂** → 发现可简化实现路径,反馈回 plan 简化
190
+ 3. **测试用例与 plan 不匹配** → testcases 覆盖的场景在 plan 中无对应设计,双向确认
191
+
192
+ 反馈流程:在 tasks.md 中创建 CR 记录 → 修正 plan/testcases → 同步更新 tasks.md → 继续分解
193
+
194
+ ## 注意事项
195
+
196
+ 1. **文件路径**: 任务中涉及的文件路径应使用项目实际目录结构(参考 CLAUDE.md 和 constitution.md)
197
+ 2. **技术栈适配**: 任务描述应使用项目实际的技术术语和框架名称
198
+ 3. **测试优先**: 每个实现任务必须对应一个测试任务
199
+ 4. **阶段对齐**: 任务阶段划分应与 plan.md 中的阶段合约一致
@@ -0,0 +1,235 @@
1
+ ---
2
+ name: sdd-testcases
3
+ description: 创建测试用例设计(Test Cases)- 在实现前定义测试场景、边界条件和验收标准。测试优先,确保实现有据可依。
4
+ invocable: true
5
+ ---
6
+
7
+ # SDD Test Cases - 测试用例设计器
8
+
9
+ 在实现前创建测试用例设计,遵循测试优先原则(Test-First Development)。
10
+
11
+ ## ⚠️ 内容边界:测试用例聚焦行为验证
12
+
13
+ > 测试用例描述"系统应该表现出什么行为",而非"系统如何实现"。
14
+ > - 测试场景表格中用 **业务语言** 描述 Given/When/Then
15
+ > - 代码骨架可以有,但应验证 **业务行为** 而非 **实现细节**
16
+ > - 测试方法名用 **业务动作** 命名,不暴露内部实现方式
17
+
18
+ ### 示例对比
19
+
20
+ **❌ 过度暴露实现**:
21
+ ```
22
+ | UT-020 | checkManyLotNumberForSubLotItem-正常 | 父任务通过外键关联了子任务 | 调用checkManyLotNumberForSubLotItem | 通过 findEarliestSubTaskId 找到子任务 |
23
+ ```
24
+
25
+ **✅ 聚焦行为验证**:
26
+ ```
27
+ | UT-020 | 子投料单过滤-有关联子任务 | 父任务存在关联的子任务且有投料单数据 | 执行子投料单过滤 | 返回子任务的投料单列表,过滤通过 |
28
+ ```
29
+
30
+ ## 核心理念
31
+
32
+ > **测试先行,实现有据**
33
+
34
+ 1. **先写测试,再写实现**: 每个功能点必须有对应的测试用例
35
+ 2. **测试即文档**: 测试用例描述系统期望行为
36
+ 3. **红-绿-重构**: 先让测试失败,再让测试通过
37
+ 4. **边界优先**: 优先覆盖边界条件和异常场景
38
+
39
+ ## 前置条件
40
+ - 必须已有功能规格: `.specify/specs/{feature_id}/spec.md`
41
+ - 推荐已有项目宪法: `.specify/memory/constitution.md`
42
+
43
+ ## 执行步骤
44
+
45
+ ### 1. 读取规格文档
46
+ 读取关联的功能规格: `.specify/specs/{feature_id}/spec.md`
47
+
48
+ 重点提取:
49
+ - 用户故事和验收标准
50
+ - 功能需求列表
51
+ - 边界条件和异常处理
52
+ - 非功能需求(性能等)
53
+
54
+ ### 2. 分析测试范围
55
+
56
+ #### 2.1 后端测试范围
57
+ - 领域服务/业务逻辑
58
+ - 数据访问层操作
59
+ - API接口契约
60
+ - 边界条件和异常
61
+
62
+ #### 2.2 前端测试范围
63
+ - 组件渲染和交互
64
+ - 状态管理
65
+ - API调用和错误处理
66
+ - 用户交互流程
67
+
68
+ ### 3. 设计测试用例
69
+
70
+ #### 3.1 单元测试设计
71
+ 为每个业务方法设计:
72
+ - 正常场景 (Happy Path)
73
+ - 边界条件 (Boundary)
74
+ - 异常场景 (Exception)
75
+ - 空值/null处理
76
+
77
+ #### 3.2 集成测试设计
78
+ - 数据访问层CRUD操作
79
+ - API接口请求响应
80
+ - 数据库事务
81
+
82
+ #### 3.3 前端测试设计
83
+ - 组件渲染测试
84
+ - 用户交互测试
85
+ - 表单校验测试
86
+ - 状态管理测试
87
+
88
+ #### 3.4 E2E测试设计
89
+ - 关键用户流程
90
+ - 跨页面操作
91
+ - 完整业务场景
92
+
93
+ ### 4. 生成测试代码骨架
94
+
95
+ 根据项目技术栈(参考 constitution.md)生成对应的测试代码骨架。使用项目测试框架编写示例代码。
96
+
97
+ **根据 constitution.md 中的技术栈选择对应格式**:
98
+ - 如果后端使用 Java/JVM:使用 JUnit + Mockito 风格
99
+ - 如果后端使用 Go:使用标准 testing 包风格
100
+ - 如果后端使用 Python:使用 pytest 风格
101
+ - 如果前端使用 React:使用 Jest + React Testing Library 风格
102
+ - 如果前端使用 Vue:使用 Vitest + Vue Test Utils 风格
103
+ - 其他框架根据 constitution.md 中的测试框架配置
104
+
105
+ ### 5. 建立测试与实现的映射
106
+
107
+ | 测试类型 | 关联任务 | 验证内容 |
108
+ |----------|----------|----------|
109
+ | 单元测试 | 后端业务逻辑任务 | 业务逻辑 |
110
+ | 集成测试 | 数据访问任务 | 数据持久化 |
111
+ | API测试 | API接口任务 | 接口契约 |
112
+ | 前端测试 | 前端组件任务 | UI交互 |
113
+
114
+ ### 6. 保存文档
115
+ 保存到: `.specify/specs/{feature_id}/testcases.md`
116
+
117
+ ### 7. 输出摘要
118
+
119
+ ```
120
+ ✅ 测试用例设计已生成: .specify/specs/{feature_id}/testcases.md
121
+
122
+ 📊 测试用例统计:
123
+ ┌─────────────┬────────┬──────────┐
124
+ │ 测试类型 │ 用例数 │ 优先级 │
125
+ ├─────────────┼────────┼──────────┤
126
+ │ 单元测试 │ 15 │ P0 │
127
+ │ 集成测试 │ 8 │ P0 │
128
+ │ API测试 │ 10 │ P0 │
129
+ │ 前端测试 │ 12 │ P0 │
130
+ │ E2E测试 │ 3 │ P1 │
131
+ │ 边界测试 │ 8 │ P0 │
132
+ ├─────────────┼────────┼──────────┤
133
+ │ 总计 │ 56 │ │
134
+ └─────────────┴────────┴──────────┘
135
+
136
+ 🔗 测试与实现映射:
137
+ - UT-001~015 → 业务逻辑任务
138
+ - IT-001~008 → 数据访问任务
139
+ - API-001~010 → API接口任务
140
+ - FT-001~012 → 前端组件任务
141
+
142
+ 📋 下一步:
143
+ 1. 审查测试用例设计
144
+ 2. 运行 /sdd-plan 生成技术实现计划
145
+ 3. 实现时先写测试,再写实现
146
+ ```
147
+
148
+ ## 测试用例设计规范
149
+
150
+ ### 命名规范
151
+
152
+ #### 后端测试方法(通用格式)
153
+ ```
154
+ 格式: test_{方法名}_{场景}_{期望结果}
155
+
156
+ 示例:
157
+ test_createOrder_validInput_success
158
+ test_createOrder_nullInput_throwsException
159
+ test_createOrder_insufficientStock_throwsException
160
+ ```
161
+
162
+ #### 前端测试(通用格式)
163
+ ```
164
+ 格式: should {期望行为} when {条件}
165
+
166
+ 示例:
167
+ should display error message when form is invalid
168
+ should submit form when all fields are valid
169
+ ```
170
+
171
+ ### 测试用例ID规范
172
+
173
+ | 前缀 | 类型 | 示例 |
174
+ |------|------|------|
175
+ | UT- | 单元测试 | UT-001, UT-002 |
176
+ | IT- | 集成测试 | IT-001, IT-002 |
177
+ | API- | API测试 | API-001, API-002 |
178
+ | FT- | 前端测试 | FT-001, FT-002 |
179
+ | ST- | Store/状态测试 | ST-001, ST-002 |
180
+ | E2E- | 端到端测试 | E2E-001, E2E-002 |
181
+ | B- | 边界测试 | B-001, B-002 |
182
+ | PT- | 性能测试 | PT-001, PT-002 |
183
+
184
+ ### Gherkin格式
185
+
186
+ 使用 Given-When-Then 格式描述测试场景:
187
+
188
+ ```gherkin
189
+ 场景: UT-001 正常创建订单
190
+ Given 用户已登录
191
+ And 购物车中有商品
192
+ When 用户点击提交订单
193
+ Then 系统创建订单
194
+ And 订单状态为"待支付"
195
+ ```
196
+
197
+ ## 上下游关系
198
+
199
+ - **上游**: spec.md → 本阶段
200
+ - **下游**: 本阶段 → sdd-plan / sdd-tasks / sdd-implement
201
+
202
+ ## 反馈触发点
203
+
204
+ 设计测试用例时,以下情况**必须触发向上反馈**:
205
+
206
+ 1. **验收标准无法写出 Given-When-Then** → spec 中需求描述模糊,反馈回 spec 澄清
207
+ 2. **发现 spec 未覆盖的异常场景** → 补充到 spec 的用户故事/验收标准中
208
+ 3. **多个用户故事之间存在矛盾** → 反馈回 spec 统一逻辑
209
+
210
+ 反馈流程:在 testcases.md 中创建 CR 记录 → 修正 spec.md → 同步更新 testcases.md → 继续设计
211
+
212
+ ## 注意事项
213
+
214
+ 1. **覆盖边界**: 每个功能点至少包含正常+异常+边界三种测试
215
+ 2. **独立性**: 测试用例之间相互独立,可并行执行
216
+ 3. **可重复**: 测试结果可重复,不依赖外部状态
217
+ 4. **快速反馈**: 单元测试应快速执行,便于频繁运行
218
+ 5. **有意义的断言**: 断言应该验证业务价值,而非实现细节
219
+ 6. **测试数据**: 使用明确的测试数据,避免魔法数字
220
+ 7. **技术栈适配**: 测试代码示例使用项目实际测试框架(参考 constitution.md)
221
+
222
+ ## 示例输出
223
+
224
+ ```markdown
225
+ ## 1.1 单元测试
226
+
227
+ ### 测试目标: OrderService
228
+
229
+ | ID | 测试场景 | Given | When | Then |
230
+ |----|----------|-------|------|------|
231
+ | UT-001 | 正常创建订单 | 购物车有商品,库存充足 | 调用createOrder | 返回订单ID |
232
+ | UT-002 | 库存不足 | 购物车有商品,库存不足 | 调用createOrder | 抛出InsufficientStockException |
233
+ | UT-003 | 购物车为空 | 购物车无商品 | 调用createOrder | 抛出EmptyCartException |
234
+ | UT-004 | 用户未登录 | 当前用户为null | 调用createOrder | 抛出UnauthorizedException |
235
+ ```
@@ -0,0 +1,179 @@
1
+ # SDD (Specification-Driven Development) Guide
2
+
3
+ > This document describes how to use SDD specification for development in any project
4
+
5
+ ## Quick Start
6
+
7
+ ### 1. Create a New Feature
8
+
9
+ Use the script to create a feature directory:
10
+ ```bash
11
+ ./.specify/scripts/create-feature.sh <feature-name>
12
+ ```
13
+
14
+ Example:
15
+ ```bash
16
+ ./.specify/scripts/create-feature.sh user-authentication
17
+ # Output: .specify/specs/001-user-authentication/
18
+ ```
19
+
20
+ ### 2. Using SDD Commands
21
+
22
+ | Command | Function | Example |
23
+ |---------|----------|---------|
24
+ | `/sdd-constitution` | Create/update project constitution | `/sdd-constitution` |
25
+ | `/sdd-specify` | Create feature specification | `/sdd-specify user authentication feature` |
26
+ | `/sdd-plan` | Create technical plan | `/sdd-plan implement authentication with JWT` |
27
+ | `/sdd-tasks` | Create task breakdown | `/sdd-tasks` |
28
+ | `/sdd-implement` | Execute development tasks | `/sdd-implement` |
29
+
30
+ ## SDD Process
31
+
32
+ ```
33
+ ┌─────────────────────────────────────────────────────────────┐
34
+ │ SDD Development Process │
35
+ ├─────────────────────────────────────────────────────────────┤
36
+ │ │
37
+ │ 1. Constitution -> Establish project principles & rules │
38
+ │ | │
39
+ │ 2. Specify -> Define requirements and user stories │
40
+ │ | │
41
+ │ 3. Plan -> Design technical solution & data model │
42
+ │ | │
43
+ │ 4. Tasks -> Break down development tasks │
44
+ │ | │
45
+ │ 5. Implement -> Execute development and validate │
46
+ │ │
47
+ └─────────────────────────────────────────────────────────────┘
48
+ ```
49
+
50
+ ## Directory Structure
51
+
52
+ ```
53
+ .specify/
54
+ ├── memory/
55
+ │ ├── constitution.md # Project constitution (development principles)
56
+ │ └── project-context.md # Project context (optional)
57
+
58
+ ├── specs/
59
+ │ ├── 000-existing-modules/ # Documentation for existing modules
60
+ │ │ ├── module-a/ # Module A
61
+ │ │ └── module-b/ # Module B
62
+ │ │
63
+ │ └── 001-new-feature/ # New feature
64
+ │ ├── spec.md # Feature specification
65
+ │ ├── testcases.md # Test cases
66
+ │ ├── plan.md # Technical plan
67
+ │ ├── tasks.md # Task breakdown
68
+ │ └── contracts/ # API contracts
69
+ │ └── api-spec.json
70
+
71
+ ├── templates/
72
+ │ ├── constitution-template.md
73
+ │ ├── spec-template.md
74
+ │ ├── testcases-template.md
75
+ │ ├── plan-template.md
76
+ │ ├── tasks-template.md
77
+ │ ├── spec-modular-template/
78
+ │ ├── plan-modular-template/
79
+ │ ├── tasks-modular-template/
80
+ │ └── requirements/
81
+
82
+ ├── scripts/
83
+ │ └── create-feature.sh # Create feature directory
84
+
85
+ └── README.md # This document
86
+ ```
87
+
88
+ ## Document Specification
89
+
90
+ ### Feature Specification (spec.md)
91
+
92
+ Must include:
93
+ - Feature overview (name, description, business background)
94
+ - User stories (role, goal, value)
95
+ - Functional requirements (core features, UI, data, interfaces)
96
+ - Non-functional requirements (performance, security, compatibility)
97
+ - Acceptance criteria (functional, quality, documentation)
98
+
99
+ ### Test Cases (testcases.md)
100
+
101
+ Must include:
102
+ - Test strategy (test pyramid, coverage targets)
103
+ - Backend test cases (unit, integration, API)
104
+ - Frontend test cases (component, store)
105
+ - E2E test cases (critical user flows)
106
+ - Boundary condition tests
107
+ - Test execution plan
108
+
109
+ ### Technical Plan (plan.md)
110
+
111
+ Must include:
112
+ - Architecture design (overall architecture, module breakdown)
113
+ - Data model (table design, entity classes)
114
+ - API design (interface list, request/response format)
115
+ - Frontend implementation (pages, components, state management)
116
+ - Backend implementation (layered design, core classes)
117
+ - Test plan (unit tests, integration tests)
118
+
119
+ ### Task Breakdown (tasks.md)
120
+
121
+ Must include:
122
+ - Task list (description, files, dependencies, acceptance criteria)
123
+ - Phase breakdown (preparation, backend, frontend, testing)
124
+ - Checkpoints (phase validation points)
125
+ - Time estimates
126
+
127
+ ## Best Practices
128
+
129
+ ### 1. Documentation First
130
+ - Complete specification documents before coding
131
+ - Specification documents require team review
132
+
133
+ ### 2. Acceptance-Driven
134
+ - Every feature has clear acceptance criteria
135
+ - Test cases are based on acceptance criteria
136
+
137
+ ### 3. Progressive Refinement
138
+ - Specification -> Plan -> Tasks, progressively refined
139
+ - Each step can be traced back and modified
140
+
141
+ ### 4. Continuous Updates
142
+ - Update documents when requirements change
143
+ - Record technical decisions in plan documents
144
+
145
+ ### 5. Technology Stack Detection
146
+ - SDD automatically detects your project's technology stack
147
+ - Templates use placeholders that adapt to any stack
148
+ - Constitution records the detected stack for reference
149
+
150
+ ## Documenting Existing Modules
151
+
152
+ For existing modules, follow these steps to add documentation:
153
+
154
+ ```bash
155
+ # 1. Create module directory
156
+ mkdir -p .specify/specs/000-existing-modules/module-name
157
+
158
+ # 2. Use SDD commands to analyze existing code and generate documentation
159
+ # In Claude Code, run:
160
+ /sdd-specify Analyze the module-name module and generate specification documentation
161
+ ```
162
+
163
+ ## FAQ
164
+
165
+ ### Q: Does SDD conflict with agile development?
166
+ A: No. SDD emphasizes documentation first, but documents can be lightweight. User stories are specifications in SDD.
167
+
168
+ ### Q: Must all documents be completed before coding?
169
+ A: Recommended but not required. For simple features, steps can be merged. The key is to have clear acceptance criteria.
170
+
171
+ ### Q: How to handle urgent requirements?
172
+ A: Implement first, then add documentation. But at minimum, write the feature specification.
173
+
174
+ ### Q: How does SDD work with different technology stacks?
175
+ A: SDD templates use placeholders like `{frontend_framework}`, `{backend_framework}`, `{database}` that are automatically filled based on your project. The constitution detects your stack and all subsequent documents reference it.
176
+
177
+ ---
178
+
179
+ *For more questions, refer to the project constitution or contact the team*