@zhouhao4221/devflow-skills 0.2.0 → 0.3.1

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 (83) hide show
  1. package/README.md +57 -235
  2. package/install.js +406 -116
  3. package/package.json +2 -1
  4. package/plugins/api/skills/api/SKILL.md +102 -0
  5. package/plugins/api/skills/api-field-mapper/SKILL.md +95 -0
  6. package/plugins/api/skills/config/SKILL.md +140 -0
  7. package/plugins/api/skills/gen/SKILL.md +345 -0
  8. package/plugins/api/skills/help/SKILL.md +121 -0
  9. package/plugins/api/skills/import/SKILL.md +95 -0
  10. package/plugins/api/skills/map/SKILL.md +152 -0
  11. package/plugins/api/skills/search/SKILL.md +95 -0
  12. package/plugins/diag/skills/audit/SKILL.md +103 -0
  13. package/plugins/diag/skills/diag/SKILL.md +41 -0
  14. package/plugins/diag/skills/diagnose/SKILL.md +167 -0
  15. package/plugins/diag/skills/init/SKILL.md +142 -0
  16. package/plugins/diag/skills/stack-analyzer/SKILL.md +150 -0
  17. package/plugins/pm/skills/ask/SKILL.md +89 -0
  18. package/plugins/pm/skills/brief/SKILL.md +95 -0
  19. package/plugins/pm/skills/export/SKILL.md +93 -0
  20. package/plugins/pm/skills/help/SKILL.md +257 -0
  21. package/plugins/pm/skills/milestone/SKILL.md +102 -0
  22. package/plugins/pm/skills/monthly/SKILL.md +111 -0
  23. package/plugins/pm/skills/plan/SKILL.md +96 -0
  24. package/plugins/pm/skills/pm/SKILL.md +174 -0
  25. package/plugins/pm/skills/progress/SKILL.md +113 -0
  26. package/plugins/pm/skills/report-generator/SKILL.md +104 -0
  27. package/plugins/pm/skills/risk/SKILL.md +223 -0
  28. package/plugins/pm/skills/standup/SKILL.md +96 -0
  29. package/plugins/pm/skills/stats/SKILL.md +158 -0
  30. package/plugins/pm/skills/weekly/SKILL.md +157 -0
  31. package/plugins/req/skills/branch/SKILL.md +447 -0
  32. package/plugins/req/skills/cache/SKILL.md +232 -0
  33. package/plugins/req/skills/changelog/SKILL.md +187 -0
  34. package/plugins/req/skills/changelog-generator/SKILL.md +106 -0
  35. package/plugins/req/skills/code-impact-analyzer/SKILL.md +48 -0
  36. package/plugins/req/skills/commit/SKILL.md +308 -0
  37. package/plugins/req/skills/dev/SKILL.md +229 -0
  38. package/plugins/req/skills/dev-guide/SKILL.md +530 -0
  39. package/plugins/req/skills/do/SKILL.md +191 -0
  40. package/plugins/req/skills/done/SKILL.md +95 -0
  41. package/plugins/req/skills/edit/SKILL.md +187 -0
  42. package/plugins/req/skills/fix/SKILL.md +300 -0
  43. package/plugins/req/skills/help/SKILL.md +136 -0
  44. package/plugins/req/skills/init/SKILL.md +505 -0
  45. package/plugins/req/skills/issue/SKILL.md +237 -0
  46. package/plugins/req/skills/issue-guide/SKILL.md +125 -0
  47. package/plugins/req/skills/migrate/SKILL.md +128 -0
  48. package/plugins/req/skills/modules/SKILL.md +195 -0
  49. package/plugins/req/skills/natural-language-dispatcher/SKILL.md +545 -0
  50. package/plugins/req/skills/new/SKILL.md +172 -0
  51. package/plugins/req/skills/new-quick/SKILL.md +246 -0
  52. package/plugins/req/skills/pr/SKILL.md +157 -0
  53. package/plugins/req/skills/prd/SKILL.md +187 -0
  54. package/plugins/req/skills/prd-analyzer/SKILL.md +131 -0
  55. package/plugins/req/skills/prd-edit/SKILL.md +201 -0
  56. package/plugins/req/skills/projects/SKILL.md +115 -0
  57. package/plugins/req/skills/quick-fix-guide/SKILL.md +51 -0
  58. package/plugins/req/skills/release/SKILL.md +300 -0
  59. package/plugins/req/skills/release-rationale/SKILL.md +213 -0
  60. package/plugins/req/skills/req/SKILL.md +173 -0
  61. package/plugins/req/skills/requirement-analyzer/SKILL.md +274 -0
  62. package/plugins/req/skills/review/SKILL.md +201 -0
  63. package/plugins/req/skills/review-pr/SKILL.md +699 -0
  64. package/plugins/req/skills/show/SKILL.md +302 -0
  65. package/plugins/req/skills/specs/SKILL.md +99 -0
  66. package/plugins/req/skills/split/SKILL.md +164 -0
  67. package/plugins/req/skills/status/SKILL.md +184 -0
  68. package/plugins/req/skills/test/SKILL.md +431 -0
  69. package/plugins/req/skills/test-guide/SKILL.md +304 -0
  70. package/plugins/req/skills/test_new/SKILL.md +417 -0
  71. package/plugins/req/skills/test_regression/SKILL.md +298 -0
  72. package/plugins/req/skills/update/SKILL.md +131 -0
  73. package/plugins/req/skills/update-template/SKILL.md +203 -0
  74. package/plugins/req/skills/upgrade/SKILL.md +178 -0
  75. package/plugins/req/skills/use/SKILL.md +158 -0
  76. package/plugins/req/skills/version-bumper/SKILL.md +113 -0
  77. package/plugins/uat/skills/bug/SKILL.md +153 -0
  78. package/plugins/uat/skills/init/SKILL.md +88 -0
  79. package/plugins/uat/skills/new/SKILL.md +131 -0
  80. package/plugins/uat/skills/report/SKILL.md +48 -0
  81. package/plugins/uat/skills/run/SKILL.md +78 -0
  82. package/plugins/uat/skills/uat/SKILL.md +64 -0
  83. package/plugins/uat/skills/uat-executor/SKILL.md +299 -0
@@ -0,0 +1,530 @@
1
+ ---
2
+ name: dev-guide
3
+ description: |
4
+ 开发引导助手。仅在执行 /req:dev 命令时触发。按项目分层架构引导开发。
5
+ ---
6
+
7
+ # 开发引导助手
8
+
9
+ 仅在 `/req:dev` 命令执行时激活,负责实现方案生成、开发引导和进度跟踪。
10
+
11
+ 根据需求类型(后端/前端/全栈)采用不同的开发引导策略:
12
+ - **后端**:读取 docs/prompt/architecture.md 的分层架构,按配置的层级顺序详细引导
13
+ - **前端**:聚焦功能点描述,依赖项目自身的技能和规范引导实现
14
+ - **全栈**:后端分层 + 前端功能点,分阶段引导
15
+
16
+ > **重要**:本 skill 不内置任何项目架构细节。分层顺序、目录结构、命名规范、开发规范
17
+ > 均从 docs/prompt/architecture.md 读取。如文件不存在,
18
+ > 会发出警告并建议用户通过 `/req:init --reinit` 补充。
19
+
20
+ ---
21
+
22
+ ## 一、前置准备
23
+
24
+ ### 1. 读取模块上下文
25
+
26
+ 如果需求元信息中指定了模块,先读取模块文档:
27
+
28
+ ```
29
+ docs/requirements/modules/<模块名>.md
30
+ ```
31
+
32
+ 从中提取:
33
+ - 模块职责和边界(确定实现范围)
34
+ - 已有数据模型和 API(避免重复建设)
35
+ - 相关需求列表(识别依赖)
36
+
37
+ ### 2. 识别需求类型
38
+
39
+ | 类型 | 流程差异 |
40
+ |------|---------|
41
+ | REQ-XXX(正式需求) | 必须先通过评审,有完整的需求定义章节 |
42
+ | QUICK-XXX(快速修复) | 跳过评审,方案确认后直接开发 |
43
+
44
+ ### 3. 识别项目类型
45
+
46
+ 从需求元信息的「类型」字段判断:
47
+
48
+ | 类型 | 开发引导策略 |
49
+ |------|------------|
50
+ | 后端 | 完整分层架构引导(四~六章节) |
51
+ | 前端 | 功能点清单引导(四-前端章节),实现交给项目自身技能 |
52
+ | 全栈 | 后端分层 + 前端功能点,分阶段引导 |
53
+
54
+ ### 4. 仓库角色检查
55
+
56
+ 读取 `.claude/settings.local.json` 的 `requirementRole`:
57
+
58
+ | 角色 | 行为 |
59
+ |------|------|
60
+ | `primary` | 本地读写,修改后自动同步缓存 |
61
+ | `readonly` | 从缓存读取,允许基于已完成需求开发,不写入需求文档 |
62
+
63
+ ### 5. 加载项目知识
64
+
65
+ **架构文件(prompt)**:Read `docs/prompt/architecture.md`,获取技术栈、分层架构、开发规范、测试规范。
66
+
67
+ - 文件存在 → 读取,静默注入
68
+ - 文件不存在 → 打印一次提示(非阻塞):
69
+ ```
70
+ ⚠️ 未找到 docs/prompt/architecture.md
71
+ /req:dev 依赖此文件了解项目分层和开发规范
72
+ 可执行 /req:init --reinit 自动生成
73
+ ```
74
+
75
+ **项目 Skills(具体约定)**:扫描 `.claude/skills/` 目录,读取所有 `.md` 文件。
76
+
77
+ - 目录存在且有文件 → 全部读取,静默注入
78
+ - 目录不存在或为空 → 静默跳过
79
+
80
+ > `docs/prompt/architecture.md` 提供宽泛的架构知识;`.claude/skills/` 提供窄的具体约定(如路径变量)。两者互补,后续步骤直接使用,无需重复读取。
81
+
82
+ ---
83
+
84
+ ## 二、前置状态检查
85
+
86
+ **在开始开发前必须检查需求状态,不通过则立即终止。**
87
+
88
+ ### REQ-XXX(正式需求)— 必须通过评审
89
+
90
+ | 当前状态 | 处理方式 |
91
+ |---------|---------|
92
+ | 📝 草稿 | ❌ 拒绝:`需求尚未评审,请先执行 /req:review 提交评审` |
93
+ | 👀 待评审 | ❌ 拒绝:`需求正在评审中,请等待评审通过后再开发` |
94
+ | ❌ 评审驳回 | ❌ 拒绝:`需求评审未通过,请先修改后重新提审:/req:edit → /req:review` |
95
+ | ✅ 评审通过 | ✅ 允许,首次进入 |
96
+ | 🔨 开发中 | ✅ 允许,继续开发 |
97
+ | 🧪 测试中 | ✅ 允许,修复测试问题 |
98
+ | 🎉 已完成 | readonly → ✅ 允许;primary → ⚠️ 警告:`需求已完成,如需修改请创建新需求` |
99
+
100
+ ### QUICK-XXX(快速修复)— 跳过评审
101
+
102
+ | 当前状态 | 处理方式 |
103
+ |---------|---------|
104
+ | 📝 草稿 | ✅ 允许,方案确认后直接开发 |
105
+ | 方案确认 | ✅ 允许 |
106
+ | 🔨 开发中 | ✅ 允许,继续开发 |
107
+ | 🎉 已完成 | readonly → ✅ 允许;primary → ⚠️ 警告 |
108
+
109
+ ### `--reset` 标志
110
+
111
+ 带 `--reset` 参数时,清除已有实现方案(十一、实现方案),从头重新生成。
112
+
113
+ ---
114
+
115
+ ## 二-B、分支管理
116
+
117
+ > 仅 `primary` 仓库执行,`readonly` 仓库跳过。
118
+
119
+ ### 1. 工作区清洁检查
120
+
121
+ 执行 `git status --porcelain`。若有未提交改动,列出改动文件,提示用户先 commit 或 stash,**终止流程**。
122
+
123
+ ### 2. 检测主分支
124
+
125
+ 优先 `git symbolic-ref refs/remotes/origin/HEAD`,失败时依次尝试 `origin/main`、`origin/master`,都失败回退 `main`。
126
+
127
+ ### 3. 分支切换或创建
128
+
129
+ **已有 branch 字段**(元信息 `branch` 非 `-`):
130
+ - 本地存在 → `git checkout <branch>`
131
+ - 仅远程存在 → `git checkout -b <branch> origin/<branch>`
132
+ - 都不存在 → 从主分支创建 `git checkout -b <branch> <主分支>`
133
+
134
+ **首次进入**(`branch` 为 `-` 或缺失):
135
+ 1. 从需求标题生成英文 slug(小写 kebab-case,最多 5 词,ASCII only)
136
+ 2. 分支名格式:
137
+ - REQ → `feat/REQ-XXX-<slug>`
138
+ - QUICK → `fix/QUICK-XXX-<slug>`
139
+ 3. 若需求文档元信息 `issue` 字段非 `-` 且非空(如 `#12`),在分支名末尾追加 `-i<N>`(如 `-i12`)
140
+ 4. 展示分支名,等待用户确认(可修改)
141
+ 5. 创建分支 `git checkout -b <branch> <主分支>`
142
+ 6. 将分支名写入需求文档元信息 `branch` 字段
143
+
144
+ ### 4. 分支命名规则
145
+
146
+ | 规则 | 说明 |
147
+ |------|------|
148
+ | 前缀 | REQ → `feat/`,QUICK → `fix/` |
149
+ | 编号 | 保留完整编号(REQ-001、QUICK-003) |
150
+ | slug | 英文翻译,lowercase kebab-case |
151
+ | 长度 | slug 部分最多 5 个单词 |
152
+ | 字符 | 仅 `[a-z0-9-/]` |
153
+ | issue 后缀 | 当需求关联了 Git 平台 issue 时,末尾追加 `-i<N>`(如 `feat/REQ-001-user-points-i12`) |
154
+
155
+ ---
156
+
157
+ ## 三、加载需求上下文
158
+
159
+ ### 读取需求定义
160
+
161
+ 加载需求文档的业务定义章节,作为实现方案的输入:
162
+
163
+ | 章节 | 用途 |
164
+ |------|------|
165
+ | 一、需求描述 | 理解背景和目标 |
166
+ | 二、功能清单 | 确定开发范围和功能点 |
167
+ | 三、业务规则 | 数据校验、状态转换、权限控制 |
168
+ | 四、使用场景 | 理解用户操作流程 |
169
+ | 五、接口需求 | 接口能力和业务语义(技术方案在实现阶段生成) |
170
+ | 六、测试要点 | 后续测试参考 |
171
+
172
+ ### 读取领域规约(Specs)
173
+
174
+ 读取需求文档后,检查项目是否存在领域规约:
175
+
176
+ - **primary 仓库**:扫描 `docs/requirements/specs/` 目录,读取所有 `.md` 文件
177
+ - **readonly 仓库**:读取 `~/.claude-requirements/projects/<requirementProject>/specs/`(`requirementProject` 取自 `.claude/settings.local.json`)
178
+
179
+ 目录存在且有文件 → 全部读取,作为开发约束注入上下文,不打印提示。
180
+ 目录不存在或为空 → 静默跳过。
181
+
182
+ ---
183
+
184
+ ### 检查已有实现方案
185
+
186
+ 检查需求文档「十一、实现方案」章节:
187
+
188
+ - **已有完整内容**(非占位文本) → 直接展示,请用户确认是否沿用
189
+ - **无内容或仅占位文本** → 进入方案生成流程
190
+ - **带 `--reset` 标志** → 忽略已有内容,重新生成
191
+
192
+ ---
193
+
194
+ ## 四、生成实现方案(Plan Mode)
195
+
196
+ 进入 Plan Mode,基于需求定义和代码分析生成实现方案。
197
+
198
+ **根据项目类型选择对应的方案生成流程**:
199
+
200
+ ---
201
+
202
+ ### 后端项目方案
203
+
204
+ > **前置步骤**:读取 docs/prompt/architecture.md,获取分层架构表、目录结构、命名规范。
205
+ > 步骤 5 未找到该文件时已输出警告,此处仍继续但方案可能不够准确。
206
+
207
+ #### 4.1 数据模型(11.1)
208
+
209
+ 分析需求中涉及的数据实体,生成:
210
+
211
+ > **需要生成 migration SQL 时(后端 / 全栈项目)**,从前置准备步骤 5 已加载的 Skills 中解析 `MIGRATIONS_DIR`:
212
+ > 1. 已加载 `.claude/skills/migration.md` → 取其 `MIGRATIONS_DIR` 值
213
+ > 2. 未配置 → 自动检测(`db/migrations`、`database/migrations`、`migrations`、`src/migrations`)
214
+ > 3. 兜底:`docs/migrations`
215
+ >
216
+ > **未找到 `MIGRATIONS_DIR` 配置时**,打印一次警告(非阻塞,继续执行):
217
+ >
218
+ > ```
219
+ > ⚠️ 未找到 .claude/skills/migration.md,当前使用 MIGRATIONS_DIR=<auto-detected or default>
220
+ > 如需固定路径,创建 .claude/skills/migration.md 并写入:
221
+ > - **MIGRATIONS_DIR**: `<路径>`
222
+ > ```
223
+ >
224
+ > SQL 文件写入路径:`$MIGRATIONS_DIR/<req-id>-<描述>.sql`
225
+
226
+ ```markdown
227
+ ### 11.1 数据模型
228
+
229
+ #### 新增表
230
+
231
+ | 表名 | 说明 | 关键字段 |
232
+ |------|------|---------|
233
+ | xxx_table | 描述 | field1, field2 |
234
+
235
+ #### 修改表
236
+
237
+ | 表名 | 变更 | 说明 |
238
+ |------|------|------|
239
+ | existing_table | 新增 field_x | 用于 xxx |
240
+
241
+ #### 实体关系
242
+
243
+ 描述表间关联(一对多、多对多等)
244
+ ```
245
+
246
+ **检查要点**(根据 architecture.md 中的开发规范补充具体检查项):
247
+ - 字段类型和约束与业务规则一致
248
+ - 索引设计(查询场景驱动)
249
+ - architecture.md 中定义的其他数据模型规范(如多租户字段、审计字段等)
250
+
251
+ #### 4.2 API 设计(11.2)
252
+
253
+ 基于第五章「接口需求」的业务语义,结合项目代码和 CLAUDE.md API 风格,生成具体技术方案:
254
+
255
+ ```markdown
256
+ ### 11.2 API 设计
257
+
258
+ | 接口 | 方法 | 路径 | 请求参数 | 响应 | 说明 |
259
+ |------|------|------|---------|------|------|
260
+ | 创建XXX | POST | /api/v1/xxx | { field1, field2 } | { id, ... } | 业务说明 |
261
+ | 查询XXX | GET | /api/v1/xxx | ?page&size&filter | { list, total } | 业务说明 |
262
+ ```
263
+
264
+ **生成依据**:
265
+ - 路径风格:遵循 architecture.md 中的 API 风格(RESTful / GraphQL 等)
266
+ - 参数设计:从业务规则中的数据校验提取字段约束
267
+ - 错误码:按项目规范定义异常响应
268
+
269
+ #### 4.3 文件改动清单(11.3)
270
+
271
+ **按 docs/prompt/architecture.md 中定义的分层架构表顺序**列出需要新增/修改的文件:
272
+
273
+ ```markdown
274
+ ### 11.3 文件改动清单
275
+
276
+ | 层级 | 文件路径 | 操作 | 改动说明 |
277
+ |------|---------|------|---------|
278
+ | <层1名称> | <CLAUDE.md中的目录>/xxx.<ext> | 新增 | <层1职责> |
279
+ | <层2名称> | <CLAUDE.md中的目录>/xxx.<ext> | 新增 | <层2职责> |
280
+ | ... | ... | ... | ... |
281
+ ```
282
+
283
+ **文件命名**:遵循 architecture.md 中定义的文件命名规范。
284
+
285
+ #### 4.4 实现步骤(11.4)
286
+
287
+ **按 architecture.md 分层架构的顺序**拆解为有序步骤,每层一个步骤:
288
+
289
+ ```markdown
290
+ ### 11.4 实现步骤
291
+
292
+ - [ ] 步骤 1:实现 <层1名称>(<层1职责>)
293
+ - 根据 CLAUDE.md 开发规范列出具体任务
294
+
295
+ - [ ] 步骤 2:实现 <层2名称>(<层2职责>)
296
+ - ...
297
+
298
+ - [ ] 步骤 N:实现 <层N名称>(<层N职责>)
299
+ - ...
300
+ ```
301
+
302
+ **关键原则**:步骤数量和名称完全由 architecture.md 的分层架构表决定,不硬编码任何层级。
303
+
304
+ ---
305
+
306
+ ### 前端项目方案
307
+
308
+ 前端项目**不做分层架构引导**,聚焦于把交互逻辑和接口映射说清楚,具体实现交给项目自身的技能和规范。
309
+
310
+ #### 4.1 接口映射(11.1)
311
+
312
+ **自动匹配接口**:读取需求文档第五章「前端:交互逻辑」中的每个操作,按以下优先级匹配后端接口:
313
+
314
+ 1. **关联后端 REQ**:十、关联信息中的关联需求 → 读取其 11.2 API 设计
315
+ 2. **规范文档 specs**:`docs/requirements/specs/` 或缓存中的接口契约
316
+ 3. **Swagger/OpenAPI**:项目配置的 API 文档源(如有)
317
+ 4. **都未找到**:根据交互逻辑的数据需求推断接口签名,标注 `⚠️ 待确认`
318
+
319
+ ```markdown
320
+ ### 11.1 接口映射
321
+
322
+ | 页面/操作 | 用户行为 | 匹配接口 | 请求参数 | 响应字段 | 来源 |
323
+ |----------|---------|---------|---------|---------|------|
324
+ | 订单列表 | 进入页面 | GET /api/v1/orders | page, size | list, total | 后端 REQ-001 |
325
+ | 搜索 | 输入关键词 | GET /api/v1/orders | keyword, status | list, total | 后端 REQ-001 |
326
+ | 审核按钮 | 点击通过/驳回 | POST /api/v1/orders/:id/audit | action, reason | result | 后端 REQ-001 |
327
+ | 导出 | 点击导出 | GET /api/v1/orders/export | 同搜索条件 | 文件下载 | ⚠️ 待确认 |
328
+ ```
329
+
330
+ **每个映射必须包含**:
331
+ - **匹配接口**:方法 + 路径(匹配到的写实际接口,未匹配到的写推断值并标注)
332
+ - **请求参数**:从交互逻辑���「数据需求」提取
333
+ - **响应字段**:页面展示需要的字段
334
+ - **来源**:标注接口来源(哪个 REQ / spec / swagger),方便联调时追溯
335
+
336
+ #### 4.2 文件改动清单(11.3)
337
+
338
+ 列出涉及的页面和组件,不做架构层级约束:
339
+
340
+ ```markdown
341
+ ### 11.3 文件改动清单
342
+
343
+ | 文件路径 | 操作 | 改动说明 |
344
+ |---------|------|---------|
345
+ | src/pages/xxx.vue | 新增 | xxx 页面 |
346
+ | src/components/xxx.vue | 新增 | xxx 组件 |
347
+ | src/api/xxx.ts | 新增/修改 | 接口定义 |
348
+ ```
349
+
350
+ #### 4.3 实现步骤(11.4)
351
+
352
+ 按功能点拆解步骤,**不按技术层拆分**:
353
+
354
+ ```markdown
355
+ ### 11.4 实现步骤
356
+
357
+ - [ ] 步骤 1:实现 xxx 功能
358
+ - 需要开发的页面/组件
359
+ - 调用的接口和数据处理
360
+ - 交互细节和异常处理
361
+
362
+ - [ ] 步骤 2:实现 yyy 功能
363
+ - ...
364
+ ```
365
+
366
+ **关键原则**:功能点描述清楚后,按项目自身的技能、组件库、代码规范来实现,dev-guide 不约束前端技术栈细节。
367
+
368
+ ---
369
+
370
+ ### 全栈项目方案
371
+
372
+ 分两部分生成:后端部分按分层架构引导,前端部分按功能点引导。
373
+
374
+ ```markdown
375
+ ### 11.1 数据模型
376
+ (按后端项目方案的 11.1 格式)
377
+
378
+ ### 11.2 API 设计
379
+ (按后端项目方案的 11.2 格式)
380
+
381
+ ### 11.3 文件改动清单
382
+ (后端 + 前端文件合并列出)
383
+
384
+ ### 11.4 实现步骤
385
+ (建议先后端再前端,后端按分层、前端按功能点)
386
+ ```
387
+
388
+ ---
389
+
390
+ ### 方案确认
391
+
392
+ 实现方案生成后:
393
+ 1. 展示完整方案供用户审核
394
+ 2. 用户确认后,将方案写入需求文档「十一、实现方案」章节(仅 `primary` 仓库,`readonly` 仓库不写入)
395
+
396
+ ---
397
+
398
+ ## 五、状态更新
399
+
400
+ > 仅 `primary` 仓库执行,`readonly` 仓库跳过此步骤(不修改需求文档)。
401
+
402
+ | 场景 | 操作 |
403
+ |------|------|
404
+ | 首次进入开发(状态为评审通过/草稿) | 状态改为「🔨 开发中」 |
405
+ | 继续开发(状态已是开发中/测试中) | 状态不变 |
406
+
407
+ 状态更新时同步更新需求文档中的「生命周期」章节。
408
+
409
+ ---
410
+
411
+ ## 六、开发执行引导
412
+
413
+ ### 生成任务列表
414
+
415
+ 根据实现步骤(11.4)生成 TodoWrite 任务列表,每个步骤对应一个任务。
416
+
417
+ ---
418
+
419
+ ### 后端开发规范
420
+
421
+ > **从 CLAUDE.md 读取**:以下规范从 docs/prompt/architecture.md 的「开发规范」章节获取。
422
+ > 不同项目的规范不同,此处仅定义检查框架。
423
+
424
+ 按 docs/prompt/architecture.md 分层架构表中定义的顺序逐层实现。
425
+
426
+ **每层实现时**:
427
+ 1. 读取 architecture.md 中该层的目录路径和命名规范
428
+ 2. 读取 architecture.md 中的开发规范(错误处理、日志、API 风格等)
429
+ 3. 按规范实现代码
430
+
431
+ #### 后端检查清单
432
+
433
+ 每层实现后,根据 CLAUDE.md「开发规范」章节核对:
434
+
435
+ - [ ] 文件命名遵循项目规范
436
+ - [ ] 错误处理遵循项目规范
437
+ - [ ] 日志规范
438
+ - [ ] API/接口规范
439
+ - [ ] architecture.md 中定义的其他规范项
440
+
441
+ ---
442
+
443
+ ### 前端开发引导
444
+
445
+ 前端开发**不做技术栈层面的约束**,按功能点逐个实现:
446
+
447
+ 1. **读取项目自身的技能和规范**:检查项目的 CLAUDE.md、skills/ 目录,了解项目的组件库、代码规范、目录结构等约定
448
+ 2. **按功能点顺序开发**:每个功能点作为一个独立任务
449
+ 3. **关注业务逻辑正确性**:确保交互行为、接口调用、异常处理与需求描述一致
450
+
451
+ #### 前端检查清单
452
+
453
+ 每个功能点完成后核对:
454
+
455
+ - [ ] 交互行为与需求描述一致
456
+ - [ ] 接口调用正确(路径、参数、响应处理)
457
+ - [ ] 异常状态处理(加载中、空数据、错误提示)
458
+ - [ ] 遵循项目自身的代码规范和组件约定
459
+
460
+ ---
461
+
462
+ ## 七、开发中文档维护
463
+
464
+ > 仅 `primary` 仓库执行,`readonly` 仓库跳过此步骤(不修改需求文档)。
465
+
466
+ 开发过程中需求文档应保持与实际开发同步。
467
+
468
+ ### AI 主动发现偏差
469
+
470
+ 开发过程中如果发现实际情况与需求文档不一致,**主动提示用户**:
471
+
472
+ | 发现场景 | 涉及章节 | 处理方式 |
473
+ |---------|---------|---------|
474
+ | 代码中存在需求未描述的业务规则 | 三、业务规则 | 提示用户确认后补充 |
475
+ | 实现中需要额外功能点 | 二、功能清单 | 提示用户确认后追加 |
476
+ | 数据需求或交互逻辑有调整 | 五、数据与交互 | 提示用户确认后更新 |
477
+ | 发现新的异常场景 | 六、测试要点 | 提示用户确认后补充 |
478
+ | 实现步骤/文件清单有调整 | 十一、实现方案 | 直接更新,无需确认 |
479
+
480
+ ### 修改规则
481
+
482
+ - **一~六章**:修改前提示用户确认,确认后同时在「九、变更记录」追加一条记录(日期、变更内容、影响范围)
483
+ - **十一章**:开发过程中可直接更新(步骤调整、文件增减等属于实现细节)
484
+ - **格式约束不变**:修改仍须遵循模板结构
485
+
486
+ ### 用户主动修改
487
+
488
+ 用户在开发过程中说"更新功能清单"、"加一条业务规则"等,按上述规则直接修改对应章节。
489
+
490
+ ---
491
+
492
+ ## 八、进度跟踪
493
+
494
+ ### 更新规则
495
+
496
+ 每完成一个实现步骤:
497
+
498
+ 1. **TodoWrite 任务状态** → 标记为 completed
499
+ 2. **需求文档 checkbox** → `- [ ]` 改为 `- [x]`(仅 `primary` 仓库,`readonly` 仓库跳过)
500
+
501
+ ### 开发概览格式
502
+
503
+ ```
504
+ REQ-001 需求标题
505
+
506
+ 进度:2/N 步骤已完成
507
+ 实现步骤:
508
+ - [x] 步骤 1:实现 <层1>
509
+ - [x] 步骤 2:实现 <层2>
510
+ - [ ] 步骤 3:实现 <层3> ← 当前
511
+ - [ ] ...
512
+ ```
513
+
514
+ ---
515
+
516
+ ## 九、开发完成
517
+
518
+ 所有步骤完成后输出摘要:
519
+
520
+ ```
521
+ 开发完成!
522
+
523
+ REQ-001 部门渠道关联
524
+ - 实现步骤:5/5
525
+ - 新增文件:4 个
526
+ - 修改文件:1 个
527
+
528
+ 下一步:
529
+ - /req:test REQ-001 - 进入测试
530
+ ```