@rpamis/comet 0.1.1 → 0.1.3
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/README.md +56 -4
- package/assets/manifest.json +15 -13
- package/assets/skills/comet/SKILL.md +30 -18
- package/assets/skills/comet/scripts/comet-guard.sh +203 -0
- package/assets/skills/comet/scripts/comet-yaml-validate.sh +130 -0
- package/assets/skills/comet-archive/SKILL.md +51 -7
- package/assets/skills/comet-build/SKILL.md +53 -14
- package/assets/skills/comet-design/SKILL.md +37 -4
- package/assets/skills/comet-hotfix/SKILL.md +48 -13
- package/assets/skills/comet-open/SKILL.md +52 -15
- package/assets/skills/comet-tweak/SKILL.md +152 -117
- package/assets/skills/comet-verify/SKILL.md +49 -16
- package/package.json +50 -50
|
@@ -12,6 +12,32 @@ description: "Comet 阶段 3:计划与构建。用 /comet-build 调用。制
|
|
|
12
12
|
|
|
13
13
|
## 步骤
|
|
14
14
|
|
|
15
|
+
### 0. 入口状态验证(Entry Check)
|
|
16
|
+
|
|
17
|
+
在执行任何操作之前,读取并验证当前状态:
|
|
18
|
+
|
|
19
|
+
**检查清单:**
|
|
20
|
+
1. `openspec/changes/<name>/.comet.yaml` 存在
|
|
21
|
+
2. `phase` 字段的值为 `"build"`
|
|
22
|
+
3. `design_doc` 字段非 null 且非空
|
|
23
|
+
4. `design_doc` 引用的文件存在(例如 `docs/superpowers/specs/YYYY-MM-DD-topic-design.md`)
|
|
24
|
+
5. `openspec/changes/<name>/proposal.md` 存在且非空
|
|
25
|
+
6. `openspec/changes/<name>/tasks.md` 存在且非空
|
|
26
|
+
|
|
27
|
+
**验证方式:**
|
|
28
|
+
- `cat openspec/changes/<name>/.comet.yaml` 读取全部字段
|
|
29
|
+
- 用 `ls` 或 `test -f` 确认 design_doc 文件存在
|
|
30
|
+
|
|
31
|
+
**失败输出:**
|
|
32
|
+
```
|
|
33
|
+
[HARD STOP] Entry check failed for comet-build
|
|
34
|
+
Expected: phase=build, design_doc=<path> exists
|
|
35
|
+
Actual: phase=<实际值>, design_doc=<实际值或文件不存在>
|
|
36
|
+
Suggestion: Run comet-design first, or verify design_doc file exists.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
验证通过后才进入步骤 1。
|
|
40
|
+
|
|
15
41
|
### 1. 制定计划
|
|
16
42
|
|
|
17
43
|
**立即执行:** 使用 Skill 工具加载 `superpowers:writing-plans` 技能。禁止跳过此步骤。
|
|
@@ -30,14 +56,18 @@ design-doc: docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
|
|
|
30
56
|
|
|
31
57
|
### 2. 更新计划状态
|
|
32
58
|
|
|
33
|
-
在 `openspec/changes/<name>/.
|
|
59
|
+
在 `openspec/changes/<name>/.comet.yaml` 中合并更新以下字段(保留其他字段不变):
|
|
34
60
|
|
|
35
61
|
```yaml
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
62
|
+
phase: build
|
|
63
|
+
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
39
64
|
```
|
|
40
65
|
|
|
66
|
+
【写入验证】更新完成后必须验证:
|
|
67
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
68
|
+
确认 plan 行的值为 "docs/superpowers/plans/YYYY-MM-DD-feature.md"
|
|
69
|
+
如不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
70
|
+
|
|
41
71
|
### 3. 选择执行方式
|
|
42
72
|
|
|
43
73
|
向用户展示计划摘要(任务数、涉及模块),然后询问执行方式:
|
|
@@ -52,7 +82,7 @@ comet:
|
|
|
52
82
|
- 任务数 ≤ 2 且无跨模块依赖 → 推荐 B
|
|
53
83
|
- 来自 hotfix 路径 → 推荐 B
|
|
54
84
|
|
|
55
|
-
用户选择后,在 `openspec/changes/<name>/.
|
|
85
|
+
用户选择后,在 `openspec/changes/<name>/.comet.yaml` 中合并更新 `build_mode`(保留其他字段不变)。`build_mode` 只允许以下值之一:
|
|
56
86
|
|
|
57
87
|
- `subagent-driven-development`
|
|
58
88
|
- `executing-plans`
|
|
@@ -62,16 +92,19 @@ Few-shot 示例:
|
|
|
62
92
|
|
|
63
93
|
```yaml
|
|
64
94
|
# 用户选择稳健模式 / A
|
|
65
|
-
|
|
66
|
-
build_mode: subagent-driven-development
|
|
95
|
+
build_mode: subagent-driven-development
|
|
67
96
|
```
|
|
68
97
|
|
|
69
98
|
```yaml
|
|
70
99
|
# 用户选择快速模式 / B
|
|
71
|
-
|
|
72
|
-
build_mode: executing-plans
|
|
100
|
+
build_mode: executing-plans
|
|
73
101
|
```
|
|
74
102
|
|
|
103
|
+
【写入验证】更新完成后必须验证:
|
|
104
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
105
|
+
确认 build_mode 行的值为 "<subagent-driven-development 或 executing-plans 或 direct>"
|
|
106
|
+
如不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
107
|
+
|
|
75
108
|
然后,**立即执行:** 使用 Skill 工具加载对应技能。禁止跳过此步骤。
|
|
76
109
|
|
|
77
110
|
如所选 Superpowers 技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。
|
|
@@ -105,16 +138,22 @@ comet:
|
|
|
105
138
|
- tasks.md 全部勾选
|
|
106
139
|
- 代码已提交
|
|
107
140
|
- 测试通过
|
|
108
|
-
- `.
|
|
141
|
+
- `.comet.yaml` 中 `phase` 已更新为 `verify`
|
|
142
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> build`,全部 PASS 后才允许流转
|
|
109
143
|
|
|
110
|
-
|
|
144
|
+
退出前在 `.comet.yaml` 中合并更新以下字段(保留其他字段不变):
|
|
111
145
|
|
|
112
146
|
```yaml
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
verify_result: pending
|
|
147
|
+
phase: verify
|
|
148
|
+
verify_result: pending
|
|
116
149
|
```
|
|
117
150
|
|
|
151
|
+
【写入验证】更新完成后必须验证:
|
|
152
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
153
|
+
确认 phase 行的值为 "verify"
|
|
154
|
+
确认 verify_result 行的值为 "pending"
|
|
155
|
+
如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
156
|
+
|
|
118
157
|
## 自动流转
|
|
119
158
|
|
|
120
159
|
退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
|
|
@@ -12,6 +12,33 @@ description: "Comet 阶段 2:深度设计。用 /comet-design 调用。通过
|
|
|
12
12
|
|
|
13
13
|
## 步骤
|
|
14
14
|
|
|
15
|
+
### 0. 入口状态验证(Entry Check)
|
|
16
|
+
|
|
17
|
+
在执行任何操作之前,读取并验证当前状态:
|
|
18
|
+
|
|
19
|
+
**检查清单:**
|
|
20
|
+
1. `openspec/changes/<name>/.comet.yaml` 存在
|
|
21
|
+
2. `phase` 字段的值为 `"design"`
|
|
22
|
+
3. `workflow` 字段的值为 `"full"`
|
|
23
|
+
4. `design_doc` 字段为 `null` 或空
|
|
24
|
+
5. `openspec/changes/<name>/proposal.md` 存在且非空
|
|
25
|
+
6. `openspec/changes/<name>/design.md` 存在且非空
|
|
26
|
+
7. `openspec/changes/<name>/tasks.md` 存在且非空
|
|
27
|
+
|
|
28
|
+
**验证方式:**
|
|
29
|
+
- `cat openspec/changes/<name>/.comet.yaml` 读取全部字段
|
|
30
|
+
- 逐条比对检查清单
|
|
31
|
+
|
|
32
|
+
**失败输出:**
|
|
33
|
+
```
|
|
34
|
+
[HARD STOP] Entry check failed for comet-design
|
|
35
|
+
Expected: phase=design, design_doc=<empty/null>, workflow=full
|
|
36
|
+
Actual: phase=<实际值>, design_doc=<实际值>, workflow=<实际值>
|
|
37
|
+
Suggestion: Run comet-open first, or check if .comet.yaml was modified out of sequence.
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
验证通过后才进入步骤 1。
|
|
41
|
+
|
|
15
42
|
### 1a. 读取已有上下文
|
|
16
43
|
|
|
17
44
|
读取活跃 change 下的 `proposal.md` 和 `design.md`,将核心内容整理为摘要:
|
|
@@ -39,14 +66,19 @@ Design 摘要: <design.md 架构决策>
|
|
|
39
66
|
|
|
40
67
|
### 2. 更新 Comet 状态
|
|
41
68
|
|
|
42
|
-
在 `openspec/changes/<name>/.
|
|
69
|
+
在 `openspec/changes/<name>/.comet.yaml` 中合并更新以下字段(保留其他字段不变):
|
|
43
70
|
|
|
44
71
|
```yaml
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
72
|
+
phase: build
|
|
73
|
+
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
48
74
|
```
|
|
49
75
|
|
|
76
|
+
【写入验证】更新完成后必须验证:
|
|
77
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
78
|
+
确认 phase 行的值为 "build"
|
|
79
|
+
确认 design_doc 行的值为 "docs/superpowers/specs/YYYY-MM-DD-topic-design.md"
|
|
80
|
+
如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
81
|
+
|
|
50
82
|
### 3. 双 Spec 分工
|
|
51
83
|
|
|
52
84
|
| Spec 类型 | 归属 | 存放位置 | 定义 |
|
|
@@ -67,6 +99,7 @@ design.md(阶段 1,OpenSpec) → 高层架构决策
|
|
|
67
99
|
|
|
68
100
|
- Design Doc 已创建并保存
|
|
69
101
|
- 如有新能力则 delta spec 已创建
|
|
102
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> design`,全部 PASS 后才允许流转
|
|
70
103
|
|
|
71
104
|
## 自动流转
|
|
72
105
|
|
|
@@ -20,6 +20,28 @@ Hotfix 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
|
|
|
20
20
|
|
|
21
21
|
## 流程(preset workflow,4 阶段)
|
|
22
22
|
|
|
23
|
+
### 0. 入口状态验证(Entry Check)
|
|
24
|
+
|
|
25
|
+
在执行任何操作之前,验证当前状态:
|
|
26
|
+
|
|
27
|
+
**检查清单:**
|
|
28
|
+
1. `openspec/changes/<name>/` 目录不存在,或目录存在但 `.comet.yaml` 不存在(无冲突)
|
|
29
|
+
|
|
30
|
+
**验证方式:**
|
|
31
|
+
- `test -d openspec/changes/<name>` 检查目录
|
|
32
|
+
- 如目录存在,`test -f openspec/changes/<name>/.comet.yaml` 检查配置文件
|
|
33
|
+
- 如 `.comet.yaml` 已存在,读取 `phase` 检查是否为未完成的 hotfix
|
|
34
|
+
|
|
35
|
+
**失败输出(有冲突):**
|
|
36
|
+
```
|
|
37
|
+
[HARD STOP] Entry check failed for comet-hotfix
|
|
38
|
+
Expected: openspec/changes/<name>/.comet.yaml does not exist (new change)
|
|
39
|
+
Actual: .comet.yaml exists with phase=<实际值>
|
|
40
|
+
Suggestion: Pick a different change name, or check if an existing hotfix is in progress.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
验证通过后才进入流程步骤。
|
|
44
|
+
|
|
23
45
|
执行链路:open → build → verify → archive。Hotfix 为每个阶段提供默认决策:精简开启、直接构建、按规模验证、验证通过后归档。
|
|
24
46
|
|
|
25
47
|
### 1. 快速开启(preset open)
|
|
@@ -34,21 +56,33 @@ Hotfix 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
|
|
|
34
56
|
- `tasks.md` — 修复任务清单
|
|
35
57
|
- **无需 delta spec**(除非修复改变了已有 spec 的验收场景)
|
|
36
58
|
|
|
37
|
-
在 `openspec/changes/<name
|
|
59
|
+
在 `openspec/changes/<name>/` 下创建独立的 `.comet.yaml` 文件:
|
|
38
60
|
|
|
39
61
|
```yaml
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
archived: false
|
|
62
|
+
workflow: hotfix
|
|
63
|
+
phase: build
|
|
64
|
+
design_doc: null
|
|
65
|
+
plan: null
|
|
66
|
+
build_mode: direct
|
|
67
|
+
verify_mode: light
|
|
68
|
+
verify_result: pending
|
|
69
|
+
verified_at: null
|
|
70
|
+
archived: false
|
|
50
71
|
```
|
|
51
72
|
|
|
73
|
+
【写入验证】创建完成后必须验证:
|
|
74
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
75
|
+
确认 workflow 行的值为 "hotfix"
|
|
76
|
+
确认 phase 行的值为 "build"
|
|
77
|
+
确认 design_doc 行的值为 "null"
|
|
78
|
+
确认 plan 行的值为 "null"
|
|
79
|
+
确认 build_mode 行的值为 "direct"
|
|
80
|
+
确认 verify_mode 行的值为 "light"
|
|
81
|
+
确认 verify_result 行的值为 "pending"
|
|
82
|
+
确认 verified_at 行的值为 "null"
|
|
83
|
+
确认 archived 行的值为 "false"
|
|
84
|
+
如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
85
|
+
|
|
52
86
|
### 2. 直接构建(preset build)
|
|
53
87
|
|
|
54
88
|
使用 hotfix 默认值:`build_mode: direct`。跳过 `superpowers:brainstorming` 和 `superpowers:writing-plans`(除非任务 > 3 个;若超过 3 个任务,转入 `/comet-build` 的计划与执行方式选择)。
|
|
@@ -87,11 +121,11 @@ comet:
|
|
|
87
121
|
- 回归测试揭示深层架构问题 → 停止 hotfix,升级为 `/comet`
|
|
88
122
|
- 修复需要额外接口变更 → 停止 hotfix,升级为 `/comet`
|
|
89
123
|
|
|
90
|
-
验证通过后,按 `/comet-verify` 的规则将
|
|
124
|
+
验证通过后,按 `/comet-verify` 的规则将 `.comet.yaml` 的 `verify_result` 记录为 `pass`,归档前不得跳过该状态。
|
|
91
125
|
|
|
92
126
|
### 4. 归档(preset archive)
|
|
93
127
|
|
|
94
|
-
复用 `/comet-archive`。归档前必须满足
|
|
128
|
+
复用 `/comet-archive`。归档前必须满足 `.comet.yaml` 中 `verify_result: pass`。
|
|
95
129
|
|
|
96
130
|
**立即执行:** 使用 Skill 工具加载 `comet-archive` 技能进行归档。禁止跳过此步骤。
|
|
97
131
|
如有 delta spec,按 comet-archive 规则同步到 main spec,并处理关联 Design Doc 与 Plan 的归档标注。
|
|
@@ -128,3 +162,4 @@ Hotfix 流程为 **一次性连续执行**。调用 `/comet-hotfix` 后,agent
|
|
|
128
162
|
- Bug 已修复,测试通过
|
|
129
163
|
- change 已归档
|
|
130
164
|
- 如有 spec 变更,已同步到 main spec
|
|
165
|
+
- **阶段守卫**:build → verify 前运行 `bash $COMET_GUARD <change-name> build`,verify → archive 前运行 `bash $COMET_GUARD <change-name> verify`
|
|
@@ -11,6 +11,31 @@ description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec
|
|
|
11
11
|
|
|
12
12
|
## 步骤
|
|
13
13
|
|
|
14
|
+
### 0. 入口状态验证(Entry Check)
|
|
15
|
+
|
|
16
|
+
在执行任何操作之前,读取并验证当前状态:
|
|
17
|
+
|
|
18
|
+
**检查清单:**
|
|
19
|
+
1. `openspec/changes/<name>/` 目录已存在(由 openspec-new-change 创建)
|
|
20
|
+
2. `openspec/changes/<name>/.comet.yaml` 文件不存在(尚未初始化)
|
|
21
|
+
3. `openspec/changes/<name>/proposal.md` 存在且非空
|
|
22
|
+
4. `openspec/changes/<name>/design.md` 存在且非空
|
|
23
|
+
5. `openspec/changes/<name>/tasks.md` 存在且非空
|
|
24
|
+
|
|
25
|
+
**验证方式:**
|
|
26
|
+
- 读取以上路径确认存在/不存在
|
|
27
|
+
- 如 `.comet.yaml` 已存在,读取其 `phase` 字段:如 phase 不为空,输出 `[HARD STOP]` 并提示可能已有活跃 change
|
|
28
|
+
|
|
29
|
+
**失败输出:**
|
|
30
|
+
```
|
|
31
|
+
[HARD STOP] Entry check failed for comet-open
|
|
32
|
+
Expected: .comet.yaml does not exist, proposal.md + design.md + tasks.md exist
|
|
33
|
+
Actual: phase=<实际值>, design_doc=<实际值> (或文件不存在)
|
|
34
|
+
Suggestion: Check if another change with the same name is already active.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
验证通过后才进入步骤 1。
|
|
38
|
+
|
|
14
39
|
### 1. 探索想法
|
|
15
40
|
|
|
16
41
|
**立即执行:** 使用 Skill 工具加载 `openspec-explore` 技能。禁止跳过此步骤。
|
|
@@ -19,13 +44,14 @@ description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec
|
|
|
19
44
|
|
|
20
45
|
### 2. 创建 Change 结构
|
|
21
46
|
|
|
22
|
-
**立即执行:** 使用 Skill 工具加载 `openspec-new-change`
|
|
47
|
+
**立即执行:** 使用 Skill 工具加载 `openspec-new-change` 技能。若用户意图未明确、需要先形成建议,改为加载 `openspec-propose`。禁止跳过此步骤。
|
|
23
48
|
|
|
24
49
|
确认以下产物已创建:
|
|
25
50
|
|
|
26
51
|
```
|
|
27
52
|
openspec/changes/<name>/
|
|
28
53
|
├── .openspec.yaml
|
|
54
|
+
├── .comet.yaml
|
|
29
55
|
├── proposal.md # Why + What:问题、目标、范围
|
|
30
56
|
├── design.md # How(高层):架构决策、方案选型
|
|
31
57
|
└── tasks.md # 任务清单(勾选框)
|
|
@@ -47,27 +73,37 @@ cp openspec/specs/<capability>/spec.md openspec/changes/<name>/specs/<capability
|
|
|
47
73
|
```
|
|
48
74
|
|
|
49
75
|
3. 在复制的 delta spec 中,按 delta 格式组织变更(`## ADDED`、`## MODIFIED`、`## REMOVED`)
|
|
50
|
-
4. 在 proposal.md 中注明 `基于已有 capability: <capability-name>`
|
|
51
|
-
|
|
52
|
-
**好处**:避免从零编写 delta spec,确保增量修改有完整上下文。
|
|
76
|
+
4. 在 proposal.md 中注明 `基于已有 capability: <capability-name>`
|
|
53
77
|
|
|
54
78
|
### 3. 初始化 Comet 状态
|
|
55
79
|
|
|
56
|
-
在 `openspec/changes/<name
|
|
80
|
+
在 `openspec/changes/<name>/` 下创建独立的 `.comet.yaml` 文件:
|
|
57
81
|
|
|
58
82
|
```yaml
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
archived: false
|
|
83
|
+
workflow: full
|
|
84
|
+
phase: design
|
|
85
|
+
design_doc: null
|
|
86
|
+
plan: null
|
|
87
|
+
build_mode: null
|
|
88
|
+
verify_mode: null
|
|
89
|
+
verify_result: pending
|
|
90
|
+
verified_at: null
|
|
91
|
+
archived: false
|
|
69
92
|
```
|
|
70
93
|
|
|
94
|
+
【写入验证】创建完成后必须验证:
|
|
95
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
96
|
+
确认 workflow 行的值为 "full"
|
|
97
|
+
确认 phase 行的值为 "design"
|
|
98
|
+
确认 design_doc 行的值为 "null"
|
|
99
|
+
确认 plan 行的值为 "null"
|
|
100
|
+
确认 build_mode 行的值为 "null"
|
|
101
|
+
确认 verify_mode 行的值为 "null"
|
|
102
|
+
确认 verify_result 行的值为 "pending"
|
|
103
|
+
确认 verified_at 行的值为 "null"
|
|
104
|
+
确认 archived 行的值为 "false"
|
|
105
|
+
如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
106
|
+
|
|
71
107
|
### 4. 内容完整性检查
|
|
72
108
|
|
|
73
109
|
确认三个文档内容完整:
|
|
@@ -78,6 +114,7 @@ comet:
|
|
|
78
114
|
## 退出条件
|
|
79
115
|
|
|
80
116
|
- proposal.md、design.md、tasks.md 均已创建且内容完整
|
|
117
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> open`,全部 PASS 后才允许流转
|
|
81
118
|
|
|
82
119
|
## 自动流转
|
|
83
120
|
|
|
@@ -1,117 +1,152 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: comet-tweak
|
|
3
|
-
description: "Comet 预设路径:非 bug 的小改动(tweak)。跳过 brainstorming 和完整 plan,直接 open → lightweight build → light verify → archive。适用于文案、配置、文档或 prompt 的局部优化。"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Comet 预设路径:Tweak
|
|
7
|
-
|
|
8
|
-
Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程。它复用 open、build、verify、archive 能力,仅跳过 brainstorming 和完整 plan。
|
|
9
|
-
|
|
10
|
-
适用于非 bug 的小范围变更,例如文案调整、配置调整、文档或 prompt 的局部优化。
|
|
11
|
-
|
|
12
|
-
**适用条件**(必须全部满足):
|
|
13
|
-
1. 不新增 capability
|
|
14
|
-
2. 不改变架构
|
|
15
|
-
3. 不涉及接口变化
|
|
16
|
-
4. 通常不超过 3 个 tasks、5 个文件
|
|
17
|
-
|
|
18
|
-
**不适用**:如变更过程中发现需要 capability、架构或接口调整,应升级为完整 `/comet` 流程。
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 流程(preset workflow,4 阶段)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
3
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
|
|
1
|
+
---
|
|
2
|
+
name: comet-tweak
|
|
3
|
+
description: "Comet 预设路径:非 bug 的小改动(tweak)。跳过 brainstorming 和完整 plan,直接 open → lightweight build → light verify → archive。适用于文案、配置、文档或 prompt 的局部优化。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet 预设路径:Tweak
|
|
7
|
+
|
|
8
|
+
Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程。它复用 open、build、verify、archive 能力,仅跳过 brainstorming 和完整 plan。
|
|
9
|
+
|
|
10
|
+
适用于非 bug 的小范围变更,例如文案调整、配置调整、文档或 prompt 的局部优化。
|
|
11
|
+
|
|
12
|
+
**适用条件**(必须全部满足):
|
|
13
|
+
1. 不新增 capability
|
|
14
|
+
2. 不改变架构
|
|
15
|
+
3. 不涉及接口变化
|
|
16
|
+
4. 通常不超过 3 个 tasks、5 个文件
|
|
17
|
+
|
|
18
|
+
**不适用**:如变更过程中发现需要 capability、架构或接口调整,应升级为完整 `/comet` 流程。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 流程(preset workflow,4 阶段)
|
|
23
|
+
|
|
24
|
+
### 0. 入口状态验证(Entry Check)
|
|
25
|
+
|
|
26
|
+
在执行任何操作之前,验证当前状态:
|
|
27
|
+
|
|
28
|
+
**检查清单:**
|
|
29
|
+
1. `openspec/changes/<name>/` 目录不存在,或目录存在但 `.comet.yaml` 不存在(无冲突)
|
|
30
|
+
|
|
31
|
+
**验证方式:**
|
|
32
|
+
- `test -d openspec/changes/<name>` 检查目录
|
|
33
|
+
- 如目录存在,`test -f openspec/changes/<name>/.comet.yaml` 检查配置文件
|
|
34
|
+
- 如 `.comet.yaml` 已存在,读取 `phase` 检查是否为未完成的 tweak
|
|
35
|
+
|
|
36
|
+
**失败输出(有冲突):**
|
|
37
|
+
```
|
|
38
|
+
[HARD STOP] Entry check failed for comet-tweak
|
|
39
|
+
Expected: openspec/changes/<name>/.comet.yaml does not exist (new change)
|
|
40
|
+
Actual: .comet.yaml exists with phase=<实际值>
|
|
41
|
+
Suggestion: Pick a different change name, or check if an existing tweak is in progress.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
验证通过后才进入流程步骤。
|
|
45
|
+
|
|
46
|
+
执行链路:open → lightweight build → light verify → archive。Tweak 为每个阶段提供默认决策:精简开启、轻量构建、轻量验证、验证通过后归档。
|
|
47
|
+
|
|
48
|
+
### 1. 快速开启(preset open)
|
|
49
|
+
|
|
50
|
+
复用 Comet open 能力创建 change,但使用 tweak 默认值:不执行 `openspec-explore` 长探索,直接进入精简 change 创建。
|
|
51
|
+
|
|
52
|
+
**立即执行:** 使用 Skill 工具加载 `openspec-new-change` 技能。禁止跳过此步骤。
|
|
53
|
+
|
|
54
|
+
技能加载后,按其指引创建精简版产物:
|
|
55
|
+
- `proposal.md` — 变更动机 + 目标 + 范围
|
|
56
|
+
- `design.md` — 简短实现说明(无需方案对比)
|
|
57
|
+
- `tasks.md` — 不超过 3 个任务
|
|
58
|
+
- **无需 delta spec**(除非变更改变了已有 spec 的验收场景;一旦需要 delta spec,升级为完整 `/comet`)
|
|
59
|
+
|
|
60
|
+
在 `openspec/changes/<name>/` 下创建独立的 `.comet.yaml` 文件:
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
workflow: tweak
|
|
64
|
+
phase: build
|
|
65
|
+
design_doc: null
|
|
66
|
+
plan: null
|
|
67
|
+
build_mode: direct
|
|
68
|
+
verify_mode: light
|
|
69
|
+
verify_result: pending
|
|
70
|
+
verified_at: null
|
|
71
|
+
archived: false
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
【写入验证】创建完成后必须验证:
|
|
75
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
76
|
+
确认 workflow 行的值为 "tweak"
|
|
77
|
+
确认 phase 行的值为 "build"
|
|
78
|
+
确认 design_doc 行的值为 "null"
|
|
79
|
+
确认 plan 行的值为 "null"
|
|
80
|
+
确认 build_mode 行的值为 "direct"
|
|
81
|
+
确认 verify_mode 行的值为 "light"
|
|
82
|
+
确认 verify_result 行的值为 "pending"
|
|
83
|
+
确认 verified_at 行的值为 "null"
|
|
84
|
+
确认 archived 行的值为 "false"
|
|
85
|
+
如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
86
|
+
|
|
87
|
+
### 2. 轻量构建(preset build)
|
|
88
|
+
|
|
89
|
+
使用 tweak 默认值:`build_mode: direct`。跳过 `superpowers:brainstorming` 和 `superpowers:writing-plans`。
|
|
90
|
+
|
|
91
|
+
**立即执行:** 按 tasks.md 逐个执行任务:
|
|
92
|
+
|
|
93
|
+
1. 读取 `openspec/changes/<name>/tasks.md`,获取未完成任务列表
|
|
94
|
+
2. 对每个未完成任务:
|
|
95
|
+
- 根据任务描述修改目标文件
|
|
96
|
+
- 运行 `mvn spotless:apply` 格式化
|
|
97
|
+
- 运行相关测试确认通过
|
|
98
|
+
- 将 tasks.md 中对应 `- [ ]` 勾选为 `- [x]`
|
|
99
|
+
- 提交代码,commit message 格式:`tweak: <简述变更>`
|
|
100
|
+
3. 全部任务完成后进入验证
|
|
101
|
+
|
|
102
|
+
### 3. 轻量验证(preset verify)
|
|
103
|
+
|
|
104
|
+
复用 `/comet-verify`。Tweak 必须保持轻量验证条件:≤ 3 tasks、≤ 5 files、无 delta spec、无新 capability。
|
|
105
|
+
|
|
106
|
+
**立即执行:** 使用 Skill 工具加载 `comet-verify` 技能。禁止跳过此步骤。
|
|
107
|
+
|
|
108
|
+
如规模评估进入完整验证路径,停止 tweak,升级为完整 `/comet`。
|
|
109
|
+
|
|
110
|
+
验证通过后,按 `/comet-verify` 的规则将 `.comet.yaml` 的 `verify_result` 记录为 `pass`,归档前不得跳过该状态。
|
|
111
|
+
|
|
112
|
+
### 4. 归档(preset archive)
|
|
113
|
+
|
|
114
|
+
复用 `/comet-archive`。归档前必须满足 `.comet.yaml` 中 `verify_result: pass`。
|
|
115
|
+
|
|
116
|
+
**立即执行:** 使用 Skill 工具加载 `comet-archive` 技能进行归档。禁止跳过此步骤。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 连续执行模式
|
|
121
|
+
|
|
122
|
+
<IMPORTANT>
|
|
123
|
+
Tweak 流程为 **一次性连续执行**。调用 `/comet-tweak` 后,agent 必须自动走完全部 4 个阶段,中间不停顿等待用户输入(除非遇到升级条件需要用户确认)。
|
|
124
|
+
|
|
125
|
+
执行顺序:快速开启 → 轻量构建 → 轻量验证 → 归档 → 完成
|
|
126
|
+
|
|
127
|
+
每个阶段完成后立即进入下一阶段,无需用户再次输入。阶段内部仍必须按上文要求调用对应 Comet/OpenSpec/Superpowers skill。
|
|
128
|
+
</IMPORTANT>
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 升级条件
|
|
133
|
+
|
|
134
|
+
执行过程中出现以下情况时,停止 tweak 流程,升级为完整 `/comet`:
|
|
135
|
+
|
|
136
|
+
1. 需要新增 capability
|
|
137
|
+
2. 需要架构调整
|
|
138
|
+
3. 需要接口变化
|
|
139
|
+
4. 影响范围扩大到 > 5 个文件
|
|
140
|
+
5. 任务数超过 3 个
|
|
141
|
+
6. 需要 delta spec
|
|
142
|
+
|
|
143
|
+
升级方式:在当前 change 基础上补充 Design Doc(执行 `/comet-design`),后续正常走完整流程。
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 退出条件
|
|
148
|
+
|
|
149
|
+
- 小改动已完成,测试通过
|
|
150
|
+
- change 已归档
|
|
151
|
+
- 未新增 capability、架构调整或接口变化
|
|
152
|
+
- **阶段守卫**:build → verify 前运行 `bash $COMET_GUARD <change-name> build`,verify → archive 前运行 `bash $COMET_GUARD <change-name> verify`
|