speccore 8.3.181 → 8.3.188

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 (214) hide show
  1. package/.agents/skills/spec-analyze/SKILL.md +2 -169
  2. package/.agents/skills/spec-ask/SKILL.md +2 -177
  3. package/.agents/skills/spec-change/SKILL.md +2 -214
  4. package/.agents/skills/spec-dashboard/SKILL.md +1 -76
  5. package/.agents/skills/spec-deploy/SKILL.md +2 -298
  6. package/.agents/skills/spec-doc2spec/SKILL.md +2 -116
  7. package/.agents/skills/spec-done/SKILL.md +2 -203
  8. package/.agents/skills/spec-execute/SKILL.md +2 -178
  9. package/.agents/skills/spec-help/SKILL.md +1 -75
  10. package/.agents/skills/spec-iteration-create/SKILL.md +2 -123
  11. package/.agents/skills/spec-plan/SKILL.md +2 -117
  12. package/.agents/skills/spec-pr/SKILL.md +2 -203
  13. package/.agents/skills/spec-run/SKILL.md +16 -0
  14. package/.agents/skills/spec-spec2doc/SKILL.md +2 -121
  15. package/.agents/skills/spec-split/SKILL.md +2 -208
  16. package/.agents/skills/spec-task-create/SKILL.md +2 -151
  17. package/.agents/skills/spec-verify/SKILL.md +2 -214
  18. package/.agents/skills/spec-welcome/SKILL.md +1 -67
  19. package/.agents/skills/speccore-router/SKILL.md +14 -2
  20. package/README.en.md +9 -9
  21. package/README.md +2 -1
  22. package/dist/cli.js +24 -25
  23. package/dist/cli.js.map +1 -1
  24. package/dist/commands/about.js +1 -1
  25. package/dist/commands/about.js.map +1 -1
  26. package/dist/commands/analyze.d.ts +1 -0
  27. package/dist/commands/analyze.d.ts.map +1 -1
  28. package/dist/commands/analyze.js +94 -7
  29. package/dist/commands/analyze.js.map +1 -1
  30. package/dist/commands/ask.js +6 -6
  31. package/dist/commands/ask.js.map +1 -1
  32. package/dist/commands/dev.d.ts +2 -0
  33. package/dist/commands/dev.d.ts.map +1 -1
  34. package/dist/commands/dev.js +102 -1
  35. package/dist/commands/dev.js.map +1 -1
  36. package/dist/commands/doctor.js +28 -0
  37. package/dist/commands/doctor.js.map +1 -1
  38. package/dist/commands/execute.js +3 -3
  39. package/dist/commands/execute.js.map +1 -1
  40. package/dist/commands/init.d.ts.map +1 -1
  41. package/dist/commands/init.js +31 -52
  42. package/dist/commands/init.js.map +1 -1
  43. package/dist/commands/iteration/split.d.ts.map +1 -1
  44. package/dist/commands/iteration/split.js +12 -39
  45. package/dist/commands/iteration/split.js.map +1 -1
  46. package/dist/commands/knowledge.d.ts +0 -12
  47. package/dist/commands/knowledge.d.ts.map +1 -1
  48. package/dist/commands/knowledge.js +0 -80
  49. package/dist/commands/knowledge.js.map +1 -1
  50. package/dist/commands/refresh.d.ts.map +1 -1
  51. package/dist/commands/refresh.js +10 -0
  52. package/dist/commands/refresh.js.map +1 -1
  53. package/dist/commands/search.d.ts +1 -0
  54. package/dist/commands/search.d.ts.map +1 -1
  55. package/dist/commands/search.js +38 -0
  56. package/dist/commands/search.js.map +1 -1
  57. package/dist/commands/update.d.ts.map +1 -1
  58. package/dist/commands/update.js +13 -3
  59. package/dist/commands/update.js.map +1 -1
  60. package/dist/core/agent-adapter.d.ts +6 -0
  61. package/dist/core/agent-adapter.d.ts.map +1 -1
  62. package/dist/core/agent-adapter.js +56 -172
  63. package/dist/core/agent-adapter.js.map +1 -1
  64. package/dist/core/agents/defaults/code-generator.md +64 -0
  65. package/dist/core/agents/defaults/code-reviewer.md +5 -0
  66. package/dist/core/agents/defaults/compiler.md +7 -0
  67. package/dist/core/agents/defaults/compliance-checker.md +2 -0
  68. package/dist/core/agents/defaults/dependency-analyst.md +5 -0
  69. package/dist/core/agents/defaults/doc-sync-agent.md +5 -0
  70. package/dist/core/agents/defaults/effort-estimator.md +28 -0
  71. package/dist/core/agents/defaults/global-analyzer.md +66 -0
  72. package/dist/core/agents/defaults/impact-analyst.md +5 -0
  73. package/dist/core/agents/defaults/interaction-designer.md +5 -0
  74. package/dist/core/agents/defaults/performance-expert.md +2 -0
  75. package/dist/core/agents/defaults/product-analyst-backend.md +6 -0
  76. package/dist/core/agents/defaults/product-analyst-frontend.md +6 -0
  77. package/dist/core/agents/defaults/product-analyst.md +5 -0
  78. package/dist/core/agents/defaults/regression-tester.md +5 -0
  79. package/dist/core/agents/defaults/requirement-analyzer.md +72 -0
  80. package/dist/core/agents/defaults/risk-assessor.md +5 -0
  81. package/dist/core/agents/defaults/schedule-planner.md +5 -0
  82. package/dist/core/agents/defaults/security-reviewer-finance.md +6 -0
  83. package/dist/core/agents/defaults/security-reviewer.md +7 -0
  84. package/dist/core/agents/defaults/task-decomposer.md +5 -0
  85. package/dist/core/agents/defaults/test-engineer.md +2 -0
  86. package/dist/core/agents/defaults/test-reviewer.md +5 -0
  87. package/dist/core/agents/engine/agent-loader.d.ts.map +1 -1
  88. package/dist/core/agents/engine/agent-loader.js +76 -6
  89. package/dist/core/agents/engine/agent-loader.js.map +1 -1
  90. package/dist/core/agents/engine/types.d.ts +5 -0
  91. package/dist/core/agents/engine/types.d.ts.map +1 -1
  92. package/dist/core/analyze-engine.d.ts.map +1 -1
  93. package/dist/core/analyze-engine.js +73 -82
  94. package/dist/core/analyze-engine.js.map +1 -1
  95. package/dist/core/ask-engine.d.ts +0 -58
  96. package/dist/core/ask-engine.d.ts.map +1 -1
  97. package/dist/core/ask-engine.js +63 -361
  98. package/dist/core/ask-engine.js.map +1 -1
  99. package/dist/core/business-rules.d.ts +36 -0
  100. package/dist/core/business-rules.d.ts.map +1 -0
  101. package/dist/core/business-rules.js +109 -0
  102. package/dist/core/business-rules.js.map +1 -0
  103. package/dist/core/change-impact-global.d.ts.map +1 -1
  104. package/dist/core/change-impact-global.js +4 -3
  105. package/dist/core/change-impact-global.js.map +1 -1
  106. package/dist/core/code-scanner.d.ts +1 -0
  107. package/dist/core/code-scanner.d.ts.map +1 -1
  108. package/dist/core/code-scanner.js +32 -3
  109. package/dist/core/code-scanner.js.map +1 -1
  110. package/dist/core/content-delivery.d.ts +59 -0
  111. package/dist/core/content-delivery.d.ts.map +1 -0
  112. package/dist/core/content-delivery.js +219 -0
  113. package/dist/core/content-delivery.js.map +1 -0
  114. package/dist/core/global-artifacts.d.ts.map +1 -1
  115. package/dist/core/global-artifacts.js +262 -19
  116. package/dist/core/global-artifacts.js.map +1 -1
  117. package/dist/core/global-retrieval.d.ts +38 -0
  118. package/dist/core/global-retrieval.d.ts.map +1 -0
  119. package/dist/core/global-retrieval.js +100 -0
  120. package/dist/core/global-retrieval.js.map +1 -0
  121. package/dist/core/html-prototype.d.ts +22 -0
  122. package/dist/core/html-prototype.d.ts.map +1 -0
  123. package/dist/core/html-prototype.js +103 -0
  124. package/dist/core/html-prototype.js.map +1 -0
  125. package/dist/core/multi-lang-parser.d.ts +43 -0
  126. package/dist/core/multi-lang-parser.d.ts.map +1 -0
  127. package/dist/core/multi-lang-parser.js +317 -0
  128. package/dist/core/multi-lang-parser.js.map +1 -0
  129. package/dist/core/pipeline-engine.js +16 -16
  130. package/dist/core/pipeline-engine.js.map +1 -1
  131. package/dist/core/platform-inference.d.ts +35 -0
  132. package/dist/core/platform-inference.d.ts.map +1 -0
  133. package/dist/core/platform-inference.js +205 -0
  134. package/dist/core/platform-inference.js.map +1 -0
  135. package/dist/core/prompt-builder.d.ts +1 -1
  136. package/dist/core/prompt-builder.d.ts.map +1 -1
  137. package/dist/core/prompt-builder.js +101 -75
  138. package/dist/core/prompt-builder.js.map +1 -1
  139. package/dist/core/refresh-scheduler.d.ts +50 -0
  140. package/dist/core/refresh-scheduler.d.ts.map +1 -0
  141. package/dist/core/refresh-scheduler.js +139 -0
  142. package/dist/core/refresh-scheduler.js.map +1 -0
  143. package/dist/core/reverse-requirement.d.ts +54 -0
  144. package/dist/core/reverse-requirement.d.ts.map +1 -0
  145. package/dist/core/reverse-requirement.js +277 -0
  146. package/dist/core/reverse-requirement.js.map +1 -0
  147. package/dist/core/schemas/task.schema.d.ts +2 -2
  148. package/dist/core/spec-skeleton.d.ts.map +1 -1
  149. package/dist/core/spec-skeleton.js +123 -0
  150. package/dist/core/spec-skeleton.js.map +1 -1
  151. package/dist/core/unified-config.d.ts +14 -0
  152. package/dist/core/unified-config.d.ts.map +1 -1
  153. package/dist/core/unified-config.js +94 -10
  154. package/dist/core/unified-config.js.map +1 -1
  155. package/dist/core/unified-retrieval.d.ts.map +1 -1
  156. package/dist/core/unified-retrieval.js +34 -8
  157. package/dist/core/unified-retrieval.js.map +1 -1
  158. package/dist/utils/task-utils.d.ts +4 -0
  159. package/dist/utils/task-utils.d.ts.map +1 -1
  160. package/dist/utils/task-utils.js +18 -0
  161. package/dist/utils/task-utils.js.map +1 -1
  162. package/package.json +5 -3
  163. package/vendor/tree-sitter/tree-sitter-go.wasm +0 -0
  164. package/vendor/tree-sitter/tree-sitter-java.wasm +0 -0
  165. package/vendor/tree-sitter/tree-sitter-python.wasm +0 -0
  166. package/vendor/tree-sitter/tree-sitter-rust.wasm +0 -0
  167. package/.agents/agents/README.md +0 -79
  168. package/.agents/agents/spec-analyzer.md +0 -41
  169. package/.agents/agents/spec-architect.md +0 -57
  170. package/.agents/agents/spec-change-detector.md +0 -55
  171. package/.agents/agents/spec-clarifier.md +0 -83
  172. package/.agents/agents/spec-executor.md +0 -41
  173. package/.agents/agents/spec-gatekeeper.md +0 -84
  174. package/.agents/agents/spec-global-analyzer.md +0 -111
  175. package/.agents/agents/spec-knowledge-curator.md +0 -54
  176. package/.agents/agents/spec-reviewer.md +0 -46
  177. package/.agents/agents/spec-security-auditor.md +0 -56
  178. package/.agents/agents/spec-tester.md +0 -120
  179. package/.agents/skills/spec-analyze/references/analysis-report.md +0 -9
  180. package/.agents/skills/spec-execute/references/code-output.md +0 -13
  181. package/.agents/skills/spec-plan/references/plan-template.md +0 -29
  182. package/.agents/skills/spec-task-create/references/requirement-template.md +0 -23
  183. package/dist/commands/bugfix.d.ts +0 -17
  184. package/dist/commands/bugfix.d.ts.map +0 -1
  185. package/dist/commands/bugfix.js +0 -301
  186. package/dist/commands/bugfix.js.map +0 -1
  187. package/dist/commands/help-quick.d.ts +0 -3
  188. package/dist/commands/help-quick.d.ts.map +0 -1
  189. package/dist/commands/help-quick.js +0 -66
  190. package/dist/commands/help-quick.js.map +0 -1
  191. package/dist/commands/index-update.d.ts +0 -8
  192. package/dist/commands/index-update.d.ts.map +0 -1
  193. package/dist/commands/index-update.js +0 -180
  194. package/dist/commands/index-update.js.map +0 -1
  195. package/dist/commands/schedule.d.ts +0 -26
  196. package/dist/commands/schedule.d.ts.map +0 -1
  197. package/dist/commands/schedule.js +0 -182
  198. package/dist/commands/schedule.js.map +0 -1
  199. package/dist/commands/watch.d.ts +0 -11
  200. package/dist/commands/watch.d.ts.map +0 -1
  201. package/dist/commands/watch.js +0 -166
  202. package/dist/commands/watch.js.map +0 -1
  203. package/dist/core/ai-markdown.d.ts +0 -5
  204. package/dist/core/ai-markdown.d.ts.map +0 -1
  205. package/dist/core/ai-markdown.js +0 -29
  206. package/dist/core/ai-markdown.js.map +0 -1
  207. package/dist/core/schedule-engine.d.ts +0 -25
  208. package/dist/core/schedule-engine.d.ts.map +0 -1
  209. package/dist/core/schedule-engine.js +0 -281
  210. package/dist/core/schedule-engine.js.map +0 -1
  211. package/dist/core/schedule-store.d.ts +0 -119
  212. package/dist/core/schedule-store.d.ts.map +0 -1
  213. package/dist/core/schedule-store.js +0 -216
  214. package/dist/core/schedule-store.js.map +0 -1
@@ -1,120 +0,0 @@
1
- ---
2
- name: spec-tester
3
- description: SpecCore 测试专锹 Agent
4
- ---
5
-
6
- # 测试 Agent
7
-
8
- 你是 SpecCore ēš„ęµ‹čÆ•äø“å®¶ć€‚ä½ ēš„čŒč“£ę˜Æę ¹ę® Spec č®¾č®”å…Øé¢ēš„ęµ‹čÆ•ē­–ē•„ļ¼Œē”Ÿęˆé«˜č“Øé‡ēš„ęµ‹čÆ•ē”Øä¾‹ļ¼Œē”®äæä»£ē č¦†ē›–ę‰€ęœ‰éœ€ę±‚åœŗę™Æć€‚
9
-
10
- ## čŒč“£čŒƒå›“
11
-
12
- 1. **测试策畄设讔**ļ¼šē”®å®šęµ‹čÆ•å±‚ēŗ§ļ¼ˆå•å…ƒ/集ꈐ/E2Eļ¼‰å’Œęµ‹čÆ•čŒƒå›“
13
- 2. **ęµ‹čÆ•ē”Øä¾‹ē”Ÿęˆ**ļ¼šåŸŗäŗŽ Spec ē”Ÿęˆęµ‹čÆ•ē”Øä¾‹ļ¼ˆę­£åøøęµć€å¼‚åøøęµć€č¾¹ē•Œę”ä»¶ļ¼‰
14
- 3. **Mock 设讔**ļ¼šč®¾č®”å¤–éƒØä¾čµ–ēš„ Mockļ¼ˆę•°ę®åŗ“ć€ē¬¬äø‰ę–¹ APIć€ę¶ˆęÆé˜Ÿåˆ—ļ¼‰
15
- 4. **ęµ‹čÆ•ę•°ę®å‡†å¤‡**ļ¼šē”Ÿęˆęµ‹čÆ•ę‰€éœ€ēš„ę ·ęœ¬ę•°ę®ļ¼ˆå«č¾¹ē•Œę•°ę®ļ¼‰
16
- 5. **č¦†ē›–ēŽ‡čÆ„ä¼°**ļ¼šåˆ†ęžęµ‹čÆ•č¦†ē›–ēŽ‡ļ¼ŒęŒ‡å‡ŗęœŖč¦†ē›–ēš„åˆ†ę”Æå’Œåœŗę™Æ
17
-
18
- ## 巄作原则
19
-
20
- - **Spec 驱动**ļ¼šęÆäøŖęµ‹čÆ•ē”Øä¾‹åæ…é”»åÆ¹åŗ” Spec äø­ēš„äø€äøŖéŖŒę”¶é”¹
21
- - **č¾¹ē•Œä¼˜å…ˆ**ļ¼šä¼˜å…ˆč¦†ē›–č¾¹ē•Œę”ä»¶å’Œå¼‚åøøåœŗę™Æļ¼ˆčæ™äŗ›ęœ€å®¹ę˜“å‡ŗ bug)
22
- - **åÆē»“ęŠ¤ę€§**ļ¼šęµ‹čÆ•ä»£ē å’Œē”Ÿęˆä»£ē åŒē­‰é‡č¦ļ¼Œéµå¾Ŗé”¹ē›®ęµ‹čÆ•č§„čŒƒ
23
- - **ē‹¬ē«‹ę‰§č”Œ**ļ¼šęÆäøŖęµ‹čÆ•ē”Øä¾‹åÆē‹¬ē«‹čæč”Œļ¼Œäøä¾čµ–ę‰§č”Œé”ŗåŗ
24
-
25
- ## 测试用例设讔方法论
26
-
27
- ### ē­‰ä»·ē±»åˆ’åˆ†
28
-
29
- å°†č¾“å…„ę•°ę®åˆ’åˆ†äøŗęœ‰ę•ˆē­‰ä»·ē±»å’Œę— ę•ˆē­‰ä»·ē±»ļ¼ŒęÆē±»é€‰äø€äøŖä»£č”Øå€¼ęµ‹čÆ•ļ¼š
30
-
31
- | ē±»åž‹ | ē¤ŗä¾‹ļ¼ˆē”Øęˆ·åå­—ę®µļ¼‰ | 测试值 |
32
- |:---|:---|:---|
33
- | ęœ‰ę•ˆē­‰ä»·ē±» | 6-20 ä½å­—ęÆę•°å­— | `"user123"` |
34
- | ę— ę•ˆē­‰ä»·ē±»ļ¼ˆčæ‡ēŸ­ļ¼‰ | < 6 位 | `"user"` |
35
- | ę— ę•ˆē­‰ä»·ē±»ļ¼ˆčæ‡é•æļ¼‰ | > 20 位 | `"user12345678901234567890"` |
36
- | ę— ę•ˆē­‰ä»·ē±»ļ¼ˆéžę³•å­—ē¬¦ļ¼‰ | å«ē‰¹ę®Šē¬¦å· | `"user@123"` |
37
- | ę— ę•ˆē­‰ä»·ē±»ļ¼ˆē©ŗå€¼ļ¼‰ | 空字符串 | `""` |
38
-
39
- ### č¾¹ē•Œå€¼åˆ†ęž
40
-
41
- é‡ē‚¹ęµ‹čÆ•č¾¹ē•ŒåŠč¾¹ē•Œäø¤ä¾§ēš„å€¼ļ¼š
42
-
43
- | č¾¹ē•Œ | ęµ‹čÆ•å€¼ļ¼ˆę•°ē»„é•æåŗ¦é™åˆ¶ 10) |
44
- |:---|:---|
45
- | äø‹č¾¹ē•Œ | 0, 1 |
46
- | äø‹č¾¹ē•Œ-1 | -1ļ¼ˆéžę³•ļ¼‰ |
47
- | äøŠč¾¹ē•Œ | 9, 10 |
48
- | äøŠč¾¹ē•Œ+1 | 11ļ¼ˆéžę³•ļ¼‰ |
49
-
50
- ### å¼‚åøøåœŗę™Æ checklist
51
-
52
- - [ ] 空值/Null 输兄
53
- - [ ] ē±»åž‹é”™čÆÆļ¼ˆå­—ē¬¦äø²ä¼ ę•°å­—ļ¼‰
54
- - [ ] ę ¼å¼é”™čÆÆļ¼ˆJSON ę ¼å¼äøåÆ¹ļ¼‰
55
- - [ ] ęƒé™äøč¶³
56
- - [ ] čµ„ęŗäøå­˜åœØļ¼ˆ404 åœŗę™Æļ¼‰
57
- - [ ] å¹¶å‘å†²ēŖ
58
- - [ ] ē¬¬äø‰ę–¹ęœåŠ”äøåÆē”Ø
59
- - [ ] ē½‘ē»œč¶…ę—¶
60
- - [ ] ę•°ę®åŗ“čæžęŽ„å¤±č“„
61
-
62
- ## ęµ‹čÆ•åˆ†å±‚ē­–ē•„
63
-
64
- | 层级 | čŒƒå›“ | ę‰§č”Œé€Ÿåŗ¦ | ꕰ量 | 巄具示例 |
65
- |:---|:---|:---|:---|:---|
66
- | **å•å…ƒęµ‹čÆ•** | å•äøŖå‡½ę•°/方法 | < 10ms | ęœ€å¤š | vitest态jest态JUnit |
67
- | **é›†ęˆęµ‹čÆ•** | ęØ”å—é—“äŗ¤äŗ’ | < 1s | äø­ē­‰ | supertest态TestContainers |
68
- | **E2E 测试** | å®Œę•“ē”Øęˆ·ęµēØ‹ | > 1s | ęœ€å°‘ | Playwright态Cypress |
69
-
70
- **原则**ļ¼šå•å…ƒęµ‹čÆ•č¦†ē›–ę‰€ęœ‰äøšåŠ”é€»č¾‘ļ¼Œé›†ęˆęµ‹čÆ•č¦†ē›–ę øåæƒęµēØ‹ļ¼ŒE2E č¦†ē›–å…³é”®ē”Øęˆ·ę—…ēØ‹ć€‚
71
-
72
- ## Mock č®¾č®”åŽŸåˆ™
73
-
74
- | ä¾čµ–ē±»åž‹ | Mock ē­–ē•„ | ę³Øę„äŗ‹é”¹ |
75
- |:---|:---|:---|
76
- | ę•°ę®åŗ“ | å†…å­˜ę•°ę®åŗ“ / Mock Repository | 验证 SQL čÆ­å„ļ¼ˆå¦‚ęœ‰ļ¼‰ |
77
- | 第三方 API | WireMock / MSW | ęØ”ę‹Ÿę­£åøøå“åŗ”å’Œé”™čÆÆå“åŗ” |
78
- | ę¶ˆęÆé˜Ÿåˆ— | 内存队列 / Mock Producer | éŖŒčÆę¶ˆęÆę ¼å¼ |
79
- | ę–‡ä»¶ē³»ē»Ÿ | 专时目录 / Mock FS | ęø…ē†ęµ‹čÆ•åŽę–‡ä»¶ |
80
- | ę—¶é—“ | 冻结时闓 | éæå…ę—¶é—“ę•ę„Ÿęµ‹čÆ•äøēØ³å®š |
81
-
82
- ## ēŗ¦ęŸę”ä»¶
83
-
84
- - āŒ äøč¦åŖęµ‹" happy path "ļ¼Œåæ…é”»č¦†ē›–å¼‚åøøå’Œč¾¹ē•Œ
85
- - āŒ äøč¦ē”ŸęˆäøŽ Spec ę— å…³ēš„ęµ‹čÆ•ļ¼ˆäøč„‘č”„åŠŸčƒ½ļ¼‰
86
- - āœ… ęµ‹čÆ•ä»£ē å†™åœØ Task ē›®å½•ēš„ `tests/` äø‹ęˆ–ęŗē é”¹ē›®ēš„ęµ‹čÆ•ē›®å½•
87
- - āœ… 测试用例写兄 Task ē›®å½•ēš„ `TEST.md`
88
-
89
- ## äøŽ spec-executor ēš„å…³ē³»
90
-
91
- ```
92
- spec-executorļ¼ˆē”Ÿęˆä»£ē ļ¼‰
93
- └── č°ƒē”Ø spec-testerļ¼ˆē”Ÿęˆęµ‹čÆ•ļ¼‰
94
- └── 输出 TEST.md + 测试代码
95
- ```
96
-
97
- spec-executor 蓟蓣业劔代码,spec-tester č“Ÿč“£ęµ‹čÆ•ä»£ē ć€‚äø¤č€…å¹¶č”Œęˆ–äø²č”Œę‰§č”Œć€‚
98
-
99
- ## č§¦å‘ę—¶ęœŗ
100
-
101
- ```bash
102
- # ę–¹å¼äø€ļ¼šexecute ę—¶č‡ŖåŠØåŒ…å«ęµ‹čÆ•ē”Ÿęˆ
103
- speccore execute -t Task-001 --with-tests
104
-
105
- # ę–¹å¼äŗŒļ¼šē‹¬ē«‹č°ƒē”Ø
106
- speccore test -t Task-001
107
- ```
108
-
109
- ## 输兄
110
-
111
- - TASK.mdļ¼ˆéŖŒę”¶ę ‡å‡†ļ¼‰
112
- - REQ.mdļ¼ˆéœ€ę±‚č§„ę ¼ļ¼‰
113
- - TECH.mdļ¼ˆęŠ€ęœÆč§„ę ¼ļ¼Œå«ęŽ„å£å®šä¹‰ć€ę•°ę®ęØ”åž‹ļ¼‰
114
- - å·²ē”Ÿęˆēš„äøšåŠ”ä»£ē 
115
-
116
- ## 输出
117
-
118
- - `TEST.md`ļ¼šęµ‹čÆ•ē”Øä¾‹ęø…å•ļ¼ˆå«č¾“å…„ć€é¢„ęœŸč¾“å‡ŗć€č¦†ē›–ēš„éŖŒę”¶é”¹ļ¼‰
119
- - ęµ‹čÆ•ä»£ē ę–‡ä»¶ļ¼ˆå•å…ƒęµ‹čÆ•ć€é›†ęˆęµ‹čÆ•ļ¼‰
120
- - č¦†ē›–ēŽ‡ęŠ„å‘Š
@@ -1,9 +0,0 @@
1
- # åˆ†ęžęŠ„å‘ŠęØ”ęæ
2
-
3
- | ęŠ„å‘Šē±»åž‹ | ę–‡ä»¶å | ę øåæƒå†…å®¹ |
4
- | feature | ANALYSIS.md | API/ę•°ę®ęØ”åž‹/äøšåŠ”č§„åˆ™/风险 |
5
- | bugfix | ANALYSIS.md | ę ¹å› å®šä½/å½±å“čŒƒå›“/äæ®å¤ę–¹ę”ˆ |
6
- | review | REVIEW_PLAN.md | å®”ęŸ„čŒƒå›“/ę£€ęŸ„ęø…å•/关注点 |
7
- | test | TEST_PLAN.md | 测试用例/č¦†ē›–ēŽ‡ē›®ę ‡/č¾¹ē•Œęµ‹čÆ• |
8
- | security | SECURITY_AUDIT.md | OWASP ę£€ęŸ„/ę¼ę“ž/é£Žé™©čÆ„ēŗ§ |
9
- | performance | PERF_ANALYSIS.md | ē“¶é¢ˆå®šä½/ä¼˜åŒ–å»ŗč®®/åŸŗå‡† |
@@ -1,13 +0,0 @@
1
- # ä»£ē ē”Ÿęˆč¾“å‡ŗę ¼å¼
2
-
3
- ## Prompt/Apply åč®®
4
- 1. CLI: `speccore execute --prompt -t Task-001` → exitCode=10
5
- 2. AI čÆ»å– ANALYSIS.md, REQUIREMENT.md
6
- 3. AI ē”Ÿęˆä»£ē  JSON: `{"files": [{"path": "...","content": "..."}]}`
7
- 4. 写兄 /tmp/speccore-resp.json
8
- 5. CLI: `cat /tmp/speccore-resp.json | speccore execute --response - -t Task-001`
9
-
10
- ## å¼ŗåˆ¶ēŗ¦ęŸ
11
- - ęÆäøŖę–‡ä»¶åæ…é”»ęœ‰ import čÆ­å„
12
- - API åæ…é”»å®Œę•“ļ¼ˆcontroller + service + model + DDL)
13
- - 逾 60s → åˆ†ę‰¹čæ”å›žļ¼Œå…ˆę øåæƒ API
@@ -1,29 +0,0 @@
1
- # Plan Template — čæ­ä»£ēŗ§ę‰§č”Œč®”åˆ’
2
-
3
- ## ä½æē”Øę–¹å¼
4
- speccore plan ē”Ÿęˆ `Iteration-{name}/000-overview/PLAN-{ts}-{slug}.md`
5
- PLAN.md å§‹ē»ˆäøŗęœ€ę–°ē‰ˆęœ¬ć€‚
6
-
7
- ## č®”åˆ’ę–‡ä»¶ę ‡å‡†ē»“ęž„ļ¼ˆ8 章)
8
-
9
- ```markdown
10
- # šŸ“‹ Plan — {iteration}
11
- > ē”Ÿęˆę—¶é—“ | ēŠ¶ę€ | ä»»åŠ”ę•° | é˜¶ę®µę•° | 预估
12
-
13
- ## 1. Mermaid ä¾čµ–å…³ē³»å›¾
14
- ## 2. Mermaid ę‰§č”Œē”˜ē‰¹å›¾
15
- ## 3. ę‰§č”Œę¦‚č§ˆļ¼ˆč”Øę ¼ļ¼‰
16
- ## 4. ä»»åŠ”čÆ¦ęƒ…
17
- ## 5. é£Žé™©čÆ„ä¼°ļ¼ˆé«˜ä¾čµ–/é«˜ä¼˜å…ˆēŗ§č‡ŖåŠØę ‡ēŗ¢ļ¼‰
18
- ## 6. é‡ŒēØ‹ē¢‘ļ¼ˆPhase éŖŒę”¶ę ‡å‡†ļ¼‰
19
- ## 7. å›žę»šę–¹ę”ˆ
20
- ## 8. ę‰§č”Œč®°å½•ļ¼ˆčæ½åŠ å¼ļ¼‰
21
- ```
22
-
23
- ## č®”åˆ’ę–‡ä»¶ä½ē½®
24
-
25
- ę‰€ęœ‰č®”åˆ’ē»Ÿäø€å­˜ę”¾ļ¼š`Iteration-{name}/000-overview/plans/`
26
- - `PLAN-{ts}-{slug}.md` — å¤šē‰ˆęœ¬åŽ†å²ļ¼ˆęŒ‰ę—¶é—“å€’åŗļ¼‰
27
- - `PLAN.md` — å§‹ē»ˆäøŗęœ€ę–°ē‰ˆęœ¬
28
-
29
- å•äøŖä»»åŠ”ę‰§č”Œäøéœ€č¦č®”åˆ’ļ¼ˆåæ«é€Ÿå¼€å‘ļ¼‰ļ¼Œå¤šä»»åŠ”/čæ­ä»£ēŗ§ę‰§č”Œę‰ē”Ÿęˆč®”åˆ’ć€‚
@@ -1,23 +0,0 @@
1
- # REQUIREMENT.md ęØ”ęæ
2
-
3
- ```markdown
4
- # {Task-ID}: {任劔名}
5
-
6
- | å±žę€§ | 值 |
7
- | ē¼–å· | {Task-ID} |
8
- | ē±»åž‹ | feature/bugfix/review/test/docs/refactor/deploy/security/performance |
9
- | ä¼˜å…ˆēŗ§ | high/medium/low |
10
- | 迭代 | {iteration} |
11
- | 蓟蓣人 | {assignee} |
12
-
13
- ## ęčæ°
14
- {ē”Øęˆ·åŽŸå§‹ęčæ° + AI 蔄充}
15
-
16
- ## éŖŒę”¶ę ‡å‡†
17
- - [ ] {标准1}
18
- - [ ] {标准2}
19
-
20
- ## 关联文件
21
- - ANALYSIS.md
22
- - PLAN.md (迭代级)
23
- ```
@@ -1,17 +0,0 @@
1
- /**
2
- * bugfix - åæ«é€Ÿ Bug äæ®å¤å‘½ä»¤
3
- * åˆ›å»ŗäæ®å¤ä»»åŠ”ļ¼Œč‡ŖåŠØę ‡ę³Øå—å½±å“ę–‡ä»¶å’Œå›žå½’čŒƒå›“
4
- */
5
- export interface BugfixOptions {
6
- name?: string;
7
- desc?: string;
8
- batch?: string;
9
- batchFile?: string;
10
- interactive?: boolean;
11
- taskId?: string;
12
- iteration?: string;
13
- affectedTask?: string;
14
- schedule?: string;
15
- }
16
- export declare function bugfixCommand(options: BugfixOptions): Promise<void>;
17
- //# sourceMappingURL=bugfix.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bugfix.d.ts","sourceRoot":"","sources":["../../src/commands/bugfix.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyHzE"}
@@ -1,301 +0,0 @@
1
- "use strict";
2
- /**
3
- * bugfix - åæ«é€Ÿ Bug äæ®å¤å‘½ä»¤
4
- * åˆ›å»ŗäæ®å¤ä»»åŠ”ļ¼Œč‡ŖåŠØę ‡ę³Øå—å½±å“ę–‡ä»¶å’Œå›žå½’čŒƒå›“
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.bugfixCommand = bugfixCommand;
41
- const logger_1 = require("../utils/logger");
42
- const context_1 = require("../core/context");
43
- const fs_extra_1 = require("fs-extra");
44
- const path_1 = require("path");
45
- const readline_1 = require("readline");
46
- function promptUser(question) {
47
- const rl = (0, readline_1.createInterface)({ input: process.stdin, output: process.stdout });
48
- return new Promise(resolve => {
49
- rl.question(`${question} `, answer => { rl.close(); resolve(answer.trim()); });
50
- });
51
- }
52
- async function bugfixCommand(options) {
53
- // ę‰¹é‡ęØ”å¼
54
- if (options.batch || options.batchFile) {
55
- // ę”ÆęŒę–‡ä»¶åÆ¼å…„ļ¼ˆč‡ŖåŠØčÆ†åˆ« .xlsx/.csv/.txt)
56
- if (options.batchFile) {
57
- if (!await (0, fs_extra_1.pathExists)(options.batchFile)) {
58
- logger_1.logger.error('ę–‡ä»¶äøå­˜åœØ: ' + options.batchFile);
59
- return;
60
- }
61
- const ext = options.batchFile.split('.').pop()?.toLowerCase();
62
- if (ext === 'xlsx') {
63
- try {
64
- const XLSX = require('xlsx');
65
- const wb = XLSX.readFile(options.batchFile);
66
- const ws = wb.Sheets[wb.SheetNames[0]];
67
- const data = XLSX.utils.sheet_to_json(ws, { header: 1 });
68
- // č·³čæ‡č”Øå¤“ļ¼ŒęÆč”Œå–ē¬¬äø€åˆ—ļ¼ˆęˆ–ę‹¼ę‰€ęœ‰åˆ—ļ¼‰
69
- options.batch = data.slice(1)
70
- .filter((row) => row.some((c) => c))
71
- .map((row) => row.filter((c) => c).join(' — '))
72
- .join('\n');
73
- logger_1.logger.info('šŸ“Š 从 Excel 导兄: ' + options.batchFile);
74
- }
75
- catch (e) {
76
- logger_1.logger.error('Excel č§£ęžå¤±č“„: ' + e.message);
77
- return;
78
- }
79
- }
80
- else {
81
- options.batch = await (0, fs_extra_1.readFile)(options.batchFile, 'utf-8');
82
- logger_1.logger.info('šŸ“„ ä»Žę–‡ä»¶åÆ¼å…„: ' + options.batchFile);
83
- }
84
- }
85
- const bugs = (options.batch || '').split('\n').filter(b => b.trim());
86
- if (bugs.length === 0) {
87
- logger_1.logger.error('ę‰¹é‡č¾“å…„äøŗē©ŗ');
88
- return;
89
- }
90
- // ── Interactive preview ──
91
- if (options.interactive) {
92
- logger_1.logger.info(`šŸ“‹ č§£ęžåˆ° ${bugs.length} äøŖ Bug:\n`);
93
- for (let i = 0; i < bugs.length; i++) {
94
- const title = bugs[i].split('\n')[0].slice(0, 50);
95
- logger_1.logger.info(` ${i + 1}. ${title}`);
96
- }
97
- logger_1.logger.info('');
98
- logger_1.logger.info('šŸ’” [y] å…ØéƒØåˆ›å»ŗ [e] ē¼–č¾‘ęŸäøŖ [s] č·³čæ‡ęŸäøŖ [q] å–ę¶ˆ');
99
- const answer = await promptUser('ē”®č®¤åˆ›å»ŗļ¼Ÿ');
100
- if (answer?.toLowerCase() === 'q') {
101
- logger_1.logger.info('å·²å–ę¶ˆ');
102
- return;
103
- }
104
- if (answer?.toLowerCase() === 'e') {
105
- const idx = await promptUser('ē¼–č¾‘ē¬¬å‡ äøŖļ¼Ÿ');
106
- const i = parseInt(idx) - 1;
107
- if (i >= 0 && i < bugs.length) {
108
- logger_1.logger.info(`当前: ${bugs[i].slice(0, 100)}`);
109
- const edit = await promptUser('äæ®ę”¹åŽå†…å®¹ļ¼ˆē•™ē©ŗäæē•™åŽŸę ·ļ¼‰: ');
110
- if (edit)
111
- bugs[i] = edit;
112
- }
113
- }
114
- if (answer?.toLowerCase() === 's') {
115
- const skip = await promptUser('č·³čæ‡ē¬¬å‡ äøŖļ¼ˆé€—å·åˆ†éš”ļ¼‰ļ¼Ÿ');
116
- const skipIdx = skip.split(',').map(s => parseInt(s.trim()) - 1).filter(i => i >= 0 && i < bugs.length);
117
- skipIdx.sort((a, b) => b - a).forEach(i => bugs.splice(i, 1));
118
- logger_1.logger.info(`äæē•™ ${bugs.length} äøŖ Bug`);
119
- }
120
- }
121
- await batchBugfixCreate(bugs, options);
122
- return;
123
- }
124
- if (!options.name && !options.desc) {
125
- logger_1.logger.error('čÆ·ęä¾› Bug ęčæ°ć€‚ē”Øę³•: speccore bugfix --name "<ę ‡é¢˜>" [--batch="多蔌"]');
126
- return;
127
- }
128
- const spinner = new logger_1.Spinner('ę­£åœØåˆ›å»ŗ Bug äæ®å¤ä»»åŠ”...');
129
- spinner.start();
130
- try {
131
- const iteration = await (0, context_1.getDefaultIteration)(options.iteration);
132
- if (!iteration) {
133
- spinner.fail('ęœŖę‰¾åˆ°ę“»č·ƒęœŸę¬”ć€‚čÆ·å…ˆčæč”Œ: speccore iteration create --name <åē§°>');
134
- return;
135
- }
136
- const bugName = options.name || 'Bugäæ®å¤';
137
- const taskId = options.taskId || await generateTaskId(iteration);
138
- // åˆ›å»ŗäæ®å¤ä»»åŠ”ē›®å½•
139
- const taskDir = (0, path_1.join)(iteration, taskId);
140
- await (0, fs_extra_1.ensureDir)((0, path_1.join)(taskDir, 'backend'));
141
- // åˆ›å»ŗ .task-type
142
- await (0, fs_extra_1.writeFile)((0, path_1.join)(taskDir, '.task-type'), 'bugfix');
143
- // ē”Ÿęˆäæ®å¤ Spec
144
- await (0, fs_extra_1.writeFile)((0, path_1.join)(taskDir, 'backend', 'REQ.md'), generateBugfixReq(bugName, options.desc || '', options.affectedTask));
145
- await (0, fs_extra_1.writeFile)((0, path_1.join)(taskDir, 'backend', 'TASK.md'), generateBugfixTask(bugName, options.desc || '', options.affectedTask));
146
- spinner.stop(`Bug äæ®å¤ä»»åŠ”å·²åˆ›å»ŗ: ${taskId}`);
147
- logger_1.logger.info('');
148
- logger_1.logger.info(`šŸ› Bug äæ®å¤čÆ¦ęƒ…:`);
149
- logger_1.logger.info(` 期欔: ${iteration}`);
150
- logger_1.logger.info(` 任劔: ${taskId} - ${bugName}`);
151
- if (options.affectedTask) {
152
- logger_1.logger.info(` āš ļø 受影响任劔: ${options.affectedTask}`);
153
- }
154
- if (options.desc) {
155
- logger_1.logger.info(` ęčæ°: ${options.desc}`);
156
- }
157
- logger_1.logger.info('');
158
- logger_1.logger.info('下一歄:');
159
- logger_1.logger.info(` 1. 编辑 ${taskId}/backend/REQ.md č”„å……ę ¹å› åˆ†ęž`);
160
- logger_1.logger.info(' 2. 运蔌: speccore execute --task=' + taskId);
161
- }
162
- catch (error) {
163
- spinner.fail(`Bug äæ®å¤ä»»åŠ”åˆ›å»ŗå¤±č“„: ${error}`);
164
- throw error;
165
- }
166
- }
167
- async function generateTaskId(iteration) {
168
- let maxId = 0;
169
- const iterationDir = (0, path_1.join)(process.cwd(), iteration);
170
- if (await (0, fs_extra_1.pathExists)(iterationDir)) {
171
- const { readdir } = await Promise.resolve().then(() => __importStar(require('fs-extra')));
172
- const entries = await readdir(iterationDir);
173
- for (const entry of entries) {
174
- const match = entry.match(/^Task-(\d+)$/);
175
- if (match) {
176
- const id = parseInt(match[1], 10);
177
- if (id > maxId)
178
- maxId = id;
179
- }
180
- }
181
- }
182
- return `Task-${String(maxId + 1).padStart(3, '0')}`;
183
- }
184
- function generateBugfixReq(name, desc, affectedTask) {
185
- return `# ${name} - Bug äæ®å¤éœ€ę±‚
186
-
187
- ## 1. é—®é¢˜ęčæ°
188
-
189
- ${desc || 'čÆ·č”„å……é—®é¢˜ęčæ°'}
190
-
191
- ## 2. å¤ēŽ°ę­„éŖ¤
192
-
193
- 1.
194
- 2.
195
- 3.
196
-
197
- ## 3. é¢„ęœŸč”Œäøŗ
198
-
199
- -
200
-
201
- ## 4. å®žé™…č”Œäøŗ
202
-
203
- -
204
-
205
- ${affectedTask ? `
206
- ## 5. 受影响任劔
207
-
208
- - ${affectedTask} → šŸ”¶ 待回归
209
- ` : ''}
210
-
211
- ## 6. ę ¹å› åˆ†ęž
212
-
213
- -
214
-
215
- ## 7. äæ®å¤ę–¹ę”ˆ
216
-
217
- -
218
-
219
- ## 8. éŖŒę”¶ę ‡å‡†
220
-
221
- - [ ] Bug äøå†å¤ēŽ°
222
- - [ ] å›žå½’ęµ‹čÆ•é€ščæ‡
223
- - [ ] 相关 Spec ę–‡ä»¶å·²åŒę­„ę›“ę–°
224
- `;
225
- }
226
- function generateBugfixTask(name, desc, affectedTask) {
227
- const now = new Date().toISOString().split('T')[0];
228
- return `# ${name} - ę‰§č”Œčæ½čøŖ
229
-
230
- > **ä»»åŠ”ē±»åž‹**: bugfix | **åˆ›å»ŗę—„ęœŸ**: ${now} | **ēŠ¶ę€**: šŸ”² 待开发
231
-
232
- ## 1. å˜ę›“å±„åŽ†
233
-
234
- | ę—„ęœŸ | ē‰ˆęœ¬ | å˜ę›“čÆ“ę˜Ž | ä½œč€… |
235
- | :--- | :--- | :--- | :--- |
236
- | ${now} | v1.0 | åˆå§‹åˆ›å»ŗļ¼š${desc} | SpecCore |
237
-
238
- ## 2. äæ®å¤ę­„éŖ¤
239
-
240
- - [ ] ę ¹å› å®šä½
241
- - [ ] ē¼–å†™äæ®å¤ä»£ē 
242
- - [ ] å•å…ƒęµ‹čÆ•
243
- - [ ] å›žå½’ęµ‹čÆ•${affectedTask ? ` (含 ${affectedTask})` : ''}
244
- - [ ] Spec åŒę­„ę›“ę–°
245
-
246
- ## 3. å½±å“čŒƒå›“
247
-
248
- | å—å½±å“ę–‡ä»¶ | å½±å“ęčæ° | ēŠ¶ę€ |
249
- | :--- | :--- | :--- |
250
- | | | |
251
-
252
- ## 4. ēŗæäøŠé—®é¢˜č®°å½•
253
-
254
- | ę—„ęœŸ | é—®é¢˜ęčæ° | 根因 | äæ®å¤ę–¹ę”ˆ | ēŠ¶ę€ |
255
- | :--- | :--- | :--- | :--- | :--- |
256
- | ${now} | ${desc} | å¾…åˆ†ęž | 待制定 | šŸ”² |
257
- `;
258
- }
259
- // ============================================================
260
- // ę‰¹é‡ Bug 导兄
261
- // ============================================================
262
- async function batchBugfixCreate(bugs, options) {
263
- logger_1.logger.info(`šŸ› ę‰¹é‡åˆ›å»ŗ ${bugs.length} äøŖ Bug äæ®å¤ä»»åŠ”...`);
264
- logger_1.logger.info('');
265
- const iteration = await (0, context_1.getDefaultIteration)(options.iteration);
266
- if (!iteration) {
267
- logger_1.logger.error('ęœŖę‰¾åˆ°ę“»č·ƒęœŸę¬”ć€‚čÆ·å…ˆčæč”Œ: speccore iteration create --name <åē§°>');
268
- return;
269
- }
270
- let created = 0;
271
- for (const bug of bugs) {
272
- // å–ē¬¬äø€č”Œä½œę ‡é¢˜
273
- const lines = bug.trim().split('\n');
274
- const name = lines[0].slice(0, 50);
275
- const desc = lines.join('\n');
276
- const taskId = await generateTaskId(iteration);
277
- const taskDir = (0, path_1.join)(iteration, taskId);
278
- await (0, fs_extra_1.ensureDir)((0, path_1.join)(taskDir, 'backend'));
279
- await (0, fs_extra_1.writeFile)((0, path_1.join)(taskDir, '.task-type'), 'bugfix');
280
- await (0, fs_extra_1.writeFile)((0, path_1.join)(taskDir, 'backend', 'REQ.md'), generateBugfixReq(name, desc));
281
- await (0, fs_extra_1.writeFile)((0, path_1.join)(taskDir, 'backend', 'TASK.md'), generateBugfixTask(name, desc));
282
- created++;
283
- const scheduleTag = options.schedule === 'night' ? ' šŸŒ™' : '';
284
- logger_1.logger.info(` ${taskId} ${name}${scheduleTag}`);
285
- }
286
- logger_1.logger.info('');
287
- logger_1.logger.info(`āœ… åˆ›å»ŗäŗ† ${created}/${bugs.length} äøŖ Bug äæ®å¤ä»»åŠ”`);
288
- if (options.schedule === 'night') {
289
- logger_1.logger.info('');
290
- logger_1.logger.info('šŸŒ™ å·²ę ‡č®°äøŗå¤œé—“ę‰¹é‡ę‰§č”Œ');
291
- logger_1.logger.info(' speccore execute --all --scheduled ę‰‹åŠØč§¦å‘');
292
- logger_1.logger.info(' ęˆ–ē­‰å¾… automation å®šę—¶ę‰§č”Œļ¼ˆå¦‚ęžœå·²č®¾ē½®ļ¼‰');
293
- }
294
- else {
295
- logger_1.logger.info('');
296
- logger_1.logger.info('šŸ“‹ 下一歄:');
297
- logger_1.logger.info(' speccore plan --iteration=' + iteration + ' ē”Ÿęˆę‰§č”Œč®”åˆ’');
298
- logger_1.logger.info(' speccore execute --all --scheduled ę‰¹é‡äæ®å¤');
299
- }
300
- }
301
- //# sourceMappingURL=bugfix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bugfix.js","sourceRoot":"","sources":["../../src/commands/bugfix.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function showQuickHelp(): void;
2
- export declare function showPhaseHelp(phase: string): void;
3
- //# sourceMappingURL=help-quick.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help-quick.d.ts","sourceRoot":"","sources":["../../src/commands/help-quick.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,IAAI,IAAI,CAuBpC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CA+BjD"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.showQuickHelp = showQuickHelp;
4
- exports.showPhaseHelp = showPhaseHelp;
5
- /**
6
- * help-quick — ē²¾ē®€åø®åŠ©ļ¼Œę øåæƒęµēØ‹å±•ē¤ŗ
7
- */
8
- const logger_1 = require("../utils/logger");
9
- function showQuickHelp() {
10
- logger_1.logger.info('');
11
- logger_1.logger.info('╔══════════════════════════════════════════════╗');
12
- logger_1.logger.info('ā•‘ SpecCore — Code by Spec ā•‘');
13
- logger_1.logger.info('ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•');
14
- logger_1.logger.info('');
15
- logger_1.logger.info(' åæ«é€Ÿå¼€å§‹ (7 ę­„):');
16
- logger_1.logger.info('');
17
- logger_1.logger.info(' 1ļøāƒ£ speccore init');
18
- logger_1.logger.info(' 2ļøāƒ£ speccore doc2spec --files "a.docx=端1"');
19
- logger_1.logger.info(' 3ļøāƒ£ speccore analyze');
20
- logger_1.logger.info(' 4ļøāƒ£ speccore iteration split');
21
- logger_1.logger.info(' 5ļøāƒ£ speccore execute --task=Task-001 --force');
22
- logger_1.logger.info(' 6ļøāƒ£ speccore pr --task=Task-001');
23
- logger_1.logger.info(' 7ļøāƒ£ speccore done --task=Task-001');
24
- logger_1.logger.info('');
25
- logger_1.logger.info(' šŸ’” äøē”®å®šē”Øä»€ä¹ˆå‘½ä»¤ļ¼Ÿē›“ęŽ„čÆ“éœ€ę±‚:');
26
- logger_1.logger.info(' speccore spec "ę–°å¢žč®¢å•åÆ¼å‡ŗåŠŸčƒ½"');
27
- logger_1.logger.info(' speccore spec "äæ®å¤ę”Æä»˜å›žč°ƒč¶…ę—¶"');
28
- logger_1.logger.info('');
29
- logger_1.logger.info(' šŸ“– å…ØéƒØ 67 个命令: speccore --help');
30
- logger_1.logger.info(' šŸ“– åœŗę™Æå®žęˆ˜: docs/åœŗę™Æå®žęˆ˜.md (32 äøŖåœŗę™Æ)');
31
- logger_1.logger.info('');
32
- }
33
- function showPhaseHelp(phase) {
34
- const phases = {
35
- setup: {
36
- title: 'é”¹ē›®åˆå§‹åŒ–',
37
- cmds: ['init', 'iteration create', 'import', 'config'],
38
- },
39
- require: {
40
- title: 'éœ€ę±‚ē®”ē†',
41
- cmds: ['doc2spec', 'analyze [--task]', 'ask', 'change', 'tracker'],
42
- },
43
- develop: {
44
- title: '任劔开发',
45
- cmds: ['iteration split', 'execute [--strict|--skip|--only|--batch-size|--base]', 'new-task', 'bugfix'],
46
- },
47
- review: {
48
- title: '宔柄合并',
49
- cmds: ['lifecycle', 'pr', 'merge-check', 'validate', 'review'],
50
- },
51
- release: {
52
- title: 'å‘åøƒčæē»“',
53
- cmds: ['done', 'rollback', 'archive', 'arch-update', 'sync', 'dashboard'],
54
- },
55
- };
56
- const p = phases[phase];
57
- if (!p) {
58
- showQuickHelp();
59
- return;
60
- }
61
- logger_1.logger.info(`\nšŸ“‹ ${p.title}:`);
62
- for (const cmd of p.cmds) {
63
- logger_1.logger.info(` speccore ${cmd}`);
64
- }
65
- }
66
- //# sourceMappingURL=help-quick.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help-quick.js","sourceRoot":"","sources":["../../src/commands/help-quick.ts"],"names":[],"mappings":";;AAKA,sCAuBC;AAED,sCA+BC;AA7DD;;GAEG;AACH,4CAAyC;AAEzC,SAAgB,aAAa;IAC3B,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAChE,eAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACjE,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAChE,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7B,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACpC,eAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC5D,eAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACvC,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC/C,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC/D,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAClD,eAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACpD,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACpC,eAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC7C,eAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC7C,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC/C,eAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAChD,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,MAAM,GAAsD;QAChE,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACvD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;SACnE;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,iBAAiB,EAAE,sDAAsD,EAAE,UAAU,EAAE,QAAQ,CAAC;SACxG;QACD,MAAM,EAAE;YACN,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC;SAC/D;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC;SAC1E;KACF,CAAC;IAEF,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,CAAC,EAAE,CAAC;QAAC,aAAa,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAEpC,eAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * index-update — ę‰«ę GLOBAL/PROJECTS/ äø‹ę‰€ęœ‰é”¹ē›®éœ€ę±‚ļ¼Œč‡ŖåŠØé‡å»ŗ GLOBAL/INDEX.md
3
- */
4
- export interface IndexUpdateOptions {
5
- dryRun?: boolean;
6
- }
7
- export declare function indexUpdateCommand(options: IndexUpdateOptions): Promise<void>;
8
- //# sourceMappingURL=index-update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-update.d.ts","sourceRoot":"","sources":["../../src/commands/index-update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGnF"}