cc-devflow 4.3.0 → 4.4.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 (575) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +64 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
  3. package/.claude/skills/cc-act/SKILL.md +322 -0
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -0
  6. package/.claude/skills/cc-act/references/closure-contract.md +49 -0
  7. package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
  8. package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +240 -0
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
  11. package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +195 -0
  13. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
  14. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
  15. package/.claude/skills/cc-check/CHANGELOG.md +73 -0
  16. package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
  17. package/.claude/skills/cc-check/SKILL.md +345 -0
  18. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -0
  19. package/.claude/skills/cc-check/references/gate-contract.md +29 -0
  20. package/.claude/skills/cc-check/references/review-contract.md +45 -0
  21. package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
  22. package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
  23. package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
  24. package/.claude/skills/cc-do/CHANGELOG.md +49 -0
  25. package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
  26. package/.claude/skills/cc-do/SKILL.md +216 -0
  27. package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
  28. package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
  29. package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
  30. package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
  31. package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
  32. package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
  33. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
  34. package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
  35. package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
  36. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
  37. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
  38. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
  39. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
  40. package/.claude/skills/cc-investigate/CHANGELOG.md +26 -0
  41. package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
  42. package/.claude/skills/cc-investigate/SKILL.md +221 -0
  43. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
  44. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
  45. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -0
  46. package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
  47. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
  48. package/.claude/skills/cc-plan/CHANGELOG.md +99 -0
  49. package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
  50. package/.claude/skills/cc-plan/SKILL.md +325 -0
  51. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
  52. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
  53. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
  54. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -0
  55. package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
  56. package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
  57. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
  58. package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
  59. package/.claude/skills/cc-roadmap/CHANGELOG.md +114 -0
  60. package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
  61. package/.claude/skills/cc-roadmap/SKILL.md +259 -0
  62. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
  63. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
  64. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -0
  65. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
  66. package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
  67. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
  68. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
  69. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
  70. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
  71. package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
  72. package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
  73. package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
  74. package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
  75. package/.claude/skills/cc-simplify/SKILL.md +55 -0
  76. package/.claude/skills/cc-spec-init/CHANGELOG.md +7 -0
  77. package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
  78. package/.claude/skills/cc-spec-init/SKILL.md +127 -0
  79. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
  80. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
  81. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -0
  82. package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
  83. package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
  84. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
  85. package/CHANGELOG.md +61 -4
  86. package/README.md +120 -756
  87. package/README.zh-CN.md +119 -756
  88. package/bin/adapt.js +2 -6
  89. package/bin/cc-devflow-cli.js +72 -177
  90. package/config/distributable-skills.json +24 -0
  91. package/docs/CLAUDE.md +10 -6
  92. package/docs/commands/README.md +19 -46
  93. package/docs/commands/README.zh-CN.md +25 -48
  94. package/docs/examples/BY-ARTIFACT.md +7 -0
  95. package/docs/examples/README.md +38 -0
  96. package/docs/examples/START-HERE.md +149 -0
  97. package/docs/examples/example-bindings.json +38 -0
  98. package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
  99. package/docs/examples/full-design-blocked/README.md +55 -0
  100. package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
  101. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
  102. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
  103. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
  104. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
  105. package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
  106. package/docs/examples/local-handoff/BACKLOG.md +45 -0
  107. package/docs/examples/local-handoff/README.md +56 -0
  108. package/docs/examples/local-handoff/ROADMAP.md +45 -0
  109. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
  110. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
  111. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
  112. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
  113. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
  114. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
  115. package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
  116. package/docs/examples/pdca-loop/BACKLOG.md +46 -0
  117. package/docs/examples/pdca-loop/README.md +58 -0
  118. package/docs/examples/pdca-loop/ROADMAP.md +133 -0
  119. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
  120. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
  121. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
  122. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
  123. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
  125. package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
  126. package/docs/examples/scripts/check-example-bindings.sh +116 -0
  127. package/docs/guides/getting-started.md +94 -129
  128. package/docs/guides/getting-started.zh-CN.md +103 -84
  129. package/docs/skill-runtime-migration.md +46 -0
  130. package/docs/v4.3.0-migration-guide.md +60 -225
  131. package/lib/compiler/CLAUDE.md +55 -84
  132. package/lib/compiler/__tests__/drift.test.js +1 -1
  133. package/lib/compiler/__tests__/errors.test.js +0 -1
  134. package/lib/compiler/__tests__/integration.test.js +49 -3
  135. package/lib/compiler/__tests__/manifest.test.js +0 -156
  136. package/lib/compiler/__tests__/parser.test.js +33 -104
  137. package/lib/compiler/__tests__/schemas.test.js +30 -34
  138. package/lib/compiler/__tests__/skills-registry.test.js +114 -0
  139. package/lib/compiler/__tests__/transformer.test.js +5 -9
  140. package/lib/compiler/emitters/antigravity-emitter.js +5 -213
  141. package/lib/compiler/emitters/base-emitter.js +3 -298
  142. package/lib/compiler/emitters/codex-emitter.js +4 -202
  143. package/lib/compiler/emitters/cursor-emitter.js +3 -287
  144. package/lib/compiler/emitters/qwen-emitter.js +4 -176
  145. package/lib/compiler/index.js +65 -345
  146. package/lib/compiler/manifest.js +6 -68
  147. package/lib/compiler/parser.js +31 -63
  148. package/lib/compiler/platforms.js +32 -277
  149. package/lib/compiler/resource-copier.js +176 -6
  150. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
  151. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
  152. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
  153. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
  154. package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
  155. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
  156. package/lib/compiler/rules-emitters/index.js +6 -3
  157. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
  158. package/lib/compiler/schemas.js +8 -4
  159. package/lib/compiler/skills-registry.js +213 -15
  160. package/lib/compiler/transformer.js +1 -1
  161. package/lib/skill-runtime/CLAUDE.md +19 -0
  162. package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
  163. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
  164. package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
  165. package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
  166. package/lib/skill-runtime/__tests__/intent.test.js +219 -0
  167. package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
  168. package/lib/skill-runtime/__tests__/paths.test.js +42 -0
  169. package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
  170. package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
  171. package/lib/skill-runtime/__tests__/query.test.js +284 -0
  172. package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
  173. package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
  174. package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
  175. package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
  176. package/lib/skill-runtime/__tests__/worker.test.js +56 -0
  177. package/lib/skill-runtime/artifacts.js +93 -0
  178. package/lib/skill-runtime/delegation.js +533 -0
  179. package/lib/skill-runtime/index.js +34 -0
  180. package/lib/skill-runtime/intent.js +333 -0
  181. package/lib/skill-runtime/lifecycle.js +294 -0
  182. package/lib/skill-runtime/operations/CLAUDE.md +19 -0
  183. package/lib/skill-runtime/operations/approve.js +66 -0
  184. package/lib/skill-runtime/operations/autopilot-core.js +337 -0
  185. package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
  186. package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
  187. package/lib/skill-runtime/operations/autopilot.js +163 -0
  188. package/lib/skill-runtime/operations/dispatch.js +454 -0
  189. package/lib/skill-runtime/operations/init.js +64 -0
  190. package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
  191. package/lib/skill-runtime/operations/plan.js +59 -0
  192. package/lib/skill-runtime/operations/prepare-pr.js +25 -0
  193. package/lib/skill-runtime/operations/release.js +96 -0
  194. package/lib/skill-runtime/operations/resume.js +143 -0
  195. package/lib/skill-runtime/operations/snapshot.js +45 -0
  196. package/lib/skill-runtime/operations/verify.js +170 -0
  197. package/lib/skill-runtime/operations/worker-run.js +529 -0
  198. package/lib/skill-runtime/operations/worker.js +33 -0
  199. package/lib/skill-runtime/paths.js +213 -0
  200. package/lib/skill-runtime/planner.js +519 -0
  201. package/lib/skill-runtime/query.js +157 -0
  202. package/lib/skill-runtime/review.js +557 -0
  203. package/lib/skill-runtime/schemas.js +400 -0
  204. package/lib/{harness → skill-runtime}/store.js +45 -30
  205. package/lib/skill-runtime/team-state.js +122 -0
  206. package/package.json +13 -11
  207. package/.claude/CLAUDE.md +0 -125
  208. package/.claude/agents/architecture-designer.md +0 -443
  209. package/.claude/agents/bug-analyzer.md +0 -381
  210. package/.claude/agents/checklist-agent.md +0 -175
  211. package/.claude/agents/clarify-analyst.md +0 -50
  212. package/.claude/agents/code-quality-reviewer.md +0 -205
  213. package/.claude/agents/code-reviewer.md +0 -71
  214. package/.claude/agents/codex-analyzer.md +0 -39
  215. package/.claude/agents/compatibility-checker.md +0 -579
  216. package/.claude/agents/consistency-checker.md +0 -532
  217. package/.claude/agents/dev-implementer.md +0 -195
  218. package/.claude/agents/flow-researcher.md +0 -132
  219. package/.claude/agents/impact-analyzer.md +0 -440
  220. package/.claude/agents/planner.md +0 -230
  221. package/.claude/agents/prd-writer.md +0 -320
  222. package/.claude/agents/project-guidelines-generator.md +0 -1329
  223. package/.claude/agents/qa-tester.md +0 -313
  224. package/.claude/agents/release-manager.md +0 -295
  225. package/.claude/agents/security-reviewer.md +0 -314
  226. package/.claude/agents/spec-reviewer.md +0 -221
  227. package/.claude/agents/style-guide-generator.md +0 -458
  228. package/.claude/agents/tech-architect.md +0 -516
  229. package/.claude/agents/ui-designer.md +0 -485
  230. package/.claude/commands/core/architecture.md +0 -459
  231. package/.claude/commands/core/guidelines.md +0 -511
  232. package/.claude/commands/core/roadmap.md +0 -468
  233. package/.claude/commands/core/style.md +0 -83
  234. package/.claude/commands/flow/CLAUDE.md +0 -24
  235. package/.claude/commands/flow/archive.md +0 -280
  236. package/.claude/commands/flow/constitution.md +0 -82
  237. package/.claude/commands/flow/context.md +0 -150
  238. package/.claude/commands/flow/delta.md +0 -245
  239. package/.claude/commands/flow/dev.md +0 -40
  240. package/.claude/commands/flow/fix.md +0 -217
  241. package/.claude/commands/flow/ideate.md +0 -214
  242. package/.claude/commands/flow/init.md +0 -38
  243. package/.claude/commands/flow/release.md +0 -36
  244. package/.claude/commands/flow/restart.md +0 -97
  245. package/.claude/commands/flow/spec.md +0 -36
  246. package/.claude/commands/flow/status.md +0 -64
  247. package/.claude/commands/flow/update.md +0 -111
  248. package/.claude/commands/flow/upgrade.md +0 -115
  249. package/.claude/commands/flow/verify.md +0 -37
  250. package/.claude/commands/flow/workspace.md +0 -155
  251. package/.claude/commands/util/cancel-ralph.md +0 -60
  252. package/.claude/commands/util/code-review.md +0 -58
  253. package/.claude/commands/util/git-commit.md +0 -422
  254. package/.claude/commands/util/problem-analyzer.md +0 -60
  255. package/.claude/config/quality-gates.yml +0 -305
  256. package/.claude/config/quality-rules.yml +0 -161
  257. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  258. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  259. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  260. package/.claude/docs/design/prd-version-management-design.md +0 -437
  261. package/.claude/docs/examples/design-inspiration-pool.md +0 -59
  262. package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
  263. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  264. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  265. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  266. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  267. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  268. package/.claude/docs/implementation-summary-v7.md +0 -449
  269. package/.claude/docs/spec-format-guide.md +0 -349
  270. package/.claude/docs/state-consolidation-design.md +0 -323
  271. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
  272. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  273. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  274. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  275. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  276. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  277. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  278. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  279. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  280. package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
  281. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  282. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  283. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  284. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  285. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  286. package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
  287. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  288. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  289. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  290. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  291. package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
  292. package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
  293. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
  294. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
  295. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  296. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  297. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  298. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  299. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  300. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  301. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  302. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  303. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  304. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  305. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  306. package/.claude/guides/project-guidelines-system.md +0 -463
  307. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  308. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  309. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  310. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  311. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  312. package/.claude/hooks/CLAUDE.md +0 -342
  313. package/.claude/hooks/checklist-gate.js +0 -397
  314. package/.claude/hooks/error-handling-reminder.sh +0 -12
  315. package/.claude/hooks/error-handling-reminder.ts +0 -459
  316. package/.claude/hooks/hooks.json +0 -15
  317. package/.claude/hooks/inject-agent-context.ts +0 -480
  318. package/.claude/hooks/inject-skill-context.ts +0 -359
  319. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  320. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  321. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  322. package/.claude/hooks/ralph-loop.ts +0 -931
  323. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  324. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  325. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  326. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  327. package/.claude/hooks/task-completed-hook.ts +0 -593
  328. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  329. package/.claude/hooks/types/team-types.d.ts +0 -238
  330. package/.claude/rules/devflow-conventions.md +0 -286
  331. package/.claude/rules/project-constitution.md +0 -1002
  332. package/.claude/rules/rationalization-library.md +0 -282
  333. package/.claude/schemas/constitution.schema.json +0 -43
  334. package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
  335. package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
  336. package/.claude/scripts/CLAUDE.md +0 -76
  337. package/.claude/scripts/__tests__/openspec.test.js +0 -212
  338. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  339. package/.claude/scripts/archive-requirement.sh +0 -394
  340. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  341. package/.claude/scripts/calculate-quarter.sh +0 -206
  342. package/.claude/scripts/check-dependencies.sh +0 -409
  343. package/.claude/scripts/check-prerequisites.sh +0 -232
  344. package/.claude/scripts/check-task-status.sh +0 -288
  345. package/.claude/scripts/checklist-errors.sh +0 -131
  346. package/.claude/scripts/common.sh +0 -1102
  347. package/.claude/scripts/consolidate-research.sh +0 -182
  348. package/.claude/scripts/create-requirement.sh +0 -451
  349. package/.claude/scripts/delta-parser.ts +0 -637
  350. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  351. package/.claude/scripts/export-contracts.sh +0 -117
  352. package/.claude/scripts/export-openspec.js +0 -222
  353. package/.claude/scripts/extract-data-model.sh +0 -78
  354. package/.claude/scripts/flow-context-add.sh +0 -134
  355. package/.claude/scripts/flow-context-init.sh +0 -133
  356. package/.claude/scripts/flow-context-validate.sh +0 -144
  357. package/.claude/scripts/flow-delta-apply.sh +0 -297
  358. package/.claude/scripts/flow-delta-archive.sh +0 -71
  359. package/.claude/scripts/flow-delta-create.sh +0 -202
  360. package/.claude/scripts/flow-delta-list.sh +0 -142
  361. package/.claude/scripts/flow-delta-status.sh +0 -235
  362. package/.claude/scripts/flow-quality-full.sh +0 -215
  363. package/.claude/scripts/flow-quality-quick.sh +0 -119
  364. package/.claude/scripts/flow-workspace-init.sh +0 -117
  365. package/.claude/scripts/flow-workspace-record.sh +0 -164
  366. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  367. package/.claude/scripts/generate-clarification-report.sh +0 -463
  368. package/.claude/scripts/generate-quickstart.sh +0 -146
  369. package/.claude/scripts/generate-research-tasks.sh +0 -157
  370. package/.claude/scripts/generate-status-report.sh +0 -523
  371. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  372. package/.claude/scripts/get-workflow-status.sh +0 -415
  373. package/.claude/scripts/import-openspec.js +0 -272
  374. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  375. package/.claude/scripts/manage-constitution.sh +0 -602
  376. package/.claude/scripts/mark-task-complete.sh +0 -198
  377. package/.claude/scripts/parse-task-dependencies.js +0 -334
  378. package/.claude/scripts/populate-research-tasks.sh +0 -284
  379. package/.claude/scripts/record-quality-error.sh +0 -165
  380. package/.claude/scripts/recover-workflow.sh +0 -463
  381. package/.claude/scripts/run-clarify-scan.sh +0 -601
  382. package/.claude/scripts/run-high-review.sh +0 -62
  383. package/.claude/scripts/run-problem-analysis.sh +0 -68
  384. package/.claude/scripts/run-quality-gates.sh +0 -242
  385. package/.claude/scripts/setup-epic.sh +0 -173
  386. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  387. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  388. package/.claude/scripts/sync-task-marks.sh +0 -199
  389. package/.claude/scripts/team-dev-init.sh +0 -319
  390. package/.claude/scripts/team-state-recovery.sh +0 -229
  391. package/.claude/scripts/test-clarify-scan.sh +0 -515
  392. package/.claude/scripts/update-agent-context.sh +0 -806
  393. package/.claude/scripts/validate-constitution.sh +0 -567
  394. package/.claude/scripts/validate-hooks.sh +0 -487
  395. package/.claude/scripts/validate-research.sh +0 -332
  396. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  397. package/.claude/scripts/validate-scope.sh +0 -200
  398. package/.claude/scripts/verify-gate.sh +0 -269
  399. package/.claude/scripts/verify-setup.sh +0 -37
  400. package/.claude/scripts/workflow-status.ts +0 -433
  401. package/.claude/settings.json +0 -95
  402. package/.claude/skills/_reference-implementations/README.md +0 -96
  403. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  404. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  405. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  406. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  408. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  409. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  410. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  411. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  412. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  413. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  414. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  415. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  416. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  417. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  418. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  419. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  420. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  421. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  422. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  423. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  424. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  425. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  426. package/.claude/skills/attention-refresh/SKILL.md +0 -170
  427. package/.claude/skills/brainstorming/SKILL.md +0 -161
  428. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  429. package/.claude/skills/constitution-guardian/SKILL.md +0 -306
  430. package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
  431. package/.claude/skills/debugging/SKILL.md +0 -221
  432. package/.claude/skills/file-standards/SKILL.md +0 -353
  433. package/.claude/skills/finishing-branch/SKILL.md +0 -189
  434. package/.claude/skills/flow-dev/CLAUDE.md +0 -16
  435. package/.claude/skills/flow-dev/SKILL.md +0 -94
  436. package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  437. package/.claude/skills/flow-dev/context.jsonl +0 -4
  438. package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
  439. package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
  440. package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
  441. package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
  442. package/.claude/skills/flow-fix/SKILL.md +0 -105
  443. package/.claude/skills/flow-fix/context.jsonl +0 -6
  444. package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
  445. package/.claude/skills/flow-init/SKILL.md +0 -105
  446. package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  447. package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  448. package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  449. package/.claude/skills/flow-init/context.jsonl +0 -5
  450. package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
  451. package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
  452. package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
  453. package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
  454. package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
  455. package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
  456. package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
  457. package/.claude/skills/flow-quality/SKILL.md +0 -98
  458. package/.claude/skills/flow-quality/context.jsonl +0 -6
  459. package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
  460. package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
  461. package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
  462. package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
  463. package/.claude/skills/flow-release/SKILL.md +0 -60
  464. package/.claude/skills/flow-release/context.jsonl +0 -5
  465. package/.claude/skills/flow-release/references/release-manager.md +0 -295
  466. package/.claude/skills/flow-spec/CLAUDE.md +0 -17
  467. package/.claude/skills/flow-spec/SKILL.md +0 -102
  468. package/.claude/skills/flow-spec/context.jsonl +0 -5
  469. package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
  470. package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
  471. package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  472. package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
  473. package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
  474. package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
  475. package/.claude/skills/flow-spec/team-config.json +0 -165
  476. package/.claude/skills/flow-verify/CLAUDE.md +0 -10
  477. package/.claude/skills/flow-verify/SKILL.md +0 -53
  478. package/.claude/skills/flow-verify/context.jsonl +0 -5
  479. package/.claude/skills/fractal-docs/SKILL.md +0 -45
  480. package/.claude/skills/journey-checker/SKILL.md +0 -199
  481. package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
  482. package/.claude/skills/receiving-review/SKILL.md +0 -153
  483. package/.claude/skills/skill-creator/LICENSE.txt +0 -202
  484. package/.claude/skills/skill-creator/SKILL.md +0 -356
  485. package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
  486. package/.claude/skills/skill-creator/references/workflows.md +0 -28
  487. package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  488. package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  489. package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
  490. package/.claude/skills/skill-rules.json +0 -359
  491. package/.claude/skills/tdd/SKILL.md +0 -218
  492. package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
  493. package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
  494. package/.claude/skills/utility/npm-release/SKILL.md +0 -379
  495. package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
  496. package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
  497. package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
  498. package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
  499. package/.claude/skills/verification/SKILL.md +0 -158
  500. package/.claude/skills/workflow.yaml +0 -219
  501. package/.claude/tests/README.md +0 -300
  502. package/.claude/tests/TODO.md +0 -69
  503. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  504. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  505. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  506. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  507. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  508. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  509. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  510. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  511. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  512. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  513. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  514. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  515. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  516. package/.claude/tests/run-all-tests.sh +0 -229
  517. package/.claude/tests/scripts/run.sh +0 -30
  518. package/.claude/tests/scripts/test-framework.sh +0 -128
  519. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  520. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  521. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  522. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  523. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  524. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  525. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  526. package/.claude/tests/scripts/test_common.sh +0 -244
  527. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  528. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  529. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  530. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  531. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  532. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  533. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  534. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  535. package/.claude/tests/slugify.bats +0 -82
  536. package/.claude/tests/test-framework.sh +0 -732
  537. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  538. package/.claude/tests/test_consolidate_research.py +0 -48
  539. package/.claude/tests/test_export_contracts.py +0 -43
  540. package/.claude/tests/test_extract_data_model.py +0 -33
  541. package/.claude/tests/test_generate_quickstart.py +0 -50
  542. package/.claude/tests/test_generate_research_tasks.py +0 -52
  543. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
  544. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
  545. package/bin/harness.js +0 -22
  546. package/docs/commands/core-roadmap.md +0 -106
  547. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  548. package/docs/commands/core-style.md +0 -53
  549. package/docs/commands/core-style.zh-CN.md +0 -53
  550. package/docs/commands/flow-init.md +0 -140
  551. package/docs/commands/flow-init.zh-CN.md +0 -169
  552. package/docs/commands/flow-new.md +0 -39
  553. package/docs/commands/flow-new.zh-CN.md +0 -39
  554. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  555. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  556. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  557. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  558. package/lib/compiler/context-expander.js +0 -179
  559. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  560. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  561. package/lib/compiler/skill-discovery.js +0 -68
  562. package/lib/harness/CLAUDE.md +0 -22
  563. package/lib/harness/__tests__/planner.tdd.test.js +0 -125
  564. package/lib/harness/cli.js +0 -208
  565. package/lib/harness/index.js +0 -18
  566. package/lib/harness/operations/dispatch.js +0 -298
  567. package/lib/harness/operations/init.js +0 -48
  568. package/lib/harness/operations/pack.js +0 -100
  569. package/lib/harness/operations/plan.js +0 -83
  570. package/lib/harness/operations/release.js +0 -170
  571. package/lib/harness/operations/resume.js +0 -44
  572. package/lib/harness/operations/verify.js +0 -177
  573. package/lib/harness/planner.js +0 -272
  574. package/lib/harness/query.js +0 -126
  575. package/lib/harness/schemas.js +0 -129
@@ -1,618 +0,0 @@
1
- # 测试执行规则
2
-
3
- ## 概述
4
-
5
- cc-devflow 系统中的所有测试操作都必须遵循统一的执行规则,确保测试结果的可靠性和一致性。
6
-
7
- ## 核心原则
8
-
9
- ### 1. 始终使用 qa-tester 子代理
10
- **所有测试相关操作都必须通过 qa-tester 子代理执行**
11
-
12
- ```bash
13
- # ✅ 正确做法 - 使用 qa-tester 子代理
14
- execute_tests_via_agent() {
15
- local req_id="$1"
16
- local test_target="$2"
17
-
18
- echo "🧪 通过 qa-tester 子代理执行测试..."
19
-
20
- # 调用 qa-tester 子代理
21
- claude_task_call "qa-tester" "Execute tests for: $test_target
22
-
23
- Requirements:
24
- - Run with verbose output
25
- - No mock services
26
- - Capture full stack traces
27
- - Analyze test structure if failures occur
28
-
29
- Target: $test_target
30
- Requirement ID: $req_id"
31
- }
32
-
33
- # ❌ 错误做法 - 直接执行测试
34
- direct_test_execution() {
35
- npm test # 绕过了子代理系统
36
- }
37
- ```
38
-
39
- ### 2. 禁用模拟服务
40
- **使用真实服务进行准确的测试结果**
41
-
42
- ```bash
43
- # 测试环境配置
44
- configure_test_environment() {
45
- echo "🔧 配置测试环境..."
46
-
47
- # 禁用所有模拟服务
48
- export DISABLE_MOCKS=true
49
- export USE_REAL_SERVICES=true
50
- export TEST_ENV=integration
51
-
52
- # 确保测试数据库可用
53
- if ! check_test_database_availability; then
54
- echo "❌ 测试数据库不可用"
55
- return 1
56
- fi
57
-
58
- # 确保外部服务可用
59
- if ! check_external_services; then
60
- echo "⚠️ 外部服务不可用,某些测试可能失败"
61
- fi
62
-
63
- echo "✅ 测试环境配置完成"
64
- }
65
-
66
- # 检查测试数据库
67
- check_test_database_availability() {
68
- local db_url="${TEST_DATABASE_URL:-postgresql://localhost:5432/test_db}"
69
-
70
- if command -v psql >/dev/null 2>&1; then
71
- if psql "$db_url" -c "SELECT 1" >/dev/null 2>&1; then
72
- return 0
73
- fi
74
- fi
75
-
76
- # 尝试启动测试数据库
77
- start_test_database
78
-
79
- return $?
80
- }
81
-
82
- # 检查外部服务
83
- check_external_services() {
84
- local services_ok=true
85
-
86
- # 检查 Redis
87
- if ! redis-cli ping >/dev/null 2>&1; then
88
- echo "⚠️ Redis 服务不可用"
89
- services_ok=false
90
- fi
91
-
92
- # 检查其他依赖服务
93
- local required_services=("elasticsearch" "rabbitmq")
94
- for service in "${required_services[@]}"; do
95
- if ! check_service_health "$service"; then
96
- echo "⚠️ 服务不可用: $service"
97
- services_ok=false
98
- fi
99
- done
100
-
101
- $services_ok
102
- }
103
- ```
104
-
105
- ### 3. 详细输出捕获
106
- **捕获完整的测试输出用于调试**
107
-
108
- ```bash
109
- # 执行测试并捕获详细输出
110
- execute_tests_with_verbose_output() {
111
- local test_target="$1"
112
- local req_id="$2"
113
- local output_file="devflow/requirements/${req_id}/test-output.log"
114
-
115
- echo "🧪 执行测试: $test_target"
116
-
117
- # 创建输出目录
118
- mkdir -p "$(dirname "$output_file")"
119
-
120
- # 执行测试并捕获输出
121
- {
122
- echo "=== 测试执行开始 ==="
123
- echo "时间: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
124
- echo "目标: $test_target"
125
- echo "需求ID: $req_id"
126
- echo ""
127
-
128
- # 根据项目类型执行相应测试
129
- case "$test_target" in
130
- "unit")
131
- execute_unit_tests
132
- ;;
133
- "integration")
134
- execute_integration_tests
135
- ;;
136
- "e2e")
137
- execute_e2e_tests
138
- ;;
139
- "all")
140
- execute_unit_tests
141
- execute_integration_tests
142
- execute_e2e_tests
143
- ;;
144
- *)
145
- echo "❌ 未知的测试目标: $test_target"
146
- return 1
147
- ;;
148
- esac
149
-
150
- echo ""
151
- echo "=== 测试执行结束 ==="
152
- echo "时间: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
153
-
154
- } 2>&1 | tee "$output_file"
155
-
156
- # 分析测试结果
157
- analyze_test_results "$output_file"
158
- }
159
-
160
- # 执行单元测试
161
- execute_unit_tests() {
162
- echo "🔬 执行单元测试..."
163
-
164
- if [ -f "package.json" ]; then
165
- # Node.js 项目
166
- if npm run test:unit >/dev/null 2>&1; then
167
- npm run test:unit -- --verbose --coverage
168
- elif npm run test >/dev/null 2>&1; then
169
- npm run test -- --verbose --coverage
170
- else
171
- echo "❌ 未找到测试脚本"
172
- return 1
173
- fi
174
- elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
175
- # Python 项目
176
- if command -v pytest >/dev/null 2>&1; then
177
- pytest -v --tb=long --cov=. --cov-report=term-missing
178
- else
179
- echo "❌ pytest 未安装"
180
- return 1
181
- fi
182
- else
183
- echo "❌ 未识别的项目类型"
184
- return 1
185
- fi
186
- }
187
-
188
- # 执行集成测试
189
- execute_integration_tests() {
190
- echo "🔗 执行集成测试..."
191
-
192
- # 确保测试环境准备就绪
193
- if ! prepare_integration_environment; then
194
- echo "❌ 集成测试环境准备失败"
195
- return 1
196
- fi
197
-
198
- if [ -f "package.json" ]; then
199
- if npm run test:integration >/dev/null 2>&1; then
200
- npm run test:integration -- --verbose
201
- else
202
- echo "⚠️ 未找到集成测试脚本"
203
- fi
204
- elif command -v pytest >/dev/null 2>&1; then
205
- pytest tests/integration/ -v --tb=long
206
- fi
207
- }
208
-
209
- # 执行端到端测试
210
- execute_e2e_tests() {
211
- echo "🌐 执行端到端测试..."
212
-
213
- # 启动应用服务器
214
- if ! start_test_server; then
215
- echo "❌ 测试服务器启动失败"
216
- return 1
217
- fi
218
-
219
- if [ -f "package.json" ]; then
220
- if npm run test:e2e >/dev/null 2>&1; then
221
- npm run test:e2e -- --verbose
222
- elif command -v cypress >/dev/null 2>&1; then
223
- cypress run --spec "cypress/integration/**/*"
224
- else
225
- echo "⚠️ 未找到 E2E 测试配置"
226
- fi
227
- fi
228
-
229
- # 清理测试服务器
230
- cleanup_test_server
231
- }
232
- ```
233
-
234
- ### 4. 测试结构检查优先
235
- **在假设代码问题之前,先检查测试结构**
236
-
237
- ```bash
238
- # 分析测试失败
239
- analyze_test_failures() {
240
- local test_output_file="$1"
241
-
242
- echo "🔍 分析测试失败原因..."
243
-
244
- # 检查测试结构问题
245
- if check_test_structure_issues "$test_output_file"; then
246
- echo "⚠️ 发现测试结构问题,建议先修复测试"
247
- return 0
248
- fi
249
-
250
- # 检查环境问题
251
- if check_environment_issues "$test_output_file"; then
252
- echo "⚠️ 发现环境配置问题"
253
- return 0
254
- fi
255
-
256
- # 检查依赖问题
257
- if check_dependency_issues "$test_output_file"; then
258
- echo "⚠️ 发现依赖问题"
259
- return 0
260
- fi
261
-
262
- # 最后才考虑代码问题
263
- echo "🐛 可能存在代码问题,需要进一步调试"
264
- extract_code_issues "$test_output_file"
265
- }
266
-
267
- # 检查测试结构问题
268
- check_test_structure_issues() {
269
- local output_file="$1"
270
- local issues_found=false
271
-
272
- # 检查常见测试结构问题
273
- if grep -q "Cannot find module" "$output_file"; then
274
- echo "❌ 测试结构问题: 模块导入错误"
275
- grep "Cannot find module" "$output_file" | head -5
276
- issues_found=true
277
- fi
278
-
279
- if grep -q "ReferenceError" "$output_file"; then
280
- echo "❌ 测试结构问题: 变量或函数未定义"
281
- grep "ReferenceError" "$output_file" | head -5
282
- issues_found=true
283
- fi
284
-
285
- if grep -q "Test suite failed to run" "$output_file"; then
286
- echo "❌ 测试结构问题: 测试套件配置错误"
287
- issues_found=true
288
- fi
289
-
290
- if grep -q "SyntaxError" "$output_file"; then
291
- echo "❌ 测试结构问题: 语法错误"
292
- grep "SyntaxError" "$output_file" | head -3
293
- issues_found=true
294
- fi
295
-
296
- $issues_found
297
- }
298
-
299
- # 检查环境问题
300
- check_environment_issues() {
301
- local output_file="$1"
302
- local issues_found=false
303
-
304
- if grep -q "ECONNREFUSED" "$output_file"; then
305
- echo "❌ 环境问题: 服务连接被拒绝"
306
- issues_found=true
307
- fi
308
-
309
- if grep -q "ENOTFOUND" "$output_file"; then
310
- echo "❌ 环境问题: 域名解析失败"
311
- issues_found=true
312
- fi
313
-
314
- if grep -q "timeout" "$output_file"; then
315
- echo "❌ 环境问题: 操作超时"
316
- issues_found=true
317
- fi
318
-
319
- if grep -q "Permission denied" "$output_file"; then
320
- echo "❌ 环境问题: 权限不足"
321
- issues_found=true
322
- fi
323
-
324
- $issues_found
325
- }
326
- ```
327
-
328
- ## 执行模式
329
-
330
- ### 标准执行流程
331
- ```bash
332
- # 标准测试执行流程
333
- standard_test_execution() {
334
- local req_id="$1"
335
- local test_target="${2:-all}"
336
-
337
- echo "🚀 开始标准测试执行流程"
338
-
339
- # 1. 环境准备
340
- if ! configure_test_environment; then
341
- echo "❌ 环境配置失败"
342
- return 1
343
- fi
344
-
345
- # 2. 清理之前的测试进程
346
- cleanup_previous_tests
347
-
348
- # 3. 执行测试
349
- local start_time=$(date +%s)
350
- execute_tests_with_verbose_output "$test_target" "$req_id"
351
- local test_exit_code=$?
352
- local end_time=$(date +%s)
353
- local duration=$((end_time - start_time))
354
-
355
- # 4. 生成测试报告
356
- generate_test_report "$req_id" "$test_target" "$test_exit_code" "$duration"
357
-
358
- # 5. 清理测试环境
359
- cleanup_test_environment
360
-
361
- return $test_exit_code
362
- }
363
-
364
- # 清理之前的测试进程
365
- cleanup_previous_tests() {
366
- echo "🧹 清理之前的测试进程..."
367
-
368
- # 杀死可能残留的测试进程
369
- pkill -f "jest\|mocha\|pytest\|cypress" 2>/dev/null || true
370
-
371
- # 清理测试端口
372
- local test_ports=(3001 3002 3003 8080 8081)
373
- for port in "${test_ports[@]}"; do
374
- local pid=$(lsof -ti:$port 2>/dev/null)
375
- if [ -n "$pid" ]; then
376
- echo "🔌 终止占用端口 $port 的进程: $pid"
377
- kill -TERM "$pid" 2>/dev/null || true
378
- fi
379
- done
380
-
381
- sleep 2 # 等待进程完全终止
382
- }
383
-
384
- # 生成测试报告
385
- generate_test_report() {
386
- local req_id="$1"
387
- local test_target="$2"
388
- local exit_code="$3"
389
- local duration="$4"
390
-
391
- local report_file="devflow/requirements/${req_id}/TEST_REPORT.md"
392
-
393
- cat > "$report_file" << EOF
394
- # 测试报告
395
-
396
- ## 基本信息
397
- - 需求ID: $req_id
398
- - 测试目标: $test_target
399
- - 执行时间: $(date -u +%Y-%m-%dT%H:%M:%SZ)
400
- - 执行时长: ${duration}s
401
- - 退出码: $exit_code
402
-
403
- ## 测试结果
404
- $(format_test_results "$exit_code")
405
-
406
- ## 覆盖率报告
407
- $(extract_coverage_info)
408
-
409
- ## 失败测试分析
410
- $(analyze_failed_tests)
411
-
412
- ## 建议操作
413
- $(generate_test_recommendations "$exit_code")
414
- EOF
415
-
416
- echo "📋 测试报告已生成: $report_file"
417
- }
418
- ```
419
-
420
- ### 输出焦点
421
-
422
- #### 成功输出
423
- ```bash
424
- # 简洁的成功输出
425
- report_test_success() {
426
- local test_count="$1"
427
- local duration="$2"
428
- local coverage="$3"
429
-
430
- echo "✅ 所有测试通过 ($test_count 个测试,用时 ${duration}s)"
431
-
432
- if [ -n "$coverage" ]; then
433
- echo "📊 测试覆盖率: $coverage"
434
- fi
435
- }
436
- ```
437
-
438
- #### 失败输出
439
- ```bash
440
- # 聚焦失败信息的输出
441
- report_test_failures() {
442
- local failures_file="$1"
443
-
444
- echo "❌ 测试失败:"
445
- echo ""
446
-
447
- # 解析失败信息
448
- while IFS= read -r failure_line; do
449
- if echo "$failure_line" | grep -q "FAIL\|ERROR"; then
450
- local test_name=$(echo "$failure_line" | sed -E 's/.*FAIL.*//; s/.*ERROR.*//')
451
- local file_location=$(echo "$failure_line" | grep -oE "[^/]*\.spec\.[jt]s:[0-9]+")
452
- local error_message=$(extract_error_message "$failure_line")
453
-
454
- echo "$test_name - $file_location"
455
- echo " 错误: $error_message"
456
- echo " 修复建议: $(suggest_fix "$error_message")"
457
- echo ""
458
- fi
459
- done < "$failures_file"
460
- }
461
-
462
- # 建议修复方案
463
- suggest_fix() {
464
- local error_message="$1"
465
-
466
- case "$error_message" in
467
- *"Cannot find module"*)
468
- echo "检查模块导入路径和依赖安装"
469
- ;;
470
- *"ReferenceError"*)
471
- echo "检查变量定义和作用域"
472
- ;;
473
- *"TypeError"*)
474
- echo "检查数据类型和函数调用"
475
- ;;
476
- *"timeout"*)
477
- echo "增加超时时间或优化异步操作"
478
- ;;
479
- *)
480
- echo "查看完整错误信息和堆栈跟踪"
481
- ;;
482
- esac
483
- }
484
- ```
485
-
486
- ## 常见问题处理
487
-
488
- ### 问题诊断
489
- ```bash
490
- # 常见测试问题诊断
491
- diagnose_common_issues() {
492
- local output_file="$1"
493
-
494
- echo "🔍 诊断常见测试问题..."
495
-
496
- # 测试未找到
497
- if grep -q "No tests found" "$output_file"; then
498
- echo "❌ 问题: 未找到测试文件"
499
- echo "💡 解决方案: 检查测试文件路径和命名规范"
500
- return 1
501
- fi
502
-
503
- # 超时问题
504
- if grep -q "Timeout" "$output_file"; then
505
- echo "❌ 问题: 测试超时"
506
- echo "💡 解决方案: 增加超时设置或优化测试逻辑"
507
- cleanup_test_processes
508
- return 1
509
- fi
510
-
511
- # 框架缺失
512
- if grep -q "command not found" "$output_file"; then
513
- echo "❌ 问题: 测试框架未安装"
514
- echo "💡 解决方案: 安装依赖 - npm install 或 pip install -r requirements.txt"
515
- return 1
516
- fi
517
-
518
- return 0
519
- }
520
-
521
- # 清理测试进程
522
- cleanup_test_processes() {
523
- echo "🧹 清理测试进程..."
524
-
525
- # 强制终止可能卡住的测试进程
526
- pkill -f "jest\|mocha\|pytest" 2>/dev/null || true
527
-
528
- # 清理可能的文件锁
529
- find . -name "*.lock" -delete 2>/dev/null || true
530
-
531
- echo "✅ 测试进程清理完成"
532
- }
533
- ```
534
-
535
- ### 恢复策略
536
- ```bash
537
- # 测试失败恢复策略
538
- recover_from_test_failure() {
539
- local req_id="$1"
540
- local failure_type="$2"
541
-
542
- echo "🔧 执行测试失败恢复..."
543
-
544
- case "$failure_type" in
545
- "environment")
546
- echo "重新配置测试环境..."
547
- cleanup_test_environment
548
- configure_test_environment
549
- ;;
550
- "dependency")
551
- echo "重新安装依赖..."
552
- reinstall_dependencies
553
- ;;
554
- "process")
555
- echo "清理进程和重启..."
556
- cleanup_test_processes
557
- sleep 5
558
- ;;
559
- "structure")
560
- echo "需要手动修复测试结构"
561
- generate_structure_fix_guide "$req_id"
562
- return 1
563
- ;;
564
- esac
565
-
566
- echo "✅ 恢复完成,建议重新运行测试"
567
- }
568
- ```
569
-
570
- ## 重要注意事项
571
-
572
- ### ✅ 必须遵循
573
- - 所有测试都通过 qa-tester 子代理执行
574
- - 不使用模拟服务,使用真实环境
575
- - 每个测试必须完全执行完毕
576
- - 失败时优先检查测试结构
577
- - 捕获详细输出用于调试
578
-
579
- ### ❌ 禁止行为
580
- - 不要并行化测试(避免冲突)
581
- - 不要跳过失败的测试
582
- - 不要忽略环境问题
583
- - 不要使用过时的测试框架
584
-
585
- ### 🧹 清理要求
586
- 测试执行后必须清理:
587
- ```bash
588
- # 标准清理流程
589
- cleanup_after_tests() {
590
- echo "🧹 执行测试后清理..."
591
-
592
- # 终止测试相关进程
593
- pkill -f "jest|mocha|pytest" 2>/dev/null || true
594
-
595
- # 清理临时文件
596
- rm -rf /tmp/test-* 2>/dev/null || true
597
-
598
- # 重置测试数据库
599
- if [ -n "$TEST_DATABASE_URL" ]; then
600
- reset_test_database
601
- fi
602
-
603
- # 清理测试服务器
604
- cleanup_test_server
605
-
606
- echo "✅ 清理完成"
607
- }
608
- ```
609
-
610
- ### 📊 报告要求
611
- - 专注于失败信息,不要过度报告成功
612
- - 提供可操作的修复建议
613
- - 包含性能和覆盖率数据
614
- - 记录环境和配置信息
615
-
616
- ---
617
-
618
- **核心理念**: 每个测试都应该完全执行并产生可靠的结果,失败时提供清晰的指导。