@chongyan/autospec 1.0.1 → 1.0.2

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 (283) hide show
  1. package/LICENSE +21 -21
  2. package/README.en.md +447 -321
  3. package/README.md +418 -286
  4. package/knowledge/01-principles/00-principles-hierarchy.md +247 -0
  5. package/knowledge/01-principles/01-first-principles.md +241 -0
  6. package/knowledge/01-principles/02-strategic-principles.md +286 -0
  7. package/knowledge/01-principles/03-tactical-principles.md +385 -0
  8. package/knowledge/01-principles/04-operational-principles.md +275 -0
  9. package/knowledge/01-principles/05-domain-principles.md +539 -0
  10. package/knowledge/01-principles/06-methodology-principles.md +281 -0
  11. package/knowledge/01-principles/07-cognitive-principles.md +277 -0
  12. package/knowledge/01-principles/08-auto-fix-principles.md +320 -0
  13. package/knowledge/01-principles/09-constitution.md +220 -0
  14. package/knowledge/{principles/evolution.md → 01-principles/10-evolution-mechanism.md} +160 -14
  15. package/knowledge/01-principles/README.en.md +385 -0
  16. package/knowledge/01-principles/README.md +385 -0
  17. package/knowledge/{process/overview.md → 02-process/00-overview.md} +90 -5
  18. package/knowledge/02-process/README.en.md +143 -0
  19. package/knowledge/02-process/README.md +186 -0
  20. package/knowledge/{guides/support/pipeline-protocol.md → 03-guides/00-pipeline-protocol.md} +10 -10
  21. package/knowledge/{guides/support/team-orchestrator.md → 03-guides/01-team-orchestrator.md} +53 -8
  22. package/knowledge/{guides/stages/requirement-analyzer.md → 03-guides/02-analyze-requirement.md} +3 -3
  23. package/knowledge/{guides/stages/ai-effect-evaluator.md → 03-guides/08-evaluate-ai-effect.md} +14 -7
  24. package/knowledge/{guides/support/skill-distiller.md → 03-guides/19-distill-skill.md} +3 -3
  25. package/knowledge/{guides/support/skill-updater.md → 03-guides/20-update-skill.md} +1 -1
  26. package/knowledge/{guides/support/methodology-extractor.md → 03-guides/22-extract-methodology.md} +2 -2
  27. package/knowledge/{guides/support/complexity-assessor.md → 03-guides/24-assess-complexity.md} +6 -4
  28. package/knowledge/{guides/support/tech-stack-analyzer.md → 03-guides/26-analyze-tech-stack.md} +1 -1
  29. package/knowledge/{guides/domain-driven-design.md → 03-guides/42-apply-ddd.md} +1 -1
  30. package/knowledge/{process/ai-sdlc.md → 03-guides/43-run-ai-sdlc.md} +1 -1
  31. package/knowledge/{guides/knowledge-management.md → 03-guides/44-manage-knowledge.md} +4 -4
  32. package/knowledge/03-guides/README.en.md +212 -0
  33. package/knowledge/03-guides/README.md +212 -0
  34. package/knowledge/{checklists/requirement.md → 04-checklists/00-requirement.md} +1 -1
  35. package/knowledge/{checklists/design.md → 04-checklists/01-design.md} +1 -1
  36. package/knowledge/{checklists/code.md → 04-checklists/02-code.md} +16 -1
  37. package/knowledge/{checklists/release.md → 04-checklists/04-release.md} +1 -1
  38. package/knowledge/04-checklists/README.en.md +119 -0
  39. package/knowledge/04-checklists/README.md +123 -0
  40. package/knowledge/{config/validation-patterns.yaml → 05-config/00-validation-patterns.yaml} +1 -1
  41. package/knowledge/{config/team-tasks.yaml → 05-config/02-team-tasks.yaml} +2 -2
  42. package/knowledge/05-config/03-role-composition.yaml +346 -0
  43. package/knowledge/{config/skill-compositions.yaml → 05-config/05-skill-compositions.yaml} +24 -24
  44. package/knowledge/05-config/README.en.md +54 -0
  45. package/knowledge/05-config/README.md +132 -0
  46. package/knowledge/06-environment/00-template-registry.md +310 -0
  47. package/knowledge/06-environment/01-detection-patterns.yaml +1692 -0
  48. package/knowledge/{environment → 06-environment}/README.en.md +4 -0
  49. package/knowledge/{environment → 06-environment}/README.md +66 -25
  50. package/knowledge/{standards/coding-style.md → 07-standards/00-coding-style.md} +123 -4
  51. package/knowledge/{standards/code-review.md → 07-standards/01-code-review.md} +3 -3
  52. package/knowledge/{standards/data-consistency.md → 07-standards/02-data-consistency.md} +1 -1
  53. package/knowledge/{standards/document-versioning.md → 07-standards/03-document-versioning.md} +1 -1
  54. package/knowledge/{standards/risk-detection.md → 07-standards/04-risk-detection.md} +5 -5
  55. package/knowledge/07-standards/README.en.md +119 -0
  56. package/knowledge/07-standards/README.md +123 -0
  57. package/knowledge/08-organization/00-vision-mission.md +113 -0
  58. package/knowledge/{organization/ai-native-team.md → 08-organization/01-ai-native-culture.md} +1 -1
  59. package/knowledge/{organization/team-metrics.md → 08-organization/02-team-metrics.md} +1 -1
  60. package/knowledge/08-organization/03-committee-structure.md +54 -0
  61. package/knowledge/08-organization/04-governance-metrics.md +55 -0
  62. package/knowledge/08-organization/05-improvement-process.md +71 -0
  63. package/knowledge/08-organization/README.en.md +165 -0
  64. package/knowledge/08-organization/README.md +165 -0
  65. package/knowledge/09-templates/00-requirement-proposal.md +344 -0
  66. package/knowledge/09-templates/01-architecture-design.md +494 -0
  67. package/knowledge/09-templates/02-api-design.md +408 -0
  68. package/knowledge/09-templates/03-database-design.md +313 -0
  69. package/knowledge/09-templates/04-product-design.md +237 -0
  70. package/knowledge/09-templates/05-domain-business.md +388 -0
  71. package/knowledge/09-templates/06-test-design.md +268 -0
  72. package/knowledge/09-templates/07-evaluation-design.md +372 -0
  73. package/knowledge/09-templates/08-component-knowledge.md +272 -0
  74. package/knowledge/09-templates/09-best-practices.md +218 -0
  75. package/knowledge/{environment/middleware-knowledge.md → 09-templates/10-middleware-knowledge.md} +106 -1
  76. package/knowledge/09-templates/README.en.md +222 -0
  77. package/knowledge/09-templates/README.md +216 -0
  78. package/knowledge/README.en.md +372 -0
  79. package/knowledge/README.md +354 -99
  80. package/package.json +1 -1
  81. package/plugins/.claude-plugin/plugin.json +460 -81
  82. package/plugins/agents/roles/ceo.md +1 -1
  83. package/plugins/agents/roles/product-owner.md +1 -1
  84. package/plugins/agents/roles/tech-lead.md +1 -1
  85. package/plugins/agents/support/consistency-checker.md +36 -3
  86. package/plugins/agents/support/monitoring-agent.md +215 -0
  87. package/plugins/agents/support/safety-auditor.md +2 -2
  88. package/plugins/agents/support/stage-gate-evaluator.md +95 -11
  89. package/plugins/agents/support/test-coverage-reviewer.md +1 -1
  90. package/plugins/benchmarks/templates/README.md +165 -13
  91. package/plugins/benchmarks/templates/commands/apply-template.yaml +108 -0
  92. package/plugins/benchmarks/templates/commands/archive-template.yaml +65 -0
  93. package/plugins/benchmarks/templates/commands/env-export-template.yaml +64 -0
  94. package/plugins/benchmarks/templates/commands/env-sync-template.yaml +104 -0
  95. package/plugins/benchmarks/templates/commands/env-template-template.yaml +96 -0
  96. package/plugins/benchmarks/templates/commands/env-template.yaml +58 -0
  97. package/plugins/benchmarks/templates/commands/env-update-template.yaml +110 -0
  98. package/plugins/benchmarks/templates/commands/env-validate-template.yaml +95 -0
  99. package/plugins/benchmarks/templates/commands/field-evolve-template.yaml +104 -0
  100. package/plugins/benchmarks/templates/commands/project-evolve-template.yaml +104 -0
  101. package/plugins/benchmarks/templates/commands/propose-template.yaml +88 -0
  102. package/plugins/benchmarks/templates/commands/review-template.yaml +124 -0
  103. package/plugins/benchmarks/templates/commands/run-template.yaml +127 -0
  104. package/plugins/benchmarks/templates/commands/test-template.yaml +149 -0
  105. package/plugins/benchmarks/templates/pipeline/experiment-template.yaml +92 -0
  106. package/plugins/benchmarks/templates/pipeline/hotfix-template.yaml +81 -0
  107. package/plugins/benchmarks/templates/skills/agile-iteration-template.yaml +78 -0
  108. package/plugins/benchmarks/templates/skills/benchmark-executor-template.yaml +114 -0
  109. package/plugins/benchmarks/templates/skills/benchmark-generator-template.yaml +52 -0
  110. package/plugins/benchmarks/templates/skills/delivery-stage-template.yaml +130 -0
  111. package/plugins/benchmarks/templates/skills/design-stage-template.yaml +131 -0
  112. package/plugins/benchmarks/templates/skills/experiment-iteration-template.yaml +60 -0
  113. package/plugins/benchmarks/templates/skills/exploration-phase-template.yaml +114 -0
  114. package/plugins/benchmarks/templates/skills/field-evolve-analyzer-template.yaml +51 -0
  115. package/plugins/benchmarks/templates/skills/field-evolve-distiller-template.yaml +34 -0
  116. package/plugins/benchmarks/templates/skills/field-evolve-executor-template.yaml +50 -0
  117. package/plugins/benchmarks/templates/skills/field-evolve-fixer-template.yaml +52 -0
  118. package/plugins/benchmarks/templates/skills/field-evolve-learner-template.yaml +33 -0
  119. package/plugins/benchmarks/templates/skills/field-evolve-scanner-template.yaml +74 -0
  120. package/plugins/benchmarks/templates/skills/field-evolve-template.yaml +71 -0
  121. package/plugins/benchmarks/templates/skills/field-evolve-verifier-template.yaml +51 -0
  122. package/plugins/benchmarks/templates/skills/hotfix-iteration-template.yaml +54 -0
  123. package/plugins/benchmarks/templates/skills/implementation-stage-template.yaml +127 -0
  124. package/plugins/benchmarks/templates/skills/layer1-validation-template.yaml +121 -0
  125. package/plugins/benchmarks/templates/skills/project-evolve-analyzer-template.yaml +51 -0
  126. package/plugins/benchmarks/templates/skills/project-evolve-fixer-template.yaml +52 -0
  127. package/plugins/benchmarks/templates/skills/project-evolve-generator-template.yaml +34 -0
  128. package/plugins/benchmarks/templates/skills/project-evolve-learner-template.yaml +50 -0
  129. package/plugins/benchmarks/templates/skills/project-evolve-reviewer-template.yaml +50 -0
  130. package/plugins/benchmarks/templates/skills/project-evolve-scanner-template.yaml +75 -0
  131. package/plugins/benchmarks/templates/skills/project-evolve-template.yaml +72 -0
  132. package/plugins/benchmarks/templates/skills/project-evolve-verifier-template.yaml +51 -0
  133. package/plugins/benchmarks/templates/skills/skill-forge-template.yaml +117 -0
  134. package/plugins/benchmarks/templates/skills/startup-guard-template.yaml +103 -0
  135. package/plugins/benchmarks/templates/skills/testing-stage-template.yaml +146 -0
  136. package/plugins/benchmarks/templates/skills/waterfall-iteration-template.yaml +55 -0
  137. package/plugins/commands/README.en.md +2 -2
  138. package/plugins/commands/README.md +2 -2
  139. package/plugins/commands/apply.md +102 -16
  140. package/plugins/commands/archive.md +60 -4
  141. package/plugins/commands/env-sync.md +1047 -406
  142. package/plugins/commands/env-template.md +11 -135
  143. package/plugins/commands/env-update.md +1 -1
  144. package/plugins/commands/env-validate.md +3 -3
  145. package/plugins/commands/explore.md +118 -1
  146. package/plugins/commands/field-evolve.md +51 -175
  147. package/plugins/commands/project-evolve.md +167 -68
  148. package/plugins/commands/propose.md +97 -6
  149. package/plugins/commands/review.md +5 -5
  150. package/plugins/commands/run.md +841 -13
  151. package/plugins/commands/status.md +138 -17
  152. package/plugins/commands/test.md +389 -0
  153. package/plugins/hooks/constitution-guard.js +1 -1
  154. package/plugins/hooks/environment-autocommit.js +366 -24
  155. package/plugins/hooks/environment-manager.js +3 -2
  156. package/plugins/hooks/execution-tracker.js +109 -4
  157. package/plugins/hooks/layer1-validator.js +117 -1
  158. package/plugins/hooks/lib/auto-fix-loop.js +605 -0
  159. package/plugins/hooks/lib/environment-config-loader.js +11 -7
  160. package/plugins/hooks/lib/hook-state-manager.js +98 -0
  161. package/plugins/hooks/lib/memory-extractor.js +27 -5
  162. package/plugins/hooks/lib/memory-manager.js +1 -1
  163. package/plugins/hooks/lib/test-auto-fix.test.js +194 -0
  164. package/plugins/hooks/monitoring-trigger.js +467 -0
  165. package/plugins/skills/README.en.md +15 -3
  166. package/plugins/skills/README.md +21 -11
  167. package/plugins/skills/agile-iteration/SKILL.md +187 -0
  168. package/plugins/skills/delivery-stage/SKILL.md +133 -12
  169. package/plugins/skills/design-stage/SKILL.md +103 -12
  170. package/plugins/skills/experiment-evaluator/SKILL.md +271 -0
  171. package/plugins/skills/experiment-iteration/SKILL.md +154 -0
  172. package/plugins/skills/exploration-phase/SKILL.md +93 -10
  173. package/plugins/skills/field-evolve-analyzer/SKILL.md +65 -0
  174. package/plugins/skills/field-evolve-distiller/SKILL.md +66 -0
  175. package/plugins/skills/field-evolve-executor/SKILL.md +94 -0
  176. package/plugins/skills/field-evolve-executor/executor.js +342 -0
  177. package/plugins/skills/field-evolve-fixer/SKILL.md +69 -0
  178. package/plugins/skills/field-evolve-learner/SKILL.md +65 -0
  179. package/plugins/skills/field-evolve-scanner/SKILL.md +87 -0
  180. package/plugins/skills/field-evolve-scanner/scripts/fallback-scanner.js +288 -0
  181. package/plugins/skills/field-evolve-verifier/SKILL.md +64 -0
  182. package/plugins/skills/hotfix-iteration/SKILL.md +279 -0
  183. package/plugins/skills/implementation-stage/SKILL.md +156 -15
  184. package/plugins/skills/layer1-validation/SKILL.md +1 -1
  185. package/plugins/skills/pending-dashboard/SKILL.md +9 -8
  186. package/plugins/skills/project-evolve-analyzer/SKILL.md +95 -0
  187. package/plugins/skills/project-evolve-fixer/SKILL.md +99 -0
  188. package/plugins/skills/project-evolve-generator/SKILL.md +149 -0
  189. package/plugins/skills/project-evolve-learner/SKILL.md +103 -0
  190. package/plugins/skills/project-evolve-reviewer/SKILL.md +104 -0
  191. package/plugins/skills/project-evolve-scanner/SKILL.md +95 -0
  192. package/plugins/skills/project-evolve-scanner/scripts/dependency-reuse-checker.js +395 -0
  193. package/plugins/skills/project-evolve-scanner/scripts/subsystem-coverage.js +315 -0
  194. package/plugins/skills/project-evolve-verifier/SKILL.md +105 -0
  195. package/plugins/skills/requirement-stage/SKILL.md +47 -13
  196. package/plugins/skills/skill-forge/SKILL.md +2 -2
  197. package/plugins/skills/testing-stage/SKILL.md +583 -8
  198. package/plugins/skills/waterfall-iteration/SKILL.md +115 -0
  199. package/scripts/cli/index.js +1 -1
  200. package/scripts/cli/init.js +30 -4
  201. package/scripts/cli/list.js +3 -2
  202. package/scripts/config/commands.config.js +8 -8
  203. package/scripts/config/hooks.config.js +1 -1
  204. package/scripts/install/constants.js +204 -165
  205. package/scripts/state.js +210 -1
  206. package/knowledge/config/README.en.md +0 -44
  207. package/knowledge/config/README.md +0 -44
  208. package/knowledge/config/role-composition.yaml +0 -98
  209. package/knowledge/config/team-triggers.yaml +0 -198
  210. package/knowledge/domain/README.md +0 -115
  211. package/knowledge/domain/flows/README.md +0 -194
  212. package/knowledge/domain/glossary.md +0 -143
  213. package/knowledge/domain/rules.md +0 -138
  214. package/knowledge/environment/component-knowledge.md +0 -316
  215. package/knowledge/environment/detection-patterns.yaml +0 -502
  216. package/knowledge/environment/template-registry.md +0 -321
  217. package/knowledge/guides/requirement-engineering.md +0 -329
  218. package/knowledge/guides/system-design.md +0 -352
  219. package/knowledge/principles/constitution.md +0 -134
  220. package/knowledge/principles/core-principles.md +0 -368
  221. package/knowledge/principles/design-philosophy.md +0 -877
  222. package/knowledge/process/README.en.md +0 -38
  223. package/knowledge/process/README.md +0 -48
  224. package/knowledge/templates/ai-evaluation.md +0 -150
  225. package/knowledge/templates/api-design.md +0 -117
  226. package/knowledge/templates/database-design.md +0 -132
  227. package/knowledge/templates/domain-driven-design.md +0 -321
  228. package/knowledge/templates/product-proposal.md +0 -201
  229. package/knowledge/templates/system-design.md +0 -227
  230. package/knowledge/templates/task-breakdown.md +0 -107
  231. package/knowledge/templates/test-case.md +0 -170
  232. package/plugins/commands/validate.md +0 -108
  233. package/plugins/skills/benchmark-executor/README.md +0 -93
  234. package/plugins/skills/evolution-process/SKILL.md +0 -291
  235. package/plugins/skills/project-evolution/SKILL.md +0 -847
  236. package/scripts/evolution/evolution-router.js +0 -273
  237. package/scripts/evolution/evolution-signal-collector.js +0 -307
  238. package/scripts/evolution/knowledge-loader.js +0 -346
  239. package/scripts/evolution/marketplace.js +0 -317
  240. package/scripts/evolution/version-manager.js +0 -371
  241. /package/knowledge/{process → 02-process}/01-requirement.md +0 -0
  242. /package/knowledge/{process → 02-process}/02-design.md +0 -0
  243. /package/knowledge/{process → 02-process}/03-implementation.md +0 -0
  244. /package/knowledge/{process → 02-process}/04-review.md +0 -0
  245. /package/knowledge/{process → 02-process}/05-testing.md +0 -0
  246. /package/knowledge/{process → 02-process}/06-delivery.md +0 -0
  247. /package/knowledge/{guides/stages/design-planner.md → 03-guides/03-design-solution.md} +0 -0
  248. /package/knowledge/{guides/stages/code-implementer.md → 03-guides/04-implement-code.md} +0 -0
  249. /package/knowledge/{guides/stages/test-planner.md → 03-guides/05-plan-testing.md} +0 -0
  250. /package/knowledge/{guides/stages/test-generator.md → 03-guides/06-generate-tests.md} +0 -0
  251. /package/knowledge/{guides/stages/release-checker.md → 03-guides/07-check-release.md} +0 -0
  252. /package/knowledge/{guides/stages/requirement-reviewer.md → 03-guides/09-review-requirement.md} +0 -0
  253. /package/knowledge/{guides/stages/design-reviewer.md → 03-guides/10-review-design.md} +0 -0
  254. /package/knowledge/{guides/stages/code-reviewer.md → 03-guides/11-review-code.md} +0 -0
  255. /package/knowledge/{guides/stages/test-reviewer.md → 03-guides/12-review-testing.md} +0 -0
  256. /package/knowledge/{guides/stages/security-reviewer.md → 03-guides/13-audit-security.md} +0 -0
  257. /package/knowledge/{guides/stages/consistency-checker.md → 03-guides/14-check-consistency.md} +0 -0
  258. /package/knowledge/{guides/stages/unit-test-runner.md → 03-guides/15-run-unit-tests.md} +0 -0
  259. /package/knowledge/{guides/stages/integration-test-runner.md → 03-guides/16-run-integration-tests.md} +0 -0
  260. /package/knowledge/{guides/stages/test-context-analyzer.md → 03-guides/17-analyze-test-context.md} +0 -0
  261. /package/knowledge/{guides/support/practice-logger.md → 03-guides/18-log-practice.md} +0 -0
  262. /package/knowledge/{guides/support/skill-validator.md → 03-guides/21-validate-skill.md} +0 -0
  263. /package/knowledge/{guides/support/scope-inference.md → 03-guides/23-infer-scope.md} +0 -0
  264. /package/knowledge/{guides/support/component-discovery.md → 03-guides/25-discover-component.md} +0 -0
  265. /package/knowledge/{guides/support/environment-scanner.md → 03-guides/27-scan-environment.md} +0 -0
  266. /package/knowledge/{guides/support/environment-validator.md → 03-guides/28-validate-environment.md} +0 -0
  267. /package/knowledge/{guides/support/knowledge-generator.md → 03-guides/29-generate-knowledge.md} +0 -0
  268. /package/knowledge/{guides/support/ai-capability-analyzer.md → 03-guides/30-analyze-ai-capability.md} +0 -0
  269. /package/knowledge/{guides/support/ai-component-analyzer.md → 03-guides/31-analyze-ai-component.md} +0 -0
  270. /package/knowledge/{guides/support/ai-agent-analyzer.md → 03-guides/32-analyze-ai-agent.md} +0 -0
  271. /package/knowledge/{guides/support/ai-rag-analyzer.md → 03-guides/33-analyze-ai-rag.md} +0 -0
  272. /package/knowledge/{guides/support/ai-task-assessor.md → 03-guides/34-assess-ai-task.md} +0 -0
  273. /package/knowledge/{guides/support/ai-pipeline-evaluator.md → 03-guides/35-evaluate-ai-pipeline.md} +0 -0
  274. /package/knowledge/{guides/support/ai-artifact-evaluator.md → 03-guides/36-evaluate-ai-artifact.md} +0 -0
  275. /package/knowledge/{guides/support/ai-evaluation-planner.md → 03-guides/37-plan-ai-evaluation.md} +0 -0
  276. /package/knowledge/{guides/support/ai-path-evaluator.md → 03-guides/38-evaluate-ai-path.md} +0 -0
  277. /package/knowledge/{guides/support/ai-data-validator.md → 03-guides/39-validate-ai-data.md} +0 -0
  278. /package/knowledge/{guides/support/ai-anomaly-analyzer.md → 03-guides/40-detect-ai-anomaly.md} +0 -0
  279. /package/knowledge/{guides/support/ai-test-diagnostics.md → 03-guides/41-diagnose-ai-test.md} +0 -0
  280. /package/knowledge/{guides/support/test-runner.md → 03-guides/45-test-runner.md} +0 -0
  281. /package/knowledge/{checklists/test.md → 04-checklists/03-test.md} +0 -0
  282. /package/knowledge/{config/team-stage.yaml → 05-config/01-team-stage.yaml} +0 -0
  283. /package/knowledge/{config/role-extensions.yaml → 05-config/04-role-extensions.yaml} +0 -0
@@ -7,15 +7,89 @@ description: "When test case generation, QA testing, test plan creation, or test
7
7
 
8
8
  你正在执行QA测试阶段。此阶段从用户视角验证产品功能正确性。
9
9
 
10
+ ## ⚠️ 执行约束(强制)
11
+
12
+ **【阻塞检查】** 在开始执行前,必须确认以下条件:
13
+
14
+ ```
15
+ □ 上游编码实现阶段已完成(检查 state.json)
16
+ □ 代码已通过 Layer1 验证(编译/测试/Lint)
17
+ □ design.md 文件存在且完整
18
+ □ 已读取复杂度评估结果或重新评估
19
+ □ 已确定参与角色列表
20
+ ```
21
+
22
+ **【跳过检测】** 以下行为将被检测并阻止:
23
+
24
+ | 行为 | 检测方式 | 处理 |
25
+ |------|----------|------|
26
+ | 直接生成测试没有代码 | 检查上游阶段状态 | 阻止,返回执行编码实现 |
27
+ | 跳过测试执行 | 检查测试执行日志 | 阻止,要求执行测试 |
28
+ | 跳过效果评测(AI功能) | 检查评测报告 | 阻止,要求执行效果评测 |
29
+ | 跳过团队对抗审查 | 检查 Agent 调用记录 | 阻止,要求启动多 Agent 审查 |
30
+
31
+ **【强制流程】** 必须按顺序完成以下步骤,不可跳过:
32
+
33
+ ```
34
+ Step 1 → Step 2/3/4 → 阶段完成验证 → Layer1 → 团队对抗 → Layer2 → 阶段门禁
35
+
36
+ 【强制】测试必须真实执行
37
+ 【强制】AI功能必须有效果评测
38
+ 【禁止】跳过测试直接通过
39
+ ```
40
+
10
41
  ## 前置检查
11
42
 
12
43
  1. 确认代码审查阶段已完成(检查 `.autospec/runtime/state.json`)
13
- 2. 读取 `${KNOWLEDGE}/principles/constitution.md` → 确认红线
44
+ 2. 读取 `knowledge/01-principles/09-constitution.md` → 确认红线
14
45
  3. 读取需求文档(验收标准是测试用例的基础)
15
46
  4. **检查是否为多系统项目**:读取 `.autospec/runtime/config.json` 的 `subsystems` 字段
16
47
  5. **检查是否需要效果评测**:检查是否有 ai 类型子系统或 needsEvaluation=true
17
- 6. 如有角色配置,加载 `${KNOWLEDGE}/guides/stages/{角色}-profile.md` 中**QA测试阶段**关注点(如后端关注接口契约测试/数据一致性测试)
18
- 7. 加载认知增强原则:读取 `${KNOWLEDGE}/principles/core-principles.md` → 本阶段重点应用 CP6(错误即信号)、CP10(自我质检)、CP1(合伙人模式)
48
+ 6. 如有角色配置,加载 `.clause/agents/roles/{角色}.md` 中**QA测试阶段**关注点(如后端关注接口契约测试/数据一致性测试)
49
+ 7. 加载认知增强原则:读取 `${KNOWLEDGE}/principles/02-methodology-principles.md` → 本阶段重点应用 CP6(错误即信号)、CP10(自我质检)、CP1(合伙人模式)
50
+
51
+ ## 阶段检查点(本阶段必须完成)
52
+
53
+ 执行过程中请持续对照以下检查点,确保不遗漏:
54
+
55
+ **说明**:
56
+ - **检查点表**:快速验证产出是否存在/完成
57
+ - **检查清单(checklists/)**:详细验证产出质量是否达标
58
+ - 通过"检查清单核对完成"一项覆盖所有质量检查,避免重复
59
+
60
+ | 类别 | 检查项 | 必须完成 | 验证方式 |
61
+ |-----|-------|---------|---------|
62
+ | 流程 | 模式确定完成 | ✅ | 检查 subsystems 字段确定单/多系统模式 |
63
+ | 做类 | 测试方案规划Agent加载完成 | ✅ | 已加载 plan-testing skill |
64
+ | 做类 | 测试方案规划Agent正确执行 | ✅ | 已产出测试方案(策略/范围/资源) |
65
+ | 做类 | 测试代码生成Agent加载完成 | ✅ | 已加载 generate-tests skill |
66
+ | 做类 | 测试代码生成Agent正确执行 | ✅ | 已产出测试用例代码 |
67
+ | 做类 | 测试代码汇总完成 | ✅ | 各测试文件已合并到正确目录 |
68
+ | 流程 | 团队对抗审查执行(审类) | ✅ | 检查是否已调用 team-orchestrator 并汇总审查报告 |
69
+ | 流程 | independent-reviewer Agent 调用 | ✅ | Layer 2 审查必须调用 |
70
+ | 产出 | 检查清单核对完成 | ✅ | 已按 03-test.md 逐项核对并记录(质量检查) |
71
+ | 流程 | Layer 1 验证通过 | ✅ | 所有测试执行通过 |
72
+ | 流程 | Benchmark 评测通过 | ✅ | TST-001~002 全部通过 |
73
+
74
+ **阶段完成前自检**:
75
+ - [ ] 已确定模式(单系统/多系统)
76
+ - [ ] 已加载测试方案规划Agent(plan-testing skill)
77
+ - [ ] 已执行测试方案规划任务
78
+ - [ ] 已加载测试代码生成Agent(generate-tests skill)
79
+ - [ ] 已执行测试代码生成任务
80
+ - [ ] 测试代码已汇总到正确目录
81
+ - [ ] 已执行团队对抗审查(调用 team-orchestrator)
82
+ - [ ] 已按检查清单(03-test.md)逐项核对(质量检查)
83
+ - [ ] 已调用 independent-reviewer(Layer 2)
84
+ - [ ] Layer 1 验证已通过(测试执行)
85
+ - [ ] Benchmark 评测已通过(Layer 3)
86
+ - [ ] 单元测试已完成
87
+ - [ ] 集成测试已完成
88
+ - [ ] 效果评测已完成(如有AI功能)
89
+ - [ ] 已按检查清单(03-test.md)逐项核对
90
+ - [ ] 已调用 independent-reviewer(Layer 2)
91
+ - [ ] Layer 1 验证已通过(测试执行)
92
+ - [ ] Benchmark 评测已通过(Layer 3)
19
93
 
20
94
  ## 执行
21
95
 
@@ -30,14 +104,460 @@ description: "When test case generation, QA testing, test plan creation, or test
30
104
 
31
105
  ### Step 2: 单系统模式(普通功能)
32
106
 
33
- 1. **【强制】** 加载做类skill:读取 `${KNOWLEDGE}/guides/stages/test-planner.md` → **测试方案规划**
34
- 2. **【强制】** 加载做类skill:读取 `${KNOWLEDGE}/guides/stages/test-generator.md` → **测试代码生成**
35
- 3. 加载方法论原则:读取 `${KNOWLEDGE}/principles/core-principles.md` → 注入 P1(验证为王) 测试原则
107
+ 1. **【强制】** 加载做类skill:读取 `${KNOWLEDGE}/03-guides/05-plan-testing.md` → **测试方案规划**
108
+ 2. **【强制】** 加载做类skill:读取 `${KNOWLEDGE}/03-guides/06-generate-tests.md` → **测试代码生成**
109
+ 3. 加载方法论原则:读取 `${KNOWLEDGE}/principles/02-methodology-principles.md` → 注入 P1(验证为王) 测试原则
36
110
  4. 逐条对照需求验收标准,生成测试用例
37
111
  5. 生成边界条件和异常路径测试
38
112
  6. 针对关键假设设计验证用例
39
113
  7. 如有角色特有测试关注点(如后端的"幂等验证"、前端的"跨浏览器兼容"),额外覆盖
40
114
  8. 将测试用例转化为可执行的测试代码
115
+
116
+ ## Mock配置最佳实践(多语言)
117
+
118
+ **通用Mock原则**(适用于所有语言):
119
+
120
+ 1. **Mock外部依赖**:数据库、API、文件系统等
121
+ 2. **保持错误类型匹配**:Mock返回的错误类型必须与实际一致
122
+ 3. **生命周期管理**:每个测试前清理Mock,测试后重置
123
+ 4. **避免过度Mock**:核心业务逻辑不应被Mock
124
+
125
+ ---
126
+
127
+ ### JavaScript / TypeScript (Jest / Vitest)
128
+
129
+ ```javascript
130
+ // tests/__mocks__/{module}.js
131
+
132
+ // 1. Mock模块加载
133
+ jest.mock('../../src/modules/auth', () => ({
134
+ login: jest.fn().mockResolvedValue({ token: 'mock-token' }),
135
+ logout: jest.fn().mockResolvedValue(true)
136
+ }));
137
+
138
+ // 2. Mock API调用
139
+ jest.mock('../../src/api', () => ({
140
+ fetchUser: jest.fn().mockResolvedValue({ id: 1, name: 'Test User' })
141
+ }));
142
+
143
+ // 3. Mock数据库操作
144
+ jest.mock('../../src/db', () => ({
145
+ query: jest.fn().mockResolvedValue([])
146
+ }));
147
+
148
+ // 4. 错误处理Mock(重要:确保错误类型匹配)
149
+ jest.mock('../../src/services/payment', () => ({
150
+ processPayment: jest.fn().mockRejectedValue(
151
+ new Error('Payment failed')
152
+ )
153
+ }));
154
+
155
+ // 5. 生命周期管理(tests/setupTests.js)
156
+ beforeEach(() => {
157
+ jest.clearAllMocks();
158
+ });
159
+
160
+ afterEach(() => {
161
+ jest.resetAllMocks();
162
+ });
163
+ ```
164
+
165
+ **Vitest变体**:
166
+ ```javascript
167
+ import { vi } from 'vitest'
168
+
169
+ vi.mock('../../src/api', () => ({
170
+ fetchUser: vi.fn().mockResolvedValue({ id: 1, name: 'Test User' })
171
+ }))
172
+ ```
173
+
174
+ ---
175
+
176
+ ### Python (pytest + unittest.mock)
177
+
178
+ ```python
179
+ # tests/conftest.py - pytest fixtures
180
+
181
+ import pytest
182
+ from unittest.mock import Mock, patch, MagicMock
183
+
184
+ # 1. Mock模块/类
185
+ @pytest.fixture
186
+ def mock_auth():
187
+ mock = Mock()
188
+ mock.login.return_value = {'token': 'mock-token'}
189
+ mock.logout.return_value = True
190
+ return mock
191
+
192
+ # 2. Mock API调用(使用patch装饰器)
193
+ def test_user_service(mock_auth):
194
+ with patch('src.api.fetchUser') as mock_fetch:
195
+ mock_fetch.return_value = {'id': 1, 'name': 'Test User'}
196
+ # 测试代码
197
+
198
+ # 3. Mock数据库操作
199
+ @pytest.fixture
200
+ def mock_db():
201
+ mock = MagicMock()
202
+ mock.query.return_value = []
203
+ return mock
204
+
205
+ # 4. 错误处理Mock(确保错误类型匹配)
206
+ def test_payment_failure():
207
+ with patch('src.services.payment.processPayment') as mock_pay:
208
+ mock_pay.side_effect = ValueError('Payment failed')
209
+ # 测试代码
210
+
211
+ # 5. 生命周期管理(自动清理)
212
+ @pytest.fixture(autouse=True)
213
+ def reset_mocks():
214
+ yield
215
+ # pytest自动清理
216
+ ```
217
+
218
+ **unittest.mock常用方法**:
219
+ ```python
220
+ from unittest.mock import Mock, patch, call
221
+
222
+ # Mock对象
223
+ mock_obj = Mock()
224
+ mock_obj.method.return_value = result
225
+ mock_obj.method.side_effect = Exception('error')
226
+
227
+ # Patch装饰器
228
+ @patch('module.function')
229
+ def test_something(mock_func):
230
+ mock_func.return_value = 'mocked'
231
+
232
+ # 断言
233
+ mock_obj.method.assert_called_once()
234
+ mock_obj.method.assert_called_with(arg1, arg2)
235
+ mock_obj.method.assert_not_called()
236
+ ```
237
+
238
+ ---
239
+
240
+ ### Java (JUnit 5 + Mockito)
241
+
242
+ ```java
243
+ // src/test/java/.../MyServiceTest.java
244
+
245
+ import org.junit.jupiter.api.*;
246
+ import static org.mockito.Mockito.*;
247
+ import static org.assertj.core.api.Assertions.*;
248
+
249
+ @ExtendWith(MockitoExtension.class)
250
+ class MyServiceTest {
251
+
252
+ // 1. Mock声明
253
+ @Mock
254
+ private AuthRepository authRepository;
255
+
256
+ @Mock
257
+ private ApiClient apiClient;
258
+
259
+ @InjectMocks
260
+ private MyService myService;
261
+
262
+ // 2. 生命周期管理
263
+ @BeforeEach
264
+ void setUp() {
265
+ Mockito.reset(authRepository, apiClient);
266
+ }
267
+
268
+ @AfterEach
269
+ void tearDown() {
270
+ // 清理资源
271
+ }
272
+
273
+ // 3. Mock行为定义
274
+ @Test
275
+ void testLogin() {
276
+ // 定义Mock行为
277
+ when(authRepository.findByUsername("test"))
278
+ .thenReturn(Optional.of(new User("test")));
279
+
280
+ // 调用被测试方法
281
+ User result = myService.login("test");
282
+
283
+ // 断言
284
+ assertThat(result).isNotNull();
285
+ verify(authRepository, times(1)).findByUsername("test");
286
+ }
287
+
288
+ // 4. 错误处理Mock
289
+ @Test
290
+ void testPaymentFailure() {
291
+ when(paymentService.process(any()))
292
+ .thenThrow(new PaymentException("Payment failed"));
293
+
294
+ assertThatThrownBy(() -> paymentService.process(order))
295
+ .isInstanceOf(PaymentException.class)
296
+ .hasMessage("Payment failed");
297
+ }
298
+
299
+ // 5. Mock数据库操作
300
+ @Test
301
+ void testDatabaseOperation() {
302
+ when(repository.findAll()).thenReturn(Collections.emptyList());
303
+
304
+ List<Entity> result = repository.findAll();
305
+ assertThat(result).isEmpty();
306
+ }
307
+ }
308
+ ```
309
+
310
+ **Mockito常用方法**:
311
+ ```java
312
+ // 静态导入
313
+ import static org.mockito.Mockito.*;
314
+
315
+ // Mock行为
316
+ when(mock.method()).thenReturn(value);
317
+ when(mock.method(any())).thenThrow(exception);
318
+ doNothing().when(mock).voidMethod();
319
+
320
+ // 验证
321
+ verify(mock).method();
322
+ verify(mock, times(2)).method();
323
+ verify(mock, never()).method();
324
+ verifyNoMoreInteractions(mock);
325
+ ```
326
+
327
+ ---
328
+
329
+ ### Go (testing + gomock / testify)
330
+
331
+ ```go
332
+ // myservice_test.go
333
+
334
+ package myservice
335
+
336
+ import (
337
+ "testing"
338
+ "github.com/golang/mock/gomock"
339
+ "github.com/stretchr/testify/mock"
340
+ "errors"
341
+ )
342
+
343
+ // 使用gomock
344
+ func TestServiceWithGomock(t *testing.T) {
345
+ ctrl := gomock.NewController(t)
346
+ defer ctrl.Finish()
347
+
348
+ // 1. 创建Mock
349
+ mockRepo := NewMockRepository(ctrl)
350
+ mockAPI := NewMockAPIClient(ctrl)
351
+
352
+ // 2. 定义Mock行为
353
+ mockRepo.EXPECT().
354
+ FindByID(gomock.Eq(1)).
355
+ Return(&User{ID: 1, Name: "Test"}, nil).
356
+ Times(1)
357
+
358
+ mockAPI.EXPECT().
359
+ Fetch(gomock.Any()).
360
+ Return(nil, errors.New("API error"))
361
+
362
+ // 3. 执行测试
363
+ service := NewService(mockRepo, mockAPI)
364
+ result, err := service.GetUser(1)
365
+
366
+ // 4. 断言
367
+ if err != nil {
368
+ t.Errorf("expected no error, got %v", err)
369
+ }
370
+ if result.Name != "Test" {
371
+ t.Errorf("expected Test, got %s", result.Name)
372
+ }
373
+ }
374
+
375
+ // 使用testify/mock
376
+ type MockRepository struct {
377
+ mock.Mock
378
+ }
379
+
380
+ func (m *MockRepository) FindByID(id int) (*User, error) {
381
+ args := m.Called(id)
382
+ return args.Get(0).(*User), args.Error(1)
383
+ }
384
+
385
+ func TestWithTestify(t *testing.T) {
386
+ mockRepo := new(MockRepository)
387
+
388
+ // 定义行为
389
+ mockRepo.On("FindByID", 1).Return(&User{ID: 1}, nil)
390
+
391
+ // 执行测试
392
+ result, err := mockRepo.FindByID(1)
393
+
394
+ // 断言
395
+ mockRepo.AssertExpectations(t)
396
+ assert.NoError(t, err)
397
+ assert.Equal(t, 1, result.ID)
398
+ }
399
+ ```
400
+
401
+ ---
402
+
403
+ ### C# (xUnit + Moq)
404
+
405
+ ```csharp
406
+ // MyServiceTests.cs
407
+
408
+ using Xunit;
409
+ using Moq;
410
+ using System.Threading.Tasks;
411
+
412
+ public class MyServiceTests
413
+ {
414
+ // 1. Mock声明
415
+ private readonly Mock<IAuthRepository> _mockAuth;
416
+ private readonly Mock<IApiClient> _mockApi;
417
+ private readonly MyService _service;
418
+
419
+ public MyServiceTests()
420
+ {
421
+ _mockAuth = new Mock<IAuthRepository>();
422
+ _mockApi = new Mock<IApiClient>();
423
+ _service = new MyService(_mockAuth.Object, _mockApi.Object);
424
+ }
425
+
426
+ // 2. 生命周期管理
427
+ [Fact]
428
+ public void TestSetup()
429
+ {
430
+ _mockAuth.Reset();
431
+ _mockApi.Reset();
432
+ }
433
+
434
+ // 3. Mock行为定义
435
+ [Fact]
436
+ public async Task TestLogin()
437
+ {
438
+ _mockAuth.Setup(x => x.LoginAsync("test", "pass"))
439
+ .ReturnsAsync(new AuthResult { Token = "mock-token" });
440
+
441
+ var result = await _service.Login("test", "pass");
442
+
443
+ Assert.NotNull(result);
444
+ _mockAuth.Verify(x => x.LoginAsync("test", "pass"), Times.Once);
445
+ }
446
+
447
+ // 4. 错误处理Mock
448
+ [Fact]
449
+ public async Task TestPaymentFailure()
450
+ {
451
+ _mockApi.Setup(x => x.ProcessPaymentAsync(It.IsAny<PaymentRequest>()))
452
+ .ThrowsAsync(new PaymentException("Payment failed"));
453
+
454
+ await Assert.ThrowsAsync<PaymentException>(
455
+ () => _service.ProcessPayment(new PaymentRequest()));
456
+ }
457
+
458
+ // 5. Mock数据库操作
459
+ [Fact]
460
+ public void TestDatabaseQuery()
461
+ {
462
+ _mockAuth.Setup(x => x.GetAllUsers())
463
+ .Returns(new List<User>());
464
+
465
+ var result = _mockAuth.Object.GetAllUsers();
466
+
467
+ Assert.Empty(result);
468
+ }
469
+ }
470
+ ```
471
+
472
+ ---
473
+
474
+ ### Ruby (RSpec)
475
+
476
+ ```ruby
477
+ # spec/services/my_service_spec.rb
478
+
479
+ require 'rails_helper'
480
+
481
+ RSpec.describe MyService do
482
+ # 1. Mock声明
483
+ let(:mock_auth) { instance_double('AuthRepository') }
484
+ let(:mock_api) { instance_double('ApiClient') }
485
+ let(:service) { MyService.new(mock_auth, mock_api) }
486
+
487
+ # 2. 生命周期管理(自动清理)
488
+ afterEach do
489
+ # RSpec自动清理
490
+ end
491
+
492
+ # 3. Mock行为定义
493
+ describe '#login' do
494
+ before do
495
+ allow(mock_auth).to receive(:login).with('test', 'pass')
496
+ .return_value(token: 'mock-token')
497
+ end
498
+
499
+ it 'returns auth result' do
500
+ result = service.login('test', 'pass')
501
+ expect(result[:token]).to eq('mock-token')
502
+ end
503
+ end
504
+
505
+ # 4. 错误处理Mock
506
+ describe '#process_payment' do
507
+ before do
508
+ allow(mock_api).to receive(:process_payment)
509
+ .and_raise(PaymentException.new('Payment failed'))
510
+ end
511
+
512
+ it 'raises PaymentException' do
513
+ expect { service.process_payment }
514
+ .to raise_error(PaymentException, 'Payment failed')
515
+ end
516
+ end
517
+
518
+ # 5. Mock数据库操作
519
+ describe '#get_users' do
520
+ before do
521
+ allow(mock_auth).to receive(:get_all_users).and_return([])
522
+ end
523
+
524
+ it 'returns empty array' do
525
+ expect(service.get_users).to be_empty
526
+ end
527
+ end
528
+ end
529
+ ```
530
+
531
+ ---
532
+
533
+ ### 通用Mock原则总结
534
+
535
+ | 原则 | 说明 |
536
+ |------|------|
537
+ | **最小Mock原则** | 只Mock必要的依赖,不要Mock被测试对象本身 |
538
+ | **行为验证** | 验证调用了什么,而不是如何调用 |
539
+ | **错误类型匹配** | Mock错误必须与实际错误类型一致 |
540
+ | **生命周期管理** | 每个测试独立,Mock状态不共享 |
541
+ | **可读性** | Mock配置应该清晰易懂 |
542
+
543
+ **覆盖率门禁执行**:
544
+ ```bash
545
+ # 运行测试并生成覆盖率报告
546
+ npm test -- --coverage
547
+
548
+ # 检查覆盖率是否达标
549
+ # - 行覆盖率 >= 70%
550
+ # - 分支覆盖率 >= 60%
551
+ # - 核心功能覆盖率 = 100%
552
+
553
+ # 覆盖率不达标时自动补充测试
554
+ if coverage < 70%:
555
+ 1. 分析未覆盖的代码路径
556
+ 2. 生成补充测试用例
557
+ 3. 重新运行测试
558
+ 4. 最多重试3次
559
+ ```
560
+
41
561
  9. **运行所有测试**,生成测试报告
42
562
 
43
563
  ### Step 3: 多系统模式
@@ -125,19 +645,74 @@ description: "When test case generation, QA testing, test plan creation, or test
125
645
 
126
646
  ## 验证
127
647
 
648
+ ### 阶段完成验证(阻塞检查)
649
+
650
+ **【强制】【不可跳过】** 在执行 Layer1 验证之前,必须验证以下条件:
651
+
652
+ ```
653
+ 验证清单:
654
+ □ 上游代码实现已完成
655
+ □ 测试用例已生成
656
+ □ 测试代码已编写
657
+ □ 效果评测脚本已开发(如有AI功能)
658
+ □ 评测数据集已构建(如有AI功能)
659
+ ```
660
+
661
+ **验证失败处理**:
662
+
663
+ | 缺失项 | 处理方式 |
664
+ |--------|----------|
665
+ | 代码未完成 | 返回编码实现阶段 |
666
+ | 测试用例未生成 | 执行测试方案规划 |
667
+ | 效果评测未开发 | 执行效果评测开发 |
668
+
669
+ **【禁止】** 验证未通过时,禁止进入 Layer1 验证。
670
+
128
671
  ### Layer 1: 确定性验证
129
672
  - 所有测试用例执行通过
130
- - 测试覆盖率满足要求
673
+ - **测试覆盖率门禁**:
674
+ - 行覆盖率 >= 70%
675
+ - 分支覆盖率 >= 60%
676
+ - 核心功能覆盖率 = 100%
677
+ - 覆盖率 < 70% 时自动触发测试补充循环(最多3次)
131
678
  - 无跳过或被禁用的测试
132
679
  - **多系统模式**:所有子系统测试都通过
133
680
  - **效果评测模式**:评测脚本可运行,评测报告已产出
134
681
 
682
+ ### 团队审查(按复杂度)
683
+
684
+ **【强制】** 根据复杂度评估结果,启动团队智能体并行审查:
685
+
686
+ #### 简单任务(score <= 5)
687
+ - 质量工程师:测试策略、覆盖度
688
+
689
+ #### 中等任务(score 6-8)
690
+ - 质量工程师 + 技术负责人
691
+
692
+ #### 复杂任务(score >= 9)
693
+ - 质量工程师 + 技术负责人 + 后端工程师 + 前端工程师
694
+ - 如触发强制规则,额外引入安全工程师
695
+
696
+ **执行方式**:
697
+ ```
698
+ **【强制】** 读取 `${KNOWLEDGE}/03-guides/01-team-orchestrator.md`
699
+ 并行启动团队智能体审查测试:
700
+ - 质量工程师 Agent:测试策略、覆盖率、测试质量
701
+ - 技术负责人 Agent:测试完整性、边界条件覆盖
702
+ - 后端工程师 Agent:接口测试、数据库测试
703
+ - 前端工程师 Agent:UI测试、兼容性测试
704
+ - 数据工程师 Agent:数据质量测试、ETL测试(如涉及数据系统)
705
+ - AI工程师 Agent:效果评测、模型测试(如涉及AI系统)
706
+ - 安全工程师 Agent:安全测试覆盖(如触发)
707
+ 汇总审查意见,生成团队审查报告
708
+ ```
709
+
135
710
  ### Layer 2: AI审查(做审分离)
136
711
  使用 **test-coverage-reviewer** Agent(专用测试审查Agent)执行独立审查:
137
712
  ```
138
713
  **【强制】** 调用 Agent 工具:
139
714
  prompt: 请审查以下测试方案和结果。
140
- 1. 先读取审查标准: ${KNOWLEDGE}/guides/stages/test-reviewer.md
715
+ 1. 先读取审查标准: ${KNOWLEDGE}/03-guides/12-review-testing.md
141
716
  2. 测试用例和测试代码
142
717
  3. 测试执行报告(或 tests/ 目录)
143
718
  4. 上游需求文档: .autospec/specs/{feature}/requirement.md(用于验证覆盖度)