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,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:audit-milestone
|
|
3
|
+
description: 在归档之前审计里程碑完成情况是否符合原始意图
|
|
4
|
+
argument-hint: "[version]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- Bash
|
|
10
|
+
- Task
|
|
11
|
+
- Write
|
|
12
|
+
---
|
|
13
|
+
<objective>
|
|
14
|
+
验证里程碑是否达成了其完成定义。检查需求覆盖率、跨阶段集成和端到端流程。
|
|
15
|
+
|
|
16
|
+
**此命令本身就是编排器。** 读取现有的 VERIFICATION.md 文件(阶段在 execute-phase 期间已验证),汇总技术债务和延迟的缺口,然后生成集成检查器进行跨阶段连接检查。
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
@.opencode/workflows/audit-milestone.md
|
|
21
|
+
</execution_context>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
版本:$ARGUMENTS(可选 — 默认为当前里程碑)
|
|
25
|
+
|
|
26
|
+
核心规划文件在工作流中解析(`init milestone-op`),仅按需加载。
|
|
27
|
+
|
|
28
|
+
**已完成的工作:**
|
|
29
|
+
Glob: .planning/phases/*/*-SUMMARY.md
|
|
30
|
+
Glob: .planning/phases/*/*-VERIFICATION.md
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
端到端执行 @.opencode/workflows/audit-milestone.md 中的 audit-milestone 工作流。
|
|
35
|
+
保留所有工作流门控(范围确定、验证读取、集成检查、需求覆盖、路由)。
|
|
36
|
+
</process>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:check-todos
|
|
3
|
+
description: 列出待处理的待办事项并选择一个来处理
|
|
4
|
+
argument-hint: [area filter]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
列出所有待处理的待办事项,允许选择,加载所选待办的完整上下文,并路由到适当的操作。
|
|
14
|
+
|
|
15
|
+
路由到 check-todos 工作流,该工作流处理:
|
|
16
|
+
- 待办计数和列表(带领域过滤)
|
|
17
|
+
- 交互式选择及完整上下文加载
|
|
18
|
+
- 路线图关联检查
|
|
19
|
+
- 操作路由(立即处理、添加到阶段、头脑风暴、创建阶段)
|
|
20
|
+
- STATE.md 更新和 git 提交
|
|
21
|
+
</objective>
|
|
22
|
+
|
|
23
|
+
<execution_context>
|
|
24
|
+
@.opencode/workflows/check-todos.md
|
|
25
|
+
</execution_context>
|
|
26
|
+
|
|
27
|
+
<context>
|
|
28
|
+
参数:$ARGUMENTS(可选的领域过滤器)
|
|
29
|
+
|
|
30
|
+
待办状态和路线图关联在工作流中通过 `init todos` 和定向读取加载。
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
**遵循 check-todos 工作流**,来自 `@.opencode/workflows/check-todos.md`。
|
|
35
|
+
|
|
36
|
+
该工作流处理所有逻辑,包括:
|
|
37
|
+
1. 待办存在性检查
|
|
38
|
+
2. 领域过滤
|
|
39
|
+
3. 交互式列表和选择
|
|
40
|
+
4. 完整上下文加载及文件摘要
|
|
41
|
+
5. 路线图关联检查
|
|
42
|
+
6. 操作提供和执行
|
|
43
|
+
7. STATE.md 更新
|
|
44
|
+
8. Git 提交
|
|
45
|
+
</process>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:cleanup
|
|
3
|
+
description: 归档已完成里程碑的阶段目录
|
|
4
|
+
---
|
|
5
|
+
<objective>
|
|
6
|
+
将已完成里程碑的阶段目录归档到 `.planning/milestones/v{X.Y}-phases/` 中。
|
|
7
|
+
|
|
8
|
+
当 `.planning/phases/` 积累了过多历史里程碑的目录时使用。
|
|
9
|
+
</objective>
|
|
10
|
+
|
|
11
|
+
<execution_context>
|
|
12
|
+
@.opencode/workflows/cleanup.md
|
|
13
|
+
</execution_context>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
遵循 @.opencode/workflows/cleanup.md 中的清理工作流。
|
|
17
|
+
识别已完成的里程碑,展示预演摘要,确认后执行归档。
|
|
18
|
+
</process>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: prompt
|
|
3
|
+
name: specops:complete-milestone
|
|
4
|
+
description: 归档已完成的里程碑并为下一个版本做准备
|
|
5
|
+
argument-hint: <version>
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
将里程碑 {{version}} 标记为完成,归档到 milestones/,并更新 ROADMAP.md 和 REQUIREMENTS.md。
|
|
14
|
+
|
|
15
|
+
目的:创建已发布版本的历史记录,归档里程碑产物(路线图 + 需求),并为下一个里程碑做准备。
|
|
16
|
+
输出:里程碑已归档(路线图 + 需求),PROJECT.md 已演进,git 已打标签。
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
**立即加载这些文件(在继续之前):**
|
|
21
|
+
|
|
22
|
+
- @.opencode/workflows/complete-milestone.md(主工作流)
|
|
23
|
+
- @.opencode/templates/milestone-archive.md(归档模板)
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<context>
|
|
27
|
+
**项目文件:**
|
|
28
|
+
- `.planning/ROADMAP.md`
|
|
29
|
+
- `.planning/REQUIREMENTS.md`
|
|
30
|
+
- `.planning/STATE.md`
|
|
31
|
+
- `.planning/PROJECT.md`
|
|
32
|
+
|
|
33
|
+
**用户输入:**
|
|
34
|
+
|
|
35
|
+
- 版本:{{version}}(例如 "1.0"、"1.1"、"2.0")
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<process>
|
|
39
|
+
|
|
40
|
+
**遵循 complete-milestone.md 工作流:**
|
|
41
|
+
|
|
42
|
+
0. **检查审计:**
|
|
43
|
+
|
|
44
|
+
- 查找 `.planning/v{{version}}-MILESTONE-AUDIT.md`
|
|
45
|
+
- 如果缺失或过期:建议先运行 `/specops:audit-milestone`
|
|
46
|
+
- 如果审计状态为 `gaps_found`:建议先运行 `/specops:plan-milestone-gaps`
|
|
47
|
+
- 如果审计状态为 `passed`:继续步骤 1
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
## Pre-flight Check
|
|
51
|
+
|
|
52
|
+
{If no v{{version}}-MILESTONE-AUDIT.md:}
|
|
53
|
+
⚠ No milestone audit found. Run `/specops:audit-milestone` first to verify
|
|
54
|
+
requirements coverage, cross-phase integration, and E2E flows.
|
|
55
|
+
|
|
56
|
+
{If audit has gaps:}
|
|
57
|
+
⚠ Milestone audit found gaps. Run `/specops:plan-milestone-gaps` to create
|
|
58
|
+
phases that close the gaps, or proceed anyway to accept as tech debt.
|
|
59
|
+
|
|
60
|
+
{If audit passed:}
|
|
61
|
+
✓ Milestone audit passed. Proceeding with completion.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
1. **验证就绪状态:**
|
|
65
|
+
|
|
66
|
+
- 检查里程碑中所有阶段是否有已完成的计划(SUMMARY.md 存在)
|
|
67
|
+
- 展示里程碑范围和统计数据
|
|
68
|
+
- 等待确认
|
|
69
|
+
|
|
70
|
+
2. **收集统计数据:**
|
|
71
|
+
|
|
72
|
+
- 统计阶段、计划、任务数量
|
|
73
|
+
- 计算 git 范围、文件变更、代码行数
|
|
74
|
+
- 从 git log 提取时间线
|
|
75
|
+
- 展示摘要,确认
|
|
76
|
+
|
|
77
|
+
3. **提取成就:**
|
|
78
|
+
|
|
79
|
+
- 读取里程碑范围内所有阶段的 SUMMARY.md 文件
|
|
80
|
+
- 提取 4-6 个关键成就
|
|
81
|
+
- 提交审批
|
|
82
|
+
|
|
83
|
+
4. **归档里程碑:**
|
|
84
|
+
|
|
85
|
+
- 创建 `.planning/milestones/v{{version}}-ROADMAP.md`
|
|
86
|
+
- 从 ROADMAP.md 提取完整阶段详情
|
|
87
|
+
- 填充 milestone-archive.md 模板
|
|
88
|
+
- 将 ROADMAP.md 更新为带链接的单行摘要
|
|
89
|
+
|
|
90
|
+
5. **归档需求:**
|
|
91
|
+
|
|
92
|
+
- 创建 `.planning/milestones/v{{version}}-REQUIREMENTS.md`
|
|
93
|
+
- 将所有 v1 需求标记为完成(复选框已勾选)
|
|
94
|
+
- 记录需求结果(已验证、已调整、已放弃)
|
|
95
|
+
- 删除 `.planning/REQUIREMENTS.md`(为下一个里程碑创建新的)
|
|
96
|
+
|
|
97
|
+
6. **更新 PROJECT.md:**
|
|
98
|
+
|
|
99
|
+
- 添加"当前状态"章节,包含已发布版本
|
|
100
|
+
- 添加"下一里程碑目标"章节
|
|
101
|
+
- 将之前的内容归档到 `<details>` 中(如果是 v1.1+)
|
|
102
|
+
|
|
103
|
+
7. **提交并打标签:**
|
|
104
|
+
|
|
105
|
+
- 暂存:MILESTONES.md、PROJECT.md、ROADMAP.md、STATE.md、归档文件
|
|
106
|
+
- 提交:`chore: archive v{{version}} milestone`
|
|
107
|
+
- 标签:`git tag -a v{{version}} -m "[milestone summary]"`
|
|
108
|
+
- 询问是否推送标签
|
|
109
|
+
|
|
110
|
+
8. **提供后续步骤:**
|
|
111
|
+
- `/specops:new-milestone` — 开始下一个里程碑(提问 → 研究 → 需求 → 路线图)
|
|
112
|
+
|
|
113
|
+
</process>
|
|
114
|
+
|
|
115
|
+
<success_criteria>
|
|
116
|
+
|
|
117
|
+
- 里程碑已归档到 `.planning/milestones/v{{version}}-ROADMAP.md`
|
|
118
|
+
- 需求已归档到 `.planning/milestones/v{{version}}-REQUIREMENTS.md`
|
|
119
|
+
- `.planning/REQUIREMENTS.md` 已删除(为下一个里程碑准备新的)
|
|
120
|
+
- ROADMAP.md 已折叠为单行条目
|
|
121
|
+
- PROJECT.md 已更新为当前状态
|
|
122
|
+
- Git 标签 v{{version}} 已创建
|
|
123
|
+
- 提交成功
|
|
124
|
+
- 用户知道后续步骤(包括需要新的需求定义)
|
|
125
|
+
</success_criteria>
|
|
126
|
+
|
|
127
|
+
<critical_rules>
|
|
128
|
+
|
|
129
|
+
- **先加载工作流:** 在执行前读取 complete-milestone.md
|
|
130
|
+
- **验证完成度:** 所有阶段必须有 SUMMARY.md 文件
|
|
131
|
+
- **用户确认:** 在验证门控处等待批准
|
|
132
|
+
- **先归档再删除:** 在更新/删除原始文件之前始终创建归档文件
|
|
133
|
+
- **单行摘要:** ROADMAP.md 中折叠的里程碑应为带链接的单行
|
|
134
|
+
- **上下文效率:** 归档使 ROADMAP.md 和 REQUIREMENTS.md 每个里程碑保持恒定大小
|
|
135
|
+
- **新需求:** 下一个里程碑从 `/specops:new-milestone` 开始,其中包含需求定义
|
|
136
|
+
</critical_rules>
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:debug
|
|
3
|
+
description: 跨上下文重置的系统化调试,带持久状态
|
|
4
|
+
argument-hint: [issue description]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Task
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
使用科学方法和子代理隔离来调试问题。
|
|
14
|
+
|
|
15
|
+
**编排器角色:** 收集症状,生成 specops-debugger 代理,处理检查点,生成后续代理。
|
|
16
|
+
|
|
17
|
+
**为什么用子代理:** 调查会快速消耗上下文(读取文件、形成假设、测试)。每次调查都有全新的 200k 上下文。主上下文保持精简以便用户交互。
|
|
18
|
+
</objective>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
用户的问题:$ARGUMENTS
|
|
22
|
+
|
|
23
|
+
检查活跃会话:
|
|
24
|
+
```bash
|
|
25
|
+
ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
|
|
26
|
+
```
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
|
|
31
|
+
## 0. 初始化上下文
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
INIT=$(node .opencode/bin/specops-tools.cjs state load)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
从初始化 JSON 中提取 `commit_docs`。解析调试器模型:
|
|
38
|
+
```bash
|
|
39
|
+
DEBUGGER_MODEL=$(node .opencode/bin/specops-tools.cjs resolve-model specops-debugger --raw)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 1. 检查活跃会话
|
|
43
|
+
|
|
44
|
+
如果存在活跃会话且没有 $ARGUMENTS:
|
|
45
|
+
- 列出会话及状态、假设、下一步操作
|
|
46
|
+
- 用户选择编号恢复或描述新问题
|
|
47
|
+
|
|
48
|
+
如果提供了 $ARGUMENTS 或用户描述了新问题:
|
|
49
|
+
- 继续到症状收集
|
|
50
|
+
|
|
51
|
+
## 2. 收集症状(如果是新问题)
|
|
52
|
+
|
|
53
|
+
使用 AskUserQuestion 逐一询问:
|
|
54
|
+
|
|
55
|
+
1. **预期行为** - 应该发生什么?
|
|
56
|
+
2. **实际行为** - 实际发生了什么?
|
|
57
|
+
3. **错误消息** - 有错误吗?(粘贴或描述)
|
|
58
|
+
4. **时间线** - 什么时候开始的?之前正常过吗?
|
|
59
|
+
5. **复现方式** - 如何触发?
|
|
60
|
+
|
|
61
|
+
全部收集后,确认准备开始调查。
|
|
62
|
+
|
|
63
|
+
## 3. 生成 specops-debugger 代理
|
|
64
|
+
|
|
65
|
+
填充提示并生成:
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
<objective>
|
|
69
|
+
Investigate issue: {slug}
|
|
70
|
+
|
|
71
|
+
**Summary:** {trigger}
|
|
72
|
+
</objective>
|
|
73
|
+
|
|
74
|
+
<symptoms>
|
|
75
|
+
expected: {expected}
|
|
76
|
+
actual: {actual}
|
|
77
|
+
errors: {errors}
|
|
78
|
+
reproduction: {reproduction}
|
|
79
|
+
timeline: {timeline}
|
|
80
|
+
</symptoms>
|
|
81
|
+
|
|
82
|
+
<mode>
|
|
83
|
+
symptoms_prefilled: true
|
|
84
|
+
goal: find_and_fix
|
|
85
|
+
</mode>
|
|
86
|
+
|
|
87
|
+
<debug_file>
|
|
88
|
+
Create: .planning/debug/{slug}.md
|
|
89
|
+
</debug_file>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
Task(
|
|
94
|
+
prompt=filled_prompt,
|
|
95
|
+
subagent_type="specops-debugger",
|
|
96
|
+
model="{debugger_model}",
|
|
97
|
+
description="Debug {slug}"
|
|
98
|
+
)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 4. 处理代理返回
|
|
102
|
+
|
|
103
|
+
**如果 `## ROOT CAUSE FOUND`:**
|
|
104
|
+
- 显示根本原因和证据摘要
|
|
105
|
+
- 提供选项:
|
|
106
|
+
- "立即修复" - 生成修复子代理
|
|
107
|
+
- "计划修复" - 建议 /specops:plan-phase --gaps
|
|
108
|
+
- "手动修复" - 完成
|
|
109
|
+
|
|
110
|
+
**如果 `## CHECKPOINT REACHED`:**
|
|
111
|
+
- 向用户展示检查点详情
|
|
112
|
+
- 获取用户响应
|
|
113
|
+
- 如果检查点类型是 `human-verify`:
|
|
114
|
+
- 如果用户确认已修复:继续让代理完成/解决/归档
|
|
115
|
+
- 如果用户报告问题:继续让代理返回调查/修复
|
|
116
|
+
- 生成后续代理(见步骤 5)
|
|
117
|
+
|
|
118
|
+
**如果 `## INVESTIGATION INCONCLUSIVE`:**
|
|
119
|
+
- 显示已检查和排除的内容
|
|
120
|
+
- 提供选项:
|
|
121
|
+
- "继续调查" - 生成带额外上下文的新代理
|
|
122
|
+
- "手动调查" - 完成
|
|
123
|
+
- "添加更多上下文" - 收集更多症状,再次生成
|
|
124
|
+
|
|
125
|
+
## 5. 生成后续代理(检查点之后)
|
|
126
|
+
|
|
127
|
+
当用户响应检查点时,生成新代理:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
<objective>
|
|
131
|
+
Continue debugging {slug}. Evidence is in the debug file.
|
|
132
|
+
</objective>
|
|
133
|
+
|
|
134
|
+
<prior_state>
|
|
135
|
+
<files_to_read>
|
|
136
|
+
- .planning/debug/{slug}.md (Debug session state)
|
|
137
|
+
</files_to_read>
|
|
138
|
+
</prior_state>
|
|
139
|
+
|
|
140
|
+
<checkpoint_response>
|
|
141
|
+
**Type:** {checkpoint_type}
|
|
142
|
+
**Response:** {user_response}
|
|
143
|
+
</checkpoint_response>
|
|
144
|
+
|
|
145
|
+
<mode>
|
|
146
|
+
goal: find_and_fix
|
|
147
|
+
</mode>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
Task(
|
|
152
|
+
prompt=continuation_prompt,
|
|
153
|
+
subagent_type="specops-debugger",
|
|
154
|
+
model="{debugger_model}",
|
|
155
|
+
description="Continue debug {slug}"
|
|
156
|
+
)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
</process>
|
|
160
|
+
|
|
161
|
+
<success_criteria>
|
|
162
|
+
- [ ] 已检查活跃会话
|
|
163
|
+
- [ ] 已收集症状(如果是新问题)
|
|
164
|
+
- [ ] 已生成带上下文的 specops-debugger
|
|
165
|
+
- [ ] 正确处理检查点
|
|
166
|
+
- [ ] 修复前确认根本原因
|
|
167
|
+
</success_criteria>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:discuss-phase
|
|
3
|
+
description: 在规划前通过自适应提问收集阶段上下文
|
|
4
|
+
argument-hint: "<phase> [--auto]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
- Task
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<objective>
|
|
16
|
+
提取下游 agent 需要的实现决策 — 研究员和规划师将使用 CONTEXT.md 来了解需要调查什么以及哪些选择已锁定。
|
|
17
|
+
|
|
18
|
+
**工作方式:**
|
|
19
|
+
1. 分析阶段以识别灰色地带(UI、UX、行为等)
|
|
20
|
+
2. 展示灰色地带 — 用户选择要讨论的内容
|
|
21
|
+
3. 深入探讨每个选定区域直到满意
|
|
22
|
+
4. 创建 CONTEXT.md,记录可指导研究和规划的决策
|
|
23
|
+
|
|
24
|
+
**输出:** `{phase_num}-CONTEXT.md` — 决策足够清晰,下游 agent 无需再向用户询问
|
|
25
|
+
</objective>
|
|
26
|
+
|
|
27
|
+
<execution_context>
|
|
28
|
+
@.opencode/workflows/discuss-phase.md
|
|
29
|
+
@.opencode/templates/context.md
|
|
30
|
+
</execution_context>
|
|
31
|
+
|
|
32
|
+
<context>
|
|
33
|
+
阶段编号:$ARGUMENTS(必填)
|
|
34
|
+
|
|
35
|
+
上下文文件在工作流内部通过 `init phase-op` 和路线图/状态工具调用解析。
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<process>
|
|
39
|
+
1. 验证阶段编号(缺失或不在路线图中则报错)
|
|
40
|
+
2. 检查 CONTEXT.md 是否存在(如存在则提供更新/查看/跳过选项)
|
|
41
|
+
3. **分析阶段** — 识别领域并生成阶段特定的灰色地带
|
|
42
|
+
4. **展示灰色地带** — 多选:要讨论哪些?(不提供跳过选项)
|
|
43
|
+
5. **深入探讨每个区域** — 每个区域 4 个问题,然后提供继续/下一个选项
|
|
44
|
+
6. **编写 CONTEXT.md** — 章节与讨论区域对应
|
|
45
|
+
7. 提供下一步建议(研究或规划)
|
|
46
|
+
|
|
47
|
+
**关键:范围守卫**
|
|
48
|
+
- 路线图中的阶段边界是固定的
|
|
49
|
+
- 讨论澄清的是如何实现,而非是否增加更多内容
|
|
50
|
+
- 如果用户建议新功能:"这应该是独立的阶段。我会记录下来待后续处理。"
|
|
51
|
+
- 记录延后的想法 — 不遗漏,不执行
|
|
52
|
+
|
|
53
|
+
**领域感知的灰色地带:**
|
|
54
|
+
灰色地带取决于正在构建的内容。分析阶段目标:
|
|
55
|
+
- 用户能看到的 → 布局、密度、交互、状态
|
|
56
|
+
- 用户能调用的 → 响应、错误、认证、版本控制
|
|
57
|
+
- 用户能运行的 → 输出格式、标志、模式、错误处理
|
|
58
|
+
- 用户能阅读的 → 结构、语调、深度、流程
|
|
59
|
+
- 正在组织的 → 标准、分组、命名、例外
|
|
60
|
+
|
|
61
|
+
为每个阶段生成 3-4 个**阶段特定**灰色地带,而非通用类别。
|
|
62
|
+
|
|
63
|
+
**探索深度:**
|
|
64
|
+
- 每个区域先问 4 个问题再确认
|
|
65
|
+
- "关于[区域]还有更多问题,还是进入下一个?"
|
|
66
|
+
- 如果继续 → 再问 4 个,再次确认
|
|
67
|
+
- 所有区域完成后 → "准备创建上下文了吗?"
|
|
68
|
+
|
|
69
|
+
**不要询问(Claude 自行处理):**
|
|
70
|
+
- 技术实现
|
|
71
|
+
- 架构选择
|
|
72
|
+
- 性能问题
|
|
73
|
+
- 范围扩展
|
|
74
|
+
</process>
|
|
75
|
+
|
|
76
|
+
<success_criteria>
|
|
77
|
+
- 通过智能分析识别灰色地带
|
|
78
|
+
- 用户选择了要讨论的区域
|
|
79
|
+
- 每个选定区域探讨至满意
|
|
80
|
+
- 范围蔓延被引导为延后想法
|
|
81
|
+
- CONTEXT.md 记录的是决策,而非模糊愿景
|
|
82
|
+
- 用户知道下一步是什么
|
|
83
|
+
</success_criteria>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:execute-phase
|
|
3
|
+
description: 使用基于波次的并行化执行阶段中的所有计划
|
|
4
|
+
argument-hint: "<phase-number> [--gaps-only]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
- Task
|
|
13
|
+
- TodoWrite
|
|
14
|
+
- AskUserQuestion
|
|
15
|
+
---
|
|
16
|
+
<objective>
|
|
17
|
+
使用基于波次的并行执行来执行阶段中的所有计划。
|
|
18
|
+
|
|
19
|
+
编排器保持精简:发现计划、分析依赖、分组为波次、生成子代理、收集结果。每个子代理加载完整的 execute-plan 上下文并处理自己的计划。
|
|
20
|
+
|
|
21
|
+
上下文预算:编排器约 15%,每个子代理 100% 全新。
|
|
22
|
+
</objective>
|
|
23
|
+
|
|
24
|
+
<execution_context>
|
|
25
|
+
@.opencode/workflows/execute-phase.md
|
|
26
|
+
@.opencode/references/ui-brand.md
|
|
27
|
+
</execution_context>
|
|
28
|
+
|
|
29
|
+
<context>
|
|
30
|
+
阶段:$ARGUMENTS
|
|
31
|
+
|
|
32
|
+
**标志:**
|
|
33
|
+
- `--gaps-only` — 仅执行缺口修复计划(frontmatter 中 `gap_closure: true` 的计划)。在 verify-work 创建修复计划后使用。
|
|
34
|
+
|
|
35
|
+
上下文文件在工作流内部通过 `specops-tools init execute-phase` 和每个子代理的 `<files_to_read>` 块解析。
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<process>
|
|
39
|
+
端到端执行 @.opencode/workflows/execute-phase.md 中的 execute-phase 工作流。
|
|
40
|
+
保留所有工作流门控(波次执行、检查点处理、验证、状态更新、路由)。
|
|
41
|
+
</process>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:health
|
|
3
|
+
description: 诊断规划目录健康状态并可选修复问题
|
|
4
|
+
argument-hint: "[--repair]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Write
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
<objective>
|
|
12
|
+
验证 `.planning/` 目录完整性并报告可操作的问题。检查缺失文件、无效配置、不一致状态和孤立计划。
|
|
13
|
+
</objective>
|
|
14
|
+
|
|
15
|
+
<execution_context>
|
|
16
|
+
@.opencode/workflows/health.md
|
|
17
|
+
</execution_context>
|
|
18
|
+
|
|
19
|
+
<process>
|
|
20
|
+
端到端执行 @.opencode/workflows/health.md 中的健康检查工作流。
|
|
21
|
+
从参数中解析 --repair 标志并传递给工作流。
|
|
22
|
+
</process>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:help
|
|
3
|
+
description: 显示可用的 SpecOps 命令和使用指南
|
|
4
|
+
---
|
|
5
|
+
<objective>
|
|
6
|
+
显示完整的 SpecOps 命令参考。
|
|
7
|
+
|
|
8
|
+
仅输出以下参考内容。不要添加:
|
|
9
|
+
- 项目特定的分析
|
|
10
|
+
- Git 状态或文件上下文
|
|
11
|
+
- 后续步骤建议
|
|
12
|
+
- 参考之外的任何评论
|
|
13
|
+
</objective>
|
|
14
|
+
|
|
15
|
+
<execution_context>
|
|
16
|
+
@.opencode/workflows/help.md
|
|
17
|
+
</execution_context>
|
|
18
|
+
|
|
19
|
+
<process>
|
|
20
|
+
输出来自 @.opencode/workflows/help.md 的完整 SpecOps 命令参考。
|
|
21
|
+
直接显示参考内容——不做任何添加或修改。
|
|
22
|
+
</process>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:insert-phase
|
|
3
|
+
description: 将紧急工作作为小数阶段(如 72.1)插入到现有阶段之间
|
|
4
|
+
argument-hint: <after> <description>
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
为里程碑中期发现的紧急工作插入一个小数阶段,该工作必须在现有整数阶段之间完成。
|
|
13
|
+
|
|
14
|
+
使用小数编号(72.1、72.2 等)来保留计划阶段的逻辑顺序,同时容纳紧急插入。
|
|
15
|
+
|
|
16
|
+
目的:处理执行期间发现的紧急工作,无需重新编号整个路线图。
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
@.opencode/workflows/insert-phase.md
|
|
21
|
+
</execution_context>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
参数:$ARGUMENTS(格式:<after-phase-number> <description>)
|
|
25
|
+
|
|
26
|
+
路线图和状态在工作流中通过 `init phase-op` 和定向工具调用解析。
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
端到端执行 @.opencode/workflows/insert-phase.md 中的 insert-phase 工作流。
|
|
31
|
+
保留所有验证门控(参数解析、阶段验证、小数计算、路线图更新)。
|
|
32
|
+
</process>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:join-discord
|
|
3
|
+
description: 加入 SpecOps Discord 社区
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
显示 SpecOps 社区服务器的 Discord 邀请链接。
|
|
8
|
+
</objective>
|
|
9
|
+
|
|
10
|
+
<output>
|
|
11
|
+
# 加入 SpecOps Discord
|
|
12
|
+
|
|
13
|
+
与其他 SpecOps 用户交流,获取帮助,分享你正在构建的项目,并保持更新。
|
|
14
|
+
|
|
15
|
+
**邀请链接:** https://discord.gg/5JJgD5svVS
|
|
16
|
+
|
|
17
|
+
点击链接或将其粘贴到浏览器中即可加入。
|
|
18
|
+
</output>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specops:list-phase-assumptions
|
|
3
|
+
description: 在规划之前展示 Claude 对阶段方法的假设
|
|
4
|
+
argument-hint: "[phase]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Grep
|
|
9
|
+
- Glob
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
分析一个阶段并展示 Claude 关于技术方法、实现顺序、范围边界、风险领域和依赖关系的假设。
|
|
14
|
+
|
|
15
|
+
目的:帮助用户在规划开始之前看到 Claude 的想法——在假设错误时尽早纠正。
|
|
16
|
+
输出:仅对话输出(不创建文件)——以"你觉得怎么样?"提示结束
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
@.opencode/workflows/list-phase-assumptions.md
|
|
21
|
+
</execution_context>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
阶段编号:$ARGUMENTS(必需)
|
|
25
|
+
|
|
26
|
+
项目状态和路线图在工作流中通过定向读取加载。
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
1. 验证阶段编号参数(缺失或无效时报错)
|
|
31
|
+
2. 检查阶段是否存在于路线图中
|
|
32
|
+
3. 遵循 list-phase-assumptions.md 工作流:
|
|
33
|
+
- 分析路线图描述
|
|
34
|
+
- 展示关于以下方面的假设:技术方法、实现顺序、范围、风险、依赖关系
|
|
35
|
+
- 清晰展示假设
|
|
36
|
+
- 提示"你觉得怎么样?"
|
|
37
|
+
4. 收集反馈并提供后续步骤
|
|
38
|
+
</process>
|
|
39
|
+
|
|
40
|
+
<success_criteria>
|
|
41
|
+
|
|
42
|
+
- 阶段已对照路线图验证
|
|
43
|
+
- 在五个领域展示了假设
|
|
44
|
+
- 已提示用户反馈
|
|
45
|
+
- 用户知道后续步骤(讨论上下文、规划阶段或纠正假设)
|
|
46
|
+
</success_criteria>
|