@rpamis/comet 0.1.8 → 0.2.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.
- package/README.md +25 -5
- package/assets/manifest.json +2 -0
- package/assets/skills/comet/SKILL.md +214 -219
- package/assets/skills/comet/scripts/comet-guard.sh +255 -253
- package/assets/skills/comet/scripts/comet-state.sh +5 -3
- package/assets/skills/comet-archive/SKILL.md +2 -2
- package/assets/skills/comet-build/SKILL.md +1 -1
- package/assets/skills/comet-design/SKILL.md +1 -1
- package/assets/skills/comet-hotfix/SKILL.md +136 -133
- package/assets/skills/comet-open/SKILL.md +1 -1
- package/assets/skills/comet-tweak/SKILL.md +122 -120
- package/assets/skills/comet-verify/SKILL.md +2 -4
- package/assets/skills-zh/comet/SKILL.md +87 -98
- package/assets/skills-zh/comet-archive/SKILL.md +63 -63
- package/assets/skills-zh/comet-build/SKILL.md +153 -153
- package/assets/skills-zh/comet-design/SKILL.md +91 -91
- package/assets/skills-zh/comet-hotfix/SKILL.md +10 -7
- package/assets/skills-zh/comet-open/SKILL.md +70 -70
- package/assets/skills-zh/comet-tweak/SKILL.md +11 -9
- package/assets/skills-zh/comet-verify/SKILL.md +114 -116
- package/dist/cli/index.js +28 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +168 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +183 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +89 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update.d.ts +8 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +47 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/core/detect.d.ts +8 -0
- package/dist/core/detect.d.ts.map +1 -0
- package/dist/core/detect.js +73 -0
- package/dist/core/detect.js.map +1 -0
- package/dist/core/openspec.d.ts +5 -0
- package/dist/core/openspec.d.ts.map +1 -0
- package/dist/core/openspec.js +58 -0
- package/dist/core/openspec.js.map +1 -0
- package/dist/core/platforms.d.ts.map +1 -1
- package/dist/core/platforms.js +6 -1
- package/dist/core/platforms.js.map +1 -1
- package/dist/core/skills.d.ts +22 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +59 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/superpowers.d.ts +5 -0
- package/dist/core/superpowers.d.ts.map +1 -0
- package/dist/core/superpowers.js +60 -0
- package/dist/core/superpowers.js.map +1 -0
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/package.json +62 -50
- package/dist/core/init.d.ts +0 -14
- package/dist/core/init.d.ts.map +0 -1
- package/dist/core/init.js +0 -492
- package/dist/core/init.js.map +0 -1
|
@@ -5,7 +5,7 @@ description: "Comet — OpenSpec + Superpowers 双星开发流程。用 /comet
|
|
|
5
5
|
|
|
6
6
|
# Comet — OpenSpec + Superpowers 双星开发流程
|
|
7
7
|
|
|
8
|
-
OpenSpec 与 Superpowers 如双星系统围绕同一目标运转。
|
|
8
|
+
OpenSpec 与 Superpowers 如双星系统围绕同一目标运转。
|
|
9
9
|
|
|
10
10
|
```
|
|
11
11
|
OpenSpec 负责 WHAT — 大纲、提案、spec 生命周期、归档
|
|
@@ -14,105 +14,89 @@ Superpowers 负责 HOW — 技术设计、计划、执行、收尾
|
|
|
14
14
|
|
|
15
15
|
**核心原则:brainstorming 必不可跳过。每次变更都必须经过深度设计(hotfix 和 tweak preset 除外)。**
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
## 阶段衔接
|
|
19
|
-
|
|
20
|
-
单次 `/comet` 调用会从检测到的阶段开始执行,并在每个阶段退出条件满足后提示或进入下一阶段。
|
|
21
|
-
|
|
22
|
-
流转链:open → design → build → verify → archive
|
|
17
|
+
---
|
|
23
18
|
|
|
24
|
-
|
|
25
|
-
1. brainstorming 过程中确认设计方案
|
|
26
|
-
2. build 阶段选择执行方式
|
|
27
|
-
3. verify 不通过时决定修复或接受偏差
|
|
28
|
-
4. finishing-branch 选择分支处理方式
|
|
29
|
-
5. 遇到升级条件(hotfix/tweak → 完整流程)
|
|
19
|
+
## 决策核心(Decision Core)
|
|
30
20
|
|
|
31
|
-
agent
|
|
32
|
-
</IMPORTANT>
|
|
21
|
+
agent 做决策只需读本节,参考附录按需查阅。
|
|
33
22
|
|
|
34
|
-
|
|
23
|
+
### 阶段自动检测
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
**立即执行:**
|
|
25
|
+
**Step 0: 活跃 Change 发现**
|
|
39
26
|
|
|
40
27
|
1. 运行 `openspec list --json` 获取所有活跃 change
|
|
41
28
|
2. 对每个 change,检查 `docs/superpowers/specs/` 和 `docs/superpowers/plans/` 匹配关联文件,判断阶段和进度
|
|
42
29
|
|
|
43
|
-
**分支逻辑:**
|
|
44
|
-
|
|
45
30
|
| 情况 | 行为 |
|
|
46
31
|
|------|------|
|
|
47
32
|
| 无活跃 change | → 调用 `/comet-open` |
|
|
48
|
-
| 恰好 1 个活跃 change | →
|
|
33
|
+
| 恰好 1 个活跃 change | → 自动选中,进入 Step 1 |
|
|
49
34
|
| 多个活跃 change | → 列出清单让用户选择 |
|
|
50
35
|
|
|
51
|
-
|
|
36
|
+
**Preset 检测**:
|
|
37
|
+
- 用户明确描述为 bug fix / 热修复 + 满足 hotfix 条件 → 直接 `/comet-hotfix`
|
|
38
|
+
- 用户明确描述为文案/配置/文档/prompt 小调整 + 满足 tweak 条件 → 直接 `/comet-tweak`
|
|
52
39
|
|
|
53
|
-
|
|
54
|
-
| # | Change 名称 | 当前阶段 | 任务进度 |
|
|
55
|
-
|---|------------|---------|---------|
|
|
56
|
-
| 1 | xxx-feature | Build | 3/5 tasks |
|
|
57
|
-
| 2 | yyy-fix | Design | No design doc |
|
|
58
|
-
```
|
|
40
|
+
**Step 1: 读取 `.comet.yaml` 状态元数据**
|
|
59
41
|
|
|
60
|
-
|
|
42
|
+
优先读取 `openspec/changes/<name>/.comet.yaml`。不存在时回退到 `openspec status --change "<name>" --json`、`tasks.md` 和 `docs/superpowers/` 文件检查。
|
|
61
43
|
|
|
62
|
-
**
|
|
63
|
-
- 如用户明确描述为 bug fix / 热修复,且满足 hotfix 适用条件,直接调用 `/comet-hotfix`(跳过选择)。
|
|
64
|
-
- 如用户明确描述为文案、配置、文档、prompt 或小范围非 bug 调整,且满足 tweak 适用条件,直接调用 `/comet-tweak`(跳过选择)。
|
|
44
|
+
**Step 2: 阶段判定**(按顺序,命中即停)
|
|
65
45
|
|
|
66
|
-
|
|
46
|
+
1. `archived: true` 或 change 已移入 archive → 流程已完成
|
|
47
|
+
2. `verify_result: pass` 且 `archived` 不是 `true` → `/comet-archive`
|
|
48
|
+
3. `phase: verify` 或 tasks.md 全部勾选 → `/comet-verify`
|
|
49
|
+
4. `phase: build` 或已有 Design Doc 但计划/执行未完成 → `/comet-build`
|
|
50
|
+
5. `phase: design` 或有 change 但无 Design Doc → `/comet-design`
|
|
51
|
+
6. 无活跃 change 或状态无法判定 → `/comet-open`
|
|
67
52
|
|
|
68
|
-
|
|
53
|
+
如果元数据与文件状态冲突,以文件状态为准,修正 `.comet.yaml` 后继续。
|
|
69
54
|
|
|
70
|
-
|
|
55
|
+
### 预设升级条件
|
|
71
56
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
isolation: branch
|
|
79
|
-
verify_mode: light
|
|
80
|
-
verify_result: pending
|
|
81
|
-
verified_at: null
|
|
82
|
-
archived: false
|
|
83
|
-
```
|
|
57
|
+
**hotfix → full**(满足任一即升级):
|
|
58
|
+
- 改动涉及 **3+ 文件**
|
|
59
|
+
- 涉及架构变更(新模块、新接口、新依赖)
|
|
60
|
+
- 涉及数据库 schema 变更
|
|
61
|
+
- 修复引入新的 public API
|
|
62
|
+
- 修复范围超出单一函数/模块
|
|
84
63
|
|
|
85
|
-
|
|
64
|
+
**tweak → full**(满足任一即升级):
|
|
65
|
+
- 改动涉及 **5+ 文件**
|
|
66
|
+
- 涉及多个模块的协调修改
|
|
67
|
+
- 需要新增测试用例 **5+**
|
|
68
|
+
- 涉及配置项的新增或删除(非值修改)
|
|
86
69
|
|
|
87
|
-
|
|
88
|
-
|------|------|
|
|
89
|
-
| `workflow` | `full`、`hotfix` 或 `tweak` |
|
|
90
|
-
| `phase` | 当前阶段:`open`、`design`、`build`、`verify`、`archive` |
|
|
91
|
-
| `design_doc` | 关联的 Superpowers Design Doc 路径,可为空 |
|
|
92
|
-
| `plan` | 关联的 Superpowers Plan 路径,可为空 |
|
|
93
|
-
| `build_mode` | 已选择的执行方式,可为空 |
|
|
94
|
-
| `isolation` | `branch` 或 `worktree`,工作区隔离方式,默认 `branch` |
|
|
95
|
-
| `verify_mode` | `light` 或 `full`,可为空 |
|
|
96
|
-
| `verify_result` | `pending`、`pass` 或 `fail` |
|
|
97
|
-
| `verified_at` | 验证通过时间,可为空 |
|
|
98
|
-
| `archived` | change 是否已归档 |
|
|
70
|
+
### 错误处理速查
|
|
99
71
|
|
|
100
|
-
|
|
72
|
+
| 场景 | 处理方式 |
|
|
73
|
+
|------|---------|
|
|
74
|
+
| `openspec list --json` 失败 | 检查 openspec 是否已安装,提示 `openspec init` |
|
|
75
|
+
| 子 skill 不可用 | 停止流程,提示安装或启用对应 skill |
|
|
76
|
+
| `.comet.yaml` 格式异常或缺失 | 以文件状态为准,用 `bash $COMET_STATE set` 修正后继续 |
|
|
77
|
+
| Maven 编译/测试失败 | 返回 build 阶段修复,不进入 verify |
|
|
78
|
+
| change 目录结构不完整 | 按 `comet-open` 产物要求补齐 |
|
|
101
79
|
|
|
102
|
-
|
|
80
|
+
### 阶段衔接
|
|
103
81
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
3. **`phase: verify` 或 tasks.md 全部勾选** → 调用 `/comet-verify`
|
|
107
|
-
4. **`phase: build` 或已有 Design Doc 但计划/执行未完成** → 调用 `/comet-build`
|
|
108
|
-
5. **`phase: design` 或有 change 但无 Design Doc** → 调用 `/comet-design`
|
|
109
|
-
6. **无活跃 change 或状态无法判定** → 调用 `/comet-open`
|
|
82
|
+
<IMPORTANT>
|
|
83
|
+
单次 `/comet` 调用从检测到的阶段开始,退出条件满足后进入下一阶段。
|
|
110
84
|
|
|
111
|
-
|
|
85
|
+
流转链:open → design → build → verify → archive
|
|
86
|
+
|
|
87
|
+
需要用户参与的节点:
|
|
88
|
+
1. brainstorming 确认设计方案
|
|
89
|
+
2. build 阶段选择执行方式
|
|
90
|
+
3. verify 不通过时决定修复或接受偏差
|
|
91
|
+
4. finishing-branch 选择分支处理方式
|
|
92
|
+
5. 遇到升级条件(hotfix/tweak → 完整流程)
|
|
93
|
+
|
|
94
|
+
agent 不应跳过这些决策点;其他明确无歧义的阶段衔接可以继续推进。
|
|
95
|
+
</IMPORTANT>
|
|
112
96
|
|
|
113
97
|
---
|
|
114
98
|
|
|
115
|
-
##
|
|
99
|
+
## 子命令速查
|
|
116
100
|
|
|
117
101
|
| 命令 | 阶段 | 归属 | 产物 |
|
|
118
102
|
|------|------|------|------|
|
|
@@ -124,10 +108,6 @@ archived: false
|
|
|
124
108
|
| `/comet-hotfix` | 预设路径 | Both | 快速修复(跳过 brainstorming) |
|
|
125
109
|
| `/comet-tweak` | 预设路径 | Both | 小改动(跳过 brainstorming 和完整 plan) |
|
|
126
110
|
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## 流程图
|
|
130
|
-
|
|
131
111
|
```
|
|
132
112
|
/comet
|
|
133
113
|
↓ 自动检测
|
|
@@ -145,34 +125,44 @@ archived: false
|
|
|
145
125
|
|
|
146
126
|
---
|
|
147
127
|
|
|
148
|
-
##
|
|
128
|
+
## 参考附录(Reference Appendix)
|
|
149
129
|
|
|
150
|
-
|
|
151
|
-
|------|---------|
|
|
152
|
-
| `openspec list --json` 失败 | 检查 openspec 是否已安装,提示用户运行 `openspec init` |
|
|
153
|
-
| 子 skill 不可用(如 `superpowers:brainstorming`) | 停止流程,提示安装或启用对应 skill |
|
|
154
|
-
| `.comet.yaml` 格式异常或缺失 | 以文件状态为准(tasks.md、docs/superpowers/),使用 `bash $COMET_STATE set <name> <field> <value>` 修正元数据后继续 |
|
|
155
|
-
| Maven 编译/测试失败 | 返回 build 阶段修复,不进入 verify |
|
|
156
|
-
| change 目录结构不完整 | 按 `comet-open` 的产物要求补齐缺失文件 |
|
|
130
|
+
### .comet.yaml 字段说明
|
|
157
131
|
|
|
158
|
-
|
|
132
|
+
```yaml
|
|
133
|
+
workflow: full
|
|
134
|
+
phase: build
|
|
135
|
+
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
136
|
+
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
137
|
+
build_mode: subagent-driven-development
|
|
138
|
+
isolation: branch
|
|
139
|
+
verify_mode: light
|
|
140
|
+
verify_result: pending
|
|
141
|
+
verified_at: null
|
|
142
|
+
archived: false
|
|
143
|
+
```
|
|
159
144
|
|
|
160
|
-
|
|
145
|
+
| 字段 | 含义 |
|
|
146
|
+
|------|------|
|
|
147
|
+
| `workflow` | `full`、`hotfix` 或 `tweak` |
|
|
148
|
+
| `phase` | 当前阶段:`open`、`design`、`build`、`verify`、`archive` |
|
|
149
|
+
| `design_doc` | 关联的 Superpowers Design Doc 路径,可为空 |
|
|
150
|
+
| `plan` | 关联的 Superpowers Plan 路径,可为空 |
|
|
151
|
+
| `build_mode` | 已选择的执行方式,可为空 |
|
|
152
|
+
| `isolation` | `branch` 或 `worktree`,工作区隔离方式,默认 `branch` |
|
|
153
|
+
| `verify_mode` | `light` 或 `full`,可为空 |
|
|
154
|
+
| `verify_result` | `pending`、`pass` 或 `fail` |
|
|
155
|
+
| `verified_at` | 验证通过时间,可为空 |
|
|
156
|
+
| `archived` | change 是否已归档 |
|
|
161
157
|
|
|
162
158
|
### 脚本定位
|
|
163
159
|
|
|
164
|
-
Comet
|
|
165
|
-
**不硬编码平台路径**,运行时通过以下命令自定位:
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
COMET_GUARD=$(find . -path '*/comet/scripts/comet-guard.sh' -type f -print -quit)
|
|
169
|
-
bash "$COMET_GUARD" <change-name> <phase>
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**状态管理脚本**:`comet-state.sh` 提供 init/set/get/check/scale 五个子命令,统一管理状态文件字段:
|
|
160
|
+
Comet 脚本随 skill 包分发在 `comet/scripts/` 下。**不硬编码路径** — 定位一次,缓存到环境变量:
|
|
173
161
|
|
|
174
162
|
```bash
|
|
175
|
-
|
|
163
|
+
COMET_GUARD="${COMET_GUARD:-$(find . -path '*/comet/scripts/comet-guard.sh' -type f -print -quit)}"
|
|
164
|
+
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
165
|
+
COMET_ARCHIVE="${COMET_ARCHIVE:-$(find . -path '*/comet/scripts/comet-archive.sh' -type f -print -quit)}"
|
|
176
166
|
```
|
|
177
167
|
|
|
178
168
|
**自动状态更新**:guard 支持 `--apply` 参数,验证通过后自动更新 `.comet.yaml` 状态字段:
|
|
@@ -184,11 +174,10 @@ bash "$COMET_GUARD" <change-name> <phase> --apply
|
|
|
184
174
|
**归档脚本**:一键完成归档全部步骤:
|
|
185
175
|
|
|
186
176
|
```bash
|
|
187
|
-
COMET_ARCHIVE=$(find . -path '*/comet/scripts/comet-archive.sh' -type f -print -quit)
|
|
188
177
|
bash "$COMET_ARCHIVE" <change-name>
|
|
189
178
|
```
|
|
190
179
|
|
|
191
|
-
|
|
180
|
+
加载 comet 后,agent 应执行以上三条变量赋值一次,后续全程复用 `$COMET_GUARD`、`$COMET_STATE`、`$COMET_ARCHIVE`。
|
|
192
181
|
|
|
193
182
|
### 文件结构
|
|
194
183
|
|
|
@@ -221,5 +210,5 @@ docs/superpowers/ # Superpowers — HOW
|
|
|
221
210
|
6. **增量更新分级** — 小编辑、中重 brainstorming、大新 change
|
|
222
211
|
7. **Plan 必须关联 change** — 文件头包含 `change:` 和 `design-doc:` 元数据
|
|
223
212
|
8. **归档闭环** — design doc 和 plan 必须标注 `archived-with` 状态
|
|
224
|
-
9.
|
|
213
|
+
9. **修改已有功能** — 直接 open 新 change 即可
|
|
225
214
|
10. **Preset 有上限** — hotfix/tweak 满足升级条件时及时切换到完整流程
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: comet-archive
|
|
3
|
-
description: "Comet 阶段 5:归档。用 /comet-archive 调用。同步 delta spec 到主 spec,归档 change。"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Comet 阶段 5:归档(Archive)
|
|
7
|
-
|
|
8
|
-
## 前置条件
|
|
9
|
-
|
|
10
|
-
- 验证已通过(阶段 4 完成)
|
|
11
|
-
- 分支已处理
|
|
12
|
-
- `openspec/changes/<name>/.comet.yaml` 中 `verify_result: pass`
|
|
13
|
-
|
|
14
|
-
## 步骤
|
|
15
|
-
|
|
16
|
-
### 0. 入口状态验证(Entry Check)
|
|
17
|
-
|
|
18
|
-
执行入口验证:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
COMET_STATE
|
|
22
|
-
bash "$COMET_STATE" check <name> archive
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
26
|
-
|
|
27
|
-
### 1. 执行归档
|
|
28
|
-
|
|
29
|
-
运行归档脚本,自动完成以下全部步骤:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
COMET_ARCHIVE
|
|
33
|
-
bash "$COMET_ARCHIVE" "<change-name>"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
脚本自动执行:
|
|
37
|
-
1. 入口状态验证(phase=archive, verify_result=pass, archived=false)
|
|
38
|
-
2. Delta spec 同步到主 spec
|
|
39
|
-
3. Design doc 前置元数据标注(archived-with, status)
|
|
40
|
-
4. Plan 前置元数据标注(archived-with)
|
|
41
|
-
5. 移动 change 到归档目录
|
|
42
|
-
6. 更新 archived: true
|
|
43
|
-
|
|
44
|
-
如脚本返回非零退出码,报告错误并停止。
|
|
45
|
-
如脚本返回零退出码,归档完成。
|
|
46
|
-
|
|
47
|
-
如需预览而不实际执行,使用 `--dry-run` 参数。
|
|
48
|
-
|
|
49
|
-
### 2. 生命周期闭环
|
|
50
|
-
|
|
51
|
-
Spec 生命周期在此完成:
|
|
52
|
-
```
|
|
53
|
-
brainstorming → delta spec → 实施 → 验证 → 主 spec 覆盖 → design doc 标注 → 归档
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## 退出条件
|
|
57
|
-
|
|
58
|
-
- 归档脚本执行成功(退出码 0)
|
|
59
|
-
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> archive`,全部 PASS 后确认归档完整
|
|
60
|
-
|
|
61
|
-
## 完成
|
|
62
|
-
|
|
63
|
-
Comet 流程全部完成。如需开始新工作,调用 `/comet` 或 `/comet-open`。
|
|
1
|
+
---
|
|
2
|
+
name: comet-archive
|
|
3
|
+
description: "Comet 阶段 5:归档。用 /comet-archive 调用。同步 delta spec 到主 spec,归档 change。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet 阶段 5:归档(Archive)
|
|
7
|
+
|
|
8
|
+
## 前置条件
|
|
9
|
+
|
|
10
|
+
- 验证已通过(阶段 4 完成)
|
|
11
|
+
- 分支已处理
|
|
12
|
+
- `openspec/changes/<name>/.comet.yaml` 中 `verify_result: pass`
|
|
13
|
+
|
|
14
|
+
## 步骤
|
|
15
|
+
|
|
16
|
+
### 0. 入口状态验证(Entry Check)
|
|
17
|
+
|
|
18
|
+
执行入口验证:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
22
|
+
bash "$COMET_STATE" check <name> archive
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
26
|
+
|
|
27
|
+
### 1. 执行归档
|
|
28
|
+
|
|
29
|
+
运行归档脚本,自动完成以下全部步骤:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
COMET_ARCHIVE="${COMET_ARCHIVE:-$(find . -path '*/comet/scripts/comet-archive.sh' -type f -print -quit)}"
|
|
33
|
+
bash "$COMET_ARCHIVE" "<change-name>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
脚本自动执行:
|
|
37
|
+
1. 入口状态验证(phase=archive, verify_result=pass, archived=false)
|
|
38
|
+
2. Delta spec 同步到主 spec
|
|
39
|
+
3. Design doc 前置元数据标注(archived-with, status)
|
|
40
|
+
4. Plan 前置元数据标注(archived-with)
|
|
41
|
+
5. 移动 change 到归档目录
|
|
42
|
+
6. 更新 archived: true
|
|
43
|
+
|
|
44
|
+
如脚本返回非零退出码,报告错误并停止。
|
|
45
|
+
如脚本返回零退出码,归档完成。
|
|
46
|
+
|
|
47
|
+
如需预览而不实际执行,使用 `--dry-run` 参数。
|
|
48
|
+
|
|
49
|
+
### 2. 生命周期闭环
|
|
50
|
+
|
|
51
|
+
Spec 生命周期在此完成:
|
|
52
|
+
```
|
|
53
|
+
brainstorming → delta spec → 实施 → 验证 → 主 spec 覆盖 → design doc 标注 → 归档
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 退出条件
|
|
57
|
+
|
|
58
|
+
- 归档脚本执行成功(退出码 0)
|
|
59
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> archive`,全部 PASS 后确认归档完整
|
|
60
|
+
|
|
61
|
+
## 完成
|
|
62
|
+
|
|
63
|
+
Comet 流程全部完成。如需开始新工作,调用 `/comet` 或 `/comet-open`。
|