@house365/comate 0.9.5 → 0.9.7
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/bin/init.mjs +32 -11
- package/docs/COMATE_MANUAL.md +11 -9
- package/package.json +1 -1
- package/skills/comate/SKILL.md +151 -23
- package/skills/comate/reference/decision-points.md +2 -2
- package/skills/comate/scripts/comate-lib.sh +5 -1
- package/skills/comate/scripts/comate.sh +98 -16
- package/skills/comate/tests/comate.bats +96 -1
- package/skills/comate-build/SKILL.md +83 -6
- package/skills/comate-design/SKILL.md +75 -3
- package/skills/comate-fix/SKILL.md +9 -5
- package/skills/comate-gate/SKILL.md +7 -7
- package/skills/comate-open/SKILL.md +62 -9
- package/skills/comate-verify/SKILL.md +19 -10
|
@@ -25,7 +25,39 @@ fi
|
|
|
25
25
|
bash "$COMATE" state <name> check design
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
**幂等性检查**:
|
|
29
|
+
|
|
30
|
+
1. 读取 `.comate.yaml` 的 `design_doc`、`handoff_context`、`handoff_hash`、`phase_step`
|
|
31
|
+
|
|
32
|
+
2. **已完成 Step 1c(方案已确认)** 的判定条件(按优先级,首个命中即算):
|
|
33
|
+
|
|
34
|
+
a. **phase_step 明确标记已确认**(最高优先级):
|
|
35
|
+
- `phase_step` 值为 `design.approval-confirmed` 或 `design.complete`(旧版 `1c-confirmed` / `2` 兼容一次)
|
|
36
|
+
- → **立即判定为已完成 Step 1c**,跳过 Step 1a-1c
|
|
37
|
+
|
|
38
|
+
b. **Design Doc 文件存在且格式正确**(次优先级):
|
|
39
|
+
- `design_doc` 已设置且文件存在
|
|
40
|
+
- frontmatter 含 `comate_change: <name>`
|
|
41
|
+
- frontmatter 含 `role: technical-design`
|
|
42
|
+
- frontmatter 含 `canonical_spec: openspec`
|
|
43
|
+
- 文件内容非空(除了 frontmatter 外有实质设计内容)
|
|
44
|
+
- → **判定为已完成 Step 1c**,跳过 Step 1a-1c
|
|
45
|
+
|
|
46
|
+
**说明**:之所以 `phase_step` 优先级更高,是因为它是原子操作记录的决策状态,即使 Design Doc 文件创建失败或被误删,也能防止重复进入决策流程。
|
|
47
|
+
|
|
48
|
+
3. **幂等分支**:
|
|
49
|
+
- **已完成 Step 1c 且 Design Doc 存在** → 跳过 Step 1a-1c,检查交接包:
|
|
50
|
+
- 若 `handoff_context` 和 `handoff_hash` 已设置且验证通过 → 直接进入 Step 2 的 guard 检查
|
|
51
|
+
- 若交接包缺失或 hash 不匹配 → 重新生成交接包(`bash "$COMATE" handoff <name> design --write`),**但不重新 brainstorming,不重新确认方案**,然后进入 Step 2
|
|
52
|
+
- **已确认但 Design Doc 缺失** → 从 `.comate/design-candidate.md` 恢复已确认方案并创建 Design Doc;候选文件也缺失时停止并报告状态损坏,不得假称 Design Doc 已存在,也不得重新向用户询问同一决策
|
|
53
|
+
- **未完成 Step 1c** → 继续 Step 1a
|
|
54
|
+
|
|
55
|
+
4. **断点恢复**(根据 `phase_step` 值):
|
|
56
|
+
- `phase_step` 为 `design.handoff-written`(或旧版 `1a`)→ 从 Step 1b 开始并改写新格式
|
|
57
|
+
- `phase_step` 为 `design.brainstorm-complete` / `design.approval-awaiting`(或旧版 `1b`)→ 从候选文件恢复 Step 1c 并改写新格式
|
|
58
|
+
- `phase_step` 为 `design.approval-confirmed` 或 `design.complete` → 见第 3 点幂等分支
|
|
59
|
+
|
|
60
|
+
5. **特别注意**:即使上下文压缩或会话中断,只要 `phase_step` 已标记 `design.approval-confirmed` 或 Design Doc 文件存在且格式正确,**就不得重新执行 brainstorming 或重新要求用户确认方案**。
|
|
29
61
|
|
|
30
62
|
### 1a. 生成 OpenSpec → Superpowers 交接包
|
|
31
63
|
|
|
@@ -33,6 +65,8 @@ bash "$COMATE" state <name> check design
|
|
|
33
65
|
|
|
34
66
|
```bash
|
|
35
67
|
bash "$COMATE" handoff <name> design --write
|
|
68
|
+
# 记录步骤完成
|
|
69
|
+
bash "$COMATE" state <name> set phase_step design.handoff-written
|
|
36
70
|
```
|
|
37
71
|
|
|
38
72
|
脚本生成 `openspec/changes/<name>/.comate/handoff/design-context.{json,md}` 并在 `.comate.yaml` 写入 `handoff_context` / `handoff_hash`。默认是 **compact 可追溯摘录**(含脚本标记 `Generated-by: comate`、source path、line range、sha256),不是 agent summary。需全文时加 `--full`。
|
|
@@ -62,13 +96,48 @@ canonical_spec: openspec
|
|
|
62
96
|
|
|
63
97
|
禁止跳过;该技能不可用时停止流程并提示安装 Superpowers,不要用普通对话替代。
|
|
64
98
|
|
|
65
|
-
brainstorming
|
|
99
|
+
brainstorming 阶段不写最终 Design Doc;但必须把完整候选方案写入 `openspec/changes/<name>/.comate/design-candidate.md`,供确认与上下文恢复使用。
|
|
100
|
+
|
|
101
|
+
**步骤完成后记录**:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
bash "$COMATE" state <name> set phase_step design.brainstorm-complete
|
|
105
|
+
```
|
|
66
106
|
|
|
67
107
|
### 1c. 用户确认设计方案(决策阻塞点 2)
|
|
68
108
|
|
|
69
109
|
**必须使用 AskUserQuestion 工具暂停等待用户明确确认设计方案**。规则见 `comate/reference/decision-points.md` 第 2 条。确认前不得创建最终 Design Doc、写 `design_doc`、跑 design guard 或进入 build。
|
|
70
110
|
|
|
71
|
-
展示摘要:采用的技术方案、关键取舍与风险、测试策略、Spec Patch(如有)。用户确认后才继续 Step 2;要求调整则继续迭代。
|
|
111
|
+
展示摘要:采用的技术方案、关键取舍与风险、测试策略、Spec Patch(如有)。用户确认后才继续 Step 2;要求调整则继续迭代。
|
|
112
|
+
|
|
113
|
+
提问前先确认候选文件非空,并持久化等待状态:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
bash "$COMATE" state <name> set phase_step design.approval-awaiting
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**确认后的处理顺序(不可颠倒)**:
|
|
120
|
+
|
|
121
|
+
1. **立即记录决策状态**:
|
|
122
|
+
```bash
|
|
123
|
+
bash "$COMATE" state <name> set phase_step design.approval-confirmed
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
2. **然后创建 Design Doc 文件**(保存到 `docs/superpowers/specs/YYYY-MM-DD-topic-design.md`),frontmatter 必须包含:
|
|
127
|
+
```yaml
|
|
128
|
+
---
|
|
129
|
+
comate_change: <name>
|
|
130
|
+
role: technical-design
|
|
131
|
+
canonical_spec: openspec
|
|
132
|
+
---
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
3. **记录 design_doc 路径**:
|
|
136
|
+
```bash
|
|
137
|
+
bash "$COMATE" state <name> set design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**说明**:候选方案先落盘,确认后再记录 `design.approval-confirmed` 并创建最终文件。这样中断恢复既不会重复提问,也不会丢失创建 Design Doc 所需内容。
|
|
72
141
|
|
|
73
142
|
### 2. 更新 comate 状态
|
|
74
143
|
|
|
@@ -79,6 +148,9 @@ bash "$COMATE" state <name> set design_doc docs/superpowers/specs/YYYY-MM-DD-top
|
|
|
79
148
|
# 如有 delta spec 变更,重新生成 handoff 以更新 hash
|
|
80
149
|
bash "$COMATE" handoff <name> design --write
|
|
81
150
|
|
|
151
|
+
# 记录步骤完成
|
|
152
|
+
bash "$COMATE" state <name> set phase_step design.complete
|
|
153
|
+
|
|
82
154
|
# 自动流转
|
|
83
155
|
bash "$COMATE" guard <name> design --apply
|
|
84
156
|
```
|
|
@@ -138,15 +138,19 @@ Fix 为**一次性连续执行**。调用后在自有步骤间自动推进,但
|
|
|
138
138
|
| 需新增 capability | 超出局部优化 |
|
|
139
139
|
| 需 delta spec | 影响已有规格 |
|
|
140
140
|
|
|
141
|
-
**必须使用 AskUserQuestion
|
|
141
|
+
**必须使用 AskUserQuestion 工具暂停确认升级**。提问前记录:
|
|
142
142
|
|
|
143
143
|
```bash
|
|
144
|
-
bash "$COMATE" state <name> set
|
|
145
|
-
bash "$COMATE" state <name> set workflow full
|
|
146
|
-
bash "$COMATE" state <name> transition open-complete
|
|
144
|
+
bash "$COMATE" state <name> set phase_step fix.upgrade-awaiting
|
|
147
145
|
```
|
|
148
146
|
|
|
149
|
-
|
|
147
|
+
用户确认后使用原子状态转换进入完整流程:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
bash "$COMATE" state <name> transition fix-upgrade
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
该转换会原子设置 `workflow: full`、进入 `phase: design`,并清空 fix 预置的 `build_mode` / `tdd_mode` / `isolation` / `verify_mode` 及阶段进度,避免 full build 误沿用 `direct`。然后**立即加载 `comate-design` skill** 补 Design Doc。用户不确认则停止 fix 并报告超出适用范围。
|
|
150
154
|
|
|
151
155
|
## 退出条件
|
|
152
156
|
|
|
@@ -42,7 +42,7 @@ gate 命令族(退出码:`0` 通过 / `1` 阻塞 / `2` 用法 / `3` 环境 /
|
|
|
42
42
|
```bash
|
|
43
43
|
bash "$COMATE" gate <prd> review # 建/刷新 gate.yaml,钉 PRD 哈希,回报告路径
|
|
44
44
|
bash "$COMATE" gate <prd> set <field> <value> # 写 score | blocking_open | gate_status
|
|
45
|
-
bash "$COMATE" gate <prd> pass [--tbd] #
|
|
45
|
+
bash "$COMATE" gate <prd> pass [--tbd] # 普通通过要求 0 阻断;--tbd 要求有已授权的未解决阻断
|
|
46
46
|
bash "$COMATE" gate <prd> spawned <change> # 记录据此 PRD 扇出的 change
|
|
47
47
|
bash "$COMATE" gate <prd> status [--json] # 查状态(哈希漂移自动判 stale)
|
|
48
48
|
bash "$COMATE" gate <prd> check # comate-open 建 change 前的前置守卫
|
|
@@ -209,12 +209,12 @@ bash "$COMATE" gate <prd> set changes_map "changeA:功能项1,2,3;changeB:功能
|
|
|
209
209
|
映射与 `blocking_open` 都就绪后,置门禁通过:
|
|
210
210
|
|
|
211
211
|
```bash
|
|
212
|
-
bash "$COMATE" gate <prd> pass # 阻断已清零
|
|
213
|
-
# 或用户授权带 TBD:
|
|
214
|
-
bash "$COMATE" gate <prd> pass --tbd
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
`pass`
|
|
212
|
+
bash "$COMATE" gate <prd> pass # 阻断已清零
|
|
213
|
+
# 或用户授权带 TBD:
|
|
214
|
+
bash "$COMATE" gate <prd> pass --tbd
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
`pass` 会硬校验评分为 0–100、`changes_map` 非空、报告非空;普通 pass 要求 `blocking_open=0`,`--tbd` 则要求存在至少 1 个已记录且经用户明确接受的未解决阻断项。之后 PRD 再被改,哈希漂移会使门禁 `stale`,须重跑 `/comate-gate`。
|
|
218
218
|
|
|
219
219
|
### 6. 逐 Change 初始化(调 comate-open)
|
|
220
220
|
|
|
@@ -63,8 +63,11 @@ if [ -z "$COMATE" ]; then
|
|
|
63
63
|
return 1 2>/dev/null || exit 1
|
|
64
64
|
fi
|
|
65
65
|
|
|
66
|
+
bash "$COMATE" state <name> init full
|
|
66
67
|
```
|
|
67
68
|
|
|
69
|
+
这会创建 `openspec/changes/<name>/.comate.yaml`,初始状态:`workflow: full`, `phase: open`, `phase_step: null`。
|
|
70
|
+
|
|
68
71
|
### 3b. 判定需求来源(源文件追踪)
|
|
69
72
|
|
|
70
73
|
`state init` 默认写入 `source_kind: conversation`、`source_manifest: null`(需求由对话产生)。
|
|
@@ -91,7 +94,7 @@ bash "$COMATE" gate <prd路径> spawned <name>
|
|
|
91
94
|
|
|
92
95
|
需求**来自对话**时跳过本步。
|
|
93
96
|
|
|
94
|
-
### 3.
|
|
97
|
+
### 3. 入口状态验证与幂等性检查
|
|
95
98
|
|
|
96
99
|
```bash
|
|
97
100
|
bash "$COMATE" state <name> check open
|
|
@@ -99,16 +102,41 @@ bash "$COMATE" state <name> check open
|
|
|
99
102
|
|
|
100
103
|
验证通过后继续 Step 4。失败时脚本输出具体原因。
|
|
101
104
|
|
|
102
|
-
|
|
105
|
+
**幂等性检查**:
|
|
106
|
+
|
|
107
|
+
1. 读取 `.comate.yaml` 的 `phase`、`phase_step`、workflow、以及三件套文件路径
|
|
108
|
+
|
|
109
|
+
2. **已完成 Step 5(产物已审视确认)** 的判定条件:
|
|
110
|
+
- `phase_step` 值为 `open.review-confirmed`(旧版 `5-confirmed` 兼容一次)
|
|
111
|
+
- 或 `phase` 已经不是 `open`(说明已流转到下一阶段)
|
|
112
|
+
|
|
113
|
+
3. **幂等分支**:
|
|
114
|
+
- **已完成 Step 5** → 跳过所有步骤,说明「开题已完成,三件套已确认」,直接检查退出条件(guard)
|
|
115
|
+
- **未完成 Step 5** → 检查三件套是否存在:
|
|
116
|
+
- 三件套全部存在且非空 → 跳到 Step 4(内容完整性检查)
|
|
117
|
+
- 任一文件缺失或为空 → 从 Step 1 开始(如果是首次)或 Step 3b/3c(如果是 PRD 来源)
|
|
118
|
+
|
|
119
|
+
4. **断点恢复**(根据 `phase_step` 值):
|
|
120
|
+
- `phase_step` 为 `open.artifacts-created` → 从 Step 4 开始
|
|
121
|
+
- `phase_step` 为 `open.review-awaiting`(或旧版 `4`)→ 恢复 Step 5 的用户确认,并改写为新格式
|
|
122
|
+
- `phase_step` 为 `open.review-confirmed`(或旧版 `5-confirmed`)→ 见第 3 点幂等分支
|
|
123
|
+
|
|
124
|
+
5. **open 阶段特点**:open 阶段的所有操作(explore、创建三件套、状态初始化)可安全重复执行。但**产物审视(Step 5)的用户确认不可重复**,一旦 `phase_step: open.review-confirmed` 被记录,即使上下文压缩也不得重新要求用户确认。
|
|
103
125
|
|
|
104
126
|
### 4. 内容完整性检查
|
|
105
127
|
|
|
106
|
-
逐个确认三个文件路径存在且非空:
|
|
128
|
+
逐个确认三个文件路径存在且非空:
|
|
107
129
|
- **proposal.md**:问题背景、目标、范围、非目标
|
|
108
130
|
- **design.md**:高层架构决策、方案选型、数据流
|
|
109
131
|
- **tasks.md**:任务列表,每个任务有明确描述
|
|
110
132
|
|
|
111
|
-
任一文件缺失或为空时,不得进入 Step 5 或执行守卫,必须回创建步骤补充。
|
|
133
|
+
任一文件缺失或为空时,不得进入 Step 5 或执行守卫,必须回创建步骤补充。
|
|
134
|
+
|
|
135
|
+
完整性检查通过后记录:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
bash "$COMATE" state <name> set phase_step open.artifacts-created
|
|
139
|
+
```
|
|
112
140
|
|
|
113
141
|
### 5. 产物审视(决策阻塞点 1,按来源分类)
|
|
114
142
|
|
|
@@ -119,21 +147,46 @@ bash "$COMATE" state <name> check open
|
|
|
119
147
|
同时满足以下**全部**条件时,本决策点降级为自动流转,**不 AskUserQuestion**:
|
|
120
148
|
|
|
121
149
|
1. `source_kind: file`(本 change 追踪了源文件);
|
|
122
|
-
2. 追踪的源是一份 PRD,且 `bash "$COMATE" gate <prd路径> check` 返回 PASS(exit 0)——即门禁 `passed`/`passed-with-tbd` 且 PRD 哈希未漂移。PRD 路径从 `sources <name> list` 或 Step
|
|
123
|
-
3. change 名已记入该 PRD 的 `spawned_changes`(Step
|
|
150
|
+
2. 追踪的源是一份 PRD,且 `bash "$COMATE" gate <prd路径> check` 返回 PASS(exit 0)——即门禁 `passed`/`passed-with-tbd` 且 PRD 哈希未漂移。PRD 路径从 `sources <name> list` 或 Step 3c 的上下文取得;
|
|
151
|
+
3. change 名已记入该 PRD 的 `spawned_changes`(Step 3c 的 `gate spawned` 已执行,通常由 `/comate-gate` 备妥);
|
|
124
152
|
4. **范围一致性自检**:proposal 的目标/范围/非目标忠实承接 gate 映射里本 change 认领的功能项——没有擅自扩大或缩小、没有认领未分配的功能项、没有漏掉已分配项。
|
|
125
153
|
|
|
126
|
-
四条全成立时:范围/映射/命名已在决策点 6
|
|
154
|
+
四条全成立时:范围/映射/命名已在决策点 6 由用户拍板,三件套只是承接,无新的有效选项。
|
|
155
|
+
|
|
156
|
+
**自动流转处理**:
|
|
157
|
+
|
|
158
|
+
1. **记录自动确认状态**:
|
|
159
|
+
```bash
|
|
160
|
+
bash "$COMATE" state <name> set phase_step open.review-confirmed
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
2. **如实报告**:「本 change 承接自 PRD <prd-name>,认领功能项:<列出项>。已核对范围与映射一致,自动进入下一阶段。」
|
|
164
|
+
|
|
165
|
+
3. 直接进入退出条件执行守卫流转
|
|
127
166
|
|
|
128
167
|
#### 5b. 需要用户输入的两种情形(AskUserQuestion 阻塞)
|
|
129
168
|
|
|
130
169
|
- **对话来源**(`source_kind: conversation`):范围此前未经用户拍板,三件套第一次成形。
|
|
131
170
|
- **PRD 扇出但 5a 第 4 条不成立**(范围与映射有偏差):分歧重新出现。
|
|
132
171
|
|
|
133
|
-
以上任一情形,**必须使用 AskUserQuestion 工具暂停等待用户确认**。以单选题呈现摘要(proposal 问题/目标/范围、design 架构决策/选型、tasks 数量与关键任务;PRD 偏差场景额外列出偏差点)和选项:
|
|
134
|
-
- 「确认,继续下一阶段」—
|
|
172
|
+
以上任一情形,**必须使用 AskUserQuestion 工具暂停等待用户确认**。以单选题呈现摘要(proposal 问题/目标/范围、design 架构决策/选型、tasks 数量与关键任务;PRD 偏差场景额外列出偏差点)和选项:
|
|
173
|
+
- 「确认,继续下一阶段」— 记录确认状态后执行守卫流转
|
|
135
174
|
- 「需要调整」— 附调整说明(PRD 偏差场景默认建议按映射修正),修改后重新请求确认
|
|
136
175
|
|
|
176
|
+
**提问前先持久化等待状态**:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
bash "$COMATE" state <name> set phase_step open.review-awaiting
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**用户确认后立即记录**:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
bash "$COMATE" state <name> set phase_step open.review-confirmed
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
然后继续执行退出条件(guard)。
|
|
189
|
+
|
|
137
190
|
## 退出条件
|
|
138
191
|
|
|
139
192
|
- 三件套已创建且内容完整
|
|
@@ -67,10 +67,12 @@ git diff --stat "$BASE_REF"...HEAD
|
|
|
67
67
|
```
|
|
68
68
|
然后调 `/comate-build`。回到 build 前如实报告:哪些是 CRITICAL 失败项、判定依据、将如何修复。
|
|
69
69
|
|
|
70
|
-
2. **无 CRITICAL,仅 WARNING / SUGGESTION** —— 属"用户决策"(接受偏差是合法选择)。**一次性 AskUserQuestion 批量展示**全部失败项与推荐处理,提供:
|
|
70
|
+
2. **无 CRITICAL,仅 WARNING / SUGGESTION** —— 属"用户决策"(接受偏差是合法选择)。**一次性 AskUserQuestion 批量展示**全部失败项与推荐处理,提供:
|
|
71
71
|
- **全部修复**:`bash "$COMATE" state <name> transition verify-fail` 然后调 `/comate-build`
|
|
72
72
|
- **逐项处理**:勾选要修的项,其余接受偏差
|
|
73
|
-
- **接受偏差**:全部接受,须在报告记录每项原因和影响
|
|
73
|
+
- **接受偏差**:全部接受,须在报告记录每项原因和影响
|
|
74
|
+
|
|
75
|
+
提问前先写 `phase_step: verify.failure-awaiting`;作出决定后清除或写入对应处理结果。
|
|
74
76
|
|
|
75
77
|
3. **Spec 漂移** —— 按 Step 2b 的单选题处理(属"用户决策",必须暂停)。
|
|
76
78
|
|
|
@@ -91,10 +93,12 @@ git diff --stat "$BASE_REF"...HEAD
|
|
|
91
93
|
|
|
92
94
|
规模为「大」时**立即使用 Skill 工具加载 `openspec-verify-change`**。检查项:tasks 全勾、实现符合 design.md 高层决策、符合 Design Doc、能力规格场景全通过、proposal 目标满足、delta spec 与 design doc 无矛盾、关联设计文档可定位。
|
|
93
95
|
|
|
94
|
-
**Spec 漂移处理**(决策阻塞点 4 的一部分):若发现 delta spec 与 design doc 矛盾,**必须以单选题 AskUserQuestion 暂停**:
|
|
96
|
+
**Spec 漂移处理**(决策阻塞点 4 的一部分):若发现 delta spec 与 design doc 矛盾,**必须以单选题 AskUserQuestion 暂停**:
|
|
95
97
|
- A:在 design doc 追加 "Implementation Divergence" 节记录偏差(属 verify 阶段允许产物,写入后不再触发 Step 1b dirty 决策)
|
|
96
98
|
- B:`state transition verify-fail` 然后调 `/comate-build` 由 Spec 增量更新规则更新
|
|
97
|
-
- C:确认偏差可接受继续(归档时 design doc 标记 `superseded-by-main-spec`)
|
|
99
|
+
- C:确认偏差可接受继续(归档时 design doc 标记 `superseded-by-main-spec`)
|
|
100
|
+
|
|
101
|
+
提问前先写 `phase_step: verify.spec-drift-awaiting`。
|
|
98
102
|
|
|
99
103
|
### 3. 记录验证证据
|
|
100
104
|
|
|
@@ -123,15 +127,20 @@ bash "$COMATE" state <name> set verification_report docs/superpowers/reports/YYY
|
|
|
123
127
|
|
|
124
128
|
**立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch`。不可用时停止并提示安装。
|
|
125
129
|
|
|
126
|
-
分支处理选项:本地合并 / 推送建 PR / 保持分支 / 丢弃工作。**必须使用 AskUserQuestion 工具暂停等待用户选择**。规则见 `comate/reference/decision-points.md` 第 5
|
|
130
|
+
分支处理选项:本地合并 / 推送建 PR / 保持分支 / 丢弃工作。**必须使用 AskUserQuestion 工具暂停等待用户选择**。规则见 `comate/reference/decision-points.md` 第 5 条。提问前先写:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
bash "$COMATE" state <name> set phase_step verify.branch-awaiting
|
|
134
|
+
```
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
选择本地合并 / 推送建 PR / 保持分支且操作完成后写入状态:
|
|
129
137
|
|
|
130
138
|
```bash
|
|
131
|
-
bash "$COMATE" state <name> set branch_status handled
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
139
|
+
bash "$COMATE" state <name> set branch_status handled
|
|
140
|
+
bash "$COMATE" state <name> set phase_step verify.branch-handled
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
选择**丢弃工作**时必须写 `branch_status: discarded` 和 `phase_step: verify.discarded`,随后立即停止;不得运行 verify guard、不得设置 `verify_result: pass`、不得归档。若之后要继续该 change,先执行 `state transition <name> verify-fail` 回到 build,再重新实现并生成新的 build handoff。
|
|
135
144
|
|
|
136
145
|
## 退出条件
|
|
137
146
|
|