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.
- package/.opencode/agent/specops-codebase-mapper.md +764 -0
- package/.opencode/agent/specops-debugger.md +1246 -0
- package/.opencode/agent/specops-executor.md +469 -0
- package/.opencode/agent/specops-integration-checker.md +443 -0
- package/.opencode/agent/specops-phase-researcher.md +547 -0
- package/.opencode/agent/specops-plan-checker.md +690 -0
- package/.opencode/agent/specops-planner.md +575 -0
- package/.opencode/agent/specops-project-researcher.md +354 -0
- package/.opencode/agent/specops-research-synthesizer.md +239 -0
- package/.opencode/agent/specops-roadmapper.md +642 -0
- package/.opencode/agent/specops-work-verifier.md +573 -0
- package/.opencode/references/checkpoints.md +776 -0
- package/.opencode/references/continuation-format.md +249 -0
- package/.opencode/references/decimal-phase-calculation.md +65 -0
- package/.opencode/references/git-integration.md +248 -0
- package/.opencode/references/git-planning-commit.md +38 -0
- package/.opencode/references/model-profile-resolution.md +34 -0
- package/.opencode/references/model-profiles.md +92 -0
- package/.opencode/references/phase-argument-parsing.md +61 -0
- package/.opencode/references/planning-config.md +196 -0
- package/.opencode/references/questioning.md +145 -0
- package/.opencode/references/tdd.md +263 -0
- package/.opencode/references/ui-brand.md +160 -0
- package/.opencode/references/verification-patterns.md +612 -0
- package/.opencode/skills/demand-analysis/SKILL.md +142 -10
- package/.opencode/templates/DEBUG.md +164 -0
- package/.opencode/templates/UAT.md +180 -0
- package/.opencode/templates/VALIDATION.md +76 -0
- package/.opencode/templates/codebase/architecture.md +255 -0
- package/.opencode/templates/codebase/concerns.md +310 -0
- package/.opencode/templates/codebase/conventions.md +307 -0
- package/.opencode/templates/codebase/integrations.md +280 -0
- package/.opencode/templates/codebase/stack.md +186 -0
- package/.opencode/templates/codebase/structure.md +285 -0
- package/.opencode/templates/codebase/testing.md +480 -0
- package/.opencode/templates/context.md +221 -0
- package/.opencode/templates/continue-here.md +78 -0
- package/.opencode/templates/debug-subagent-prompt.md +91 -0
- package/.opencode/templates/discovery.md +147 -0
- package/.opencode/templates/milestone-archive.md +123 -0
- package/.opencode/templates/milestone.md +115 -0
- package/.opencode/templates/phase-prompt.md +333 -0
- package/.opencode/templates/planner-subagent-prompt.md +117 -0
- package/.opencode/templates/project.md +184 -0
- package/.opencode/templates/requirements.md +130 -0
- package/.opencode/templates/research-project/ARCHITECTURE.md +204 -0
- package/.opencode/templates/research-project/FEATURES.md +147 -0
- package/.opencode/templates/research-project/PITFALLS.md +200 -0
- package/.opencode/templates/research-project/STACK.md +120 -0
- package/.opencode/templates/research-project/SUMMARY.md +170 -0
- package/.opencode/templates/research.md +278 -0
- package/.opencode/templates/retrospective.md +54 -0
- package/.opencode/templates/roadmap.md +202 -0
- package/.opencode/templates/state.md +176 -0
- package/.opencode/templates/summary-complex.md +59 -0
- package/.opencode/templates/summary-minimal.md +41 -0
- package/.opencode/templates/summary-standard.md +48 -0
- package/.opencode/templates/summary.md +248 -0
- package/.opencode/templates/user-setup.md +311 -0
- package/.opencode/templates/verification-report.md +322 -0
- package/.opencode/workflows/add-phase.md +111 -0
- package/.opencode/workflows/add-tests.md +350 -0
- package/.opencode/workflows/add-todo.md +157 -0
- package/.opencode/workflows/audit-milestone.md +297 -0
- package/.opencode/workflows/check-todos.md +176 -0
- package/.opencode/workflows/cleanup.md +152 -0
- package/.opencode/workflows/complete-milestone.md +763 -0
- package/.opencode/workflows/diagnose-issues.md +219 -0
- package/.opencode/workflows/discovery-phase.md +288 -0
- package/.opencode/workflows/discuss-phase.md +542 -0
- package/.opencode/workflows/execute-phase.md +449 -0
- package/.opencode/workflows/execute-plan.md +447 -0
- package/.opencode/workflows/health.md +156 -0
- package/.opencode/workflows/help.md +489 -0
- package/.opencode/workflows/insert-phase.md +129 -0
- package/.opencode/workflows/list-phase-assumptions.md +178 -0
- package/.opencode/workflows/map-codebase.md +315 -0
- package/.opencode/workflows/new-milestone.md +382 -0
- package/.opencode/workflows/new-project.md +1116 -0
- package/.opencode/workflows/pause-work.md +122 -0
- package/.opencode/workflows/plan-milestone-gaps.md +274 -0
- package/.opencode/workflows/plan-phase.md +569 -0
- package/.opencode/workflows/progress.md +381 -0
- package/.opencode/workflows/quick.md +453 -0
- package/.opencode/workflows/remove-phase.md +154 -0
- package/.opencode/workflows/research-phase.md +73 -0
- package/.opencode/workflows/resume-project.md +304 -0
- package/.opencode/workflows/set-profile.md +80 -0
- package/.opencode/workflows/settings.md +213 -0
- package/.opencode/workflows/transition.md +544 -0
- package/.opencode/workflows/update.md +219 -0
- package/.opencode/workflows/verify-phase.md +242 -0
- package/.opencode/workflows/verify-work.md +569 -0
- package/commands/specops/add-phase.md +43 -0
- package/commands/specops/add-tests.md +41 -0
- package/commands/specops/add-todo.md +47 -0
- package/commands/specops/audit-milestone.md +36 -0
- package/commands/specops/check-todos.md +45 -0
- package/commands/specops/cleanup.md +18 -0
- package/commands/specops/complete-milestone.md +136 -0
- package/commands/specops/debug.md +167 -0
- package/commands/specops/discuss-phase.md +83 -0
- package/commands/specops/execute-phase.md +41 -0
- package/commands/specops/health.md +22 -0
- package/commands/specops/help.md +22 -0
- package/commands/specops/insert-phase.md +32 -0
- package/commands/specops/join-discord.md +18 -0
- package/commands/specops/list-phase-assumptions.md +46 -0
- package/commands/specops/map-codebase.md +71 -0
- package/commands/specops/new-milestone.md +44 -0
- package/commands/specops/new-project.md +42 -0
- package/commands/specops/pause-work.md +38 -0
- package/commands/specops/plan-milestone-gaps.md +34 -0
- package/commands/specops/plan-phase.md +45 -0
- package/commands/specops/progress.md +24 -0
- package/commands/specops/quick.md +41 -0
- package/commands/specops/reapply-patches.md +111 -0
- package/commands/specops/remove-phase.md +31 -0
- package/commands/specops/research-phase.md +189 -0
- package/commands/specops/resume-work.md +40 -0
- package/commands/specops/set-profile.md +34 -0
- package/commands/specops/settings.md +36 -0
- package/commands/specops/update.md +37 -0
- package/commands/specops/verify-work.md +38 -0
- package/dist/__e2e__/01-state-engine.e2e.test.js +1 -1
- package/dist/acceptance/lazyDetector.js +1 -1
- package/dist/acceptance/lazyDetector.test.js +1 -1
- package/dist/acceptance/reporter.js +1 -1
- package/dist/acceptance/reporter.test.js +1 -1
- package/dist/acceptance/runner.js +1 -1
- package/dist/acceptance/runner.test.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/context/index.js +1 -1
- package/dist/context/promptTemplate.js +1 -1
- package/dist/context/promptTemplate.test.js +1 -1
- package/dist/context/techContextLoader.js +1 -1
- package/dist/context/techContextLoader.test.js +1 -1
- package/dist/engine.js +1 -1
- package/dist/evolution/distiller.js +1 -1
- package/dist/evolution/index.js +1 -1
- package/dist/evolution/memoryGraph.js +1 -1
- package/dist/evolution/selector.js +1 -1
- package/dist/evolution/signals.js +1 -1
- package/dist/evolution/solidify.js +1 -1
- package/dist/evolution/store.js +1 -1
- package/dist/evolution/types.js +1 -1
- package/dist/init.d.ts +4 -3
- package/dist/init.js +1 -1
- package/dist/machines/agentMachine.js +1 -1
- package/dist/machines/agentMachine.test.js +1 -1
- package/dist/machines/supervisorMachine.js +1 -1
- package/dist/machines/supervisorMachine.test.js +1 -1
- package/dist/persistence/schema.js +1 -1
- package/dist/persistence/stateFile.js +1 -1
- package/dist/persistence/stateFile.test.js +1 -1
- package/dist/plugin-engine.js +1 -1
- package/dist/plugin.js +1 -1
- package/dist/types/index.js +1 -1
- package/dist/utils/id.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:map-codebase
|
|
3
|
+
description: 使用并行映射代理分析代码库,生成 .planning/codebase/ 文档
|
|
4
|
+
argument-hint: "[optional: specific area to map, e.g., 'api' or 'auth']"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- Write
|
|
11
|
+
- Task
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<objective>
|
|
15
|
+
使用并行的 specops-codebase-mapper 代理分析现有代码库,生成结构化的代码库文档。
|
|
16
|
+
|
|
17
|
+
每个映射代理探索一个焦点领域并**直接将文档写入** `.planning/codebase/`。编排器只接收确认信息,保持上下文使用最小化。
|
|
18
|
+
|
|
19
|
+
输出:.planning/codebase/ 文件夹,包含 7 个关于代码库状态的结构化文档。
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<execution_context>
|
|
23
|
+
@.opencode/workflows/map-codebase.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<context>
|
|
27
|
+
焦点领域:$ARGUMENTS(可选 - 如果提供,告诉代理聚焦于特定子系统)
|
|
28
|
+
|
|
29
|
+
**如果存在则加载项目状态:**
|
|
30
|
+
检查 .planning/STATE.md - 如果项目已初始化则加载上下文
|
|
31
|
+
|
|
32
|
+
**此命令可以运行于:**
|
|
33
|
+
- `/specops:new-project` 之前(棕地代码库)- 先创建代码库映射
|
|
34
|
+
- `/specops:new-project` 之后(绿地代码库)- 随代码演进更新代码库映射
|
|
35
|
+
- 任何时候刷新代码库理解
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<when_to_use>
|
|
39
|
+
**使用 map-codebase 的场景:**
|
|
40
|
+
- 初始化前的棕地项目(先理解现有代码)
|
|
41
|
+
- 重大变更后刷新代码库映射
|
|
42
|
+
- 入门不熟悉的代码库
|
|
43
|
+
- 重大重构前(理解当前状态)
|
|
44
|
+
- 当 STATE.md 引用过时的代码库信息时
|
|
45
|
+
|
|
46
|
+
**跳过 map-codebase 的场景:**
|
|
47
|
+
- 还没有代码的绿地项目(没什么可映射的)
|
|
48
|
+
- 简单的代码库(<5 个文件)
|
|
49
|
+
</when_to_use>
|
|
50
|
+
|
|
51
|
+
<process>
|
|
52
|
+
1. 检查 .planning/codebase/ 是否已存在(提供刷新或跳过选项)
|
|
53
|
+
2. 创建 .planning/codebase/ 目录结构
|
|
54
|
+
3. 生成 4 个并行的 specops-codebase-mapper 代理:
|
|
55
|
+
- 代理 1:tech 焦点 → 写入 STACK.md、INTEGRATIONS.md
|
|
56
|
+
- 代理 2:arch 焦点 → 写入 ARCHITECTURE.md、STRUCTURE.md
|
|
57
|
+
- 代理 3:quality 焦点 → 写入 CONVENTIONS.md、TESTING.md
|
|
58
|
+
- 代理 4:concerns 焦点 → 写入 CONCERNS.md
|
|
59
|
+
4. 等待代理完成,收集确认(不是文档内容)
|
|
60
|
+
5. 验证所有 7 个文档存在并统计行数
|
|
61
|
+
6. 提交代码库映射
|
|
62
|
+
7. 提供后续步骤(通常:/specops:new-project 或 /specops:plan-phase)
|
|
63
|
+
</process>
|
|
64
|
+
|
|
65
|
+
<success_criteria>
|
|
66
|
+
- [ ] .planning/codebase/ 目录已创建
|
|
67
|
+
- [ ] 所有 7 个代码库文档已由映射代理写入
|
|
68
|
+
- [ ] 文档遵循模板结构
|
|
69
|
+
- [ ] 并行代理无错误完成
|
|
70
|
+
- [ ] 用户知道后续步骤
|
|
71
|
+
</success_criteria>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:new-milestone
|
|
3
|
+
description: 开始新的里程碑周期——更新 PROJECT.md 并路由到需求定义
|
|
4
|
+
argument-hint: "[milestone name, e.g., 'v1.1 Notifications']"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Task
|
|
10
|
+
- AskUserQuestion
|
|
11
|
+
---
|
|
12
|
+
<objective>
|
|
13
|
+
开始新的里程碑:提问 → 研究(可选)→ 需求 → 路线图。
|
|
14
|
+
|
|
15
|
+
new-project 的棕地等价物。项目已存在,PROJECT.md 有历史记录。收集"下一步做什么",更新 PROJECT.md,然后运行需求 → 路线图周期。
|
|
16
|
+
|
|
17
|
+
**创建/更新:**
|
|
18
|
+
- `.planning/PROJECT.md` — 更新为新里程碑目标
|
|
19
|
+
- `.planning/research/` — 领域研究(可选,仅新功能)
|
|
20
|
+
- `.planning/REQUIREMENTS.md` — 此里程碑的范围化需求
|
|
21
|
+
- `.planning/ROADMAP.md` — 阶段结构(继续编号)
|
|
22
|
+
- `.planning/STATE.md` — 为新里程碑重置
|
|
23
|
+
|
|
24
|
+
**之后:** `/specops:plan-phase [N]` 开始执行。
|
|
25
|
+
</objective>
|
|
26
|
+
|
|
27
|
+
<execution_context>
|
|
28
|
+
@.opencode/workflows/new-milestone.md
|
|
29
|
+
@.opencode/references/questioning.md
|
|
30
|
+
@.opencode/references/ui-brand.md
|
|
31
|
+
@.opencode/templates/project.md
|
|
32
|
+
@.opencode/templates/requirements.md
|
|
33
|
+
</execution_context>
|
|
34
|
+
|
|
35
|
+
<context>
|
|
36
|
+
里程碑名称:$ARGUMENTS(可选 - 未提供时会提示)
|
|
37
|
+
|
|
38
|
+
项目和里程碑上下文文件在工作流内部解析(`init new-milestone`),并通过 `<files_to_read>` 块委托给子代理。
|
|
39
|
+
</context>
|
|
40
|
+
|
|
41
|
+
<process>
|
|
42
|
+
端到端执行 @.opencode/workflows/new-milestone.md 中的 new-milestone 工作流。
|
|
43
|
+
保留所有工作流门控(验证、提问、研究、需求、路线图审批、提交)。
|
|
44
|
+
</process>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:new-project
|
|
3
|
+
description: 通过深度上下文收集和 PROJECT.md 初始化新项目
|
|
4
|
+
argument-hint: "[--auto]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Write
|
|
9
|
+
- Task
|
|
10
|
+
- AskUserQuestion
|
|
11
|
+
---
|
|
12
|
+
<context>
|
|
13
|
+
**标志:**
|
|
14
|
+
- `--auto` — 自动模式。配置问题之后,无需进一步交互即运行研究 → 需求 → 路线图。期望通过 @ 引用提供想法文档。
|
|
15
|
+
</context>
|
|
16
|
+
|
|
17
|
+
<objective>
|
|
18
|
+
通过统一流程初始化新项目:提问 → 研究(可选)→ 需求 → 路线图。
|
|
19
|
+
|
|
20
|
+
**创建:**
|
|
21
|
+
- `.planning/PROJECT.md` — 项目上下文
|
|
22
|
+
- `.planning/config.json` — 工作流偏好
|
|
23
|
+
- `.planning/research/` — 领域研究(可选)
|
|
24
|
+
- `.planning/REQUIREMENTS.md` — 范围化需求
|
|
25
|
+
- `.planning/ROADMAP.md` — 阶段结构
|
|
26
|
+
- `.planning/STATE.md` — 项目记忆
|
|
27
|
+
|
|
28
|
+
**此命令之后:** 运行 `/specops:plan-phase 1` 开始执行。
|
|
29
|
+
</objective>
|
|
30
|
+
|
|
31
|
+
<execution_context>
|
|
32
|
+
@.opencode/workflows/new-project.md
|
|
33
|
+
@.opencode/references/questioning.md
|
|
34
|
+
@.opencode/references/ui-brand.md
|
|
35
|
+
@.opencode/templates/project.md
|
|
36
|
+
@.opencode/templates/requirements.md
|
|
37
|
+
</execution_context>
|
|
38
|
+
|
|
39
|
+
<process>
|
|
40
|
+
端到端执行 @.opencode/workflows/new-project.md 中的 new-project 工作流。
|
|
41
|
+
保留所有工作流门控(验证、审批、提交、路由)。
|
|
42
|
+
</process>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:pause-work
|
|
3
|
+
description: 在阶段中途暂停工作时创建上下文交接
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
创建 `.continue-here.md` 交接文件,以在会话间保留完整的工作状态。
|
|
12
|
+
|
|
13
|
+
路由到 pause-work 工作流,该工作流处理:
|
|
14
|
+
- 从最近文件检测当前阶段
|
|
15
|
+
- 完整状态收集(位置、已完成工作、剩余工作、决策、阻塞项)
|
|
16
|
+
- 创建包含所有上下文章节的交接文件
|
|
17
|
+
- 作为 WIP 进行 Git 提交
|
|
18
|
+
- 恢复说明
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
@.opencode/workflows/pause-work.md
|
|
23
|
+
</execution_context>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
状态和阶段进度在工作流中通过定向读取收集。
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
**遵循 pause-work 工作流**,来自 `@.opencode/workflows/pause-work.md`。
|
|
31
|
+
|
|
32
|
+
该工作流处理所有逻辑,包括:
|
|
33
|
+
1. 阶段目录检测
|
|
34
|
+
2. 状态收集及用户澄清
|
|
35
|
+
3. 带时间戳的交接文件写入
|
|
36
|
+
4. Git 提交
|
|
37
|
+
5. 确认及恢复说明
|
|
38
|
+
</process>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:plan-milestone-gaps
|
|
3
|
+
description: 创建阶段以关闭里程碑审计中识别的所有缺口
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- AskUserQuestion
|
|
11
|
+
---
|
|
12
|
+
<objective>
|
|
13
|
+
创建关闭 `/specops:audit-milestone` 识别的缺口所需的所有阶段。
|
|
14
|
+
|
|
15
|
+
读取 MILESTONE-AUDIT.md,将缺口分组为逻辑阶段,在 ROADMAP.md 中创建阶段条目,并提供规划每个阶段的选项。
|
|
16
|
+
|
|
17
|
+
一个命令创建所有修复阶段——无需为每个缺口手动执行 `/specops:add-phase`。
|
|
18
|
+
</objective>
|
|
19
|
+
|
|
20
|
+
<execution_context>
|
|
21
|
+
@.opencode/workflows/plan-milestone-gaps.md
|
|
22
|
+
</execution_context>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
**审计结果:**
|
|
26
|
+
Glob: .planning/v*-MILESTONE-AUDIT.md(使用最新的)
|
|
27
|
+
|
|
28
|
+
原始意图和当前规划状态在工作流内部按需加载。
|
|
29
|
+
</context>
|
|
30
|
+
|
|
31
|
+
<process>
|
|
32
|
+
端到端执行 @.opencode/workflows/plan-milestone-gaps.md 中的 plan-milestone-gaps 工作流。
|
|
33
|
+
保留所有工作流门控(审计加载、优先级排序、阶段分组、用户确认、路线图更新)。
|
|
34
|
+
</process>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:plan-phase
|
|
3
|
+
description: 创建带验证循环的详细阶段计划(PLAN.md)
|
|
4
|
+
argument-hint: "[phase] [--auto] [--research] [--skip-research] [--gaps] [--skip-verify] [--prd <file>]"
|
|
5
|
+
agent: specops-planner
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- WebFetch
|
|
14
|
+
- mcp__context7__*
|
|
15
|
+
---
|
|
16
|
+
<objective>
|
|
17
|
+
为路线图阶段创建可执行的阶段提示(PLAN.md 文件),集成研究和验证。
|
|
18
|
+
|
|
19
|
+
**默认流程:** 研究(如需要)→ 规划 → 验证 → 完成
|
|
20
|
+
|
|
21
|
+
**编排器角色:** 解析参数,验证阶段,研究领域(除非跳过),生成 specops-planner,使用 specops-plan-checker 验证,迭代直到通过或达到最大迭代次数,展示结果。
|
|
22
|
+
</objective>
|
|
23
|
+
|
|
24
|
+
<execution_context>
|
|
25
|
+
@.opencode/workflows/plan-phase.md
|
|
26
|
+
@.opencode/references/ui-brand.md
|
|
27
|
+
</execution_context>
|
|
28
|
+
|
|
29
|
+
<context>
|
|
30
|
+
阶段编号:$ARGUMENTS(可选——如果省略则自动检测下一个未规划的阶段)
|
|
31
|
+
|
|
32
|
+
**标志:**
|
|
33
|
+
- `--research` — 即使 RESEARCH.md 已存在也强制重新研究
|
|
34
|
+
- `--skip-research` — 跳过研究,直接进入规划
|
|
35
|
+
- `--gaps` — 缺口修复模式(读取 VERIFICATION.md,跳过研究)
|
|
36
|
+
- `--skip-verify` — 跳过验证循环
|
|
37
|
+
- `--prd <file>` — 使用 PRD/验收标准文件代替 discuss-phase。自动将需求解析为 CONTEXT.md。完全跳过 discuss-phase。
|
|
38
|
+
|
|
39
|
+
在步骤 2 中标准化阶段输入,然后再进行任何目录查找。
|
|
40
|
+
</context>
|
|
41
|
+
|
|
42
|
+
<process>
|
|
43
|
+
端到端执行 @.opencode/workflows/plan-phase.md 中的 plan-phase 工作流。
|
|
44
|
+
保留所有工作流门控(验证、研究、规划、验证循环、路由)。
|
|
45
|
+
</process>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:progress
|
|
3
|
+
description: 检查项目进度,显示上下文,并路由到下一个操作(执行或规划)
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
- Grep
|
|
8
|
+
- Glob
|
|
9
|
+
- SlashCommand
|
|
10
|
+
---
|
|
11
|
+
<objective>
|
|
12
|
+
检查项目进度,总结最近的工作和接下来的内容,然后智能路由到下一个操作——执行现有计划或创建下一个计划。
|
|
13
|
+
|
|
14
|
+
在继续工作之前提供态势感知。
|
|
15
|
+
</objective>
|
|
16
|
+
|
|
17
|
+
<execution_context>
|
|
18
|
+
@.opencode/workflows/progress.md
|
|
19
|
+
</execution_context>
|
|
20
|
+
|
|
21
|
+
<process>
|
|
22
|
+
端到端执行 @.opencode/workflows/progress.md 中的 progress 工作流。
|
|
23
|
+
保留所有路由逻辑(路由 A 到 F)和边缘情况处理。
|
|
24
|
+
</process>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:quick
|
|
3
|
+
description: 使用 SpecOps 保障执行快速任务(原子提交、状态追踪)但跳过可选 agent
|
|
4
|
+
argument-hint: "[--full]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
<objective>
|
|
16
|
+
执行小型临时任务,带有 SpecOps 保障(原子提交、STATE.md 追踪)。
|
|
17
|
+
|
|
18
|
+
快速模式是相同系统的简短路径:
|
|
19
|
+
- 生成 specops-planner(快速模式)+ specops-executor
|
|
20
|
+
- 快速任务存放在 `.planning/quick/` 中,与规划阶段分开
|
|
21
|
+
- 更新 STATE.md "快速任务完成" 表格(不是 ROADMAP.md)
|
|
22
|
+
|
|
23
|
+
**默认:** 跳过研究、计划检查器、验证器。适用于你明确知道要做什么的场景。
|
|
24
|
+
|
|
25
|
+
**`--full` 标志:** 启用计划检查(最多 2 次迭代)和执行后验证。适用于想要质量保障但不需要完整里程碑流程的场景。
|
|
26
|
+
</objective>
|
|
27
|
+
|
|
28
|
+
<execution_context>
|
|
29
|
+
@.opencode/workflows/quick.md
|
|
30
|
+
</execution_context>
|
|
31
|
+
|
|
32
|
+
<context>
|
|
33
|
+
$ARGUMENTS
|
|
34
|
+
|
|
35
|
+
上下文文件在工作流内部通过 `init quick` 解析,并通过 `<files_to_read>` 块委托。
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<process>
|
|
39
|
+
端到端执行 @.opencode/workflows/quick.md 中的快速工作流。
|
|
40
|
+
保留所有工作流门控(验证、任务描述、规划、执行、状态更新、提交)。
|
|
41
|
+
</process>
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:reapply-patches
|
|
3
|
+
description: 更新后重新应用本地修改
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<purpose>
|
|
8
|
+
SpecOps 更新擦除并重新安装文件后,此命令将用户之前保存的本地修改合并回新版本。使用智能比较处理上游文件也发生变化的情况。
|
|
9
|
+
</purpose>
|
|
10
|
+
|
|
11
|
+
<process>
|
|
12
|
+
|
|
13
|
+
## 步骤 1:检测备份的补丁
|
|
14
|
+
|
|
15
|
+
检查本地补丁目录:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 全局安装(路径在安装时模板化)
|
|
19
|
+
PATCHES_DIR=~/.config/opencode/specops-local-patches
|
|
20
|
+
# 本地安装回退
|
|
21
|
+
if [ ! -d "$PATCHES_DIR" ]; then
|
|
22
|
+
PATCHES_DIR=./.opencode/specops-local-patches
|
|
23
|
+
fi
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
从补丁目录读取 `backup-meta.json`。
|
|
27
|
+
|
|
28
|
+
**如果未找到补丁:**
|
|
29
|
+
```
|
|
30
|
+
未找到本地补丁。无需重新应用。
|
|
31
|
+
|
|
32
|
+
本地补丁会在你运行 /specops:update 后自动保存
|
|
33
|
+
(如果你修改了任何 SpecOps 工作流、命令或 agent 文件)。
|
|
34
|
+
```
|
|
35
|
+
退出。
|
|
36
|
+
|
|
37
|
+
## 步骤 2:展示补丁摘要
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
## 待重新应用的本地补丁
|
|
41
|
+
|
|
42
|
+
**备份自:** v{from_version}
|
|
43
|
+
**当前版本:** {读取 VERSION 文件}
|
|
44
|
+
**修改文件数:** {count}
|
|
45
|
+
|
|
46
|
+
| # | 文件 | 状态 |
|
|
47
|
+
|---|------|------|
|
|
48
|
+
| 1 | {file_path} | 待处理 |
|
|
49
|
+
| 2 | {file_path} | 待处理 |
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 步骤 3:合并每个文件
|
|
53
|
+
|
|
54
|
+
对 `backup-meta.json` 中的每个文件:
|
|
55
|
+
|
|
56
|
+
1. **读取备份版本**(用户修改过的副本,来自 `specops-local-patches/`)
|
|
57
|
+
2. **读取新安装版本**(更新后的当前文件)
|
|
58
|
+
3. **比较并合并:**
|
|
59
|
+
|
|
60
|
+
- 如果新文件与备份文件相同:跳过(修改已被上游合并)
|
|
61
|
+
- 如果新文件不同:识别用户的修改并应用到新版本
|
|
62
|
+
|
|
63
|
+
**合并策略:**
|
|
64
|
+
- 完整读取两个版本
|
|
65
|
+
- 识别用户添加或修改的部分(寻找新增内容,而非仅路径替换的差异)
|
|
66
|
+
- 将用户的新增/修改应用到新版本
|
|
67
|
+
- 如果用户修改的部分上游也发生了变化:标记为冲突,展示两个版本,询问用户保留哪个
|
|
68
|
+
|
|
69
|
+
4. **写入合并结果**到安装位置
|
|
70
|
+
5. **报告状态:**
|
|
71
|
+
- `已合并` — 用户修改已干净应用
|
|
72
|
+
- `已跳过` — 修改已存在于上游
|
|
73
|
+
- `冲突` — 用户选择了解决方案
|
|
74
|
+
|
|
75
|
+
## 步骤 4:更新清单
|
|
76
|
+
|
|
77
|
+
重新应用后,重新生成文件清单以便未来更新正确检测这些用户修改:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 清单将在下次 /specops:update 时重新生成
|
|
81
|
+
# 现在只记录哪些文件被修改
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## 步骤 5:清理选项
|
|
85
|
+
|
|
86
|
+
询问用户:
|
|
87
|
+
- "保留补丁备份作为参考?" → 保留 `specops-local-patches/`
|
|
88
|
+
- "清理补丁备份?" → 删除 `specops-local-patches/` 目录
|
|
89
|
+
|
|
90
|
+
## 步骤 6:报告
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
## 补丁已重新应用
|
|
94
|
+
|
|
95
|
+
| # | 文件 | 状态 |
|
|
96
|
+
|---|------|------|
|
|
97
|
+
| 1 | {file_path} | ✓ 已合并 |
|
|
98
|
+
| 2 | {file_path} | ○ 已跳过(已在上游) |
|
|
99
|
+
| 3 | {file_path} | ⚠ 冲突已解决 |
|
|
100
|
+
|
|
101
|
+
{count} 个文件已更新。你的本地修改已重新激活。
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
</process>
|
|
105
|
+
|
|
106
|
+
<success_criteria>
|
|
107
|
+
- [ ] 所有备份的补丁已处理
|
|
108
|
+
- [ ] 用户修改已合并到新版本
|
|
109
|
+
- [ ] 冲突已通过用户输入解决
|
|
110
|
+
- [ ] 每个文件的状态已报告
|
|
111
|
+
</success_criteria>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:remove-phase
|
|
3
|
+
description: 从路线图中移除未来阶段并重新编号后续阶段
|
|
4
|
+
argument-hint: <phase-number>
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
---
|
|
11
|
+
<objective>
|
|
12
|
+
从路线图中移除一个未开始的未来阶段,并重新编号所有后续阶段以保持干净的线性序列。
|
|
13
|
+
|
|
14
|
+
目的:干净地移除你决定不做的工作,不会用取消/延迟标记污染上下文。
|
|
15
|
+
输出:阶段已删除,所有后续阶段已重新编号,git 提交作为历史记录。
|
|
16
|
+
</objective>
|
|
17
|
+
|
|
18
|
+
<execution_context>
|
|
19
|
+
@.opencode/workflows/remove-phase.md
|
|
20
|
+
</execution_context>
|
|
21
|
+
|
|
22
|
+
<context>
|
|
23
|
+
阶段:$ARGUMENTS
|
|
24
|
+
|
|
25
|
+
路线图和状态在工作流中通过 `init phase-op` 和定向读取解析。
|
|
26
|
+
</context>
|
|
27
|
+
|
|
28
|
+
<process>
|
|
29
|
+
端到端执行 @.opencode/workflows/remove-phase.md 中的 remove-phase 工作流。
|
|
30
|
+
保留所有验证门控(未来阶段检查、工作检查)、重新编号逻辑和提交。
|
|
31
|
+
</process>
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:research-phase
|
|
3
|
+
description: 研究如何实现某个阶段(独立命令——通常使用 /specops:plan-phase 代替)
|
|
4
|
+
argument-hint: "[phase]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Task
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
研究如何实现某个阶段。生成带有阶段上下文的 specops-phase-researcher 代理。
|
|
13
|
+
|
|
14
|
+
**注意:** 这是一个独立的研究命令。对于大多数工作流,使用 `/specops:plan-phase` 会自动集成研究。
|
|
15
|
+
|
|
16
|
+
**使用此命令的场景:**
|
|
17
|
+
- 你想在不规划的情况下先研究
|
|
18
|
+
- 你想在规划完成后重新研究
|
|
19
|
+
- 你需要在决定阶段是否可行之前进行调查
|
|
20
|
+
|
|
21
|
+
**编排器角色:** 解析阶段,对照路线图验证,检查现有研究,收集上下文,生成研究代理,展示结果。
|
|
22
|
+
|
|
23
|
+
**为什么用子代理:** 研究会快速消耗上下文(WebSearch、Context7 查询、源验证)。调查使用全新的 200k 上下文。主上下文保持精简以便用户交互。
|
|
24
|
+
</objective>
|
|
25
|
+
|
|
26
|
+
<context>
|
|
27
|
+
阶段编号:$ARGUMENTS(必需)
|
|
28
|
+
|
|
29
|
+
在步骤 1 中标准化阶段输入,然后再进行任何目录查找。
|
|
30
|
+
</context>
|
|
31
|
+
|
|
32
|
+
<process>
|
|
33
|
+
|
|
34
|
+
## 0. 初始化上下文
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
INIT=$(node .opencode/bin/specops-tools.cjs init phase-op "$ARGUMENTS")
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
从初始化 JSON 中提取:`phase_dir`、`phase_number`、`phase_name`、`phase_found`、`commit_docs`、`has_research`、`state_path`、`requirements_path`、`context_path`、`research_path`。
|
|
41
|
+
|
|
42
|
+
解析研究员模型:
|
|
43
|
+
```bash
|
|
44
|
+
RESEARCHER_MODEL=$(node .opencode/bin/specops-tools.cjs resolve-model specops-phase-researcher --raw)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 1. 验证阶段
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
PHASE_INFO=$(node .opencode/bin/specops-tools.cjs roadmap get-phase "${phase_number}")
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**如果 `found` 为 false:** 报错并退出。**如果 `found` 为 true:** 从 JSON 中提取 `phase_number`、`phase_name`、`goal`。
|
|
54
|
+
|
|
55
|
+
## 2. 检查现有研究
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**如果存在:** 提供选项:1) 更新研究,2) 查看现有,3) 跳过。等待响应。
|
|
62
|
+
|
|
63
|
+
**如果不存在:** 继续。
|
|
64
|
+
|
|
65
|
+
## 3. 收集阶段上下文
|
|
66
|
+
|
|
67
|
+
使用 INIT 中的路径(不要在编排器上下文中内联文件内容):
|
|
68
|
+
- `requirements_path`
|
|
69
|
+
- `context_path`
|
|
70
|
+
- `state_path`
|
|
71
|
+
|
|
72
|
+
展示摘要,包含阶段描述和研究员将加载的文件。
|
|
73
|
+
|
|
74
|
+
## 4. 生成 specops-phase-researcher 代理
|
|
75
|
+
|
|
76
|
+
研究模式:ecosystem(默认)、feasibility、implementation、comparison。
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
<research_type>
|
|
80
|
+
Phase Research — investigating HOW to implement a specific phase well.
|
|
81
|
+
</research_type>
|
|
82
|
+
|
|
83
|
+
<key_insight>
|
|
84
|
+
The question is NOT "which library should I use?"
|
|
85
|
+
|
|
86
|
+
The question is: "What do I not know that I don't know?"
|
|
87
|
+
|
|
88
|
+
For this phase, discover:
|
|
89
|
+
- What's the established architecture pattern?
|
|
90
|
+
- What libraries form the standard stack?
|
|
91
|
+
- What problems do people commonly hit?
|
|
92
|
+
- What's SOTA vs what Claude's training thinks is SOTA?
|
|
93
|
+
- What should NOT be hand-rolled?
|
|
94
|
+
</key_insight>
|
|
95
|
+
|
|
96
|
+
<objective>
|
|
97
|
+
Research implementation approach for Phase {phase_number}: {phase_name}
|
|
98
|
+
Mode: ecosystem
|
|
99
|
+
</objective>
|
|
100
|
+
|
|
101
|
+
<files_to_read>
|
|
102
|
+
- {requirements_path} (Requirements)
|
|
103
|
+
- {context_path} (Phase context from discuss-phase, if exists)
|
|
104
|
+
- {state_path} (Prior project decisions and blockers)
|
|
105
|
+
</files_to_read>
|
|
106
|
+
|
|
107
|
+
<additional_context>
|
|
108
|
+
**Phase description:** {phase_description}
|
|
109
|
+
</additional_context>
|
|
110
|
+
|
|
111
|
+
<downstream_consumer>
|
|
112
|
+
Your RESEARCH.md will be loaded by `/specops:plan-phase` which uses specific sections:
|
|
113
|
+
- `## Standard Stack` → Plans use these libraries
|
|
114
|
+
- `## Architecture Patterns` → Task structure follows these
|
|
115
|
+
- `## Don't Hand-Roll` → Tasks NEVER build custom solutions for listed problems
|
|
116
|
+
- `## Common Pitfalls` → Verification steps check for these
|
|
117
|
+
- `## Code Examples` → Task actions reference these patterns
|
|
118
|
+
|
|
119
|
+
Be prescriptive, not exploratory. "Use X" not "Consider X or Y."
|
|
120
|
+
</downstream_consumer>
|
|
121
|
+
|
|
122
|
+
<quality_gate>
|
|
123
|
+
Before declaring complete, verify:
|
|
124
|
+
- [ ] All domains investigated (not just some)
|
|
125
|
+
- [ ] Negative claims verified with official docs
|
|
126
|
+
- [ ] Multiple sources for critical claims
|
|
127
|
+
- [ ] Confidence levels assigned honestly
|
|
128
|
+
- [ ] Section names match what plan-phase expects
|
|
129
|
+
</quality_gate>
|
|
130
|
+
|
|
131
|
+
<output>
|
|
132
|
+
Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
|
|
133
|
+
</output>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Task(
|
|
138
|
+
prompt="First, read ~/.claude/agents/specops-phase-researcher.md for your role and instructions.\n\n" + filled_prompt,
|
|
139
|
+
subagent_type="general-purpose",
|
|
140
|
+
model="{researcher_model}",
|
|
141
|
+
description="Research Phase {phase}"
|
|
142
|
+
)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 5. 处理代理返回
|
|
146
|
+
|
|
147
|
+
**`## RESEARCH COMPLETE`:** 显示摘要,提供选项:规划阶段、深入研究、查看完整内容、完成。
|
|
148
|
+
|
|
149
|
+
**`## CHECKPOINT REACHED`:** 向用户展示,获取响应,生成后续代理。
|
|
150
|
+
|
|
151
|
+
**`## RESEARCH INCONCLUSIVE`:** 显示已尝试的内容,提供选项:添加上下文、尝试不同模式、手动。
|
|
152
|
+
|
|
153
|
+
## 6. 生成后续代理
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
<objective>
|
|
157
|
+
Continue research for Phase {phase_number}: {phase_name}
|
|
158
|
+
</objective>
|
|
159
|
+
|
|
160
|
+
<prior_state>
|
|
161
|
+
<files_to_read>
|
|
162
|
+
- .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md (Existing research)
|
|
163
|
+
</files_to_read>
|
|
164
|
+
</prior_state>
|
|
165
|
+
|
|
166
|
+
<checkpoint_response>
|
|
167
|
+
**Type:** {checkpoint_type}
|
|
168
|
+
**Response:** {user_response}
|
|
169
|
+
</checkpoint_response>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
Task(
|
|
174
|
+
prompt="First, read ~/.claude/agents/specops-phase-researcher.md for your role and instructions.\n\n" + continuation_prompt,
|
|
175
|
+
subagent_type="general-purpose",
|
|
176
|
+
model="{researcher_model}",
|
|
177
|
+
description="Continue research Phase {phase}"
|
|
178
|
+
)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
</process>
|
|
182
|
+
|
|
183
|
+
<success_criteria>
|
|
184
|
+
- [ ] 阶段已对照路线图验证
|
|
185
|
+
- [ ] 已检查现有研究
|
|
186
|
+
- [ ] 已生成带上下文的 specops-phase-researcher
|
|
187
|
+
- [ ] 正确处理检查点
|
|
188
|
+
- [ ] 用户知道后续步骤
|
|
189
|
+
</success_criteria>
|