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
@@ -10,173 +10,6 @@ allowed-tools: ["Bash", "Read"]
10
10
  disable-model-invocation: false
11
11
  ---
12
12
 
13
- # spec-analyze — 需求分析(专属逻辑)
13
+ 直接执行: execute_command("speccore ask '用户原话'")
14
14
 
15
- > **定位**:`/analyze` 快捷入口的专属预处理层
16
- > **原则**:不影响 `speccore ask` 的意图识别能力
17
-
18
- ---
19
-
20
- ## 调用方式
21
-
22
- ```
23
- /analyze [参数]
24
- /analyze -I Iteration-001 --auto
25
- /analyze -I Iteration-001 --scope global --with-code
26
- /analyze -I Iteration-001 --clarify
27
- ```
28
-
29
- ---
30
-
31
- ## 执行流程
32
-
33
- ```
34
- 用户输入 /analyze [参数]
35
- │
36
- ▼
37
- ┌───────────────────────────────────────┐
38
- │ Step 1: 参数提取 │
39
- │ 从用户输入提取 iteration/scope/auto 等 │
40
- └───────────────┬───────────────────────┘
41
- │
42
- 参数缺失?
43
- │
44
- 是 ──► 输出交互式提示
45
- │
46
- 否 ──► 继续
47
- │
48
- ▼
49
- ┌───────────────────────────────────────┐
50
- │ Step 2: 参数补全 │
51
- │ iteration 缺失 → 读 context.json │
52
- │ scope 缺失 → 根据上下文推断 │
53
- └───────────────┬───────────────────────┘
54
- │
55
- ▼
56
- ┌───────────────────────────────────────┐
57
- │ Step 3: 前置校验 │
58
- │ - 迭代是否存在? │
59
- │ - 需求文档是否存在? │
60
- │ - 需求专业度评估(clarify) │
61
- │ - CONSTITUTION 端列表读取 │
62
- └───────────────┬───────────────────────┘
63
- │
64
- ▼
65
- ┌───────────────────────────────────────┐
66
- │ Step 4: 调用 speccore ask │
67
- └───────────────────────────────────────┘
68
- ```
69
-
70
- ---
71
-
72
- ## Step 1: 参数提取
73
-
74
- | 参数 | 短名 | 长名 | 必填 | 说明 |
75
- |:---|:---|:---|:---|:---|
76
- | iteration | -i | --iteration | 否 | 目标迭代名 |
77
- | scope | -s | --scope | 否 | 分析范围: global / iteration / task |
78
- | auto | -a | --auto | 否 | 全自动模式(不交互)|
79
- | with-code | -c | --with-code | 否 | 结合源码分析 |
80
- | full | -f | --full | 否 | 全自动三阶段合成(原 synthesize)|
81
- | phase | -p | --phase | 否 | 单阶段执行 1/2/3 |
82
- | clarify | - | --clarify | 否 | 需求专业度检测,口语化时触发 clarify |
83
- | dev-guide | - | --dev-guide | 否 | 生成 DEV_GUIDE.md 实现指南 |
84
- | platforms | - | --platforms | 否 | 只分析指定端 |
85
- | prompt | - | --prompt | 否 | 只输出 Prompt,不执行 |
86
- | apply | - | --apply | 否 | 应用 AI 分析结果(支持 @file.json)|
87
-
88
- ---
89
-
90
- ## Step 2: 参数缺失 → 交互式提示
91
-
92
- ```
93
- 🔍 speccore analyze — 需求分析
94
-
95
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
96
- 📋 当前环境
97
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
98
- 迭代: Iteration-001-meeting-system(从 context.json 读取)
99
- 端列表: api, h5-mobile, admin-web(从 CONSTITUTION.md 读取)
100
-
101
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
- 📖 可用参数
103
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
104
- -I, --iteration <name> 目标迭代(默认: 当前迭代)
105
- -s, --scope <scope> 分析范围:
106
- global — 全局层分析(项目级,跨端)
107
- iteration — 迭代级分析(默认)
108
- task — 任务级分析
109
- -a, --auto 全自动模式(不交互,直接输出)
110
- -c, --with-code 结合源码分析(扫描各端源码)
111
- --full 全自动三阶段合成(原 synthesize --full)
112
- --phase <N> 单阶段执行: 1(逐端) | 2(跨端) | 3(索引)
113
- --clarify 需求专业度检测,口语化时自动触发澄清
114
- --dev-guide 同时生成 DEV_GUIDE.md 开发者实现指南
115
- --platforms <list> 只分析指定端(如 api,h5)
116
- --prompt 只输出 Prompt,不执行分析
117
- --apply <json|@file> 应用 AI 分析结果(支持 @file.json 文件方式)
118
-
119
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
120
- 💡 使用示例
121
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
122
- /analyze -I Q1 --auto # 全自动分析迭代
123
- /analyze --scope global --with-code # 全局层 + 源码分析
124
- /analyze --full # 三阶段全量合成
125
- /analyze --clarify # 检测需求专业度
126
- /analyze --dev-guide # 分析 + 生成实现指南
127
- /analyze --platforms api,h5 # 只分析 api 和 h5 端
128
- /analyze --prompt # 只输出 Prompt
129
-
130
- 请补充参数后重新调用,或直接调用 /analyze 使用默认设置。
131
- ```
132
-
133
- ---
134
-
135
- ## Step 3: 前置校验
136
-
137
- ### 3.1 检查迭代是否存在
138
- ```bash
139
- # 检查迭代目录是否存在
140
- # 如果不存在 → 提示用户先创建迭代
141
- ```
142
-
143
- ### 3.2 检查需求文档
144
- ```bash
145
- # 检查 010-requirements/REQUIREMENT.md 或 converted/*.md 是否存在
146
- # 如果不存在 → 提示用户先准备需求文档
147
- ```
148
-
149
- ### 3.3 需求专业度检测(--clarify)
150
- ```bash
151
- # 读取 REQUIREMENT.md 或用户输入
152
- # 检测指标:
153
- # - 口语化表达("我要/我想/能不能")
154
- # - 缺少结构化标题(## / ###)
155
- # - 缺少验收标准
156
- # - 缺少技术约束
157
- # - 缺少错误处理
158
- # - 缺少数据模型
159
- # 如果专业度低 → 提示用户先执行 clarify
160
- ```
161
-
162
- ### 3.4 读取端列表
163
- ```bash
164
- # 从 CONSTITUTION.md 读取项目配置的端列表
165
- # 如果 --platforms 指定了不存在的端 → 提示可用端
166
- ```
167
-
168
- ### 3.5 检查 --apply 文件
169
- ```bash
170
- # 如果 --apply 以 @ 开头,从文件读取 JSON
171
- # 检查文件是否存在
172
- ```
173
-
174
- ---
175
-
176
- ## Step 4: 调用 speccore ask
177
-
178
- ```bash
179
- execute_command("speccore ask '分析 Iteration-XXX...'")
180
- ```
181
-
182
- > ⚠️ 最终仍然调用 `speccore ask`,不要绕过 ask 引擎。
15
+ 不要输出命令文本,不要分析意图,一切交给 speccore ask。
@@ -20,181 +20,6 @@ allowed-tools: ["Bash", "Read", "Write", "Edit"]
20
20
  disable-model-invocation: false
21
21
  ---
22
22
 
23
- # SpecCore Ask — AI 语义分析引擎
23
+ 直接执行: execute_command("speccore ask '用户原话'")
24
24
 
25
- ## 🎯 Speccore 输出标记处理
26
-
27
- 执行任何 `speccore` 命令后,检查 stdout 中的标记:
28
- - `[SPECCORE_ONBOARD: <path>]` → **🚨 必须最先处理,不可跳过,不可只口头提及**:
29
- 1. **立即执行** `present_files(<path>)` 展示 HTML 引导页(Qoder/Trae/Cursor 均支持)
30
- 2. ❌ 禁止只说“检测到引导页”而不执行展示动作 — 说了不等于做了
31
- 3. ❌ 禁止用文字描述引导页内容代替实际展示 — 必须让用户看到 HTML 页面
32
- 4. **展示完成后**,再继续处理其他输出(结果、意图确认等)
33
- - `[SPECCORE_SETUP_GUIDE: <path>]` → **立即执行** `present_files(<path>)` 展示配置引导页
34
- - `[SPECCORE_ABOUT: <path>]` → **立即执行** `present_files(<path>)` 展示版本信息页
35
- - `[SPECCORE_HELP: <path>]` → **立即执行** `present_files(<path>)` 展示帮助中心页
36
- - `[SPECCORE_WELCOME: <path>]` → **立即执行** `present_files(<path>)` 展示项目名片页
37
- - `[SPECCORE_DEV: <path>]` → **立即执行** `present_files(<path>)` 展示开发流程页
38
- - `[SPECCORE_KNOWLEDGE: <path>]` → **立即执行** `present_files(<path>)` 展示知识图谱页
39
- - `[SPECCORE_PLAN: <path>]` → **立即执行** `present_files(<path>)` 展示执行计划页
40
- - `[SPECCORE_RETRO: <path>]` → **立即执行** `present_files(<path>)` 展示回顾报告页
41
- - `[SPECCORE_DASHBOARD: <path>]` → **立即执行** `present_files(<path>)` 展示仪表盘页
42
- - `[SPECCORE_EXEC: <cmd>]` → 直接 `execute_command` 执行
43
- - `[SPECCORE_INTENT]` → 展示给用户确认
44
-
45
- ## ⛔ 最高优先级:用户意图优先于效率判断
46
-
47
- 本规则覆盖你的默认行为。当用户说"重新/再/重跑"时:
48
- - ✅ 你有合理的确认理由(如"这会覆盖旧结果"),可以先问用户,再执行
49
- - ✅ 没什么可确认的,直接执行
50
- - ❌ 禁止检查文件时间戳判断"有无变更"并以此拒绝
51
- - ❌ 禁止说"结果相同/已完成/无需操作"并以此拒绝
52
- - 记住:确认≠拒绝。你可以确认,但不能替代用户做决定
53
-
54
- ## ⛔ 分析必须落盘,禁止只说不写
55
-
56
- - 分析结果**必须**通过 `speccore analyze --prompt` 获取模板 → Read 需求文档 → 填充 → `speccore analyze --apply` 写入 020-specs/
57
- - **禁止**在聊天窗口里输出一段分析文字就完事
58
- - **禁止**说"基于文档内容的人工分析"而跳过 CLI 落盘
59
- - 用户要的是 Spec 文档文件,不是聊天消息
60
-
61
- ## 🚨 核心铁律
62
-
63
- 1. **每步必确认** — 用户没明确说"自动/全自动/一键"的,每步展示计划→等确认→再执行
64
- 2. **自动模式分两级**:
65
- - **部分自动**: "analyze 和 plan 自动执行,execute 前确认" → 只跳过确认的步骤
66
- 3. **工作流逻辑重排**: 不管用户口述顺序如何(如"先执行再分析"),你必须根据工作流逻辑重新排序:
67
- 4. **禁止阻断用户正常操作**: 无论什么场景(文件已存在、结果相同、无变更、路径不对),**绝对禁止**说"跳过/无变化/不执行"。你应该:
68
- - 先列出发现的问题(如"已有旧分析结果"、"路径配置为空")
69
- - 给用户清晰的选择:继续 / 覆盖 / 跳过 / 停止
70
- - **由用户决定**,不是你替用户决定
71
- 5. **analyze 必须区分迭代级 vs 全局级,禁止混淆**:
72
- - **迭代级分析**(默认,用户提到"本迭代""当前迭代"或没提 scope):
73
- - 步骤1: `speccore analyze --prompt -I <iter> --type <type>` → 获取 SPECCORE_PROMPT
74
- - 步骤2: **Read 迭代目录下需求文档**(REQUIREMENT.md、010-requirements/sources/ 下的文档)
75
- - 步骤3-5: 同下
76
- - **全局级分析**(用户明确说"全局""全量""项目分析""所有端"等):
77
- - 步骤1: `speccore analyze --prompt --scope global --with-code` → 获取 SPECCORE_PROMPT
78
- - 步骤2: **Read .speccore/CONSTITUTION.md 获取工程源码路径**,从源码路径读各端代码,**禁止读/写迭代目录**
79
- - 步骤3: **严格按 prompt 中「当前执行层级 Layer N/4」执行,只做当前层**(v7.2.0+ 分层机制,禁止一次写全部):
80
- - Layer 1 代码索引 → `platforms/{端}/_INDEX.md` + PATTERNS
81
- - Layer 2 架构关联 → `platforms/_shared/_ASSOCIATION.md` + `_MODULES.md`
82
- - Layer 3 业务深入 → 各端功能模块文档
83
- - Layer 4 全局汇总 → `overview/`(REQUIREMENT/ANALYSIS/DEPS/FUNCTION_MAP/INTERACTION_MAP/API_CONTRACT) + `requirements/` + `platforms/`
84
- - 步骤4: 每层产物用 `speccore analyze --apply '{"<相对路径>":"...",...}' --scope global` 写入 `.speccore/GLOBAL/`
85
- - 步骤5: 看到 [SPECCORE_PIPELINE_NEXT] 或 prompt 提示的下一层命令时**自动继续,不询问用户**,直到 Layer 4 完成
86
- - 步骤6: **用户提供参考文档时**: 如果用户附带了格式参考文档(如PDF/Word/截图),先按标准 Spec 模板生成默认文档,再按用户参考格式生成一份,**两边都要**
87
- - ❌ 禁止: 跳过文档填充直接写代码、生成重复空壳、用 "API=0" 跳过
88
- - ❌ 禁止: 全局分析时 fallback 到迭代目录读取需求文档,或把全局产物写到迭代目录
89
- - ❌ 禁止: 只生成单个 ANALYSIS.md 就收尾、用 outputs/ 临时报告代替落盘 —— 必须按层级完成全部文档并写入 `.speccore/GLOBAL/`
90
- - ⚠️ 如果模板目录不存在或为空: 用你的专业知识自由撰写,绝不允许产出一行垃圾。你是一个专业的技术架构师和分析师,即使没有参考模板,也能产出高质量文档
91
- 6. **交互式文档编辑**: 分析完成后用户可以对任意文档的任意部分进行修改。支持:
92
- - "修改 ANALYSIS.md 的接口清单部分,加上签到接口" → 只改指定章节,不改其他部分
93
- - "补充 TECH.md 的部署方案" → Read 现有内容 → 追加指定章节
94
- - "重写 RISK.md 的第三项" → 定位 → 修改 → Write
95
- `init → doc2spec → analyze → split → plan → execute → pr → done → spec2doc`
96
- 示例: 用户说"执行完再分析" → 你应该排列为 `analyze → execute`,并在计划中说明"根据工作流逻辑,先分析再执行"
97
- - **全自动**: "全自动执行/一键完成" → 所有步骤不等确认,全部自动跑
98
- 3. **迭代/任务命名必加 --topic** — 从用户原话提取英文主题词
99
- 4. **禁止 schedule** — 用户说"定时"时告知不可用、改为立即执行
100
- 5. **-i 参数用短名** — 传 `meeting-system` 而非 `Iteration-009-meeting-system`
101
- 6. **分析前先读源码** — 生成分析内容前必须 Read 相关源文件
102
-
103
- ## 执行流程
104
-
105
- ```
106
- 1. execute_command("speccore ask '用户原话' --explicit")
107
- → --explicit 标记表示这是 /spec-ask Skill 的显式调用,跳过"是否为 speccore 操作"的确认
108
- → 读 KB 输出,了解可用命令
109
-
110
- 2. 检查上下文,识别自动模式:
111
- - "全自动/一键/全流程自动" → FULL_AUTO 全流程
112
- - "analyze和plan自动,execute前确认" → PARTIAL_AUTO(1-2)
113
- - "自动执行到split,plan和execute前确认" → PARTIAL_AUTO(1-2)
114
- - 没说自动 → 每步确认
115
-
116
- 3. 理解意图 → 拼计划 → 展示:
117
- """
118
- [自动模式] 将自动执行 step 1-2 (analyze+plan),step 3 (execute) 前暂停确认。
119
- [全程确认] 每步展示结果再继续。
120
-
121
- step 1: 🔒 AI命令: speccore analyze --prompt -I meeting-system --task user-login
122
- step 2: 🔒 AI命令: speccore plan --prompt -I meeting-system --task user-login
123
- step 3: 🔒 AI命令: speccore execute --prompt -I meeting-system --task user-login
124
-
125
- 是否确认?
126
- """
127
-
128
- 4. 用户确认后按模式执行:
129
- - PARTIAL_AUTO: step 1→2 连续执行,step 3 前暂停问"继续?"
130
- - FULL_AUTO: 全部连续执行
131
- - 手动: 每步暂停确认
132
- ```
133
-
134
- ## 关键命令
135
-
136
- | 命令 | 格式 | 类型 | 说明 |
137
- |:---|:---|:---|:---|
138
- | `doc2spec -f <file> --iter <短名>` | 导入文档 | 🔒 AI | PRD/Word → SpecCore MD,双路验证 |
139
- | `doc2spec --classify --prompt -I <短名>` | 智能分类 | 🔒 AI | AI 提取 sources/ 文档,按类型分类到 staging/ |
140
- | `analyze --prompt -I <短名> --task <短名>` | 迭代级分析 | 🔒 AI | 读迭代需求文档,生成 020-specs/ 分析文档 |
141
- | `analyze --prompt --scope global --with-code` | 全局级分析 | 🔒 AI | 读工程源码,生成 .speccore/GLOBAL/ 架构文档,**禁止读迭代目录** |
142
- | `analyze --feature <模块名>` | 局部分析功能模块 | 🔒 AI | 只分析单个功能模块,不重跑全量 |
143
- | `analyze --doc <type/slug>` | 局部分析类型文档 | 🔒 AI | 分析 bugs/login-timeout、refactors/db-pool 等 |
144
- | `plan --prompt -I <短名> --task <短名>` | 制定计划 | 🔒 AI | 需要宿主 AI 交互,`speccore ask "制定计划..."` 路由进入 |
145
- | `execute --prompt -I <短名> --task <短名>` | 执行开发 | 🔒 AI | 需要宿主 AI 交互,`speccore ask "执行开发..."` 路由进入 |
146
- | `iteration split -I <短名>` | 拆分任务 | 🔒 AI | 需要宿主 AI 交互,`speccore ask "拆分任务..."` 路由进入 |
147
- | `refresh [--code] [--rag] [--graph]` | 刷新索引 | CLI | 统一刷新所有检索层,可单独指定 |
148
- | `reindex [--check]` | 重建索引 | CLI | 全量重建 + 知识图谱 + 衰减检测 |
149
- | `context --set --iteration <完整名>` | 切换迭代 | CLI | 可在终端直接输入 |
150
- | `dashboard` | 查看进度 | CLI | 可在终端直接输入 |
151
- | `task new -n <名> --topic <英文> -i <短名>` | 创建任务 | CLI | 可在终端直接输入 |
152
-
153
- ## AI 分析质量要求
154
-
155
- 执行 analyze --prompt(🔒 AI命令)后:
156
- 1. **根据 scope 读取对应内容**(禁止混淆):
157
- - **迭代级** (`-I <iter>`): Read 迭代目录下需求文档(REQUIREMENT.md、010-requirements/sources/ 下的文档)
158
- - **全局级** (`--scope global --with-code`): Read .speccore/CONSTITUTION.md 获取工程源码路径,从源码路径读取各端代码,**禁止读迭代目录**
159
- 2. **分析报告必须包含 7 个文档**(不同任务类型不同集合):
160
-
161
- ### 全量分析(feature 类型)
162
- | 文档 | 内容要求 |
163
- |:---|:---|
164
- | **ANALYSIS.md** | 功能点列表、接口清单、数据模型、业务规则、异常处理 |
165
- | **TECH.md** | 架构方案、数据库 DDL、缓存策略、核心流程图 |
166
- | **TEST.md** | 单元测试用例、集成测试方案、边界条件 |
167
- | **REVIEW.md** | 代码审查检查项、安全审查清单 |
168
- | **RISK.md** | 风险矩阵、缓解措施、回滚方案 |
169
- | **DEPS.md** | 上下游依赖、SLA 要求 |
170
- | **MONITOR.md** | 业务监控指标、告警规则 |
171
-
172
- ### 精简分析(bugfix/research 类型)
173
- | 文档 | 内容 |
174
- |:---|:---|
175
- | ANALYSIS.md | 问题定位 + 修复方案 |
176
- | TEST.md | 回归测试用例 |
177
-
178
- 3. **写入格式**: `--apply '{"ANALYSIS.md":"...","TECH.md":"..."}'` JSON 多文档写入
179
- 4. **不要生成空洞模板** — 每个字段都要有具体内容(表名、字段名、接口路径、阈值数值)
180
-
181
- ## 禁止行为
182
-
183
- - ❌ 用户没说自动就全自动跑
184
- - ❌ schedule 命令(任何形式)
185
- - ❌ 传完整迭代名到 -i 参数
186
- - ❌ 分析时不读源码凭空生成
187
- - ❌ 不展示计划直接执行
188
-
189
- ## 各阶段完成后的正确下一步
190
-
191
- 创建迭代/完成某阶段后,必须按流水线顺序建议下一步,禁止跳步:
192
-
193
- | 当前阶段 | ✅ 正确下一步 | ❌ 禁止跳步到 |
194
- |:---|:---|:---|
195
- | 迭代创建完成 | 导入需求文档(doc2spec) | ~~创建开发任务~~ |
196
- | 需求导入完成 | 分析需求(analyze) | ~~直接执行~~ |
197
- | 分析完成 | 拆分任务(split) | ~~直接执行~~ |
198
- | 拆分完成 | 执行开发(execute) | — |
199
-
200
- > 💡 用户没有需求文档时,引导先放文件到 `010-requirements/sources/` 或运行 `doc2spec --classify`。
25
+ 不要输出命令文本,不要分析意图,一切交给 speccore ask。
@@ -8,218 +8,6 @@ allowed-tools: ["Bash", "Read"]
8
8
  disable-model-invocation: false
9
9
  ---
10
10
 
11
- # spec-change — 需求变更与新增(专属逻辑)
11
+ 直接执行: execute_command("speccore ask '用户原话'")
12
12
 
13
- > **定位**:`/change` 快捷入口的专属预处理层
14
- > **原则**:不影响 `speccore ask` 的意图识别能力
15
-
16
- ---
17
-
18
- ## 调用方式
19
-
20
- ```
21
- /change [参数]
22
- /change --prompt "新增一个通知功能"
23
- /change --prompt "订单模块加个退款接口" -I Iteration-001
24
- ```
25
-
26
- ---
27
-
28
- ## 执行流程
29
-
30
- ```
31
- 用户输入 /change [参数]
32
- │
33
- ▼
34
- ┌───────────────────────────────────────┐
35
- │ Step 1: 参数提取 │
36
- │ 从用户输入提取 iteration/prompt/response │
37
- └───────────────┬───────────────────────┘
38
- │
39
- 参数缺失?
40
- │
41
- 是 ──► 输出交互式提示
42
- │
43
- 否 ──► 继续
44
- │
45
- ▼
46
- ┌───────────────────────────────────────┐
47
- │ Step 2: 参数补全 │
48
- │ iteration 缺失 → 读 context.json │
49
- │ intent 推断 → 新增 or 变更 │
50
- └───────────────┬───────────────────────┘
51
- │
52
- ▼
53
- ┌───────────────────────────────────────┐
54
- │ Step 3: 前置校验 │
55
- │ - 当前迭代是否存在? │
56
- │ - 已有 Task 列表扫描 │
57
- │ - 变更类型判断(新增/变更) │
58
- │ - 附件检测(inbox/ 目录) │
59
- └───────────────┬───────────────────────┘
60
- │
61
- ▼
62
- ┌───────────────────────────────────────┐
63
- │ Step 4: 调用 speccore ask │
64
- └───────────────────────────────────────┘
65
- ```
66
-
67
- ---
68
-
69
- ## Step 1: 参数提取
70
-
71
- | 参数 | 短名 | 长名 | 必填 | 说明 |
72
- |:---|:---|:---|:---|:---|
73
- | iteration | -i | --iteration | 否 | 目标迭代名 |
74
- | prompt | -p | --prompt | 否 | 生成澄清 Prompt(传入用户原话)|
75
- | response | -r | --response | 否 | 应用 AI 澄清结果(JSON)|
76
- | file | -f | --file | 否 | 附件文件路径 |
77
- | task | -t | --task | 否 | 指定受影响的 Task |
78
-
79
- ---
80
-
81
- ## Step 2: 参数缺失 → 交互式提示
82
-
83
- ```
84
- 🔄 speccore change — 需求变更与新增
85
-
86
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
87
- 📋 当前环境
88
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
89
- 迭代: Iteration-001-meeting-system(从 context.json 读取)
90
- 已有任务: 3 个(Task-001, Task-002, Task-003)
91
-
92
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
93
- 📖 可用参数
94
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
95
- -I, --iteration <name> 目标迭代(默认: 当前迭代)
96
- -p, --prompt <text> 用户原始需求描述(用于生成澄清 Prompt)
97
- -r, --response <json> AI 澄清后的结构化结果(JSON)
98
- -f, --file <path> 附件文件路径
99
- -t, --task <id> 指定受影响的 Task(可选)
100
-
101
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
- 💡 使用示例
103
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
104
- /change --prompt "新增一个通知功能" # 生成澄清 Prompt
105
- /change --prompt "订单模块加个退款接口" # 变更现有功能
106
- /change --response '{...json...}' # 应用澄清结果
107
- /change --prompt "新增功能" -f ./PRD.pdf # 带附件的变更
108
-
109
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
110
- 🔄 核心流程
111
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
112
- 1. /change --prompt "你的需求描述" → 生成澄清 Prompt
113
- 2. AI 根据 Prompt 生成结构化 JSON → 展示给用户确认
114
- 3. 用户确认后 → /change --response '{JSON}'
115
- 4. CLI 解析 JSON 并写入文件 → 完成变更/新增
116
-
117
- 请补充 --prompt 参数后重新调用。
118
- ```
119
-
120
- ---
121
-
122
- ## Step 3: 前置校验
123
-
124
- ### 3.1 检查迭代是否存在
125
- ```bash
126
- # 检查迭代目录是否存在
127
- # 如果不存在 → 提示用户先创建迭代
128
- ```
129
-
130
- ### 3.2 扫描已有 Task
131
- ```bash
132
- # 读取 030-tasks/ 下的 Task 列表
133
- # 用于判断变更影响范围(直接/间接/无影响)
134
- ```
135
-
136
- ### 3.3 变更类型判断
137
- ```bash
138
- # 根据用户输入判断意图:
139
- # "新增/加/创建/实现 + 描述" → 🆕 新增需求
140
- # "{task} 需求变了/要改/修改" → 🔄 需求变更
141
- # 模糊描述 → AI 判断并询问用户
142
- ```
143
-
144
- ### 3.4 附件检测
145
- ```bash
146
- # 检查 .speccore/inbox/ 目录是否有文件
147
- # 检查用户是否通过 --file 指定了附件
148
- # 有附件时,澄清 Prompt 自动包含附件内容
149
- ```
150
-
151
- ---
152
-
153
- ## Step 4: 调用 speccore ask
154
-
155
- ```bash
156
- execute_command("speccore ask '处理需求变更...'")
157
- ```
158
-
159
- > ⚠️ 最终仍然调用 `speccore ask`,不要绕过 ask 引擎。
160
-
161
- ---
162
-
163
- ## 核心流程(保留)
164
-
165
- ```
166
- 用户自然语言输入(如 "新增一个通知功能" 或 "订单模块加个退款接口")
167
- │
168
- ▼
169
- ┌─ 1. 澄清 Prompt ──────────────────────────────────────┐
170
- │ execute_command("speccore change --prompt \"{用户原话}\"")│
171
- │ → CLI 输出澄清 Prompt(含附件 + 已有任务上下文) │
172
- └───────────────┬────────────────────────────────────────┘
173
- │
174
- ▼
175
- ┌─ 2. AI 澄清 ──────────────────────────────────────────┐
176
- │ 你(AI)根据 Prompt 生成结构化 JSON: │
177
- │ { │
178
- │ "intent": "new" | "change", │
179
- │ "structuredDesc": "结构化需求描述", │
180
- │ "keyPoints": ["功能要点1", "功能要点2"], │
181
- │ "acceptanceCriteria": ["验收标准1", "验收标准2"], │
182
- │ "impactReport": { "directTasks": [...], ... } │
183
- │ } │
184
- └───────────────┬────────────────────────────────────────┘
185
- │
186
- ▼
187
- ┌─ 3. ⚠️ 展示给用户确认(关键!)──────────────────────┐
188
- │ 将澄清结果以易读格式展示给用户: │
189
- │ │
190
- │ 📋 需求澄清结果: │
191
- │ - 意图: 🆕 新增 / 🔄 变更 │
192
- │ - 结构化描述: ... │
193
- │ - 功能要点: 1. ... 2. ... 3. ... │
194
- │ - 验收标准: ☐ ... ☐ ... │
195
- │ - 影响范围: Task-001(直接), Task-003(间接) │
196
- │ │
197
- │ 然后问用户: "以上理解是否正确?需要调整什么?" │
198
- │ │
199
- │ ┌─ 用户说"可以/确认" ─→ 进入步骤 4 │
200
- │ └─ 用户说"不对/要改" ─→ 根据反馈重新澄清(回步骤 2) │
201
- │ │
202
- │ ⚠️ 这一步不可跳过!必须让用户确认后才写入文件。 │
203
- └───────────────┬────────────────────────────────────────┘
204
- │ 用户确认
205
- ▼
206
- ┌─ 4. 持久化 ───────────────────────────────────────────┐
207
- │ execute_command("speccore change --response '{JSON}'")│
208
- │ → CLI 解析 JSON → 写入 REQ.md / CHANGE_SUMMARY.md │
209
- │ → 新增: 创建 Task 目录 + 00-specs/REQ.md │
210
- │ → 变更: 更新受影响任务的 Spec + 记录变更历史 │
211
- └───────────────┬────────────────────────────────────────┘
212
- │
213
- ▼
214
- ┌─ 5. 后续引导 ─────────────────────────────────────────┐
215
- │ 新增需求 → 引导用户: "接下来可以 analyze 或 split" │
216
- │ 需求变更 → 引导用户: "受影响任务需要 re-execute" │
217
- └───────────────────────────────────────────────────────┘
218
- ```
219
-
220
- ## 铁律
221
-
222
- 1. **澄清结果必须展示给用户确认** — 不能 AI 自己决定就写入文件
223
- 2. **用户不满意就反复澄清** — 直到用户说"可以"为止
224
- 3. **澄清 = 需求分析** — 结果必须持久化到 REQ.md,不是临时判断
225
- 4. **不要输出命令文本** — 用 execute_command 执行
13
+ 不要输出命令文本,不要分析意图,一切交给 speccore ask。
@@ -7,81 +7,6 @@ allowed-tools: ["Bash", "Read"]
7
7
  disable-model-invocation: false
8
8
  ---
9
9
 
10
- # spec-dashboard — 仪表盘(专属逻辑)
11
-
12
- > **定位**:`/dashboard` 快捷入口的专属预处理层
13
- > **原则**:不影响 `speccore ask` 的意图识别能力
14
-
15
- ---
16
-
17
- ## 调用方式
18
-
19
- ```
20
- /dashboard
21
- /dashboard --scope global
22
- ```
23
-
24
- ---
25
-
26
- ## 执行流程
27
-
28
- ```
29
- 用户输入 /dashboard
30
- │
31
- ▼
32
- ┌───────────────────────────────────────┐
33
- │ Step 1: 前置校验 │
34
- │ 检查 context.json 中是否有 currentIteration│
35
- └───────────────────────────────────────┘
36
- │
37
- ┌────┴────┐
38
- ▼ ▼
39
- 无迭代 有迭代
40
- │ │
41
- ▼ ▼
42
- 输出提示 调用 ask
43
- 引导创建 执行 dashboard
44
- ```
45
-
46
- ---
47
-
48
- ## 前置校验
49
-
50
- ### 检查活跃迭代
51
-
52
- ```bash
53
- # 读取 context.json 中的 currentIteration
54
- current=$(cat .speccore/local/context.json 2>/dev/null | grep -o '"currentIteration"[^,]*' | grep -o '"[^"]*"' | tail -1 | tr -d '"')
55
-
56
- if [ -n "$current" ] && [ "$current" != "null" ]; then
57
- echo "has-iteration: $current"
58
- else
59
- echo "no-iteration"
60
- fi
61
- ```
62
-
63
- ### 无迭代时的交互提示
64
-
65
- ```
66
- 📊 仪表盘
67
-
68
- 当前没有活跃的迭代。
69
-
70
- 建议操作:
71
- speccore iteration create -n <迭代名称> # 创建新迭代
72
- speccore context --set --iteration <名称> # 切换到已有迭代
73
-
74
- 创建迭代后,可重新执行 /dashboard 查看项目进度。
75
- ```
76
-
77
- ---
78
-
79
- ## 执行
80
-
81
- 有活跃迭代时,直接调用 `speccore ask`:
82
-
83
- ```
84
- 直接执行: execute_command("speccore ask '显示项目仪表盘'")
10
+ 直接执行: execute_command("speccore ask '用户原话'")
85
11
 
86
12
  不要输出命令文本,不要分析意图,一切交给 speccore ask。
87
- ```