@house365/comate 0.10.0 → 0.10.1

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.
@@ -1,141 +1,141 @@
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
- ### 0. 入口状态验证
16
-
17
- ```bash
18
- 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
19
- [ -d "$r" ] && find "$r" -maxdepth 6 -path '*/comate/scripts/comate.sh' -type f -print -quit 2>/dev/null
20
- done | head -1)}"
21
- if [ -z "$COMATE" ]; then
22
- echo "ERROR: comate.sh 未找到,请确认 comate skill 已安装。" >&2
23
- return 1 2>/dev/null || exit 1
24
- fi
25
- bash "$COMATE" state <name> check verify
26
- ```
27
-
28
- **幂等性**:verify 阶段检查可安全重复。若 `verify_result` 已为 `pass` 且 `branch_status` 为 `handled`,直接执行 guard 流转;若为 `pending`,从头验证。
29
-
30
- ### 1. 改动规模评估
31
-
32
- ```bash
33
- bash "$COMATE" state <name> scale
34
- ```
35
-
36
- 脚本统计任务数、增量规格数、变更文件数,判断 light/full 验证模式并设 `verify_mode`。输出会标注用了哪个基线(plan base-ref / state base_ref / 工作树 diff)。
37
-
38
- 验证开始前,按 `comate/reference/dirty-worktree.md` 处理未提交改动。verify 阶段特例:
39
- 1. dirty diff 属于当前 change 且涉及实现/测试/tasks/spec/design doc → 不在 verify 直接修复,报告失败项进入 Step 1b
40
- 2. dirty diff 只是 verify 本阶段产物(验证报告草稿、分支处理记录)→ 可继续
41
- 3. dirty diff 已实现但 tasks.md 未勾选 → 视为 build 滞后,报告失败项进入 Step 1b
42
-
43
- 注意:build 阶段每任务都提交时,工作区 diff 可能低估规模。读 plan 文件头 `base-ref` 用提交区间复核:
44
-
45
- ```bash
46
- PLAN=$(bash "$COMATE" state <name> get plan)
47
- BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref:[[:space:]]*//')
48
- git diff --stat "$BASE_REF"...HEAD
49
- ```
50
-
51
- 超轻量阈值(> 4 文件 / 跨模块 / delta spec > 1 capability)则手动设 `bash "$COMATE" state <name> set verify_mode full`。
52
-
53
- ### 1b. 验证失败决策(决策阻塞点 4)
54
-
55
- 验证不通过时**先按严重程度分类,再判定是否需要用户输入**。规则与"三类行动"判定见 `comate/reference/decision-points.md` 第 4 条。
56
-
57
- 分类(**不确定性原则**:无法确定严重程度时降级 SUGGESTION > WARNING > CRITICAL):
58
- - **CRITICAL**:构建失败 / 测试失败 / 安全问题 / 核心验收场景失败
59
- - **WARNING / SUGGESTION**:非阻断性问题(覆盖率不足、风格、优化建议等)
60
- - **Spec 漂移**:delta spec 与 design doc 矛盾(见 Step 2b 单独处理)
61
-
62
- 按类别分流:
63
-
64
- 1. **有任何 CRITICAL(且非 Spec 漂移)** —— 属"自动处理",唯一安全动作就是修复。**不询问**,直接:
65
- ```bash
66
- bash "$COMATE" state <name> transition verify-fail
67
- ```
68
- 然后调 `/comate-build`。回到 build 前如实报告:哪些是 CRITICAL 失败项、判定依据、将如何修复。
69
-
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
+ ### 0. 入口状态验证
16
+
17
+ ```bash
18
+ 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
19
+ [ -d "$r" ] && find "$r" -maxdepth 6 -path '*/comate/scripts/comate.sh' -type f -print -quit 2>/dev/null
20
+ done | head -1)}"
21
+ if [ -z "$COMATE" ]; then
22
+ echo "ERROR: comate.sh 未找到,请确认 comate skill 已安装。" >&2
23
+ return 1 2>/dev/null || exit 1
24
+ fi
25
+ bash "$COMATE" state <name> check verify
26
+ ```
27
+
28
+ **幂等性**:verify 阶段检查可安全重复。若 `verify_result` 已为 `pass` 且 `branch_status` 为 `handled`,直接执行 guard 流转;若为 `pending`,从头验证。
29
+
30
+ ### 1. 改动规模评估
31
+
32
+ ```bash
33
+ bash "$COMATE" state <name> scale
34
+ ```
35
+
36
+ 脚本统计任务数、增量规格数、变更文件数,判断 light/full 验证模式并设 `verify_mode`。输出会标注用了哪个基线(plan base-ref / state base_ref / 工作树 diff)。
37
+
38
+ 验证开始前,按 `comate/reference/dirty-worktree.md` 处理未提交改动。verify 阶段特例:
39
+ 1. dirty diff 属于当前 change 且涉及实现/测试/tasks/spec/design doc → 不在 verify 直接修复,报告失败项进入 Step 1b
40
+ 2. dirty diff 只是 verify 本阶段产物(验证报告草稿、分支处理记录)→ 可继续
41
+ 3. dirty diff 已实现但 tasks.md 未勾选 → 视为 build 滞后,报告失败项进入 Step 1b
42
+
43
+ 注意:build 阶段每任务都提交时,工作区 diff 可能低估规模。读 plan 文件头 `base-ref` 用提交区间复核:
44
+
45
+ ```bash
46
+ PLAN=$(bash "$COMATE" state <name> get plan)
47
+ BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref:[[:space:]]*//')
48
+ git diff --stat "$BASE_REF"...HEAD
49
+ ```
50
+
51
+ 超轻量阈值(> 4 文件 / 跨模块 / delta spec > 1 capability)则手动设 `bash "$COMATE" state <name> set verify_mode full`。
52
+
53
+ ### 1b. 验证失败决策(决策阻塞点 4)
54
+
55
+ 验证不通过时**先按严重程度分类,再判定是否需要用户输入**。规则与"三类行动"判定见 `comate/reference/decision-points.md` 第 4 条。
56
+
57
+ 分类(**不确定性原则**:无法确定严重程度时降级 SUGGESTION > WARNING > CRITICAL):
58
+ - **CRITICAL**:构建失败 / 测试失败 / 安全问题 / 核心验收场景失败
59
+ - **WARNING / SUGGESTION**:非阻断性问题(覆盖率不足、风格、优化建议等)
60
+ - **Spec 漂移**:delta spec 与 design doc 矛盾(见 Step 2b 单独处理)
61
+
62
+ 按类别分流:
63
+
64
+ 1. **有任何 CRITICAL(且非 Spec 漂移)** —— 属"自动处理",唯一安全动作就是修复。**不询问**,直接:
65
+ ```bash
66
+ bash "$COMATE" state <name> transition verify-fail
67
+ ```
68
+ 然后调 `/comate-build`。回到 build 前如实报告:哪些是 CRITICAL 失败项、判定依据、将如何修复。
69
+
70
70
  2. **无 CRITICAL,仅 WARNING / SUGGESTION** —— 属"用户决策"(接受偏差是合法选择)。**一次性 AskUserQuestion 批量展示**全部失败项与推荐处理,提供:
71
- - **全部修复**:`bash "$COMATE" state <name> transition verify-fail` 然后调 `/comate-build`
72
- - **逐项处理**:勾选要修的项,其余接受偏差
71
+ - **全部修复**:`bash "$COMATE" state <name> transition verify-fail` 然后调 `/comate-build`
72
+ - **逐项处理**:勾选要修的项,其余接受偏差
73
73
  - **接受偏差**:全部接受,须在报告记录每项原因和影响
74
74
 
75
75
  提问前先写 `phase_step: verify.failure-awaiting`;作出决定后清除或写入对应处理结果。
76
-
77
- 3. **Spec 漂移** —— 按 Step 2b 的单选题处理(属"用户决策",必须暂停)。
78
-
79
- > CRITICAL 自动回 build 不代表跳过用户知情:回退前必须输出清晰的失败报告作为证据。若一次验证同时含 CRITICAL 与非 CRITICAL,以 CRITICAL 优先自动回 build,非 CRITICAL 项留待修复轮次一并处理。
80
-
81
- ### 2a. 轻量验证(小改动)
82
-
83
- 规模为「小」时跳过 `openspec-verify-change`,直接执行 5 项检查:
84
- 1. tasks.md 全部 `[x]`
85
- 2. 改动文件与 tasks.md 描述一致(`git diff --stat` 对照)
86
- 3. 编译通过(项目构建命令)
87
- 4. 相关测试通过
88
- 5. 无明显安全问题(无硬编码密钥、无新增 unsafe)
89
-
90
- **通过标准**:5 项全 OK,无 CRITICAL。不通过 → 进入 Step 1b。
91
-
92
- ### 2b. 完整验证(大改动)
93
-
94
- 规模为「大」时**立即使用 Skill 工具加载 `openspec-verify-change`**。检查项:tasks 全勾、实现符合 design.md 高层决策、符合 Design Doc、能力规格场景全通过、proposal 目标满足、delta spec 与 design doc 无矛盾、关联设计文档可定位。
95
-
76
+
77
+ 3. **Spec 漂移** —— 按 Step 2b 的单选题处理(属"用户决策",必须暂停)。
78
+
79
+ > CRITICAL 自动回 build 不代表跳过用户知情:回退前必须输出清晰的失败报告作为证据。若一次验证同时含 CRITICAL 与非 CRITICAL,以 CRITICAL 优先自动回 build,非 CRITICAL 项留待修复轮次一并处理。
80
+
81
+ ### 2a. 轻量验证(小改动)
82
+
83
+ 规模为「小」时跳过 `openspec-verify-change`,直接执行 5 项检查:
84
+ 1. tasks.md 全部 `[x]`
85
+ 2. 改动文件与 tasks.md 描述一致(`git diff --stat` 对照)
86
+ 3. 编译通过(项目构建命令)
87
+ 4. 相关测试通过
88
+ 5. 无明显安全问题(无硬编码密钥、无新增 unsafe)
89
+
90
+ **通过标准**:5 项全 OK,无 CRITICAL。不通过 → 进入 Step 1b。
91
+
92
+ ### 2b. 完整验证(大改动)
93
+
94
+ 规模为「大」时**立即使用 Skill 工具加载 `openspec-verify-change`**。检查项:tasks 全勾、实现符合 design.md 高层决策、符合 Design Doc、能力规格场景全通过、proposal 目标满足、delta spec 与 design doc 无矛盾、关联设计文档可定位。
95
+
96
96
  **Spec 漂移处理**(决策阻塞点 4 的一部分):若发现 delta spec 与 design doc 矛盾,**必须以单选题 AskUserQuestion 暂停**:
97
- - A:在 design doc 追加 "Implementation Divergence" 节记录偏差(属 verify 阶段允许产物,写入后不再触发 Step 1b dirty 决策)
98
- - B:`state transition verify-fail` 然后调 `/comate-build` 由 Spec 增量更新规则更新
97
+ - A:在 design doc 追加 "Implementation Divergence" 节记录偏差(属 verify 阶段允许产物,写入后不再触发 Step 1b dirty 决策)
98
+ - B:`state transition verify-fail` 然后调 `/comate-build` 由 Spec 增量更新规则更新
99
99
  - C:确认偏差可接受继续(归档时 design doc 标记 `superseded-by-main-spec`)
100
100
 
101
101
  提问前先写 `phase_step: verify.spec-drift-awaiting`。
102
-
103
- ### 3. 记录验证证据
104
-
105
- 验证报告必须落盘并记录。不要手动设 `verify_result: pass`,通过 guard 自动流转。
106
-
107
- 若本 change 有源文件追踪(`source_kind: file`),报告须声明本实现对照的知识库文档及其版本,并复核未漂移:
108
-
109
- ```bash
110
- bash "$COMATE" sources <name> check # 0=未漂移 / 1=漂移 / 4=manifest 损坏
111
- bash "$COMATE" sources <name> list # 列出对照的文档路径/sha256/ref,贴入报告
112
- ```
113
-
114
- `source_kind: conversation` 时跳过(check 为无操作通过)。
115
-
116
- ```bash
117
- mkdir -p docs/superpowers/reports
118
- # 写报告到 docs/superpowers/reports/YYYY-MM-DD-<name>-verify.md
119
- bash "$COMATE" state <name> set verification_report docs/superpowers/reports/YYYY-MM-DD-<name>-verify.md
120
- ```
121
-
122
- 确认项:全部测试通过、无硬编码密钥或安全问题。
123
-
124
- ### 4. 分支收尾(决策阻塞点 5)
125
-
126
- **在记录验证证据后**执行分支处理,确保即使丢弃工作也不影响状态持久化。
127
-
128
- **立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch`。不可用时停止并提示安装。
129
-
102
+
103
+ ### 3. 记录验证证据
104
+
105
+ 验证报告必须落盘并记录。不要手动设 `verify_result: pass`,通过 guard 自动流转。
106
+
107
+ 若本 change 有源文件追踪(`source_kind: file`),报告须声明本实现对照的知识库文档及其版本,并复核未漂移:
108
+
109
+ ```bash
110
+ bash "$COMATE" sources <name> check # 0=未漂移 / 1=漂移 / 4=manifest 损坏
111
+ bash "$COMATE" sources <name> list # 列出对照的文档路径/sha256/ref,贴入报告
112
+ ```
113
+
114
+ `source_kind: conversation` 时跳过(check 为无操作通过)。
115
+
116
+ ```bash
117
+ mkdir -p docs/superpowers/reports
118
+ # 写报告到 docs/superpowers/reports/YYYY-MM-DD-<name>-verify.md
119
+ bash "$COMATE" state <name> set verification_report docs/superpowers/reports/YYYY-MM-DD-<name>-verify.md
120
+ ```
121
+
122
+ 确认项:全部测试通过、无硬编码密钥或安全问题。
123
+
124
+ ### 4. 分支收尾(决策阻塞点 5)
125
+
126
+ **在记录验证证据后**执行分支处理,确保即使丢弃工作也不影响状态持久化。
127
+
128
+ **立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch`。不可用时停止并提示安装。
129
+
130
130
  分支处理选项:本地合并 / 推送建 PR / 保持分支 / 丢弃工作。**必须使用 AskUserQuestion 工具暂停等待用户选择**。规则见 `comate/reference/decision-points.md` 第 5 条。提问前先写:
131
131
 
132
132
  ```bash
133
133
  bash "$COMATE" state <name> set phase_step verify.branch-awaiting
134
134
  ```
135
-
135
+
136
136
  选择本地合并 / 推送建 PR / 保持分支且操作完成后写入状态:
137
-
138
- ```bash
137
+
138
+ ```bash
139
139
  bash "$COMATE" state <name> set branch_status handled
140
140
  bash "$COMATE" state <name> set phase_step verify.branch-handled
141
141
  ```
@@ -150,24 +150,24 @@ test "$(bash "$COMATE" state <name> get phase)" = "archive"
150
150
  guard 成功流转到 `archive` 后,立即加载 `comate-archive` skill;只有 guard 失败或新的用户决策才允许暂停。
151
151
 
152
152
  选择**丢弃工作**时必须写 `branch_status: discarded` 和 `phase_step: verify.discarded`,随后立即停止;不得运行 verify guard、不得设置 `verify_result: pass`、不得归档。若之后要继续该 change,先执行 `state transition <name> verify-fail` 回到 build,再重新实现并生成新的 build handoff。
153
-
154
- ## 退出条件
155
-
156
- - 验证报告通过,分支已处理
157
- - `verification_report` 指向真实文件,`branch_status: handled`
158
- - `impl_hash` 与当前 plan+tasks 一致(guard 强制)
159
- - **阶段守卫**:`bash "$COMATE" guard <name> verify --apply` 全 PASS 后经 `verify-pass` 自动流转到 `phase: archive`
160
-
161
- ```bash
162
- bash "$COMATE" guard <name> verify --apply
163
- ```
164
-
165
- ## 上下文压缩恢复
166
-
167
- ```bash
168
- bash "$COMATE" state <name> recover verify
169
- ```
170
-
171
- ## 自动流转
172
-
173
- > **REQUIRED NEXT SKILL:** 调用 `comate-archive` skill 进入归档。
153
+
154
+ ## 退出条件
155
+
156
+ - 验证报告通过,分支已处理
157
+ - `verification_report` 指向真实文件,`branch_status: handled`
158
+ - `impl_hash` 与当前 plan+tasks 一致(guard 强制)
159
+ - **阶段守卫**:`bash "$COMATE" guard <name> verify --apply` 全 PASS 后经 `verify-pass` 自动流转到 `phase: archive`
160
+
161
+ ```bash
162
+ bash "$COMATE" guard <name> verify --apply
163
+ ```
164
+
165
+ ## 上下文压缩恢复
166
+
167
+ ```bash
168
+ bash "$COMATE" state <name> recover verify
169
+ ```
170
+
171
+ ## 自动流转
172
+
173
+ > **REQUIRED NEXT SKILL:** 调用 `comate-archive` skill 进入归档。