@zhouhao4221/devflow-skills 0.3.6 → 0.3.7

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 (40) hide show
  1. package/package.json +1 -1
  2. package/plugins/diag/templates/services.yaml.template +31 -0
  3. package/plugins/req/skills/branch/SKILL.md +48 -377
  4. package/plugins/req/skills/dev/SKILL.md +1 -1
  5. package/plugins/req/skills/dev-guide/SKILL.md +74 -399
  6. package/plugins/req/skills/do/SKILL.md +1 -1
  7. package/plugins/req/skills/done/SKILL.md +2 -2
  8. package/plugins/req/skills/edit/SKILL.md +1 -1
  9. package/plugins/req/skills/fix/SKILL.md +1 -1
  10. package/plugins/req/skills/init/SKILL.md +66 -430
  11. package/plugins/req/skills/issue/SKILL.md +1 -1
  12. package/plugins/req/skills/migrate/SKILL.md +1 -1
  13. package/plugins/req/skills/natural-language-dispatcher/SKILL.md +78 -438
  14. package/plugins/req/skills/new/SKILL.md +1 -1
  15. package/plugins/req/skills/pr/SKILL.md +1 -1
  16. package/plugins/req/skills/prd/SKILL.md +1 -1
  17. package/plugins/req/skills/prd-edit/SKILL.md +1 -1
  18. package/plugins/req/skills/release/SKILL.md +1 -1
  19. package/plugins/req/skills/review/SKILL.md +1 -1
  20. package/plugins/req/skills/review-pr/SKILL.md +74 -601
  21. package/plugins/req/skills/test/SKILL.md +41 -355
  22. package/plugins/req/skills/test_new/SKILL.md +36 -356
  23. package/plugins/req/skills/test_regression/SKILL.md +1 -1
  24. package/plugins/req/skills/update-template/SKILL.md +1 -1
  25. package/plugins/req/skills/use/SKILL.md +1 -1
  26. package/plugins/req/templates/claude-md-snippets/frontend-react.md +48 -0
  27. package/plugins/req/templates/claude-md-snippets/generic.md +43 -0
  28. package/plugins/req/templates/claude-md-snippets/go-backend.md +47 -0
  29. package/plugins/req/templates/claude-md-snippets/java-backend.md +46 -0
  30. package/plugins/req/templates/docker-compose.test.yml +84 -0
  31. package/plugins/req/templates/index-template.md +60 -0
  32. package/plugins/req/templates/module-template.md +79 -0
  33. package/plugins/req/templates/prd-template.md +338 -0
  34. package/plugins/req/templates/quick-template.md +71 -0
  35. package/plugins/req/templates/release-prompt-template.md +51 -0
  36. package/plugins/req/templates/requirement-template.md +256 -0
  37. package/plugins/req/templates/scripts/test-env.sh +226 -0
  38. package/plugins/req/templates/tests/e2e/playwright.config.ts +86 -0
  39. package/plugins/uat/templates/flow-template.md +116 -0
  40. package/plugins/uat/templates/testid-convention.md +42 -0
@@ -3,31 +3,26 @@ name: test_new
3
3
  description: 创建测试 - 为新功能编写自动化测试用例或手动测试用例文档
4
4
  ---
5
5
 
6
- > **重要**:本命令的测试文件位置、运行命令、代码示例均从项目 CLAUDE.md 的「测试规范」章节读取,不内置任何项目细节。
7
-
8
6
  # 创建测试
9
7
 
10
- 为新开发的功能创建自动化测试用例,包括单元测试、API 测试和 E2E 测试。
8
+ 为新开发的功能创建自动化测试用例,包括 UT、API 测试和 E2E 测试。
11
9
 
12
- > 存储路径和缓存同步规则见 [_storage.md](./_storage.md)
10
+ > 测试文件位置、运行命令、代码示例从项目 `docs/prompt/testing.md` 和 CLAUDE.md「测试规范」读取。
13
11
 
14
12
  ## 命令格式
15
13
 
16
14
  ```
17
- /req:test_new [REQ-XXX] [--type=ut|api|e2e|all]
15
+ /req:test_new [REQ-XXX] [--type=ut|api|e2e|all|manual] [--dry-run]
18
16
  ```
19
17
 
20
- ### 参数
21
-
22
- | 参数 | 说明 | 示例 |
23
- |-----|------|------|
24
- | `REQ-XXX` | 需求编号(可选) | `/req:test_new REQ-001` |
25
- | `--type=ut` | 仅创建单元测试 | `/req:test_new --type=ut` |
26
- | `--type=api` | 仅创建 API 测试 | `/req:test_new --type=api` |
27
- | `--type=e2e` | 仅创建 E2E 测试 | `/req:test_new --type=e2e` |
28
- | `--type=all` | 创建所有类型测试 | `/req:test_new --type=all` |
29
- | `--type=manual` | 生成人工复测用例文档 | `/req:test_new --type=manual` |
30
- | `--dry-run` | 预览不实际创建 | `/req:test_new --dry-run` |
18
+ | 参数 | 说明 |
19
+ |------|------|
20
+ | `--type=ut` | 仅单元测试 |
21
+ | `--type=api` | 仅 API 测试 |
22
+ | `--type=e2e` | E2E 测试 |
23
+ | `--type=all` | 所有类型 |
24
+ | `--type=manual` | 生成人工复测用例文档 |
25
+ | `--dry-run` | 预览不实际创建 |
31
26
 
32
27
  ---
33
28
 
@@ -35,379 +30,64 @@ description: 创建测试 - 为新功能编写自动化测试用例或手动测
35
30
 
36
31
  ### 1. 选择需求
37
32
 
38
- - 指定编号 → 使用该需求
39
- - 未指定 → 查找「开发中」或「测试中」的需求
40
- - 多个候选 → 让用户选择
33
+ 指定编号 → 使用;未指定 → 查找「开发中/测试中」的需求,多个候选让用户选择。
41
34
 
42
35
  ### 2. 分析需求文档
43
36
 
44
- ```
45
- 分析需求文档...
46
-
47
- 需求:REQ-001 <需求标题>
48
- 状态:开发中
49
-
50
- 功能清单:
51
- 1. <功能点 1>
52
- 2. <功能点 2>
53
- 3. <功能点 3>
54
-
55
- 涉及文件:
56
- <source-file-1>
57
- <source-file-2>
58
- <source-file-3>
59
- <source-file-N>
60
-
61
- 识别测试点:
62
-
63
-
64
- 类型 测试点 数量
65
-
66
- UT 业务层方法 N
67
- API 接口端点 N
68
- E2E 用户流程 N
69
-
70
- ```
37
+ 提取功能清单、涉及文件,识别三类测试点(UT/API/E2E)及其数量。
71
38
 
72
39
  ### 3. 选择测试类型
73
40
 
74
- ```
75
- 请选择要创建的测试类型:
76
-
77
- [1] 单元测试 (UT)
78
- - 测试业务层逻辑
79
- - 使用 Mock 隔离依赖
80
- - 预计生成 N 个测试用例
81
-
82
- [2] API 测试
83
- - 测试接口端点
84
- - 验证请求/响应/错误码
85
- - 预计生成 N 个测试文件
86
-
87
- [3] E2E 测试
88
- - 测试完整用户流程
89
- - 端到端场景验证
90
- - 预计生成 N 个测试文件
91
-
92
- [4] 全部自动化
93
-
94
- [5] 手动测试用例文档 (manual)
95
- - 供测试人员逐条复测
96
- - 覆盖后端接口 + 前端交互 + 业务规则
97
- - 生成 docs/test-cases/REQ-XXX-testcases.md
98
-
99
- 请输入选择 (1/2/3/4/5):
100
- ```
101
-
102
- ### 4. 生成单元测试 (UT)
103
-
104
- #### 4.1 分析被测方法
105
-
106
- ```
107
- 分析业务层方法...
108
-
109
- <source-file>:
110
- <方法签名 1>
111
- <方法签名 2>
112
- <方法签名 3>
113
- <方法签名 N>
114
- ```
115
-
116
- #### 4.2 生成测试用例
117
-
118
- 根据 CLAUDE.md 中定义的测试框架和规范,生成对应的测试代码。
119
-
120
- 测试用例遵循 **Arrange-Act-Assert** 模式:
41
+ 交互式选择或从 `--type` 参数确定。
121
42
 
122
- ```
123
- 生成文件:<CLAUDE.md中定义的测试文件路径>
124
-
125
- 测试用例列表:
126
- <TestCase_Method1_Success> - 正常流程
127
- <TestCase_Method1_ErrorCase> - 异常场景
128
- <TestCase_Method2_ValidInput> - 输入校验
129
- <TestCase_Method2_InvalidInput> - 边界条件
130
- <TestCase_Method3_NormalCase> - 正常流程
131
- <TestCase_Method3_EdgeCase> - 边界条件
132
-
133
- 每个测试用例结构:
134
- 1. Arrange - 准备数据和 Mock 依赖
135
- 2. Act - 执行被测方法
136
- 3. Assert - 验证结果
137
- ```
138
-
139
- #### 4.3 生成 Mock 文件(如需要)
140
-
141
- ```
142
- 按 CLAUDE.md 测试规范生成 Mock 文件...
43
+ ---
143
44
 
144
- <CLAUDE.md中定义的Mock生成命令>
45
+ ### 4. 生成 UT
145
46
 
146
- 生成:<mock-file-path>
147
- ```
47
+ - **分析被测方法**:读取源文件,列出所有方法签名
48
+ - **生成测试用例**:按项目测试框架规范(从 CLAUDE.md 读取),遵循 Arrange-Act-Assert 模式
49
+ - **生成 Mock 文件**(如需要):按项目 Mock 生成命令执行
148
50
 
149
51
  ### 5. 生成 API 测试
150
52
 
151
- #### 5.1 提取 API 定义
152
-
153
- ```
154
- 提取 API 定义...
155
-
156
- 从需求文档提取:
157
- <HTTP_METHOD> <endpoint-1> <描述>
158
- <HTTP_METHOD> <endpoint-2> <描述>
159
- <HTTP_METHOD> <endpoint-3> <描述>
160
- ```
161
-
162
- #### 5.2 生成测试代码
163
-
164
- 根据 CLAUDE.md 中定义的 API 测试框架生成测试代码。
165
-
166
- 每个接口的测试覆盖:
167
-
168
- ```
169
- 生成文件:<CLAUDE.md中定义的API测试文件路径>
170
-
171
- <endpoint-1> 测试用例:
172
- 正常请求 - 完整参数 → 期望成功响应
173
- 正常请求 - 可选参数缺省 → 期望成功响应(默认值)
174
- 异常请求 - 缺少必填字段 → 期望参数校验错误
175
- 异常请求 - 业务规则冲突 → 期望业务错误码
176
- 异常请求 - 无权限 → 期望权限错误
177
-
178
- 采用表驱动测试模式,每组包含:
179
- - name: 场景描述
180
- - input: 请求参数
181
- - wantStatus: 期望状态码
182
- - wantBody: 期望响应内容(可选)
183
- ```
53
+ - **提取 API 定义**:从需求文档获取接口端点
54
+ - **生成测试代码**:覆盖正常请求(完整/缺省参数)、异常请求(缺少必填字段、业务规则冲突、无权限)
184
55
 
185
56
  ### 6. 生成 E2E 测试
186
57
 
187
- **前提条件**:E2E 测试需要完整的测试环境
188
-
189
- ```
190
- ⚠️ E2E 测试需要启动测试环境:
191
- - 依赖服务(数据库、缓存等)
192
- - 后端服务(本地)
193
- - 前端服务(本地)
194
- ```
195
-
196
- #### 6.1 识别用户流程
197
-
198
- ```
199
- 识别用户流程...
200
-
201
- 核心流程:<功能名称>
202
- 1. <用户操作步骤 1>
203
- 2. <用户操作步骤 2>
204
- 3. <用户操作步骤 3>
205
- 4. <验证步骤>
206
- ```
207
-
208
- #### 6.2 生成测试代码
209
-
210
- 根据 CLAUDE.md 中定义的 E2E 测试框架生成测试代码。
211
-
212
- ```
213
- 生成文件:<CLAUDE.md中定义的E2E测试文件路径>
214
-
215
- 测试场景:
216
- <场景 1>: <用户流程描述>
217
- 前置:<数据准备 / 登录>
218
- 操作:<页面交互步骤>
219
- 断言:<预期结果>
220
- <场景 2>: <边界条件描述>
221
- 前置:<特定状态准备>
222
- 操作:<触发边界条件>
223
- 断言:<预期错误提示>
224
- <场景 3>: <修改流程描述>
225
- 前置:<已有数据>
226
- 操作:<修改操作>
227
- 断言:<修改后状态>
228
- ```
58
+ - **前提**:需要完整测试环境
59
+ - **识别用户流程**:从需求文档提取核心用户操作流程
60
+ - **生成测试代码**:覆盖正常流程、边界条件、修改流程,含前置数据准备和断言
229
61
 
230
62
  ### 7. 生成手动测试用例文档 (manual)
231
63
 
232
- > 适用场景:需要给测试人员一份可逐条执行的复测清单,前后端项目均适用。
233
-
234
- #### 7.1 分析信息源
235
-
236
- 同时读取两处:
237
-
238
- ```
239
- 读取需求文档...
240
- 功能清单(待验证的功能点)
241
- 业务规则(边界条件、约束)
242
- 使用场景(正常流程 + 异常流程)
243
- 测试要点(已有的验收标准)
244
-
245
- 读取源代码...
246
- 后端:handler/controller → 提取接口路径、参数、返回码
247
- 后端:service/logic → 提取分支逻辑、边界判断
248
- 前端:页面/组件 → 提取交互逻辑、表单校验、跳转规则
249
- ```
250
-
251
- 源码补充需求文档未覆盖的细节(如实际返回的错误码、字段校验规则)。
252
-
253
- #### 7.2 生成用例
64
+ 同时读取需求文档 + 源代码,按模块分组生成表格化用例:
254
65
 
255
- 按模块分组,每条用例包含:编号、场景、前置条件、操作步骤、预期结果、实际结果(空)、通过(空)。
66
+ - **后端接口**:每个接口覆盖正常路径、参数缺失/非法、业务规则冲突、权限不足
67
+ - **前端交互**:覆盖正常操作、表单校验、异常提示、边界状态
68
+ - **业务规则**:每条规则至少一条用例
256
69
 
257
- **后端接口** — 每个接口至少覆盖:正常路径、参数缺失/非法、业务规则冲突、权限不足。
70
+ 输出到 `docs/test-cases/REQ-XXX-testcases.md`,包含编号、场景、前置条件、操作步骤、预期结果、实际结果、通过列。
258
71
 
259
- **前端交互** — 每个页面/功能至少覆盖:正常操作流程、表单校验、异常提示、边界状态(空数据、超长文本、加载失败等)。
260
-
261
- **业务规则** — 需求文档中的每条业务规则对应至少一条用例。
262
-
263
- 输出格式:
264
-
265
- ````
266
- 生成手动测试用例...
267
-
268
- 生成文件:docs/test-cases/REQ-XXX-testcases.md
269
-
270
- # REQ-XXX <需求标题> · 手动测试用例
271
-
272
- > 需求:[REQ-XXX](../../requirements/active/REQ-XXX-xxx.md)
273
- > 生成日期:YYYY-MM-DD
274
- > 状态:待测试
72
+ 更新需求文档第六章追加用例文件引用。
275
73
 
276
74
  ---
277
75
 
278
- ## 后端接口
279
-
280
- | 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 实际结果 | 通过 |
281
- |-----|------|---------|---------|---------|---------|-----|
282
- | TC-001 | <接口名>-正常 | <前置数据/权限> | `<HTTP_METHOD> <path>`<br>参数:`{...}` | HTTP <状态码>,返回 `{...}` | | |
283
- | TC-002 | <接口名>-缺少必填字段 | - | 省略字段 `<field>` | HTTP 400,`message` 含"<字段名>不能为空" | | |
284
- | TC-003 | <接口名>-无权限 | 未登录 / 低权限账号 | 发起请求 | HTTP 401 / 403 | | |
285
- | TC-004 | <接口名>-业务规则冲突 | <冲突前置条件> | <触发冲突的参数> | HTTP 4XX,业务错误码 `<code>` | | |
286
-
287
- ---
288
-
289
- ## 前端交互
290
-
291
- | 编号 | 页面/功能 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 实际结果 | 通过 |
292
- |-----|---------|------|---------|---------|---------|---------|-----|
293
- | TC-101 | <页面名> | 正常流程 | <登录状态/数据> | 1. <操作1><br>2. <操作2><br>3. <操作3> | <可观测的页面状态> | | |
294
- | TC-102 | <页面名> | 表单校验-<字段> | - | 1. 不填 `<字段>`<br>2. 点击提交 | 字段下方显示"<校验提示>" | | |
295
- | TC-103 | <页面名> | 空数据状态 | 无相关数据 | 进入页面 | 显示空状态占位 | | |
296
- | TC-104 | <页面名> | 操作成功反馈 | <正常前置> | <完成操作> | 显示成功提示,数据刷新 | | |
297
-
298
- ---
299
-
300
- ## 业务规则验证
301
-
302
- | 编号 | 规则 | 场景 | 操作 | 预期结果 | 实际结果 | 通过 |
303
- |-----|------|------|------|---------|---------|-----|
304
- | TC-201 | <业务规则描述> | <触发场景> | <操作步骤> | <预期约束生效表现> | | |
305
-
306
- ---
307
-
308
- ## 测试执行记录
309
-
310
- - **执行人**:
311
- - **执行日期**:
312
- - **测试环境**:
313
- - **总计**:N 条,通过 0 条,失败 0 条,跳过 0 条
314
- ````
315
-
316
- #### 7.3 更新需求文档
317
-
318
- 在需求文档「六、测试要点」末尾追加引用行:
76
+ ### 8. 汇总 & 运行验证
319
77
 
320
- ```markdown
321
- 手动测试用例:[docs/test-cases/REQ-XXX-testcases.md](../../../test-cases/REQ-XXX-testcases.md)(生成于 YYYY-MM-DD)
322
- ```
78
+ 生成文件汇总表(类型、文件、用例数)。运行新创建的测试验证通过率。
323
79
 
324
80
  ---
325
81
 
326
- ### 8. 测试文件汇总
327
-
328
- ```
329
- 测试文件生成完成
330
-
331
-
332
- 类型 文件 用例数
333
-
334
- UT <ut-test-file> N
335
- API <api-test-file> N
336
- E2E <e2e-test-file> N
337
- 手动用例 docs/test-cases/REQ-XXX-testcases.md N
338
-
339
- 合计 N 个文件 N
340
-
341
-
342
- ✅ 已生成 Mock 文件(如需要)
343
- ✅ 已添加测试数据 fixtures(如需要)
344
- ```
345
-
346
- ### 9. 运行验证
347
-
348
- ```
349
- 运行新创建的测试...
350
-
351
- <CLAUDE.md中定义的UT运行命令> <ut-test-file>
352
- <TestCase_1> --- PASS
353
- <TestCase_2> --- PASS
354
- ...
355
-
356
- <CLAUDE.md中定义的API测试运行命令> <api-test-file>
357
- <TestCase_API_1> --- PASS
358
- <TestCase_API_2> --- PASS
359
- ...
82
+ ### 9. 更新需求文档
360
83
 
361
- 验证结果:N/N 通过
362
-
363
- 下一步:
364
- - 运行全量回归:/req:test_regression
365
- - 继续开发:/req:dev
366
- - 完成需求:/req:done
367
- ```
368
-
369
- ### 10. 更新需求文档
370
-
371
- 自动更新需求文档的测试覆盖章节:
372
-
373
- ```markdown
374
- ## 测试覆盖
375
-
376
- | 类型 | 文件 | 用例数 | 覆盖率 |
377
- |-----|------|-------|-------|
378
- | UT | <ut-test-file> | N | XX% |
379
- | API | <api-test-file> | N | XX% |
380
- | E2E | <e2e-test-file> | N | - |
381
-
382
- 创建时间:<date>
383
- 最后运行:<date> ✅ 全部通过
384
- ```
84
+ 在需求文档追加测试覆盖章节(类型、文件、用例数、覆盖率、创建时间)。
385
85
 
386
86
  ---
387
87
 
388
- ## 测试模板
389
-
390
- 测试模板从项目 CLAUDE.md 的「测试规范」章节读取,包括:
391
-
392
- ### UT 模板
393
-
394
- - 测试框架、断言库、Mock 工具由 CLAUDE.md 定义
395
- - 遵循 Arrange-Act-Assert 模式
396
- - 命名规范:`Test{被测对象}_{方法}_{场景}`
397
-
398
- ### API 测试模板
399
-
400
- - 测试框架由 CLAUDE.md 定义
401
- - 采用表驱动测试模式
402
- - 覆盖正常路径、异常路径、权限校验
403
- - 命名规范:`Test{Endpoint}_{场景}`
404
-
405
- ### E2E 测试模板
88
+ ## 测试规范来源
406
89
 
407
- - E2E 框架由 CLAUDE.md 定义
408
- - 包含前置数据准备(如登录、数据重置)
409
- - 模拟真实用户操作流程
410
- - 验证页面状态和交互结果
90
+ 测试框架、断言库、Mock 工具、命名规范、文件路径等均从项目 CLAUDE.md「测试规范」读取,不内置任何项目细节。
411
91
 
412
92
  ---
413
93
 
@@ -9,7 +9,7 @@ description: 回归测试 - 运行已有自动化测试用例
9
9
 
10
10
  运行项目中已存在的自动化测试用例,验证功能正确性。
11
11
 
12
- > 存储路径和缓存同步规则见 [_storage.md](./_storage.md)
12
+ > 存储路径和缓存同步规则见 `_storage.md`
13
13
 
14
14
  ## 命令格式
15
15
 
@@ -7,7 +7,7 @@ description: 更新模板 - 将插件最新模板同步到项目本地
7
7
 
8
8
  将插件 `templates/` 目录下的最新模板同步到项目本地 `docs/requirements/`,覆盖旧版本。
9
9
 
10
- > 存储路径规则见 [_storage.md](./_storage.md)
10
+ > 存储路径规则见 `_storage.md`
11
11
 
12
12
  ## 命令格式
13
13
 
@@ -48,7 +48,7 @@ description: 切换需求项目 - 将当前仓库绑定到不同的项目
48
48
 
49
49
  ### 4. 更新仓库绑定
50
50
 
51
- > 写入规范见 [_storage.md](./_storage.md#settings-文件写入规范)。
51
+ > 写入规范见 `_storage.md`。
52
52
 
53
53
  读取已有 `.claude/settings.json`,合并以下字段后写回(不覆盖已有的 `branchStrategy` 等字段):
54
54
 
@@ -0,0 +1,48 @@
1
+ # 前端项目架构(CLAUDE.md 建议片段)
2
+
3
+ > 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况调整。
4
+
5
+ ## 项目架构
6
+
7
+ ### 技术栈
8
+
9
+ - 框架:React 18+ / Next.js 16(根据实际选择)
10
+ - 语言:TypeScript
11
+ - 状态管理:Zustand / Redux Toolkit
12
+ - UI 组件:Ant Design / shadcn/ui
13
+ - 样式:Tailwind CSS / CSS Modules
14
+ - 构建:Vite / Turbopack
15
+ - 测试:Vitest + React Testing Library + Playwright
16
+
17
+ ### 目录结构
18
+
19
+ | 目录 | 职责 | 说明 |
20
+ |------|------|------|
21
+ | `src/components/` | UI 组件 | 通用组件、业务组件 |
22
+ | `src/pages/` 或 `app/` | 页面/路由 | 文件系统路由或手动路由 |
23
+ | `src/hooks/` | 自定义 Hooks | 复用逻辑抽取 |
24
+ | `src/services/` 或 `src/api/` | API 调用 | 接口封装、类型定义 |
25
+ | `src/stores/` | 状态管理 | 全局状态 |
26
+ | `src/types/` | 类型定义 | 共享 TypeScript 类型 |
27
+ | `src/utils/` | 工具函数 | 通用工具 |
28
+
29
+ ### 文件命名
30
+
31
+ - 组件文件:PascalCase(如 `UserProfile.tsx`)
32
+ - 工具/hooks:camelCase(如 `useAuth.ts`)
33
+ - 样式文件:与组件同名(如 `UserProfile.module.css`)
34
+
35
+ ### 开发规范
36
+
37
+ - 组件:函数组件 + Hooks,避免 class 组件
38
+ - 类型:所有 props 和 API 响应定义 TypeScript 接口
39
+ - API 调用:统一封装 fetch/axios,集中管理接口地址
40
+ - 错误处理:ErrorBoundary + Toast 提示
41
+ - 国际化:i18next(如需)
42
+
43
+ ### 测试规范
44
+
45
+ - 组件测试:`*.test.tsx`,React Testing Library
46
+ - 工具函数测试:`*.test.ts`,Vitest
47
+ - E2E 测试:`tests/e2e/`,Playwright
48
+ - 运行命令:`npm test` / `npx vitest` / `npx playwright test`
@@ -0,0 +1,43 @@
1
+ # 项目架构(CLAUDE.md 建议片段)
2
+
3
+ > 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况填写。
4
+ > 此信息供 AI 辅助开发时理解项目结构,是需求开发引导和测试引导的基础。
5
+
6
+ ## 项目架构
7
+
8
+ ### 技术栈
9
+
10
+ - 语言:<!-- 如 Go / Java / TypeScript / Python -->
11
+ - 框架:<!-- 如 Gin / Spring Boot / Next.js / FastAPI -->
12
+ - ORM/数据库:<!-- 如 GORM+MySQL / JPA+PostgreSQL / Prisma+PostgreSQL -->
13
+ - 测试框架:<!-- 如 go test / JUnit / Vitest / pytest -->
14
+
15
+ ### 分层架构
16
+
17
+ <!-- 按开发顺序列出项目的分层,AI 会按此顺序引导开发 -->
18
+
19
+ | 层 | 职责 | 目录 | 说明 |
20
+ |----|------|------|------|
21
+ | <!-- 数据层 --> | <!-- 数据模型定义 --> | <!-- 目录路径 --> | <!-- 补充说明 --> |
22
+ | <!-- 数据访问层 --> | <!-- CRUD 操作 --> | <!-- 目录路径 --> | |
23
+ | <!-- 业务层 --> | <!-- 业务逻辑 --> | <!-- 目录路径 --> | |
24
+ | <!-- 接口层 --> | <!-- 请求处理 --> | <!-- 目录路径 --> | |
25
+ | <!-- 路由层 --> | <!-- 路由注册 --> | <!-- 目录路径 --> | |
26
+
27
+ ### 文件命名
28
+
29
+ - <!-- 如:Go 文件 kebab-case,Java 文件 PascalCase,组件 PascalCase.tsx -->
30
+
31
+ ### 开发规范
32
+
33
+ - 错误处理:<!-- 如何处理错误 -->
34
+ - 日志:<!-- 日志格式和方法 -->
35
+ - API 风格:<!-- RESTful / GraphQL -->
36
+ - <!-- 其他项目特有规范 -->
37
+
38
+ ### 测试规范
39
+
40
+ - UT 位置:<!-- 测试文件目录和命名规则 -->
41
+ - 集成/API 测试:<!-- 位置和工具 -->
42
+ - E2E 测试:<!-- 位置和工具 -->
43
+ - 运行命令:<!-- 如 go test ./... / npm test -->
@@ -0,0 +1,47 @@
1
+ # Go 后端项目架构(CLAUDE.md 建议片段)
2
+
3
+ > 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况调整。
4
+
5
+ ## 项目架构
6
+
7
+ ### 技术栈
8
+
9
+ - 语言:Go 1.22+
10
+ - Web 框架:Gin
11
+ - ORM:GORM
12
+ - 数据库:MySQL 8.0, Redis 7
13
+ - API 风格:RESTful + Swagger 注解
14
+ - 测试:go test + gomock
15
+
16
+ ### 分层架构
17
+
18
+ 按以下顺序开发,每层职责明确:
19
+
20
+ | 层 | 职责 | 目录 | 说明 |
21
+ |----|------|------|------|
22
+ | Model | 数据模型定义 | `internal/model/` | 结构体、表名、字段标签 |
23
+ | Store | 数据访问 | `internal/store/` | CRUD 操作,SQL 查询 |
24
+ | Biz | 业务逻辑 | `internal/biz/` | 校验、组合、事务 |
25
+ | Controller | 接口处理 | `internal/controller/v1/` | 参数绑定、响应封装 |
26
+ | Router | 路由注册 | `internal/router/` | 路由分组、中间件 |
27
+
28
+ ### 文件命名
29
+
30
+ - Go 文件:kebab-case(如 `sys-dept-channel.go`)
31
+ - 测试文件:与源文件同目录 `*_test.go`
32
+
33
+ ### 开发规范
34
+
35
+ - 错误处理:`errno.ErrXxx` 错误码,非裸 error
36
+ - 日志:`log.Info/Error(msg, ctx, k, v...)` 结构化日志,非 `fmt.Println`
37
+ - 多租户:所有业务表包含 `TenantID` 字段
38
+ - 权限标识:`module:resource:action` 格式
39
+ - Controller:Swagger 注解(Summary、Param、Success、Failure),`ShouldBindJSON`/`ShouldBindQuery` 参数绑定,`response.Success(c, data)`/`response.Error(c, err)` 响应
40
+
41
+ ### 测试规范
42
+
43
+ - UT:与源文件同目录 `*_test.go`,gomock 模拟依赖
44
+ - API 测试:`tests/api/` 目录
45
+ - E2E 测试:`tests/e2e/`(如有前端)
46
+ - 测试环境:`docker-compose.test.yml`(MySQL + Redis 容器)
47
+ - 运行命令:`go test ./...`
@@ -0,0 +1,46 @@
1
+ # Java 后端项目架构(CLAUDE.md 建议片段)
2
+
3
+ > 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况调整。
4
+
5
+ ## 项目架构
6
+
7
+ ### 技术栈
8
+
9
+ - 语言:Java 17+
10
+ - 框架:Spring Boot 3.x
11
+ - ORM:MyBatis-Plus / JPA
12
+ - 数据库:MySQL 8.0, Redis 7
13
+ - API 风格:RESTful
14
+ - 构建:Maven / Gradle
15
+ - 测试:JUnit 5 + Mockito
16
+
17
+ ### 分层架构
18
+
19
+ 按以下顺序开发,每层职责明确:
20
+
21
+ | 层 | 职责 | 目录 | 说明 |
22
+ |----|------|------|------|
23
+ | Entity | 数据模型 | `src/main/java/.../entity/` | 实体类、表映射 |
24
+ | Mapper/Repository | 数据访问 | `src/main/java/.../mapper/` | SQL 映射、CRUD |
25
+ | Service | 业务逻辑 | `src/main/java/.../service/` | 接口 + Impl 实现 |
26
+ | Controller | 接口处理 | `src/main/java/.../controller/` | 参数校验、响应封装 |
27
+
28
+ ### 文件命名
29
+
30
+ - Java 文件:PascalCase(如 `SysDeptChannel.java`)
31
+ - 包名:小写(如 `com.example.system`)
32
+
33
+ ### 开发规范
34
+
35
+ - 异常处理:自定义 BusinessException + 全局异常处理器
36
+ - 日志:`@Slf4j` + `log.info/error` 结构化日志
37
+ - 参数校验:`@Valid` + `@NotNull`/`@Size` 注解
38
+ - API 文档:SpringDoc / Swagger 注解
39
+ - 事务:`@Transactional` 注解
40
+
41
+ ### 测试规范
42
+
43
+ - UT:`src/test/java/` 对应目录,Mockito 模拟依赖
44
+ - 集成测试:`@SpringBootTest` + `@TestContainers`
45
+ - API 测试:`MockMvc` 或 `RestAssured`
46
+ - 运行命令:`mvn test` / `gradle test`