specops 0.2.4 → 0.3.0

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 (160) 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 +469 -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 +575 -0
  8. package/.opencode/agent/specops-project-researcher.md +354 -0
  9. package/.opencode/agent/specops-research-synthesizer.md +239 -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/skills/demand-analysis/SKILL.md +142 -10
  26. package/.opencode/templates/DEBUG.md +164 -0
  27. package/.opencode/templates/UAT.md +180 -0
  28. package/.opencode/templates/VALIDATION.md +76 -0
  29. package/.opencode/templates/codebase/architecture.md +255 -0
  30. package/.opencode/templates/codebase/concerns.md +310 -0
  31. package/.opencode/templates/codebase/conventions.md +307 -0
  32. package/.opencode/templates/codebase/integrations.md +280 -0
  33. package/.opencode/templates/codebase/stack.md +186 -0
  34. package/.opencode/templates/codebase/structure.md +285 -0
  35. package/.opencode/templates/codebase/testing.md +480 -0
  36. package/.opencode/templates/context.md +221 -0
  37. package/.opencode/templates/continue-here.md +78 -0
  38. package/.opencode/templates/debug-subagent-prompt.md +91 -0
  39. package/.opencode/templates/discovery.md +147 -0
  40. package/.opencode/templates/milestone-archive.md +123 -0
  41. package/.opencode/templates/milestone.md +115 -0
  42. package/.opencode/templates/phase-prompt.md +333 -0
  43. package/.opencode/templates/planner-subagent-prompt.md +117 -0
  44. package/.opencode/templates/project.md +184 -0
  45. package/.opencode/templates/requirements.md +130 -0
  46. package/.opencode/templates/research-project/ARCHITECTURE.md +204 -0
  47. package/.opencode/templates/research-project/FEATURES.md +147 -0
  48. package/.opencode/templates/research-project/PITFALLS.md +200 -0
  49. package/.opencode/templates/research-project/STACK.md +120 -0
  50. package/.opencode/templates/research-project/SUMMARY.md +170 -0
  51. package/.opencode/templates/research.md +278 -0
  52. package/.opencode/templates/retrospective.md +54 -0
  53. package/.opencode/templates/roadmap.md +202 -0
  54. package/.opencode/templates/state.md +176 -0
  55. package/.opencode/templates/summary-complex.md +59 -0
  56. package/.opencode/templates/summary-minimal.md +41 -0
  57. package/.opencode/templates/summary-standard.md +48 -0
  58. package/.opencode/templates/summary.md +248 -0
  59. package/.opencode/templates/user-setup.md +311 -0
  60. package/.opencode/templates/verification-report.md +322 -0
  61. package/.opencode/workflows/add-phase.md +111 -0
  62. package/.opencode/workflows/add-tests.md +350 -0
  63. package/.opencode/workflows/add-todo.md +157 -0
  64. package/.opencode/workflows/audit-milestone.md +297 -0
  65. package/.opencode/workflows/check-todos.md +176 -0
  66. package/.opencode/workflows/cleanup.md +152 -0
  67. package/.opencode/workflows/complete-milestone.md +763 -0
  68. package/.opencode/workflows/diagnose-issues.md +219 -0
  69. package/.opencode/workflows/discovery-phase.md +288 -0
  70. package/.opencode/workflows/discuss-phase.md +542 -0
  71. package/.opencode/workflows/execute-phase.md +449 -0
  72. package/.opencode/workflows/execute-plan.md +447 -0
  73. package/.opencode/workflows/health.md +156 -0
  74. package/.opencode/workflows/help.md +489 -0
  75. package/.opencode/workflows/insert-phase.md +129 -0
  76. package/.opencode/workflows/list-phase-assumptions.md +178 -0
  77. package/.opencode/workflows/map-codebase.md +315 -0
  78. package/.opencode/workflows/new-milestone.md +382 -0
  79. package/.opencode/workflows/new-project.md +1116 -0
  80. package/.opencode/workflows/pause-work.md +122 -0
  81. package/.opencode/workflows/plan-milestone-gaps.md +274 -0
  82. package/.opencode/workflows/plan-phase.md +569 -0
  83. package/.opencode/workflows/progress.md +381 -0
  84. package/.opencode/workflows/quick.md +453 -0
  85. package/.opencode/workflows/remove-phase.md +154 -0
  86. package/.opencode/workflows/research-phase.md +73 -0
  87. package/.opencode/workflows/resume-project.md +304 -0
  88. package/.opencode/workflows/set-profile.md +80 -0
  89. package/.opencode/workflows/settings.md +213 -0
  90. package/.opencode/workflows/transition.md +544 -0
  91. package/.opencode/workflows/update.md +219 -0
  92. package/.opencode/workflows/verify-phase.md +242 -0
  93. package/.opencode/workflows/verify-work.md +569 -0
  94. package/commands/specops/add-phase.md +43 -0
  95. package/commands/specops/add-tests.md +41 -0
  96. package/commands/specops/add-todo.md +47 -0
  97. package/commands/specops/audit-milestone.md +36 -0
  98. package/commands/specops/check-todos.md +45 -0
  99. package/commands/specops/cleanup.md +18 -0
  100. package/commands/specops/complete-milestone.md +136 -0
  101. package/commands/specops/debug.md +167 -0
  102. package/commands/specops/discuss-phase.md +83 -0
  103. package/commands/specops/execute-phase.md +41 -0
  104. package/commands/specops/health.md +22 -0
  105. package/commands/specops/help.md +22 -0
  106. package/commands/specops/insert-phase.md +32 -0
  107. package/commands/specops/join-discord.md +18 -0
  108. package/commands/specops/list-phase-assumptions.md +46 -0
  109. package/commands/specops/map-codebase.md +71 -0
  110. package/commands/specops/new-milestone.md +44 -0
  111. package/commands/specops/new-project.md +42 -0
  112. package/commands/specops/pause-work.md +38 -0
  113. package/commands/specops/plan-milestone-gaps.md +34 -0
  114. package/commands/specops/plan-phase.md +45 -0
  115. package/commands/specops/progress.md +24 -0
  116. package/commands/specops/quick.md +41 -0
  117. package/commands/specops/reapply-patches.md +111 -0
  118. package/commands/specops/remove-phase.md +31 -0
  119. package/commands/specops/research-phase.md +189 -0
  120. package/commands/specops/resume-work.md +40 -0
  121. package/commands/specops/set-profile.md +34 -0
  122. package/commands/specops/settings.md +36 -0
  123. package/commands/specops/update.md +37 -0
  124. package/commands/specops/verify-work.md +38 -0
  125. package/dist/__e2e__/01-state-engine.e2e.test.js +1 -1
  126. package/dist/acceptance/lazyDetector.js +1 -1
  127. package/dist/acceptance/lazyDetector.test.js +1 -1
  128. package/dist/acceptance/reporter.js +1 -1
  129. package/dist/acceptance/reporter.test.js +1 -1
  130. package/dist/acceptance/runner.js +1 -1
  131. package/dist/acceptance/runner.test.js +1 -1
  132. package/dist/cli.js +1 -1
  133. package/dist/context/index.js +1 -1
  134. package/dist/context/promptTemplate.js +1 -1
  135. package/dist/context/promptTemplate.test.js +1 -1
  136. package/dist/context/techContextLoader.js +1 -1
  137. package/dist/context/techContextLoader.test.js +1 -1
  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/agentMachine.test.js +1 -1
  151. package/dist/machines/supervisorMachine.js +1 -1
  152. package/dist/machines/supervisorMachine.test.js +1 -1
  153. package/dist/persistence/schema.js +1 -1
  154. package/dist/persistence/stateFile.js +1 -1
  155. package/dist/persistence/stateFile.test.js +1 -1
  156. package/dist/plugin-engine.js +1 -1
  157. package/dist/plugin.js +1 -1
  158. package/dist/types/index.js +1 -1
  159. package/dist/utils/id.js +1 -1
  160. package/package.json +2 -1
@@ -0,0 +1,382 @@
1
+ <purpose>
2
+
3
+ 为现有项目启动新的里程碑周期。加载项目上下文,收集里程碑目标(来自 MILESTONE-CONTEXT.md 或对话),更新 PROJECT.md 和 STATE.md,可选运行并行研究,定义带 REQ-ID 的范围化需求,生成路线图规划器创建分阶段执行计划,并提交所有产物。相当于 new-project 的棕地版本。
4
+
5
+ </purpose>
6
+
7
+ <required_reading>
8
+
9
+ 在开始之前,阅读调用提示的 execution_context 中引用的所有文件。
10
+
11
+ </required_reading>
12
+
13
+ <process>
14
+
15
+ ## 1. 加载上下文
16
+
17
+ - 读取 PROJECT.md(现有项目、已验证的需求、决策)
18
+ - 读取 MILESTONES.md(之前交付了什么)
19
+ - 读取 STATE.md(待办事项、阻塞项)
20
+ - 检查 MILESTONE-CONTEXT.md(来自 /specops:discuss-milestone)
21
+
22
+ ## 2. 收集里程碑目标
23
+
24
+ **如果 MILESTONE-CONTEXT.md 存在:**
25
+ - 使用 discuss-milestone 中的功能和范围
26
+ - 展示摘要以获取确认
27
+
28
+ **如果没有上下文文件:**
29
+ - 展示上一个里程碑交付了什么
30
+ - 询问:"你接下来想构建什么?"
31
+ - 使用 AskUserQuestion 探索功能、优先级、约束、范围
32
+
33
+ ## 3. 确定里程碑版本
34
+
35
+ - 从 MILESTONES.md 解析上一个版本
36
+ - 建议下一个版本(v1.0 → v1.1,或 v2.0 用于主要版本)
37
+ - 与用户确认
38
+
39
+ ## 4. 更新 PROJECT.md
40
+
41
+ 添加/更新:
42
+
43
+ ```markdown
44
+ ## Current Milestone: v[X.Y] [Name]
45
+
46
+ **Goal:** [描述里程碑焦点的一句话]
47
+
48
+ **Target features:**
49
+ - [功能 1]
50
+ - [功能 2]
51
+ - [功能 3]
52
+ ```
53
+
54
+ 更新活跃需求部分和"Last updated"页脚。
55
+
56
+ ## 5. 更新 STATE.md
57
+
58
+ ```markdown
59
+ ## Current Position
60
+
61
+ Phase: Not started (defining requirements)
62
+ Plan: —
63
+ Status: Defining requirements
64
+ Last activity: [today] — Milestone v[X.Y] started
65
+ ```
66
+
67
+ 保留上一个里程碑的 Accumulated Context 部分。
68
+
69
+ ## 6. 清理并提交
70
+
71
+ 如果存在则删除 MILESTONE-CONTEXT.md(已消费)。
72
+
73
+ ```bash
74
+ node .opencode/bin/specops-tools.cjs commit "docs: start milestone v[X.Y] [Name]" --files .planning/PROJECT.md .planning/STATE.md
75
+ ```
76
+
77
+ ## 7. 加载上下文并解析模型
78
+
79
+ ```bash
80
+ INIT=$(node .opencode/bin/specops-tools.cjs init new-milestone)
81
+ ```
82
+
83
+ 从初始化 JSON 中提取:`researcher_model`、`synthesizer_model`、`roadmapper_model`、`commit_docs`、`research_enabled`、`current_milestone`、`project_exists`、`roadmap_exists`。
84
+
85
+ ## 8. 研究决策
86
+
87
+ AskUserQuestion:"在定义需求之前,是否研究新功能的领域生态系统?"
88
+ - "先研究(推荐)" — 为新能力发现模式、功能、架构
89
+ - "跳过研究" — 直接进入需求
90
+
91
+ **将选择持久化到配置**(以便后续 `/specops:plan-phase` 遵循):
92
+
93
+ ```bash
94
+ # 如果选择"先研究":持久化 true
95
+ node .opencode/bin/specops-tools.cjs config-set workflow.research true
96
+
97
+ # 如果选择"跳过研究":持久化 false
98
+ node .opencode/bin/specops-tools.cjs config-set workflow.research false
99
+ ```
100
+
101
+ **如果选择"先研究":**
102
+
103
+ ```
104
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
105
+ SpecOps ► 正在研究
106
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
107
+
108
+ ◆ 并行生成 4 个研究员……
109
+ → 技术栈、功能、架构、陷阱
110
+ ```
111
+
112
+ ```bash
113
+ mkdir -p .planning/research
114
+ ```
115
+
116
+ 生成 4 个并行的 specops-project-researcher Agent。每个使用此模板并填充维度特定字段:
117
+
118
+ **所有 4 个研究员的通用结构:**
119
+ ```
120
+ Task(prompt="
121
+ <research_type>Project Research — {DIMENSION} for [new features].</research_type>
122
+
123
+ <milestone_context>
124
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
125
+ {EXISTING_CONTEXT}
126
+ Focus ONLY on what's needed for the NEW features.
127
+ </milestone_context>
128
+
129
+ <question>{QUESTION}</question>
130
+
131
+ <files_to_read>
132
+ - .planning/PROJECT.md (Project context)
133
+ </files_to_read>
134
+
135
+ <downstream_consumer>{CONSUMER}</downstream_consumer>
136
+
137
+ <quality_gate>{GATES}</quality_gate>
138
+
139
+ <output>
140
+ Write to: .planning/research/{FILE}
141
+ Use template: .opencode/templates/research-project/{FILE}
142
+ </output>
143
+ ", subagent_type="specops-project-researcher", model="{researcher_model}", description="{DIMENSION} research")
144
+ ```
145
+
146
+ **维度特定字段:**
147
+
148
+ | 字段 | Stack | Features | Architecture | Pitfalls |
149
+ |------|-------|----------|-------------|----------|
150
+ | EXISTING_CONTEXT | 现有已验证能力(不要重新研究):[来自 PROJECT.md] | 现有功能(已构建):[来自 PROJECT.md] | 现有架构:[来自 PROJECT.md 或代码库映射] | 聚焦于向现有系统添加这些功能时的常见错误 |
151
+ | QUESTION | [新功能]需要哪些技术栈添加/变更? | [目标功能]通常如何工作?预期行为? | [目标功能]如何与现有架构集成? | 向[领域]添加[目标功能]时的常见错误? |
152
+ | CONSUMER | 新能力的具体库及版本、集成点、不应添加的内容 | 基本功能 vs 差异化功能 vs 反功能,标注复杂度,现有依赖 | 集成点、新组件、数据流变更、建议构建顺序 | 警告信号、预防策略、哪个阶段应处理 |
153
+ | GATES | 版本最新(用 Context7 验证)、理由说明为什么、考虑了集成 | 类别清晰、标注复杂度、识别依赖 | 识别集成点、明确新增 vs 修改、构建顺序考虑依赖 | 陷阱针对添加这些功能、覆盖集成陷阱、预防可操作 |
154
+ | FILE | STACK.md | FEATURES.md | ARCHITECTURE.md | PITFALLS.md |
155
+
156
+ 所有 4 个完成后,生成合成器:
157
+
158
+ ```
159
+ Task(prompt="
160
+ Synthesize research outputs into SUMMARY.md.
161
+
162
+ <files_to_read>
163
+ - .planning/research/STACK.md
164
+ - .planning/research/FEATURES.md
165
+ - .planning/research/ARCHITECTURE.md
166
+ - .planning/research/PITFALLS.md
167
+ </files_to_read>
168
+
169
+ Write to: .planning/research/SUMMARY.md
170
+ Use template: .opencode/templates/research-project/SUMMARY.md
171
+ Commit after writing.
172
+ ", subagent_type="specops-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
173
+ ```
174
+
175
+ 展示 SUMMARY.md 中的关键发现:
176
+ ```
177
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
178
+ SpecOps ► 研究完成 ✓
179
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
180
+
181
+ **技术栈添加:** [来自 SUMMARY.md]
182
+ **基本功能:** [来自 SUMMARY.md]
183
+ **注意事项:** [来自 SUMMARY.md]
184
+ ```
185
+
186
+ **如果选择"跳过研究":** 继续到步骤 9。
187
+
188
+ ## 9. 定义需求
189
+
190
+ ```
191
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
192
+ SpecOps ► 定义需求
193
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
194
+ ```
195
+
196
+ 读取 PROJECT.md:核心价值、当前里程碑目标、已验证的需求(已有的)。
197
+
198
+ **如果研究存在:** 读取 FEATURES.md,提取功能类别。
199
+
200
+ 按类别展示功能:
201
+ ```
202
+ ## [类别 1]
203
+ **基本功能:** 功能 A、功能 B
204
+ **差异化功能:** 功能 C、功能 D
205
+ **研究备注:** [任何相关备注]
206
+ ```
207
+
208
+ **如果没有研究:** 通过对话收集需求。询问:"[新功能]的主要用户需求是什么?"澄清,探索相关能力,按类别分组。
209
+
210
+ **通过 AskUserQuestion 确定每个类别的范围**(multiSelect: true,header 最多 12 字符):
211
+ - "[功能 1]" — [简要描述]
212
+ - "[功能 2]" — [简要描述]
213
+ - "此里程碑不需要" — 推迟整个类别
214
+
215
+ 追踪:已选择 → 此里程碑。未选择的基本功能 → 未来。未选择的差异化功能 → 超出范围。
216
+
217
+ **通过 AskUserQuestion 识别缺口:**
218
+ - "不,研究已覆盖" — 继续
219
+ - "是,让我补充一些" — 捕获补充内容
220
+
221
+ **生成 REQUIREMENTS.md:**
222
+ - v1 需求按类别分组(复选框,REQ-ID)
223
+ - 未来需求(已推迟)
224
+ - 超出范围(明确排除及理由)
225
+ - 追溯部分(空的,由路线图填充)
226
+
227
+ **REQ-ID 格式:** `[CATEGORY]-[NUMBER]`(AUTH-01、NOTIF-02)。从现有编号继续。
228
+
229
+ **需求质量标准:**
230
+
231
+ 好的需求应该是:
232
+ - **具体且可测试:** "用户可以通过邮件链接重置密码"(不是"处理密码重置")
233
+ - **以用户为中心:** "用户可以 X"(不是"系统做 Y")
234
+ - **原子化:** 每个需求一个能力(不是"用户可以登录并管理个人资料")
235
+ - **独立:** 对其他需求的依赖最小
236
+
237
+ 展示完整需求列表以获取确认:
238
+
239
+ ```
240
+ ## 里程碑 v[X.Y] 需求
241
+
242
+ ### [类别 1]
243
+ - [ ] **CAT1-01**:用户可以做 X
244
+ - [ ] **CAT1-02**:用户可以做 Y
245
+
246
+ ### [类别 2]
247
+ - [ ] **CAT2-01**:用户可以做 Z
248
+
249
+ 这是否涵盖了你要构建的内容?(是 / 调整)
250
+ ```
251
+
252
+ 如果选择"调整":返回范围确定。
253
+
254
+ **提交需求:**
255
+ ```bash
256
+ node .opencode/bin/specops-tools.cjs commit "docs: define milestone v[X.Y] requirements" --files .planning/REQUIREMENTS.md
257
+ ```
258
+
259
+ ## 10. 创建路线图
260
+
261
+ ```
262
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
263
+ SpecOps ► 创建路线图
264
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
265
+
266
+ ◆ 生成路线图规划器……
267
+ ```
268
+
269
+ **起始阶段编号:** 读取 MILESTONES.md 获取上一个阶段编号。从那里继续(v1.0 在阶段 5 结束 → v1.1 从阶段 6 开始)。
270
+
271
+ ```
272
+ Task(prompt="
273
+ <planning_context>
274
+ <files_to_read>
275
+ - .planning/PROJECT.md
276
+ - .planning/REQUIREMENTS.md
277
+ - .planning/research/SUMMARY.md (if exists)
278
+ - .planning/config.json
279
+ - .planning/MILESTONES.md
280
+ </files_to_read>
281
+ </planning_context>
282
+
283
+ <instructions>
284
+ Create roadmap for milestone v[X.Y]:
285
+ 1. Start phase numbering from [N]
286
+ 2. Derive phases from THIS MILESTONE's requirements only
287
+ 3. Map every requirement to exactly one phase
288
+ 4. Derive 2-5 success criteria per phase (observable user behaviors)
289
+ 5. Validate 100% coverage
290
+ 6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
291
+ 7. Return ROADMAP CREATED with summary
292
+
293
+ Write files first, then return.
294
+ </instructions>
295
+ ", subagent_type="specops-roadmapper", model="{roadmapper_model}", description="Create roadmap")
296
+ ```
297
+
298
+ **处理返回:**
299
+
300
+ **如果 `## ROADMAP BLOCKED`:** 展示阻塞项,与用户协作,重新生成。
301
+
302
+ **如果 `## ROADMAP CREATED`:** 读取 ROADMAP.md,内联展示:
303
+
304
+ ```
305
+ ## 拟定路线图
306
+
307
+ **[N] 个阶段** | **[X] 个需求已映射** | 全部覆盖 ✓
308
+
309
+ | # | 阶段 | 目标 | 需求 | 成功标准 |
310
+ |---|------|------|------|----------|
311
+ | [N] | [名称] | [目标] | [REQ-ID] | [数量] |
312
+
313
+ ### 阶段详情
314
+
315
+ **阶段 [N]:[名称]**
316
+ 目标:[目标]
317
+ 需求:[REQ-ID]
318
+ 成功标准:
319
+ 1. [标准]
320
+ 2. [标准]
321
+ ```
322
+
323
+ **通过 AskUserQuestion 请求批准:**
324
+ - "批准" — 提交并继续
325
+ - "调整阶段" — 告诉我要改什么
326
+ - "查看完整文件" — 显示原始 ROADMAP.md
327
+
328
+ **如果选择"调整":** 获取备注,带修订上下文重新生成路线图规划器,循环直到批准。
329
+ **如果选择"查看":** 显示原始 ROADMAP.md,重新询问。
330
+
331
+ **提交路线图**(批准后):
332
+ ```bash
333
+ node .opencode/bin/specops-tools.cjs commit "docs: create milestone v[X.Y] roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
334
+ ```
335
+
336
+ ## 11. 完成
337
+
338
+ ```
339
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
340
+ SpecOps ► 里程碑已初始化 ✓
341
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
342
+
343
+ **里程碑 v[X.Y]:[名称]**
344
+
345
+ | 产物 | 位置 |
346
+ |----------------|-----------------------------|
347
+ | 项目 | `.planning/PROJECT.md` |
348
+ | 研究 | `.planning/research/` |
349
+ | 需求 | `.planning/REQUIREMENTS.md` |
350
+ | 路线图 | `.planning/ROADMAP.md` |
351
+
352
+ **[N] 个阶段** | **[X] 个需求** | 准备构建 ✓
353
+
354
+ ## ▶ 下一步
355
+
356
+ **阶段 [N]:[阶段名称]** — [目标]
357
+
358
+ `/specops:discuss-phase [N]` — 收集上下文并明确方案
359
+
360
+ <sub>先 `/clear` → 全新上下文窗口</sub>
361
+
362
+ 也可以:`/specops:plan-phase [N]` — 跳过讨论,直接规划
363
+ ```
364
+
365
+ </process>
366
+
367
+ <success_criteria>
368
+ - [ ] PROJECT.md 已更新 Current Milestone 部分
369
+ - [ ] STATE.md 已为新里程碑重置
370
+ - [ ] MILESTONE-CONTEXT.md 已消费并删除(如果存在)
371
+ - [ ] 研究已完成(如果选择)— 4 个并行 Agent,里程碑感知
372
+ - [ ] 需求已按类别收集和确定范围
373
+ - [ ] REQUIREMENTS.md 已创建并包含 REQ-ID
374
+ - [ ] specops-roadmapper 已使用阶段编号上下文生成
375
+ - [ ] 路线图文件已立即写入(非草稿)
376
+ - [ ] 用户反馈已纳入(如有)
377
+ - [ ] ROADMAP.md 阶段从上一个里程碑继续编号
378
+ - [ ] 所有提交已完成(如果规划文档需要提交)
379
+ - [ ] 用户知道下一步:`/specops:discuss-phase [N]`
380
+
381
+ **原子提交:** 每个阶段立即提交其产物。
382
+ </success_criteria>