@rpamis/comet 0.1.0
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 -0
- package/README.md +49 -0
- package/assets/manifest.json +13 -0
- package/assets/skills/comet/SKILL.md +192 -0
- package/assets/skills/comet-archive/SKILL.md +107 -0
- package/assets/skills/comet-build/SKILL.md +122 -0
- package/assets/skills/comet-design/SKILL.md +75 -0
- package/assets/skills/comet-hotfix/SKILL.md +130 -0
- package/assets/skills/comet-open/SKILL.md +86 -0
- package/assets/skills/comet-tweak/SKILL.md +117 -0
- package/assets/skills/comet-verify/SKILL.md +131 -0
- package/bin/comet.js +3 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +21 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/init.d.ts +14 -0
- package/dist/core/init.d.ts.map +1 -0
- package/dist/core/init.js +387 -0
- package/dist/core/init.js.map +1 -0
- package/dist/core/platforms.d.ts +15 -0
- package/dist/core/platforms.d.ts.map +1 -0
- package/dist/core/platforms.js +43 -0
- package/dist/core/platforms.js.map +1 -0
- package/dist/utils/file-system.d.ts +25 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +53 -0
- package/dist/utils/file-system.js.map +1 -0
- package/package.json +50 -0
- package/scripts/postinstall.js +44 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 rpamis
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# @rpamis/comet
|
|
2
|
+
|
|
3
|
+
OpenSpec + Superpowers dual-star development workflow for Claude Code.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @rpamis/comet
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd your-project
|
|
15
|
+
comet init
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`comet init` will:
|
|
19
|
+
1. Install Comet skills to `.claude/skills/`
|
|
20
|
+
2. Set up OpenSpec (if not already installed)
|
|
21
|
+
3. Set up Superpowers (if not already installed)
|
|
22
|
+
4. Create `docs/superpowers/` working directories
|
|
23
|
+
|
|
24
|
+
## Commands
|
|
25
|
+
|
|
26
|
+
| Command | Description |
|
|
27
|
+
|---------|-------------|
|
|
28
|
+
| `comet init [path]` | Initialize Comet workflow |
|
|
29
|
+
| `comet --help` | Show help |
|
|
30
|
+
| `comet --version` | Show version |
|
|
31
|
+
|
|
32
|
+
## Skills
|
|
33
|
+
|
|
34
|
+
After `comet init`, these skills are available in Claude Code:
|
|
35
|
+
|
|
36
|
+
| Skill | Description |
|
|
37
|
+
|-------|-------------|
|
|
38
|
+
| `/comet` | Main entry — auto-detects phase and dispatches |
|
|
39
|
+
| `/comet-open` | Phase 1: Open change |
|
|
40
|
+
| `/comet-design` | Phase 2: Deep design |
|
|
41
|
+
| `/comet-build` | Phase 3: Plan and build |
|
|
42
|
+
| `/comet-verify` | Phase 4: Verify and finish |
|
|
43
|
+
| `/comet-archive` | Phase 5: Archive |
|
|
44
|
+
| `/comet-hotfix` | Preset: Bug fix (skip brainstorming) |
|
|
45
|
+
| `/comet-tweak` | Preset: Small change (skip brainstorming and plan) |
|
|
46
|
+
|
|
47
|
+
## License
|
|
48
|
+
|
|
49
|
+
MIT
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comet
|
|
3
|
+
description: "Comet — OpenSpec + Superpowers 双星开发流程。用 /comet 启动,自动检测阶段并分发到子命令。五阶段:开启 → 深度设计 → 计划与构建 → 验证与收尾 → 归档。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet — OpenSpec + Superpowers 双星开发流程
|
|
7
|
+
|
|
8
|
+
OpenSpec 与 Superpowers 如双星系统围绕同一目标运转。OpenSpec 负责 WHAT,Superpowers 负责 HOW。
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
OpenSpec 负责 WHAT — 大纲、提案、spec 生命周期、归档
|
|
12
|
+
Superpowers 负责 HOW — 技术设计、计划、执行、收尾
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**核心原则:brainstorming 必不可跳过。每次变更都必须经过深度设计(hotfix 和 tweak preset 除外)。**
|
|
16
|
+
|
|
17
|
+
<IMPORTANT>
|
|
18
|
+
## 阶段衔接
|
|
19
|
+
|
|
20
|
+
单次 `/comet` 调用会从检测到的阶段开始执行,并在每个阶段退出条件满足后提示或进入下一阶段。
|
|
21
|
+
|
|
22
|
+
流转链:open → design → build → verify → archive
|
|
23
|
+
|
|
24
|
+
需要用户参与的节点:
|
|
25
|
+
1. brainstorming 过程中确认设计方案
|
|
26
|
+
2. build 阶段选择执行方式
|
|
27
|
+
3. verify 不通过时决定修复或接受偏差
|
|
28
|
+
4. finishing-branch 选择分支处理方式
|
|
29
|
+
5. 遇到升级条件(hotfix/tweak → 完整流程)
|
|
30
|
+
|
|
31
|
+
agent 不应跳过这些决策点;其他明确无歧义的阶段衔接可以继续推进。
|
|
32
|
+
</IMPORTANT>
|
|
33
|
+
|
|
34
|
+
## 阶段自动检测
|
|
35
|
+
|
|
36
|
+
### Step 0: 活跃 Change 发现
|
|
37
|
+
|
|
38
|
+
**立即执行:**
|
|
39
|
+
|
|
40
|
+
1. 运行 `openspec list --json` 获取所有活跃 change
|
|
41
|
+
2. 对每个 change,检查 `docs/superpowers/specs/` 和 `docs/superpowers/plans/` 匹配关联文件,判断阶段和进度
|
|
42
|
+
|
|
43
|
+
**分支逻辑:**
|
|
44
|
+
|
|
45
|
+
| 情况 | 行为 |
|
|
46
|
+
|------|------|
|
|
47
|
+
| 无活跃 change | → 调用 `/comet-open` |
|
|
48
|
+
| 恰好 1 个活跃 change | → 自动选中,进入阶段判定(Step 1) |
|
|
49
|
+
| 多个活跃 change | → 列出清单让用户选择 |
|
|
50
|
+
|
|
51
|
+
**多 change 选择**:使用 AskUserQuestion 展示,格式示例:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
| # | Change 名称 | 当前阶段 | 任务进度 |
|
|
55
|
+
|---|------------|---------|---------|
|
|
56
|
+
| 1 | xxx-feature | Build | 3/5 tasks |
|
|
57
|
+
| 2 | yyy-fix | Design | No design doc |
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
用户选择后,对选中的 change 进入阶段判定。
|
|
61
|
+
|
|
62
|
+
**Preset 检测**:
|
|
63
|
+
- 如用户明确描述为 bug fix / 热修复,且满足 hotfix 适用条件,直接调用 `/comet-hotfix`(跳过选择)。
|
|
64
|
+
- 如用户明确描述为文案、配置、文档、prompt 或小范围非 bug 调整,且满足 tweak 适用条件,直接调用 `/comet-tweak`(跳过选择)。
|
|
65
|
+
|
|
66
|
+
### Step 1: Comet 状态元数据读取
|
|
67
|
+
|
|
68
|
+
优先读取 `openspec/changes/<name>/.openspec.yaml` 中的 `comet` 元数据。若该字段不存在,再回退到 `openspec status --change "<name>" --json`、`tasks.md` 和 `docs/superpowers/` 文件检查。
|
|
69
|
+
|
|
70
|
+
推荐元数据结构:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
comet:
|
|
74
|
+
workflow: full
|
|
75
|
+
phase: build
|
|
76
|
+
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
77
|
+
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
78
|
+
build_mode: subagent-driven-development
|
|
79
|
+
verify_mode: light
|
|
80
|
+
verify_result: pending
|
|
81
|
+
verified_at: null
|
|
82
|
+
archived: false
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
字段含义:
|
|
86
|
+
|
|
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
|
+
| `verify_mode` | `light` 或 `full`,可为空 |
|
|
95
|
+
| `verify_result` | `pending`、`pass` 或 `fail` |
|
|
96
|
+
| `verified_at` | 验证通过时间,可为空 |
|
|
97
|
+
| `archived` | change 是否已归档 |
|
|
98
|
+
|
|
99
|
+
### Step 2: 阶段判定
|
|
100
|
+
|
|
101
|
+
对选中的 change,按以下顺序判断当前状态:
|
|
102
|
+
|
|
103
|
+
1. **`comet.archived: true` 或 change 已移入 archive** → 流程已完成
|
|
104
|
+
2. **`comet.verify_result: pass` 且 `comet.archived` 不是 `true`** → 调用 `/comet-archive`
|
|
105
|
+
3. **`comet.phase: verify` 或 tasks.md 全部勾选** → 调用 `/comet-verify`
|
|
106
|
+
4. **`comet.phase: build` 或已有 Design Doc 但计划/执行未完成** → 调用 `/comet-build`
|
|
107
|
+
5. **`comet.phase: design` 或有 change 但无 Design Doc** → 调用 `/comet-design`
|
|
108
|
+
6. **无活跃 change 或状态无法判定** → 调用 `/comet-open`
|
|
109
|
+
|
|
110
|
+
如果元数据与文件状态冲突,以可验证的文件状态为准,并在继续阶段前修正 `.openspec.yaml` 中的 `comet` 字段。
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 子命令
|
|
115
|
+
|
|
116
|
+
| 命令 | 阶段 | 归属 | 产物 |
|
|
117
|
+
|------|------|------|------|
|
|
118
|
+
| `/comet-open` | 1. 开启 | OpenSpec | proposal.md、design.md、tasks.md |
|
|
119
|
+
| `/comet-design` | 2. 深度设计 | Superpowers | Design Doc、delta spec |
|
|
120
|
+
| `/comet-build` | 3. 计划与构建 | Superpowers | 实施计划、代码提交 |
|
|
121
|
+
| `/comet-verify` | 4. 验证与收尾 | Both | 验证报告、分支处理 |
|
|
122
|
+
| `/comet-archive` | 5. 归档 | OpenSpec | delta→main spec 同步、design doc 标注、归档 |
|
|
123
|
+
| `/comet-hotfix` | 预设路径 | Both | 快速修复(跳过 brainstorming) |
|
|
124
|
+
| `/comet-tweak` | 预设路径 | Both | 小改动(跳过 brainstorming 和完整 plan) |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 流程图
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
/comet
|
|
132
|
+
↓ 自动检测
|
|
133
|
+
/comet-open ──→ /comet-design ──→ /comet-build ──→ /comet-verify ──→ /comet-archive
|
|
134
|
+
(OpenSpec) (Superpowers) (Superpowers) (Both) (OpenSpec)
|
|
135
|
+
|
|
136
|
+
/comet-hotfix(预设路径,跳过 brainstorming)
|
|
137
|
+
open ──→ build ──→ verify ──→ archive
|
|
138
|
+
↑ 如触发升级条件 → 补充 Design Doc → 回到完整流程
|
|
139
|
+
|
|
140
|
+
/comet-tweak(预设路径,跳过 brainstorming 和完整 plan)
|
|
141
|
+
open ──→ lightweight build ──→ light verify ──→ archive
|
|
142
|
+
↑ 如触发升级条件 → 补充 Design Doc → 回到完整流程
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 错误处理
|
|
148
|
+
|
|
149
|
+
| 场景 | 处理方式 |
|
|
150
|
+
|------|---------|
|
|
151
|
+
| `openspec list --json` 失败 | 检查 openspec 是否已安装,提示用户运行 `openspec init` |
|
|
152
|
+
| 子 skill 不可用(如 `superpowers:brainstorming`) | 停止流程,提示安装或启用对应 skill |
|
|
153
|
+
| `.openspec.yaml` 格式异常或缺失 | 以文件状态为准(tasks.md、docs/superpowers/),修正元数据后继续 |
|
|
154
|
+
| Maven 编译/测试失败 | 返回 build 阶段修复,不进入 verify |
|
|
155
|
+
| change 目录结构不完整 | 按 `comet-open` 的产物要求补齐缺失文件 |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 快速参考
|
|
160
|
+
|
|
161
|
+
### 文件结构
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
openspec/ # OpenSpec — WHAT
|
|
165
|
+
├── config.yaml
|
|
166
|
+
├── changes/
|
|
167
|
+
│ ├── <name>/ # 活跃 change
|
|
168
|
+
│ │ ├── .openspec.yaml
|
|
169
|
+
│ │ ├── proposal.md # Why + What
|
|
170
|
+
│ │ ├── design.md # 高层架构决策
|
|
171
|
+
│ │ ├── specs/<capability>/spec.md # Delta 能力规格
|
|
172
|
+
│ │ └── tasks.md # 任务清单
|
|
173
|
+
│ └── archive/YYYY-MM-DD-<name>/ # 已归档
|
|
174
|
+
└── specs/<capability>/spec.md # 主 specs(归档时从 delta 同步)
|
|
175
|
+
|
|
176
|
+
docs/superpowers/ # Superpowers — HOW
|
|
177
|
+
├── specs/YYYY-MM-DD-<topic>-design.md # 设计文档(技术 RFC,归档时标注状态)
|
|
178
|
+
└── plans/YYYY-MM-DD-<feature>.md # 实施计划(文件头含 change 关联元数据)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 最佳实践
|
|
182
|
+
|
|
183
|
+
1. **brainstorming 不可跳过** — 每次变更必须经过深度设计(hotfix 和 tweak 除外)
|
|
184
|
+
2. **delta spec 是活文档** — 阶段 3 期间可自由修改,归档时同步
|
|
185
|
+
3. **保持 tasks.md 同步** — 完成一个勾一个
|
|
186
|
+
4. **频繁提交** — 每个任务一次提交,message 体现设计意图
|
|
187
|
+
5. **先验证再归档** — `/comet-verify` 通过后才执行 `/comet-archive`
|
|
188
|
+
6. **增量更新分级** — 小编辑、中重 brainstorming、大新 change
|
|
189
|
+
7. **Plan 必须关联 change** — 文件头包含 `change:` 和 `design-doc:` 元数据
|
|
190
|
+
8. **归档闭环** — design doc 和 plan 必须标注 `archived-with` 状态
|
|
191
|
+
9. **增量修改已有功能** — 基于 main spec 创建 delta spec 基线,不从零编写
|
|
192
|
+
10. **Preset 有上限** — hotfix/tweak 满足升级条件时及时切换到完整流程
|
|
@@ -0,0 +1,107 @@
|
|
|
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>/.openspec.yaml` 中 `comet.verify_result: pass`
|
|
13
|
+
|
|
14
|
+
## 步骤
|
|
15
|
+
|
|
16
|
+
### 1. 执行归档
|
|
17
|
+
|
|
18
|
+
归档前如 `comet.verify_result` 不是 `pass`,停止归档并返回 `/comet-verify`。
|
|
19
|
+
|
|
20
|
+
**立即执行:** 使用 Skill 工具加载 `openspec-archive-change` 技能。禁止跳过此步骤。
|
|
21
|
+
|
|
22
|
+
技能加载后,按其指引归档。自动检查:
|
|
23
|
+
1. artifact 完成状态(proposal、design、specs、tasks)
|
|
24
|
+
2. 所有任务已标记 `[x]`
|
|
25
|
+
3. delta specs 同步状态
|
|
26
|
+
|
|
27
|
+
### 2. Delta Spec 同步
|
|
28
|
+
|
|
29
|
+
归档时将 delta specs 同步到主 specs:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
openspec/changes/<name>/specs/<capability>/spec.md
|
|
33
|
+
↓ 同步
|
|
34
|
+
openspec/specs/<capability>/spec.md ← 主 spec(持久化)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 3. Design Doc & Plan 处理
|
|
38
|
+
|
|
39
|
+
归档时同步处理 `docs/superpowers/` 下的关联文件。若目标文件已有 YAML frontmatter,将归档字段合并到现有 frontmatter;若没有 frontmatter,才新建一组 frontmatter。
|
|
40
|
+
|
|
41
|
+
**3a. Design Doc 一致性标注**
|
|
42
|
+
|
|
43
|
+
查找 `docs/superpowers/specs/` 中与当前 change 关联的设计文档:
|
|
44
|
+
- 对比 delta spec 最终版与 design doc 内容
|
|
45
|
+
- 如有偏差(实施过程中 spec 发生了增量修改),在 design doc 的 YAML frontmatter 中设置以下元数据:
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
---
|
|
49
|
+
archived-with: YYYY-MM-DD-<name>
|
|
50
|
+
status: superseded-by-main-spec
|
|
51
|
+
implementation-notes: |
|
|
52
|
+
<简述实施过程中偏离原设计的关键变化>
|
|
53
|
+
---
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- 如完全一致,仅设置:
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
---
|
|
60
|
+
archived-with: YYYY-MM-DD-<name>
|
|
61
|
+
status: final
|
|
62
|
+
---
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**3b. Plan 关联标注**
|
|
66
|
+
|
|
67
|
+
查找 `docs/superpowers/plans/` 中与当前 change 关联的实施计划,在 YAML frontmatter 中设置相同的 `archived-with` 元数据。
|
|
68
|
+
|
|
69
|
+
### 4. 归档目录
|
|
70
|
+
|
|
71
|
+
change 移入归档目录:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
openspec/changes/archive/YYYY-MM-DD-<name>/
|
|
75
|
+
├── .openspec.yaml
|
|
76
|
+
├── proposal.md
|
|
77
|
+
├── design.md
|
|
78
|
+
├── specs/<capability>/spec.md
|
|
79
|
+
└── tasks.md
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 5. 生命周期闭环
|
|
83
|
+
|
|
84
|
+
Spec 生命周期在此完成:
|
|
85
|
+
```
|
|
86
|
+
brainstorming → delta spec → 实施(增量修改)→ 验证 → 主 spec 同步 → design doc 标注 → 归档
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 退出条件
|
|
90
|
+
|
|
91
|
+
- change 已归档(从活跃列表移除)
|
|
92
|
+
- 主 specs 已更新(delta → main 同步完成)
|
|
93
|
+
- 关联 design doc 已标注归档状态
|
|
94
|
+
- 关联 plan 已标注归档状态
|
|
95
|
+
- `.openspec.yaml` 中 `comet.archived` 已记录为 `true`
|
|
96
|
+
|
|
97
|
+
归档完成后,在归档目录的 `.openspec.yaml` 中合并更新:
|
|
98
|
+
|
|
99
|
+
```yaml
|
|
100
|
+
comet:
|
|
101
|
+
phase: archive
|
|
102
|
+
archived: true
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 完成
|
|
106
|
+
|
|
107
|
+
Comet 流程全部完成。如需开始新工作,调用 `/comet` 或 `/comet-open`。
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comet-build
|
|
3
|
+
description: "Comet 阶段 3:计划与构建。用 /comet-build 调用。制定计划并通过 subagent-driven-development 执行实施。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet 阶段 3:计划与构建(Build)
|
|
7
|
+
|
|
8
|
+
## 前置条件
|
|
9
|
+
|
|
10
|
+
- Design Doc 已创建(阶段 2 完成)
|
|
11
|
+
- 活跃 change 存在
|
|
12
|
+
|
|
13
|
+
## 步骤
|
|
14
|
+
|
|
15
|
+
### 1. 制定计划
|
|
16
|
+
|
|
17
|
+
**立即执行:** 使用 Skill 工具加载 `superpowers:writing-plans` 技能。禁止跳过此步骤。
|
|
18
|
+
|
|
19
|
+
技能加载后,按其指引制定计划。计划要求:
|
|
20
|
+
- 保存至 `docs/superpowers/plans/YYYY-MM-DD-<feature>.md`
|
|
21
|
+
- 引用设计文档,拆分为可执行任务
|
|
22
|
+
- **Plan 文件头必须包含关联元数据**:
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
---
|
|
26
|
+
change: <openspec-change-name>
|
|
27
|
+
design-doc: docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
|
|
28
|
+
---
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. 更新计划状态
|
|
32
|
+
|
|
33
|
+
在 `openspec/changes/<name>/.openspec.yaml` 中合并更新:
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
comet:
|
|
37
|
+
phase: build
|
|
38
|
+
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. 选择执行方式
|
|
42
|
+
|
|
43
|
+
向用户展示计划摘要(任务数、涉及模块),然后询问执行方式:
|
|
44
|
+
|
|
45
|
+
| 选项 | 技能 | 适用场景 |
|
|
46
|
+
|------|------|---------|
|
|
47
|
+
| A | `superpowers:subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 |
|
|
48
|
+
| B | `superpowers:executing-plans` | 任务简单、无子agent环境、轻量快速 |
|
|
49
|
+
|
|
50
|
+
**推荐规则**:
|
|
51
|
+
- 任务数 ≥ 3 → 推荐 A
|
|
52
|
+
- 任务数 ≤ 2 且无跨模块依赖 → 推荐 B
|
|
53
|
+
- 来自 hotfix 路径 → 推荐 B
|
|
54
|
+
|
|
55
|
+
用户选择后,在 `openspec/changes/<name>/.openspec.yaml` 中记录实际执行方式。`build_mode` 只允许以下值之一:
|
|
56
|
+
|
|
57
|
+
- `subagent-driven-development`
|
|
58
|
+
- `executing-plans`
|
|
59
|
+
- `direct`(仅 hotfix preset 使用)
|
|
60
|
+
|
|
61
|
+
Few-shot 示例:
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
# 用户选择稳健模式 / A
|
|
65
|
+
comet:
|
|
66
|
+
build_mode: subagent-driven-development
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
# 用户选择快速模式 / B
|
|
71
|
+
comet:
|
|
72
|
+
build_mode: executing-plans
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
然后,**立即执行:** 使用 Skill 工具加载对应技能。禁止跳过此步骤。
|
|
76
|
+
|
|
77
|
+
如所选 Superpowers 技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。
|
|
78
|
+
|
|
79
|
+
技能加载后,按其指引执行:
|
|
80
|
+
- 按计划执行任务
|
|
81
|
+
- 完成 tasks.md 勾选(`- [ ]` → `- [x]`)
|
|
82
|
+
- 每个任务完成后提交代码
|
|
83
|
+
|
|
84
|
+
### 4. Spec 增量更新
|
|
85
|
+
|
|
86
|
+
实施过程中发现初版 spec 不完整时,按变更规模分级处理:
|
|
87
|
+
|
|
88
|
+
| 规模 | 触发条件 | 做法 |
|
|
89
|
+
|------|---------|------|
|
|
90
|
+
| 小 | 遗漏验收场景、边界条件 | 直接编辑 delta spec + design.md,追加 tasks.md 任务 |
|
|
91
|
+
| 中 | 接口变更、新增组件、数据流变化 | 重新 `superpowers:brainstorming` 更新 Design Doc + delta spec |
|
|
92
|
+
| 大 | 全新 capability 需求 | `/opsx:new` 创建独立 change |
|
|
93
|
+
|
|
94
|
+
**50% 阈值判定**:以 tasks.md 初始任务总数为基准,若新增任务数超过该总数的一半,视为超出原计划范围,应考虑拆分为新 change。
|
|
95
|
+
|
|
96
|
+
**原则**:
|
|
97
|
+
- delta spec 是活文档,本阶段期间随时可修改
|
|
98
|
+
- 每次更新应提交,commit message 说明变更原因
|
|
99
|
+
- 不提前同步到 main spec,归档时统一同步
|
|
100
|
+
- 如增量任务超过原 tasks.md 初始任务总数 50%,考虑拆分为新 change
|
|
101
|
+
- 小规模增量直接改 delta spec 时,应在 commit message 中注明,便于归档时判断 design doc 漂移
|
|
102
|
+
|
|
103
|
+
## 退出条件
|
|
104
|
+
|
|
105
|
+
- tasks.md 全部勾选
|
|
106
|
+
- 代码已提交
|
|
107
|
+
- 测试通过
|
|
108
|
+
- `.openspec.yaml` 中 `comet.phase` 已更新为 `verify`
|
|
109
|
+
|
|
110
|
+
退出前合并更新:
|
|
111
|
+
|
|
112
|
+
```yaml
|
|
113
|
+
comet:
|
|
114
|
+
phase: verify
|
|
115
|
+
verify_result: pending
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 自动流转
|
|
119
|
+
|
|
120
|
+
退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
|
|
121
|
+
|
|
122
|
+
> **REQUIRED NEXT SKILL:** 调用 `comet-verify` skill 进入验证与收尾阶段。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comet-design
|
|
3
|
+
description: "Comet 阶段 2:深度设计。用 /comet-design 调用。通过 brainstorming 产出 Design Doc 和 delta spec。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet 阶段 2:深度设计(Design)
|
|
7
|
+
|
|
8
|
+
## 前置条件
|
|
9
|
+
|
|
10
|
+
- 活跃 change 已存在(proposal.md、design.md、tasks.md)
|
|
11
|
+
- 无 Design Doc(`docs/superpowers/specs/` 下无对应文件)
|
|
12
|
+
|
|
13
|
+
## 步骤
|
|
14
|
+
|
|
15
|
+
### 1a. 读取已有上下文
|
|
16
|
+
|
|
17
|
+
读取活跃 change 下的 `proposal.md` 和 `design.md`,将核心内容整理为摘要:
|
|
18
|
+
- **proposal 摘要**:目标、动机、范围
|
|
19
|
+
- **design 摘要**:架构决策、高层设计
|
|
20
|
+
|
|
21
|
+
### 1b. 执行 Brainstorming(带上下文)
|
|
22
|
+
|
|
23
|
+
**立即执行:** 使用 Skill 工具加载 `superpowers:brainstorming` 技能,ARGUMENTS 包含:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Change: <change-name>
|
|
27
|
+
Proposal 摘要: <proposal 核心内容>
|
|
28
|
+
Design 摘要: <design.md 架构决策>
|
|
29
|
+
跳过上下文探索,直接进入设计提问。
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
禁止跳过此步骤,禁止在未加载该技能的情况下继续。
|
|
33
|
+
|
|
34
|
+
如 `superpowers:brainstorming` 不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。
|
|
35
|
+
|
|
36
|
+
技能加载后,按其指引产出:
|
|
37
|
+
- `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` — 设计文档(技术 RFC)
|
|
38
|
+
- `openspec/changes/<name>/specs/<capability>/spec.md` — 能力规格(delta)
|
|
39
|
+
|
|
40
|
+
### 2. 更新 Comet 状态
|
|
41
|
+
|
|
42
|
+
在 `openspec/changes/<name>/.openspec.yaml` 中合并更新:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
comet:
|
|
46
|
+
phase: build
|
|
47
|
+
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 3. 双 Spec 分工
|
|
51
|
+
|
|
52
|
+
| Spec 类型 | 归属 | 存放位置 | 定义 |
|
|
53
|
+
|-----------|------|---------|------|
|
|
54
|
+
| 能力规格 | OpenSpec | `openspec/changes/<name>/specs/` | 系统应该做什么(需求 + 验收场景) |
|
|
55
|
+
| 设计文档 | Superpowers | `docs/superpowers/specs/` | 怎么构建(技术架构 + 实现细节) |
|
|
56
|
+
|
|
57
|
+
### 4. 文档层级确认
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
proposal.md(阶段 1) → Why + What
|
|
61
|
+
design.md(阶段 1,OpenSpec) → 高层架构决策
|
|
62
|
+
设计文档(阶段 2,Superpowers) → 深度技术设计
|
|
63
|
+
能力规格(阶段 2,delta) → 需求 + 验收场景
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 退出条件
|
|
67
|
+
|
|
68
|
+
- Design Doc 已创建并保存
|
|
69
|
+
- 如有新能力则 delta spec 已创建
|
|
70
|
+
|
|
71
|
+
## 自动流转
|
|
72
|
+
|
|
73
|
+
退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
|
|
74
|
+
|
|
75
|
+
> **REQUIRED NEXT SKILL:** 调用 `comet-build` skill 进入计划与构建阶段。
|