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,263 @@
|
|
|
1
|
+
<overview>
|
|
2
|
+
TDD 关注的是设计质量,而非覆盖率指标。红-绿-重构循环迫使你在实现之前思考行为,从而产生更清晰的接口和更可测试的代码。
|
|
3
|
+
|
|
4
|
+
**原则:** 如果你能在编写 `fn` 之前将行为描述为 `expect(fn(input)).toBe(output)`,TDD 就能改善结果。
|
|
5
|
+
|
|
6
|
+
**关键洞察:** TDD 工作本质上比标准任务更重,它需要 2-3 个执行周期(RED -> GREEN -> REFACTOR),每个周期都涉及文件读取、测试运行和潜在的调试。TDD 特性会获得专门的计划,以确保整个周期中有充足的上下文。
|
|
7
|
+
</overview>
|
|
8
|
+
|
|
9
|
+
<when_to_use_tdd>
|
|
10
|
+
## 何时使用 TDD
|
|
11
|
+
|
|
12
|
+
**TDD 候选(创建 TDD 计划):**
|
|
13
|
+
- 有明确输入/输出的业务逻辑
|
|
14
|
+
- 有请求/响应契约的 API 端点
|
|
15
|
+
- 数据转换、解析、格式化
|
|
16
|
+
- 验证规则和约束
|
|
17
|
+
- 有可测试行为的算法
|
|
18
|
+
- 状态机和工作流
|
|
19
|
+
- 有明确规格的工具函数
|
|
20
|
+
|
|
21
|
+
**跳过 TDD(使用带 `type="auto"` 任务的标准计划):**
|
|
22
|
+
- UI 布局、样式、视觉组件
|
|
23
|
+
- 配置变更
|
|
24
|
+
- 连接现有组件的胶水代码
|
|
25
|
+
- 一次性脚本和迁移
|
|
26
|
+
- 无业务逻辑的简单 CRUD
|
|
27
|
+
- 探索性原型
|
|
28
|
+
|
|
29
|
+
**判断标准:** 你能在编写 `fn` 之前写出 `expect(fn(input)).toBe(output)` 吗?
|
|
30
|
+
-> 能:创建 TDD 计划
|
|
31
|
+
-> 不能:使用标准计划,需要时再补测试
|
|
32
|
+
</when_to_use_tdd>
|
|
33
|
+
|
|
34
|
+
<tdd_plan_structure>
|
|
35
|
+
## TDD 计划结构
|
|
36
|
+
|
|
37
|
+
每个 TDD 计划通过完整的 RED-GREEN-REFACTOR 周期实现**一个特性**。
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
---
|
|
41
|
+
phase: XX-name
|
|
42
|
+
plan: NN
|
|
43
|
+
type: tdd
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
<objective>
|
|
47
|
+
[什么特性以及为什么]
|
|
48
|
+
Purpose: [TDD 对此特性的设计收益]
|
|
49
|
+
Output: [可工作的、经过测试的特性]
|
|
50
|
+
</objective>
|
|
51
|
+
|
|
52
|
+
<context>
|
|
53
|
+
@.planning/PROJECT.md
|
|
54
|
+
@.planning/ROADMAP.md
|
|
55
|
+
@relevant/source/files.ts
|
|
56
|
+
</context>
|
|
57
|
+
|
|
58
|
+
<feature>
|
|
59
|
+
<name>[特性名称]</name>
|
|
60
|
+
<files>[源文件, 测试文件]</files>
|
|
61
|
+
<behavior>
|
|
62
|
+
[以可测试的术语描述预期行为]
|
|
63
|
+
Cases: input -> expected output
|
|
64
|
+
</behavior>
|
|
65
|
+
<implementation>[测试通过后如何实现]</implementation>
|
|
66
|
+
</feature>
|
|
67
|
+
|
|
68
|
+
<verification>
|
|
69
|
+
[证明特性工作的测试命令]
|
|
70
|
+
</verification>
|
|
71
|
+
|
|
72
|
+
<success_criteria>
|
|
73
|
+
- 编写并提交了失败的测试
|
|
74
|
+
- 实现通过了测试
|
|
75
|
+
- 重构完成(如需要)
|
|
76
|
+
- 所有 2-3 个提交都存在
|
|
77
|
+
</success_criteria>
|
|
78
|
+
|
|
79
|
+
<output>
|
|
80
|
+
完成后,创建 SUMMARY.md 包含:
|
|
81
|
+
- RED:编写了什么测试,为什么失败
|
|
82
|
+
- GREEN:什么实现使其通过
|
|
83
|
+
- REFACTOR:做了什么清理(如有)
|
|
84
|
+
- Commits:产生的提交列表
|
|
85
|
+
</output>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**每个 TDD 计划一个特性。** 如果特性简单到可以批量处理,那就简单到可以跳过 TDD,使用标准计划并在之后添加测试。
|
|
89
|
+
</tdd_plan_structure>
|
|
90
|
+
|
|
91
|
+
<execution_flow>
|
|
92
|
+
## 红-绿-重构循环
|
|
93
|
+
|
|
94
|
+
**RED - 编写失败的测试:**
|
|
95
|
+
1. 按项目约定创建测试文件
|
|
96
|
+
2. 编写描述预期行为的测试(来自 `<behavior>` 元素)
|
|
97
|
+
3. 运行测试 - 必须失败
|
|
98
|
+
4. 如果测试通过:特性已存在或测试有误。需要调查。
|
|
99
|
+
5. 提交:`test({phase}-{plan}): add failing test for [feature]`
|
|
100
|
+
|
|
101
|
+
**GREEN - 实现使其通过:**
|
|
102
|
+
1. 编写最少的代码使测试通过
|
|
103
|
+
2. 不要耍聪明,不要优化 - 只要让它工作
|
|
104
|
+
3. 运行测试 - 必须通过
|
|
105
|
+
4. 提交:`feat({phase}-{plan}): implement [feature]`
|
|
106
|
+
|
|
107
|
+
**REFACTOR(如需要):**
|
|
108
|
+
1. 如果有明显的改进空间,清理实现
|
|
109
|
+
2. 运行测试 - 必须仍然通过
|
|
110
|
+
3. 仅在有变更时提交:`refactor({phase}-{plan}): clean up [feature]`
|
|
111
|
+
|
|
112
|
+
**结果:** 每个 TDD 计划产生 2-3 个原子提交。
|
|
113
|
+
</execution_flow>
|
|
114
|
+
|
|
115
|
+
<test_quality>
|
|
116
|
+
## 好测试 vs 坏测试
|
|
117
|
+
|
|
118
|
+
**测试行为,而非实现:**
|
|
119
|
+
- 好:「返回格式化的日期字符串」
|
|
120
|
+
- 坏:「用正确的参数调用 formatDate 辅助函数」
|
|
121
|
+
- 测试应该能经受住重构
|
|
122
|
+
|
|
123
|
+
**每个测试一个概念:**
|
|
124
|
+
- 好:分别测试有效输入、空输入、格式错误的输入
|
|
125
|
+
- 坏:单个测试用多个断言检查所有边界情况
|
|
126
|
+
|
|
127
|
+
**描述性命名:**
|
|
128
|
+
- 好:「should reject empty email」、「returns null for invalid ID」
|
|
129
|
+
- 坏:「test1」、「handles error」、「works correctly」
|
|
130
|
+
|
|
131
|
+
**不涉及实现细节:**
|
|
132
|
+
- 好:测试公共 API、可观察的行为
|
|
133
|
+
- 坏:mock 内部实现、测试私有方法、断言内部状态
|
|
134
|
+
</test_quality>
|
|
135
|
+
|
|
136
|
+
<framework_setup>
|
|
137
|
+
## 测试框架设置(如果不存在)
|
|
138
|
+
|
|
139
|
+
执行 TDD 计划但没有配置测试框架时,在 RED 阶段进行设置:
|
|
140
|
+
|
|
141
|
+
**1. 检测项目类型:**
|
|
142
|
+
```bash
|
|
143
|
+
# JavaScript/TypeScript
|
|
144
|
+
if [ -f package.json ]; then echo "node"; fi
|
|
145
|
+
|
|
146
|
+
# Python
|
|
147
|
+
if [ -f requirements.txt ] || [ -f pyproject.toml ]; then echo "python"; fi
|
|
148
|
+
|
|
149
|
+
# Go
|
|
150
|
+
if [ -f go.mod ]; then echo "go"; fi
|
|
151
|
+
|
|
152
|
+
# Rust
|
|
153
|
+
if [ -f Cargo.toml ]; then echo "rust"; fi
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**2. 安装最小框架:**
|
|
157
|
+
| 项目 | 框架 | 安装命令 |
|
|
158
|
+
|------|------|----------|
|
|
159
|
+
| Node.js | Jest | `npm install -D jest @types/jest ts-jest` |
|
|
160
|
+
| Node.js (Vite) | Vitest | `npm install -D vitest` |
|
|
161
|
+
| Python | pytest | `pip install pytest` |
|
|
162
|
+
| Go | testing | 内置 |
|
|
163
|
+
| Rust | cargo test | 内置 |
|
|
164
|
+
|
|
165
|
+
**3. 按需创建配置:**
|
|
166
|
+
- Jest:带 ts-jest preset 的 `jest.config.js`
|
|
167
|
+
- Vitest:带 test globals 的 `vitest.config.ts`
|
|
168
|
+
- pytest:`pytest.ini` 或 `pyproject.toml` 中的配置段
|
|
169
|
+
|
|
170
|
+
**4. 验证设置:**
|
|
171
|
+
```bash
|
|
172
|
+
# 运行空测试套件 - 应该以 0 个测试通过
|
|
173
|
+
npm test # Node
|
|
174
|
+
pytest # Python
|
|
175
|
+
go test ./... # Go
|
|
176
|
+
cargo test # Rust
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**5. 创建第一个测试文件:**
|
|
180
|
+
按项目约定确定测试位置:
|
|
181
|
+
- `*.test.ts` / `*.spec.ts` 放在源文件旁边
|
|
182
|
+
- `__tests__/` 目录
|
|
183
|
+
- 根目录的 `tests/` 目录
|
|
184
|
+
|
|
185
|
+
框架设置是一次性成本,包含在第一个 TDD 计划的 RED 阶段中。
|
|
186
|
+
</framework_setup>
|
|
187
|
+
|
|
188
|
+
<error_handling>
|
|
189
|
+
## 错误处理
|
|
190
|
+
|
|
191
|
+
**RED 阶段测试没有失败:**
|
|
192
|
+
- 特性可能已存在 - 需要调查
|
|
193
|
+
- 测试可能有误(没有测试你以为在测试的东西)
|
|
194
|
+
- 在继续之前修复
|
|
195
|
+
|
|
196
|
+
**GREEN 阶段测试没有通过:**
|
|
197
|
+
- 调试实现
|
|
198
|
+
- 不要跳到重构
|
|
199
|
+
- 持续迭代直到变绿
|
|
200
|
+
|
|
201
|
+
**REFACTOR 阶段测试失败:**
|
|
202
|
+
- 撤销重构
|
|
203
|
+
- 提交为时过早
|
|
204
|
+
- 用更小的步骤重构
|
|
205
|
+
|
|
206
|
+
**不相关的测试中断:**
|
|
207
|
+
- 停下来调查
|
|
208
|
+
- 可能表明耦合问题
|
|
209
|
+
- 在继续之前修复
|
|
210
|
+
</error_handling>
|
|
211
|
+
|
|
212
|
+
<commit_pattern>
|
|
213
|
+
## TDD 计划的提交模式
|
|
214
|
+
|
|
215
|
+
TDD 计划产生 2-3 个原子提交(每个阶段一个):
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
test(08-02): add failing test for email validation
|
|
219
|
+
|
|
220
|
+
- Tests valid email formats accepted
|
|
221
|
+
- Tests invalid formats rejected
|
|
222
|
+
- Tests empty input handling
|
|
223
|
+
|
|
224
|
+
feat(08-02): implement email validation
|
|
225
|
+
|
|
226
|
+
- Regex pattern matches RFC 5322
|
|
227
|
+
- Returns boolean for validity
|
|
228
|
+
- Handles edge cases (empty, null)
|
|
229
|
+
|
|
230
|
+
refactor(08-02): extract regex to constant (optional)
|
|
231
|
+
|
|
232
|
+
- Moved pattern to EMAIL_REGEX constant
|
|
233
|
+
- No behavior changes
|
|
234
|
+
- Tests still pass
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**与标准计划的对比:**
|
|
238
|
+
- 标准计划:每个任务 1 个提交,每个计划 2-4 个提交
|
|
239
|
+
- TDD 计划:单个特性 2-3 个提交
|
|
240
|
+
|
|
241
|
+
两者遵循相同格式:`{type}({phase}-{plan}): {description}`
|
|
242
|
+
|
|
243
|
+
**收益:**
|
|
244
|
+
- 每个提交可独立回滚
|
|
245
|
+
- Git bisect 在提交级别工作
|
|
246
|
+
- 清晰的历史展示 TDD 纪律
|
|
247
|
+
- 与整体提交策略一致
|
|
248
|
+
</commit_pattern>
|
|
249
|
+
|
|
250
|
+
<context_budget>
|
|
251
|
+
## 上下文预算
|
|
252
|
+
|
|
253
|
+
TDD 计划目标 **~40% 上下文使用率**(低于标准计划的 ~50%)。
|
|
254
|
+
|
|
255
|
+
为什么更低:
|
|
256
|
+
- RED 阶段:编写测试、运行测试、可能需要调试为什么没有失败
|
|
257
|
+
- GREEN 阶段:实现、运行测试、可能需要对失败进行迭代
|
|
258
|
+
- REFACTOR 阶段:修改代码、运行测试、验证无回归
|
|
259
|
+
|
|
260
|
+
每个阶段都涉及读取文件、运行命令、分析输出。这种来回交互本质上比线性任务执行更重。
|
|
261
|
+
|
|
262
|
+
单一特性聚焦确保整个周期的完整质量。
|
|
263
|
+
</context_budget>
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<ui_patterns>
|
|
2
|
+
|
|
3
|
+
面向用户的 SpecOps 输出的视觉模式。编排器通过 @ 引用此文件。
|
|
4
|
+
|
|
5
|
+
## 阶段横幅
|
|
6
|
+
|
|
7
|
+
用于主要工作流转换。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
11
|
+
SpecOps ► {STAGE NAME}
|
|
12
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**阶段名称(大写):**
|
|
16
|
+
- `QUESTIONING`
|
|
17
|
+
- `RESEARCHING`
|
|
18
|
+
- `DEFINING REQUIREMENTS`
|
|
19
|
+
- `CREATING ROADMAP`
|
|
20
|
+
- `PLANNING PHASE {N}`
|
|
21
|
+
- `EXECUTING WAVE {N}`
|
|
22
|
+
- `VERIFYING`
|
|
23
|
+
- `PHASE {N} COMPLETE ✓`
|
|
24
|
+
- `MILESTONE COMPLETE 🎉`
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 检查点框
|
|
29
|
+
|
|
30
|
+
需要用户操作。62 字符宽度。
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
34
|
+
║ CHECKPOINT: {Type} ║
|
|
35
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
36
|
+
|
|
37
|
+
{Content}
|
|
38
|
+
|
|
39
|
+
──────────────────────────────────────────────────────────────
|
|
40
|
+
→ {ACTION PROMPT}
|
|
41
|
+
──────────────────────────────────────────────────────────────
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**类型:**
|
|
45
|
+
- `CHECKPOINT: Verification Required` -> `-> Type "approved" or describe issues`
|
|
46
|
+
- `CHECKPOINT: Decision Required` -> `-> Select: option-a / option-b`
|
|
47
|
+
- `CHECKPOINT: Action Required` -> `-> Type "done" when complete`
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 状态符号
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
✓ 完成 / 通过 / 已验证
|
|
55
|
+
✗ 失败 / 缺失 / 阻塞
|
|
56
|
+
◆ 进行中
|
|
57
|
+
○ 待处理
|
|
58
|
+
⚡ 自动批准
|
|
59
|
+
⚠ 警告
|
|
60
|
+
🎉 里程碑完成(仅在横幅中)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 进度显示
|
|
66
|
+
|
|
67
|
+
**阶段/里程碑级别:**
|
|
68
|
+
```
|
|
69
|
+
Progress: ████████░░ 80%
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**任务级别:**
|
|
73
|
+
```
|
|
74
|
+
Tasks: 2/4 complete
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**计划级别:**
|
|
78
|
+
```
|
|
79
|
+
Plans: 3/5 complete
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 生成指示器
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
◆ Spawning researcher...
|
|
88
|
+
|
|
89
|
+
◆ Spawning 4 researchers in parallel...
|
|
90
|
+
→ Stack research
|
|
91
|
+
→ Features research
|
|
92
|
+
→ Architecture research
|
|
93
|
+
→ Pitfalls research
|
|
94
|
+
|
|
95
|
+
✓ Researcher complete: STACK.md written
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 下一步区块
|
|
101
|
+
|
|
102
|
+
始终在主要完成后显示。
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
───────────────────────────────────────────────────────────────
|
|
106
|
+
|
|
107
|
+
## ▶ Next Up
|
|
108
|
+
|
|
109
|
+
**{Identifier}: {Name}** — {one-line description}
|
|
110
|
+
|
|
111
|
+
`{copy-paste command}`
|
|
112
|
+
|
|
113
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
114
|
+
|
|
115
|
+
───────────────────────────────────────────────────────────────
|
|
116
|
+
|
|
117
|
+
**Also available:**
|
|
118
|
+
- `/specops:alternative-1` — description
|
|
119
|
+
- `/specops:alternative-2` — description
|
|
120
|
+
|
|
121
|
+
───────────────────────────────────────────────────────────────
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 错误框
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
130
|
+
║ ERROR ║
|
|
131
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
132
|
+
|
|
133
|
+
{Error description}
|
|
134
|
+
|
|
135
|
+
**To fix:** {Resolution steps}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 表格
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
| Phase | Status | Plans | Progress |
|
|
144
|
+
|-------|--------|-------|----------|
|
|
145
|
+
| 1 | ✓ | 3/3 | 100% |
|
|
146
|
+
| 2 | ◆ | 1/4 | 25% |
|
|
147
|
+
| 3 | ○ | 0/2 | 0% |
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 反模式
|
|
153
|
+
|
|
154
|
+
- 框/横幅宽度不一致
|
|
155
|
+
- 混用横幅样式(`===`、`---`、`***`)
|
|
156
|
+
- 横幅中遗漏 `SpecOps ►` 前缀
|
|
157
|
+
- 随意使用 emoji(`🚀`、`✨`、`💫`)
|
|
158
|
+
- 完成后缺少 Next Up 区块
|
|
159
|
+
|
|
160
|
+
</ui_patterns>
|