@house365/comate 0.10.0 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/docs/CLEANUP_SUPERPOWERS.md +128 -0
- package/docs/SUPERPOWERS_FIX_SUMMARY.md +114 -0
- package/package.json +55 -55
- package/skills/comate/reference/decision-points.md +101 -101
- package/skills/comate/reference/prerequisites.md +88 -88
- package/skills/comate-archive/SKILL.md +63 -63
- package/skills/comate-build/SKILL.md +278 -278
- package/skills/comate-design/SKILL.md +156 -156
- package/skills/comate-gate/scaffold/docs/README.md +36 -36
- package/skills/comate-gate/scaffold/docs/architecture/README.md +31 -31
- package/skills/comate-gate/scaffold/docs/knowledge-base/README.md +41 -41
- package/skills/comate-gate/scaffold/docs/knowledge-base/integrations/_TEMPLATE/README.md +49 -49
- package/skills/comate-gate/scaffold/docs/knowledge-base/integrations/_TEMPLATE/api-snapshot.md +47 -47
- package/skills/comate-gate/scaffold/docs/knowledge-base/requirements/_templates/PRD.md +95 -95
- package/skills/comate-grill/SKILL.md +185 -185
- package/skills/comate-kb-integration/scripts/fetch_rendered_doc.py +84 -84
- package/skills/comate-open/SKILL.md +176 -176
- package/skills/comate-verify/SKILL.md +212 -173
|
@@ -1,173 +1,212 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: comate-verify
|
|
3
|
-
description: "comate 阶段 4:验证与收尾。用 /comate-verify 调用。验证实现符合设计,处理开发分支。"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# comate 阶段 4:验证与收尾(Verify)
|
|
7
|
-
|
|
8
|
-
## 前置条件
|
|
9
|
-
|
|
10
|
-
- 代码已提交(阶段 3 完成)
|
|
11
|
-
- tasks.md 全部任务已完成
|
|
12
|
-
|
|
13
|
-
## 步骤
|
|
14
|
-
|
|
15
|
-
###
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
bash
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
bash "$COMATE" state <name>
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
1
|
+
---
|
|
2
|
+
name: comate-verify
|
|
3
|
+
description: "comate 阶段 4:验证与收尾。用 /comate-verify 调用。验证实现符合设计,处理开发分支。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# comate 阶段 4:验证与收尾(Verify)
|
|
7
|
+
|
|
8
|
+
## 前置条件
|
|
9
|
+
|
|
10
|
+
- 代码已提交(阶段 3 完成)
|
|
11
|
+
- tasks.md 全部任务已完成
|
|
12
|
+
|
|
13
|
+
## 步骤
|
|
14
|
+
|
|
15
|
+
### 0a. 输出语言约束
|
|
16
|
+
|
|
17
|
+
**在开始任何检查前先确立**:本阶段所有产物——落盘的验证报告、失败项报告、给用户的结论——正文一律简体中文。标题、结论、问题描述、修复建议、表格表头都用中文。
|
|
18
|
+
|
|
19
|
+
以下保留英文原文:严重程度枚举(CRITICAL / WARNING / SUGGESTION)、代码标识符与路径、命令与日志原始输出、`file.ts:123` 形式的引用、技术术语和库名。
|
|
20
|
+
|
|
21
|
+
判断标准:句子主体是中文即合格。不要把英文模板逐句直译成生硬中文,按中文表达重写。
|
|
22
|
+
|
|
23
|
+
### 0b. 入口状态验证
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
COMATE="${COMATE:-$(for r in . ./.agents/skills ./.claude/skills ./.cursor/skills ./.codex/skills "$HOME"/.agents/skills "$HOME"/.claude/skills "$HOME"/.config/skills "$HOME"/.cursor/skills "$HOME"/.codex/skills "$HOME"/.gemini/skills; do
|
|
27
|
+
[ -d "$r" ] && find "$r" -maxdepth 6 -path '*/comate/scripts/comate.sh' -type f -print -quit 2>/dev/null
|
|
28
|
+
done | head -1)}"
|
|
29
|
+
if [ -z "$COMATE" ]; then
|
|
30
|
+
echo "ERROR: comate.sh 未找到,请确认 comate skill 已安装。" >&2
|
|
31
|
+
return 1 2>/dev/null || exit 1
|
|
32
|
+
fi
|
|
33
|
+
bash "$COMATE" state <name> check verify
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**幂等性**:verify 阶段检查可安全重复。若 `verify_result` 已为 `pass` 且 `branch_status` 为 `handled`,直接执行 guard 流转;若为 `pending`,从头验证。
|
|
37
|
+
|
|
38
|
+
### 1. 改动规模评估
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
bash "$COMATE" state <name> scale
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
脚本统计任务数、增量规格数、变更文件数,判断 light/full 验证模式并设 `verify_mode`。输出会标注用了哪个基线(plan base-ref / state base_ref / 工作树 diff)。
|
|
45
|
+
|
|
46
|
+
验证开始前,按 `comate/reference/dirty-worktree.md` 处理未提交改动。verify 阶段特例:
|
|
47
|
+
1. dirty diff 属于当前 change 且涉及实现/测试/tasks/spec/design doc → 不在 verify 直接修复,报告失败项进入 Step 1b
|
|
48
|
+
2. dirty diff 只是 verify 本阶段产物(验证报告草稿、分支处理记录)→ 可继续
|
|
49
|
+
3. dirty diff 已实现但 tasks.md 未勾选 → 视为 build 滞后,报告失败项进入 Step 1b
|
|
50
|
+
|
|
51
|
+
注意:build 阶段每任务都提交时,工作区 diff 可能低估规模。读 plan 文件头 `base-ref` 用提交区间复核:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
PLAN=$(bash "$COMATE" state <name> get plan)
|
|
55
|
+
BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref:[[:space:]]*//')
|
|
56
|
+
git diff --stat "$BASE_REF"...HEAD
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
超轻量阈值(> 4 文件 / 跨模块 / delta spec > 1 capability)则手动设 `bash "$COMATE" state <name> set verify_mode full`。
|
|
60
|
+
|
|
61
|
+
### 1b. 验证失败决策(决策阻塞点 4)
|
|
62
|
+
|
|
63
|
+
验证不通过时**先按严重程度分类,再判定是否需要用户输入**。规则与"三类行动"判定见 `comate/reference/decision-points.md` 第 4 条。
|
|
64
|
+
|
|
65
|
+
分类(**不确定性原则**:无法确定严重程度时降级 SUGGESTION > WARNING > CRITICAL):
|
|
66
|
+
- **CRITICAL**:构建失败 / 测试失败 / 安全问题 / 核心验收场景失败
|
|
67
|
+
- **WARNING / SUGGESTION**:非阻断性问题(覆盖率不足、风格、优化建议等)
|
|
68
|
+
- **Spec 漂移**:delta spec 与 design doc 矛盾(见 Step 2b 单独处理)
|
|
69
|
+
|
|
70
|
+
按类别分流:
|
|
71
|
+
|
|
72
|
+
1. **有任何 CRITICAL(且非 Spec 漂移)** —— 属"自动处理",唯一安全动作就是修复。**不询问**,直接:
|
|
73
|
+
```bash
|
|
74
|
+
bash "$COMATE" state <name> transition verify-fail
|
|
75
|
+
```
|
|
76
|
+
然后调 `/comate-build`。回到 build 前如实报告:哪些是 CRITICAL 失败项、判定依据、将如何修复。
|
|
77
|
+
|
|
78
|
+
2. **无 CRITICAL,仅 WARNING / SUGGESTION** —— 属"用户决策"(接受偏差是合法选择)。**一次性 AskUserQuestion 批量展示**全部失败项与推荐处理,提供:
|
|
79
|
+
- **全部修复**:`bash "$COMATE" state <name> transition verify-fail` 然后调 `/comate-build`
|
|
80
|
+
- **逐项处理**:勾选要修的项,其余接受偏差
|
|
81
|
+
- **接受偏差**:全部接受,须在报告记录每项原因和影响
|
|
82
|
+
|
|
83
|
+
提问前先写 `phase_step: verify.failure-awaiting`;作出决定后清除或写入对应处理结果。
|
|
84
|
+
|
|
85
|
+
3. **Spec 漂移** —— 按 Step 2b 的单选题处理(属"用户决策",必须暂停)。
|
|
86
|
+
|
|
87
|
+
> CRITICAL 自动回 build 不代表跳过用户知情:回退前必须输出清晰的失败报告作为证据。若一次验证同时含 CRITICAL 与非 CRITICAL,以 CRITICAL 优先自动回 build,非 CRITICAL 项留待修复轮次一并处理。
|
|
88
|
+
|
|
89
|
+
### 2a. 轻量验证(小改动)
|
|
90
|
+
|
|
91
|
+
规模为「小」时跳过 `openspec-verify-change`,直接执行 5 项检查:
|
|
92
|
+
1. tasks.md 全部 `[x]`
|
|
93
|
+
2. 改动文件与 tasks.md 描述一致(`git diff --stat` 对照)
|
|
94
|
+
3. 编译通过(项目构建命令)
|
|
95
|
+
4. 相关测试通过
|
|
96
|
+
5. 无明显安全问题(无硬编码密钥、无新增 unsafe)
|
|
97
|
+
|
|
98
|
+
**通过标准**:5 项全 OK,无 CRITICAL。不通过 → 进入 Step 1b。报告语言按 Step 0a,骨架可只保留「结论 / 检查项 / 验证证据」三节。
|
|
99
|
+
|
|
100
|
+
### 2b. 完整验证(大改动)
|
|
101
|
+
|
|
102
|
+
规模为「大」时**立即使用 Skill 工具加载 `openspec-verify-change`**。检查项:tasks 全勾、实现符合 design.md 高层决策、符合 Design Doc、能力规格场景全通过、proposal 目标满足、delta spec 与 design doc 无矛盾、关联设计文档可定位。
|
|
103
|
+
|
|
104
|
+
<!-- external-openspec-skill-override -->
|
|
105
|
+
> **外部 skill 覆写**:加载后**只采用其验证语义**(检查维度、严重程度分级、判定启发式)。其输出形式一律不采用——报告模板、英文标题与结论话术、表格表头都按 Step 0a 的语言约束和 Step 3 的骨架重写,不得照抄。
|
|
106
|
+
|
|
107
|
+
**Spec 漂移处理**(决策阻塞点 4 的一部分):若发现 delta spec 与 design doc 矛盾,**必须以单选题 AskUserQuestion 暂停**:
|
|
108
|
+
- A:在 design doc 追加 "Implementation Divergence" 节记录偏差(属 verify 阶段允许产物,写入后不再触发 Step 1b dirty 决策)
|
|
109
|
+
- B:`state transition verify-fail` 然后调 `/comate-build` 由 Spec 增量更新规则更新
|
|
110
|
+
- C:确认偏差可接受继续(归档时 design doc 标记 `superseded-by-main-spec`)
|
|
111
|
+
|
|
112
|
+
提问前先写 `phase_step: verify.spec-drift-awaiting`。
|
|
113
|
+
|
|
114
|
+
### 3. 记录验证证据
|
|
115
|
+
|
|
116
|
+
验证报告必须落盘并记录。不要手动设 `verify_result: pass`,通过 guard 自动流转。
|
|
117
|
+
|
|
118
|
+
语言按 Step 0a。参考骨架:
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
# 验证报告:<change-name>
|
|
122
|
+
|
|
123
|
+
## 结论
|
|
124
|
+
<通过 / 存在 N 个 CRITICAL,需修复后归档>
|
|
125
|
+
|
|
126
|
+
## 摘要
|
|
127
|
+
| 维度 | 结果 |
|
|
128
|
+
|------|------|
|
|
129
|
+
| 完整性 | X/Y 任务完成,N 条需求 |
|
|
130
|
+
| 正确性 | N 条需求中 M 条有实现覆盖 |
|
|
131
|
+
| 一致性 | 符合设计 / 发现 N 处偏差 |
|
|
132
|
+
|
|
133
|
+
## 问题清单
|
|
134
|
+
### CRITICAL
|
|
135
|
+
- <问题描述>(`path/to/file.ts:123`)→ 建议:<具体动作>
|
|
136
|
+
|
|
137
|
+
### WARNING / SUGGESTION
|
|
138
|
+
- <同上>
|
|
139
|
+
|
|
140
|
+
## 验证证据
|
|
141
|
+
- 构建:<命令与结果>
|
|
142
|
+
- 测试:<命令与结果>
|
|
143
|
+
- 源文件对照:<sources check 结果,无则写"不适用">
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
若本 change 有源文件追踪(`source_kind: file`),报告须声明本实现对照的知识库文档及其版本,并复核未漂移:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
bash "$COMATE" sources <name> check # 0=未漂移 / 1=漂移 / 4=manifest 损坏
|
|
150
|
+
bash "$COMATE" sources <name> list # 列出对照的文档路径/sha256/ref,贴入报告
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
`source_kind: conversation` 时跳过(check 为无操作通过)。
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
mkdir -p docs/superpowers/reports
|
|
157
|
+
# 写报告到 docs/superpowers/reports/YYYY-MM-DD-<name>-verify.md
|
|
158
|
+
bash "$COMATE" state <name> set verification_report docs/superpowers/reports/YYYY-MM-DD-<name>-verify.md
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
确认项:全部测试通过、无硬编码密钥或安全问题。
|
|
162
|
+
|
|
163
|
+
### 4. 分支收尾(决策阻塞点 5)
|
|
164
|
+
|
|
165
|
+
**在记录验证证据后**执行分支处理,确保即使丢弃工作也不影响状态持久化。
|
|
166
|
+
|
|
167
|
+
**立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch`。不可用时停止并提示安装。
|
|
168
|
+
|
|
169
|
+
分支处理选项:本地合并 / 推送建 PR / 保持分支 / 丢弃工作。**必须使用 AskUserQuestion 工具暂停等待用户选择**。规则见 `comate/reference/decision-points.md` 第 5 条。提问前先写:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
bash "$COMATE" state <name> set phase_step verify.branch-awaiting
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
选择本地合并 / 推送建 PR / 保持分支且操作完成后写入状态:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
bash "$COMATE" state <name> set branch_status handled
|
|
179
|
+
bash "$COMATE" state <name> set phase_step verify.branch-handled
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
写入 `branch_status: handled` 后不是退出点。当前 `/comate-verify` 调用必须立即运行:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
bash "$COMATE" guard <name> verify --apply
|
|
186
|
+
test "$(bash "$COMATE" state <name> get phase)" = "archive"
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
guard 成功流转到 `archive` 后,立即加载 `comate-archive` skill;只有 guard 失败或新的用户决策才允许暂停。
|
|
190
|
+
|
|
191
|
+
选择**丢弃工作**时必须写 `branch_status: discarded` 和 `phase_step: verify.discarded`,随后立即停止;不得运行 verify guard、不得设置 `verify_result: pass`、不得归档。若之后要继续该 change,先执行 `state transition <name> verify-fail` 回到 build,再重新实现并生成新的 build handoff。
|
|
192
|
+
|
|
193
|
+
## 退出条件
|
|
194
|
+
|
|
195
|
+
- 验证报告通过,分支已处理
|
|
196
|
+
- `verification_report` 指向真实文件,`branch_status: handled`
|
|
197
|
+
- `impl_hash` 与当前 plan+tasks 一致(guard 强制)
|
|
198
|
+
- **阶段守卫**:`bash "$COMATE" guard <name> verify --apply` 全 PASS 后经 `verify-pass` 自动流转到 `phase: archive`
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
bash "$COMATE" guard <name> verify --apply
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## 上下文压缩恢复
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
bash "$COMATE" state <name> recover verify
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## 自动流转
|
|
211
|
+
|
|
212
|
+
> **REQUIRED NEXT SKILL:** 调用 `comate-archive` skill 进入归档。
|