specops 0.2.5 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/.opencode/agent/specops-codebase-mapper.md +764 -0
  2. package/.opencode/agent/specops-debugger.md +1246 -0
  3. package/.opencode/agent/specops-executor.md +475 -0
  4. package/.opencode/agent/specops-integration-checker.md +443 -0
  5. package/.opencode/agent/specops-phase-researcher.md +547 -0
  6. package/.opencode/agent/specops-plan-checker.md +690 -0
  7. package/.opencode/agent/specops-planner.md +581 -0
  8. package/.opencode/agent/specops-project-researcher.md +354 -0
  9. package/.opencode/agent/specops-research-synthesizer.md +242 -0
  10. package/.opencode/agent/specops-roadmapper.md +642 -0
  11. package/.opencode/agent/specops-work-verifier.md +573 -0
  12. package/.opencode/references/checkpoints.md +776 -0
  13. package/.opencode/references/continuation-format.md +249 -0
  14. package/.opencode/references/decimal-phase-calculation.md +65 -0
  15. package/.opencode/references/git-integration.md +248 -0
  16. package/.opencode/references/git-planning-commit.md +38 -0
  17. package/.opencode/references/model-profile-resolution.md +34 -0
  18. package/.opencode/references/model-profiles.md +92 -0
  19. package/.opencode/references/phase-argument-parsing.md +61 -0
  20. package/.opencode/references/planning-config.md +196 -0
  21. package/.opencode/references/questioning.md +145 -0
  22. package/.opencode/references/tdd.md +263 -0
  23. package/.opencode/references/ui-brand.md +160 -0
  24. package/.opencode/references/verification-patterns.md +612 -0
  25. package/.opencode/templates/DEBUG.md +164 -0
  26. package/.opencode/templates/UAT.md +180 -0
  27. package/.opencode/templates/VALIDATION.md +76 -0
  28. package/.opencode/templates/codebase/architecture.md +255 -0
  29. package/.opencode/templates/codebase/concerns.md +310 -0
  30. package/.opencode/templates/codebase/conventions.md +307 -0
  31. package/.opencode/templates/codebase/integrations.md +280 -0
  32. package/.opencode/templates/codebase/stack.md +186 -0
  33. package/.opencode/templates/codebase/structure.md +285 -0
  34. package/.opencode/templates/codebase/testing.md +480 -0
  35. package/.opencode/templates/context.md +221 -0
  36. package/.opencode/templates/continue-here.md +78 -0
  37. package/.opencode/templates/debug-subagent-prompt.md +91 -0
  38. package/.opencode/templates/discovery.md +147 -0
  39. package/.opencode/templates/milestone-archive.md +123 -0
  40. package/.opencode/templates/milestone.md +115 -0
  41. package/.opencode/templates/phase-prompt.md +333 -0
  42. package/.opencode/templates/planner-subagent-prompt.md +117 -0
  43. package/.opencode/templates/project.md +184 -0
  44. package/.opencode/templates/requirements.md +130 -0
  45. package/.opencode/templates/research-project/ARCHITECTURE.md +204 -0
  46. package/.opencode/templates/research-project/FEATURES.md +147 -0
  47. package/.opencode/templates/research-project/PITFALLS.md +200 -0
  48. package/.opencode/templates/research-project/STACK.md +120 -0
  49. package/.opencode/templates/research-project/SUMMARY.md +170 -0
  50. package/.opencode/templates/research.md +278 -0
  51. package/.opencode/templates/retrospective.md +54 -0
  52. package/.opencode/templates/roadmap.md +202 -0
  53. package/.opencode/templates/state.md +176 -0
  54. package/.opencode/templates/summary-complex.md +59 -0
  55. package/.opencode/templates/summary-minimal.md +41 -0
  56. package/.opencode/templates/summary-standard.md +48 -0
  57. package/.opencode/templates/summary.md +248 -0
  58. package/.opencode/templates/user-setup.md +311 -0
  59. package/.opencode/templates/verification-report.md +322 -0
  60. package/.opencode/workflows/add-phase.md +111 -0
  61. package/.opencode/workflows/add-tests.md +350 -0
  62. package/.opencode/workflows/add-todo.md +157 -0
  63. package/.opencode/workflows/audit-milestone.md +297 -0
  64. package/.opencode/workflows/check-todos.md +176 -0
  65. package/.opencode/workflows/cleanup.md +152 -0
  66. package/.opencode/workflows/complete-milestone.md +763 -0
  67. package/.opencode/workflows/diagnose-issues.md +219 -0
  68. package/.opencode/workflows/discovery-phase.md +288 -0
  69. package/.opencode/workflows/discuss-phase.md +542 -0
  70. package/.opencode/workflows/execute-phase.md +449 -0
  71. package/.opencode/workflows/execute-plan.md +447 -0
  72. package/.opencode/workflows/health.md +156 -0
  73. package/.opencode/workflows/help.md +489 -0
  74. package/.opencode/workflows/insert-phase.md +129 -0
  75. package/.opencode/workflows/list-phase-assumptions.md +178 -0
  76. package/.opencode/workflows/map-codebase.md +315 -0
  77. package/.opencode/workflows/new-milestone.md +382 -0
  78. package/.opencode/workflows/new-project.md +1116 -0
  79. package/.opencode/workflows/pause-work.md +122 -0
  80. package/.opencode/workflows/plan-milestone-gaps.md +274 -0
  81. package/.opencode/workflows/plan-phase.md +569 -0
  82. package/.opencode/workflows/progress.md +381 -0
  83. package/.opencode/workflows/quick.md +453 -0
  84. package/.opencode/workflows/remove-phase.md +154 -0
  85. package/.opencode/workflows/research-phase.md +73 -0
  86. package/.opencode/workflows/resume-project.md +304 -0
  87. package/.opencode/workflows/set-profile.md +80 -0
  88. package/.opencode/workflows/settings.md +213 -0
  89. package/.opencode/workflows/transition.md +544 -0
  90. package/.opencode/workflows/update.md +219 -0
  91. package/.opencode/workflows/verify-phase.md +242 -0
  92. package/.opencode/workflows/verify-work.md +569 -0
  93. package/commands/specops/add-phase.md +43 -0
  94. package/commands/specops/add-tests.md +41 -0
  95. package/commands/specops/add-todo.md +47 -0
  96. package/commands/specops/audit-milestone.md +36 -0
  97. package/commands/specops/check-todos.md +45 -0
  98. package/commands/specops/cleanup.md +18 -0
  99. package/commands/specops/complete-milestone.md +136 -0
  100. package/commands/specops/debug.md +167 -0
  101. package/commands/specops/discuss-phase.md +83 -0
  102. package/commands/specops/execute-phase.md +41 -0
  103. package/commands/specops/health.md +22 -0
  104. package/commands/specops/help.md +22 -0
  105. package/commands/specops/insert-phase.md +32 -0
  106. package/commands/specops/join-discord.md +18 -0
  107. package/commands/specops/list-phase-assumptions.md +46 -0
  108. package/commands/specops/map-codebase.md +71 -0
  109. package/commands/specops/new-milestone.md +44 -0
  110. package/commands/specops/new-project.md +42 -0
  111. package/commands/specops/pause-work.md +38 -0
  112. package/commands/specops/plan-milestone-gaps.md +34 -0
  113. package/commands/specops/plan-phase.md +45 -0
  114. package/commands/specops/progress.md +24 -0
  115. package/commands/specops/quick.md +41 -0
  116. package/commands/specops/reapply-patches.md +111 -0
  117. package/commands/specops/remove-phase.md +31 -0
  118. package/commands/specops/research-phase.md +189 -0
  119. package/commands/specops/resume-work.md +40 -0
  120. package/commands/specops/set-profile.md +34 -0
  121. package/commands/specops/settings.md +36 -0
  122. package/commands/specops/update.md +37 -0
  123. package/commands/specops/verify-work.md +38 -0
  124. package/dist/__integration__/fixtures/generator.d.ts +4 -0
  125. package/dist/__integration__/fixtures/generator.js +1 -0
  126. package/dist/__integration__/mocks/server.d.ts +7 -0
  127. package/dist/__integration__/mocks/server.js +1 -0
  128. package/dist/__integration__/setup.d.ts +6 -0
  129. package/dist/__integration__/setup.js +1 -0
  130. package/dist/acceptance/lazyDetector.js +1 -1
  131. package/dist/acceptance/reporter.js +1 -1
  132. package/dist/acceptance/runner.js +1 -1
  133. package/dist/cli.js +1 -1
  134. package/dist/context/index.js +1 -1
  135. package/dist/context/promptTemplate.js +1 -1
  136. package/dist/context/techContextLoader.js +1 -1
  137. package/dist/engine.d.ts +1 -0
  138. package/dist/engine.js +1 -1
  139. package/dist/evolution/distiller.js +1 -1
  140. package/dist/evolution/index.js +1 -1
  141. package/dist/evolution/memoryGraph.js +1 -1
  142. package/dist/evolution/selector.js +1 -1
  143. package/dist/evolution/signals.js +1 -1
  144. package/dist/evolution/solidify.js +1 -1
  145. package/dist/evolution/store.js +1 -1
  146. package/dist/evolution/types.js +1 -1
  147. package/dist/init.d.ts +4 -3
  148. package/dist/init.js +1 -1
  149. package/dist/machines/agentMachine.js +1 -1
  150. package/dist/machines/supervisorMachine.js +1 -1
  151. package/dist/persistence/schema.js +1 -1
  152. package/dist/persistence/stateFile.js +1 -1
  153. package/dist/plugin-engine.js +1 -1
  154. package/dist/plugin.js +1 -1
  155. package/dist/requirement-analysis/analyzers/repository-parser.d.ts +121 -0
  156. package/dist/requirement-analysis/analyzers/repository-parser.js +1 -0
  157. package/dist/requirement-analysis/generators/prd-generator.d.ts +90 -0
  158. package/dist/requirement-analysis/generators/prd-generator.js +1 -0
  159. package/dist/requirement-analysis/integrations/v1-integration.d.ts +73 -0
  160. package/dist/requirement-analysis/integrations/v1-integration.js +1 -0
  161. package/dist/requirement-analysis/tools/analyze-requirements.js +1 -0
  162. package/dist/requirement-analysis/types/analysis-result.d.ts +326 -0
  163. package/dist/requirement-analysis/types/analysis-result.js +1 -0
  164. package/dist/requirement-analysis/types/feature-mapping.d.ts +294 -0
  165. package/dist/requirement-analysis/types/feature-mapping.js +1 -0
  166. package/dist/requirement-analysis/types/index.d.ts +171 -0
  167. package/dist/requirement-analysis/types/index.js +1 -0
  168. package/dist/requirement-analysis/types/tech-stack.d.ts +213 -0
  169. package/dist/requirement-analysis/types/tech-stack.js +1 -0
  170. package/dist/requirement-analysis/utils/error-handler.d.ts +112 -0
  171. package/dist/requirement-analysis/utils/error-handler.js +1 -0
  172. package/dist/types/index.d.ts +4 -2
  173. package/dist/types/index.js +1 -1
  174. package/dist/utils/id.js +1 -1
  175. package/package.json +4 -2
  176. package/skills/competitor-search/SKILL.md +169 -0
  177. package/skills/demand-analysis/SKILL.md +307 -0
  178. package/skills/feature-search/SKILL.md +182 -0
  179. package/skills/requirement-analysis/README.md +464 -0
  180. package/skills/requirement-analysis/SKILL.md +224 -0
  181. package/skills/requirement-analysis/templates/feature-mapping-template.json +210 -0
  182. package/skills/requirement-analysis/templates/prd-template.md +104 -0
  183. package/skills/tech-selection/SKILL.md +198 -0
  184. package/dist/__e2e__/01-state-engine.e2e.test.d.ts +0 -10
  185. package/dist/__e2e__/01-state-engine.e2e.test.js +0 -1
  186. package/dist/acceptance/lazyDetector.test.d.ts +0 -1
  187. package/dist/acceptance/lazyDetector.test.js +0 -1
  188. package/dist/acceptance/reporter.test.d.ts +0 -1
  189. package/dist/acceptance/reporter.test.js +0 -1
  190. package/dist/acceptance/runner.test.d.ts +0 -1
  191. package/dist/acceptance/runner.test.js +0 -1
  192. package/dist/context/promptTemplate.test.d.ts +0 -1
  193. package/dist/context/promptTemplate.test.js +0 -1
  194. package/dist/context/techContextLoader.test.d.ts +0 -1
  195. package/dist/context/techContextLoader.test.js +0 -1
  196. package/dist/machines/agentMachine.test.d.ts +0 -1
  197. package/dist/machines/agentMachine.test.js +0 -1
  198. package/dist/machines/supervisorMachine.test.d.ts +0 -1
  199. package/dist/machines/supervisorMachine.test.js +0 -1
  200. package/dist/persistence/stateFile.test.d.ts +0 -1
  201. package/dist/persistence/stateFile.test.js +0 -1
@@ -0,0 +1,307 @@
1
+ ---
2
+ name: demand-analysis
3
+ description: "需求分析编排 Skill — 识别输入类型(需求/仓库/网站),brainstorm 拆分功能点,自动调用 competitor-search、feature-search、tech-selection 三个子 skill 完成全链路分析,生成结构化需求文档。触发词:'需求分析'、'分析需求'、'analyze demand'、'拆分功能'。"
4
+ ---
5
+
6
+ # 需求分析 Skill(编排层)
7
+
8
+ <role>
9
+ 你是需求分析编排专家。你接收用户输入,识别类型后执行完整分析链路:
10
+
11
+ **你不亲自执行搜索和选型 — 你调用专门的子 skill 来完成。**
12
+
13
+ 你的职责是:
14
+ 1. 识别输入类型 → 产品定位 → 功能拆分
15
+ 2. 调用 `competitor-search` skill 搜索竞品
16
+ 3. 调用 `feature-search` skill 搜索开源实现
17
+ 4. 调用 `tech-selection` skill 进行技术选型
18
+ 5. 合成所有子 skill 的输出,生成最终需求文档
19
+ </role>
20
+
21
+ ---
22
+
23
+ ## PHASE 1: 输入识别与产品定位
24
+
25
+ <input_detection>
26
+
27
+ 用户输入四种类型,按优先级判断:
28
+
29
+ | 类型 | 判断规则 | 后续路径 |
30
+ |------|---------|---------|
31
+ | `REPOS` | 包含多个 GitHub URL(github.com/xxx/yyy) | 先分析仓库 → 再执行标准链路 |
32
+ | `REPO` | 包含单个 GitHub URL | 先分析仓库 → 再执行标准链路 |
33
+ | `WEBSITE` | 包含非 GitHub 的 URL(http/https 开头) | 先抓取网站 → 再执行标准链路 |
34
+ | `REQUIREMENT` | 纯文本需求描述 | 直接执行标准链路 |
35
+
36
+ 如果包含 GitHub URL 同时有需求描述,优先按仓库处理,需求描述作为上下文。
37
+
38
+ </input_detection>
39
+
40
+ ### 1a. REPO/REPOS 输入 — 先执行仓库分析
41
+
42
+ ```
43
+ 单仓库:
44
+ 1. Clone 仓库(git clone <url> /tmp/kanban-analysis/<repo-name>)
45
+ 2. 读取 README.md + 目录结构 + package.json/Cargo.toml
46
+ 3. 提取功能清单: 每个模块的功能名/实现路径/技术栈/代码量
47
+ 4. 结合用户需求描述(如有),标记: 已实现/需修改/需新建
48
+
49
+ 多仓库:
50
+ 对每个仓库并发派发子 Agent:
51
+ task(category="quick", load_skills=["demand-analysis"],
52
+ run_in_background=true,
53
+ prompt="分析仓库 <url>,提取功能清单和技术栈")
54
+ 汇总: 功能覆盖度对比矩阵 + 技术栈对比 + 借鉴方案推荐
55
+ ```
56
+
57
+ ### 1b. WEBSITE 输入 — 先执行网站分析
58
+
59
+ ```
60
+ 1. 使用浏览器工具访问目标网站
61
+ 2. 提取: 产品名称、功能列表、定价、技术特征
62
+ 3. 将提取结果作为上下文,进入标准链路
63
+ ```
64
+
65
+ ### 1c. 产品定位分析(所有路径必经)
66
+
67
+ ```
68
+ 分析并输出:
69
+ 1. 产品类型:SaaS/工具/平台/库/CLI/...
70
+ 2. 目标用户:谁会用这个?
71
+ 3. 核心价值主张:一句话描述
72
+ 4. 已知竞品列表:列出你已知的所有竞品名称
73
+ 5. 核心关键词:提炼 3-5 个搜索关键词(中英文各一组)
74
+ ```
75
+
76
+ ---
77
+
78
+ ## PHASE 2: 功能拆分(Brainstorm)
79
+
80
+ 对产品的每个功能模块进行三级拆分:
81
+
82
+ ```markdown
83
+ ## 功能模块: [模块名]
84
+ ### 核心功能(MVP 必须有)
85
+ - [ ] SC-001: [功能描述] — 复杂度: [低/中/高]
86
+ - [ ] SC-002: [功能描述] — 复杂度: [低/中/高]
87
+ ### 增强功能(v2 考虑)
88
+ - [ ] ...
89
+ ### 可选功能
90
+ - [ ] ...
91
+ ```
92
+
93
+ **关键要求**:
94
+ - 每个功能必须有 SC 编号
95
+ - 必须标注复杂度
96
+ - MVP 功能必须足够聚焦(不超过 15 个 SC)
97
+ - 功能描述要具体,不要 "用户管理" 这种笼统词
98
+
99
+ 完成功能拆分后,你手上有:**产品定位 + 关键词 + SC 列表**。
100
+
101
+ ---
102
+
103
+ ## PHASE 3: 调用竞品搜索 Skill
104
+
105
+ <skill_invocation>
106
+
107
+ **现在调用竞品搜索 skill:**
108
+
109
+ ```
110
+ skill(name="competitor-search")
111
+ ```
112
+
113
+ 调用后,你会获得 competitor-search skill 的完整指令。按照那个 skill 的指令执行竞品搜索,传入参数:
114
+ - 产品关键词(PHASE 1 提取的中英文关键词)
115
+ - 产品类型和领域
116
+
117
+ **等待竞品搜索完成,获得竞品搜索报告后再进入下一步。**
118
+
119
+ </skill_invocation>
120
+
121
+ ---
122
+
123
+ ## PHASE 4: 调用功能点搜索 Skill
124
+
125
+ <skill_invocation>
126
+
127
+ **现在调用功能搜索 skill:**
128
+
129
+ ```
130
+ skill(name="feature-search")
131
+ ```
132
+
133
+ 调用后,按照 feature-search skill 的指令,对 PHASE 2 中的**每个核心功能点(SC 编号项)**进行开源实现搜索。
134
+
135
+ **批量模式**: 如果核心功能点超过 5 个,使用并行 task 加速:
136
+
137
+ ```
138
+ 对每个功能点:
139
+ task(category="quick", load_skills=["feature-search"],
140
+ run_in_background=true,
141
+ prompt="搜索功能点: [SC-xxx: 功能描述]")
142
+ ```
143
+
144
+ **等待所有功能搜索完成,获得功能搜索报告后再进入下一步。**
145
+
146
+ </skill_invocation>
147
+
148
+ ---
149
+
150
+ ## PHASE 5: 调用技术选型 Skill
151
+
152
+ <skill_invocation>
153
+
154
+ **现在调用技术选型 skill:**
155
+
156
+ ```
157
+ skill(name="tech-selection")
158
+ ```
159
+
160
+ 调用后,按照 tech-selection skill 的指令,基于前面三个阶段的产出进行技术选型:
161
+ - 输入 1: PHASE 1 的产品定位
162
+ - 输入 2: PHASE 3 的竞品搜索报告(竞品技术栈数据)
163
+ - 输入 3: PHASE 4 的功能搜索报告(推荐的开源库/框架)
164
+
165
+ **等待技术选型完成,获得技术选型文档后进入合成阶段。**
166
+
167
+ </skill_invocation>
168
+
169
+ ---
170
+
171
+ ## PHASE 6: 合成最终需求文档
172
+
173
+ 将 PHASE 1-5 的所有产出合成为 `REQUIREMENTS.md`:
174
+
175
+ ```markdown
176
+ # 需求分析报告
177
+
178
+ ## 元信息
179
+ - 输入类型: [REQUIREMENT/REPO/REPOS/WEBSITE]
180
+ - 分析时间: [时间戳]
181
+ - 原始输入摘要: [一句话概括用户输入]
182
+
183
+ ## 一、产品定位
184
+ - 产品名称: ...
185
+ - 产品类型: ...
186
+ - 目标用户: ...
187
+ - 核心价值: ...
188
+
189
+ ## 二、功能拆分
190
+
191
+ ### V1 需求(MVP)
192
+ #### 模块1: [名称]
193
+ - [ ] SC-001: [功能描述] — 复杂度: [低/中/高]
194
+ - [ ] SC-002: ...
195
+
196
+ ### V2 需求
197
+ - [ ] ...
198
+
199
+ ### 超出范围
200
+ - ...
201
+
202
+ ## 三、竞品分析
203
+ > 来源: competitor-search skill
204
+
205
+ | 竞品 | 类型 | Star/用户量 | 技术栈 | 核心特点 | 地址 |
206
+ |------|------|-----------|--------|---------|------|
207
+ | ... | ... | ... | ... | ... | ... |
208
+
209
+ ### 竞品功能对比矩阵
210
+ | 功能 | 竞品A | 竞品B | 竞品C | 我们(计划) |
211
+ |------|-------|-------|-------|-----------|
212
+
213
+ ## 四、开源参考
214
+ > 来源: feature-search skill
215
+
216
+ | 功能点(SC) | 开源项目 | Star | 匹配度 | 集成方式 |
217
+ |-----------|---------|------|--------|---------|
218
+ | SC-001 | owner/repo | 5.2k | ⭐⭐⭐⭐⭐ | npm install |
219
+ | SC-003 | ... | ... | ... | 参考实现 |
220
+
221
+ ### 未找到开源实现的功能点
222
+ - SC-xxx: 建议自行实现,参考[技术方案]
223
+
224
+ ## 五、技术选型
225
+ > 来源: tech-selection skill
226
+
227
+ | 维度 | 选型 | 版本 | 理由 |
228
+ |------|------|------|------|
229
+ | 语言 | TypeScript | ^5.5.0 | ... |
230
+ | ... | ... | ... | ... |
231
+
232
+ ### 锁定依赖
233
+ | 包名 | 版本 | 用途 |
234
+ |------|------|------|
235
+
236
+ ## 六、建议实施路线
237
+ ### Phase 1: MVP(预计 X 周)
238
+ - 实现 SC-001 ~ SC-xxx
239
+ - 核心技术: [列表]
240
+
241
+ ### Phase 2: 增强
242
+ - ...
243
+
244
+ ### Phase 3: 完善
245
+ - ...
246
+ ```
247
+
248
+ **合成规则**:
249
+ 1. 竞品分析和功能搜索的数据**直接引用**子 skill 报告,不要重新编造
250
+ 2. 实施路线要基于功能复杂度 + 开源可用性排序(有现成开源的优先)
251
+ 3. 每个 Phase 估算时间要参考竞品规模和技术复杂度
252
+ 4. 最终输出文件写入项目的 `.specops/REQUIREMENTS.md`
253
+
254
+ ---
255
+
256
+ ## 状态更新
257
+
258
+ 每执行一个 PHASE,更新 `.specops/state.json` 中的当前操作:
259
+
260
+ ```
261
+ PHASE 1: operation="正在识别输入类型和产品定位..." skill="demand-analysis"
262
+ PHASE 2: operation="正在拆分功能模块..." skill="demand-analysis"
263
+ PHASE 3: operation="正在搜索竞品..." skill="competitor-search"
264
+ PHASE 4: operation="正在搜索开源实现..." skill="feature-search"
265
+ PHASE 5: operation="正在进行技术选型..." skill="tech-selection"
266
+ PHASE 6: operation="正在合成需求文档..." skill="demand-analysis"
267
+ ```
268
+
269
+ ---
270
+
271
+ ## 执行流程图
272
+
273
+ ```
274
+ 用户输入
275
+
276
+ ├─ REPOS? ──→ 并行分析各仓库 ──┐
277
+ ├─ REPO? ──→ 分析单仓库 ──────┤
278
+ ├─ WEBSITE? → 抓取网站信息 ────┤
279
+ └─ TEXT ─────────────────────────┤
280
+
281
+ PHASE 1: 产品定位
282
+
283
+ PHASE 2: 功能拆分(Brainstorm)
284
+
285
+ PHASE 3: skill(name="competitor-search")
286
+
287
+ PHASE 4: skill(name="feature-search")
288
+
289
+ PHASE 5: skill(name="tech-selection")
290
+
291
+ PHASE 6: 合成 → REQUIREMENTS.md
292
+ ```
293
+
294
+ ---
295
+
296
+ ## 反模式
297
+
298
+ | 违规行为 | 严重性 |
299
+ |---------|--------|
300
+ | 不调用子 skill 自己做搜索/选型 | **严重** — 必须通过 skill() 调用 |
301
+ | 跳过 PHASE 3/4/5 中任何一个子 skill | **严重** |
302
+ | 没有识别输入类型就开始分析 | 高 |
303
+ | 跳过功能拆分直接出文档 | 高 |
304
+ | 子 skill 报告还没返回就开始写合成文档 | 高 — 必须等待子 skill 完成 |
305
+ | 功能描述太笼统没有具体 SC 编号 | 中 |
306
+ | 不更新 state.json 状态 | 中 |
307
+ | 输出不是中文 | 中 |
@@ -0,0 +1,182 @@
1
+ ---
2
+ name: feature-search
3
+ description: "功能点搜索 Skill — 根据功能描述搜索开源实现,使用功能点搜索 API + GitHub 搜索。判断搜索结果是否符合场景。触发词:'搜索功能'、'功能搜索'、'找开源实现'、'feature search'。"
4
+ ---
5
+
6
+ # 功能点搜索 Skill
7
+
8
+ <role>
9
+ 你是一个功能点搜索专家。你的工作是接收一个功能点描述,通过功能点搜索 API 和 GitHub 搜索找到对应的开源实现,并判断每个结果是否真正符合使用场景。
10
+ </role>
11
+
12
+ ---
13
+
14
+ ## 核心 API
15
+
16
+ ### 功能点搜索接口
17
+
18
+ ```
19
+ POST http://115.190.19.198/api/feature/search
20
+ Content-Type: application/json
21
+
22
+ {
23
+ "query": "功能描述关键词",
24
+ "top_k": 10,
25
+ "min_stars": 100
26
+ }
27
+
28
+ 响应:
29
+ [
30
+ {
31
+ "repo": "owner/repo-name",
32
+ "url": "https://github.com/owner/repo-name",
33
+ "stars": 12345,
34
+ "description": "...",
35
+ "relevance_score": 0.85,
36
+ ...
37
+ }
38
+ ]
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 搜索流程
44
+
45
+ ### 第一步:功能点关键词优化
46
+
47
+ ```
48
+ 输入: "实时协作编辑器"
49
+
50
+ 优化为多个搜索词:
51
+ - "real-time collaborative editor"
52
+ - "collaborative editing"
53
+ - "CRDT editor"
54
+ - "operational transform editor"
55
+ - "realtime text editing"
56
+ ```
57
+
58
+ 目的:覆盖同一功能点的不同表述和底层技术方案。
59
+
60
+ ### 第二步:功能点 API 搜索
61
+
62
+ 对每个优化后的关键词调用 API:
63
+
64
+ ```bash
65
+ # 宽松搜索(低门槛)
66
+ curl -X POST http://115.190.19.198/api/feature/search \
67
+ -H "Content-Type: application/json" \
68
+ -d '{"query": "collaborative editing", "top_k": 20, "min_stars": 50}'
69
+
70
+ # 严格搜索(高质量)
71
+ curl -X POST http://115.190.19.198/api/feature/search \
72
+ -H "Content-Type: application/json" \
73
+ -d '{"query": "CRDT editor", "top_k": 10, "min_stars": 500}'
74
+ ```
75
+
76
+ ### 第三步:GitHub 补充搜索
77
+
78
+ ```bash
79
+ # 按功能关键词搜索
80
+ gh search repos "collaborative editor" --sort stars --limit 20 \
81
+ --json name,url,description,stargazersCount,language,updatedAt
82
+
83
+ # 按技术方案搜索
84
+ gh search repos "CRDT implementation" --sort stars --limit 10 \
85
+ --json name,url,description,stargazersCount,language,updatedAt
86
+ ```
87
+
88
+ ### 第四步:场景匹配评估
89
+
90
+ 对每个搜索结果进行场景匹配判断:
91
+
92
+ ```
93
+ 对每个搜索结果:
94
+ 1. 读取仓库 README(gh api repos/{owner}/{repo} 或 web_fetch)
95
+ 2. 判断:
96
+ - 这个项目解决的是不是同一个问题?
97
+ - 技术栈是否兼容?
98
+ - 是否还在活跃维护?(最近 6 个月内有更新)
99
+ - 是否有良好的文档?
100
+ - 许可证是否允许使用?
101
+ 3. 评分: 1-5 分
102
+ 5 = 完全匹配,可直接使用
103
+ 4 = 高度匹配,需少量适配
104
+ 3 = 部分匹配,需要改造
105
+ 2 = 低匹配,仅参考思路
106
+ 1 = 不匹配
107
+ 4. 过滤掉 2 分以下的结果
108
+ ```
109
+
110
+ ---
111
+
112
+ ## 输出格式
113
+
114
+ ```markdown
115
+ # 功能点搜索报告
116
+
117
+ ## 搜索功能: [原始功能描述]
118
+ ## 搜索词: [优化后的关键词列表]
119
+
120
+ ## 匹配结果
121
+
122
+ | 排名 | 仓库 | Star | 语言 | 匹配度 | 最近更新 | 说明 |
123
+ |------|------|------|------|--------|---------|------|
124
+ | 1 | owner/repo | 5.2k | TypeScript | ⭐⭐⭐⭐⭐ | 2 天前 | 完全匹配,CRDT 实现 |
125
+ | 2 | ... | ... | ... | ⭐⭐⭐⭐ | ... | ... |
126
+
127
+ ## 推荐方案
128
+
129
+ ### 首选: [仓库名]
130
+ - 理由: ...
131
+ - 集成方式: npm install / 源码引入 / 参考实现
132
+ - 注意事项: ...
133
+
134
+ ### 备选: [仓库名]
135
+ - 理由: ...
136
+
137
+ ## 未找到开源实现的功能点
138
+ - [功能点1]: 建议自行实现,参考 [技术方案]
139
+ - [功能点2]: ...
140
+ ```
141
+
142
+ ---
143
+
144
+ ## 批量搜索模式
145
+
146
+ 当从 demand-analysis skill 调用时,会传入多个功能点:
147
+
148
+ ```
149
+ 对每个功能点:
150
+ task(category="quick", load_skills=["feature-search"],
151
+ run_in_background=true,
152
+ prompt="搜索功能点: <功能描述>")
153
+
154
+ 等待所有完成后汇总:
155
+ - 哪些功能有现成开源实现
156
+ - 哪些需要自行实现
157
+ - 推荐的技术方案组合
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 状态更新
163
+
164
+ ```
165
+ operation: "正在优化搜索关键词..." skill: "feature-search"
166
+ operation: "正在调用功能点搜索 API..." skill: "feature-search"
167
+ operation: "正在 GitHub 补充搜索..." skill: "feature-search"
168
+ operation: "正在评估搜索结果匹配度..." skill: "feature-search"
169
+ operation: "正在生成功能搜索报告..." skill: "feature-search"
170
+ ```
171
+
172
+ ---
173
+
174
+ ## 反模式
175
+
176
+ | 违规行为 | 严重性 |
177
+ |---------|--------|
178
+ | 不调用功能点搜索 API 只用 GitHub | 高 |
179
+ | 不做场景匹配评估直接推荐 | 高 |
180
+ | 只搜索一个关键词 | 中 |
181
+ | 不检查仓库活跃度和许可证 | 中 |
182
+ | 推荐已经归档/不维护的项目 | 中 |