@rpamis/comet 0.2.3 → 0.2.4
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 +34 -13
- package/assets/manifest.json +1 -1
- package/assets/skills/comet/SKILL.md +50 -14
- package/assets/skills/comet/scripts/comet-archive.sh +2 -2
- package/assets/skills/comet/scripts/comet-guard.sh +50 -48
- package/assets/skills/comet/scripts/comet-state.sh +158 -39
- package/assets/skills/comet/scripts/comet-yaml-validate.sh +9 -3
- package/assets/skills/comet-archive/SKILL.md +7 -4
- package/assets/skills/comet-build/SKILL.md +21 -6
- package/assets/skills/comet-design/SKILL.md +12 -19
- package/assets/skills/comet-hotfix/SKILL.md +36 -26
- package/assets/skills/comet-open/SKILL.md +19 -7
- package/assets/skills/comet-tweak/SKILL.md +23 -12
- package/assets/skills/comet-verify/SKILL.md +32 -7
- package/assets/skills-zh/comet/SKILL.md +64 -21
- package/assets/skills-zh/comet-archive/SKILL.md +7 -4
- package/assets/skills-zh/comet-build/SKILL.md +21 -6
- package/assets/skills-zh/comet-design/SKILL.md +12 -19
- package/assets/skills-zh/comet-hotfix/SKILL.md +42 -26
- package/assets/skills-zh/comet-open/SKILL.md +30 -16
- package/assets/skills-zh/comet-tweak/SKILL.md +29 -12
- package/assets/skills-zh/comet-verify/SKILL.md +46 -6
- package/package.json +2 -2
|
@@ -11,24 +11,13 @@ description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec
|
|
|
11
11
|
|
|
12
12
|
## 步骤
|
|
13
13
|
|
|
14
|
-
### 0. 入口状态验证(Entry Check)
|
|
15
|
-
|
|
16
|
-
执行入口验证:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
20
|
-
bash "$COMET_STATE" check <name> open
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
24
|
-
|
|
25
14
|
### 1. 探索想法
|
|
26
15
|
|
|
27
16
|
**立即执行:** 使用 Skill 工具加载 `openspec-explore` 技能。禁止跳过此步骤。
|
|
28
17
|
|
|
29
18
|
技能加载后,按其指引自由探索问题空间。
|
|
30
19
|
|
|
31
|
-
### 2. 创建 Change 结构
|
|
20
|
+
### 2. 创建 Change 结构 + 初始化状态
|
|
32
21
|
|
|
33
22
|
**立即执行:** 使用 Skill 工具加载 `openspec-new-change` 技能。若用户意图未明确、需要先形成建议,改为加载 `openspec-propose`。禁止跳过此步骤。
|
|
34
23
|
|
|
@@ -43,14 +32,31 @@ openspec/changes/<name>/
|
|
|
43
32
|
└── tasks.md # 任务清单(勾选框)
|
|
44
33
|
```
|
|
45
34
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
初始化 Comet 状态文件:
|
|
35
|
+
创建 `.comet.yaml` 状态文件:
|
|
49
36
|
|
|
50
37
|
```bash
|
|
38
|
+
COMET_SEARCH_ROOTS=("." "$HOME/.claude/skills" "$HOME/.codex/skills" "$HOME/.cursor/skills")
|
|
39
|
+
COMET_STATE="${COMET_STATE:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-state.sh' -type f -print -quit 2>/dev/null)}"
|
|
40
|
+
COMET_GUARD="${COMET_GUARD:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-guard.sh' -type f -print -quit 2>/dev/null)}"
|
|
41
|
+
|
|
42
|
+
if [ -z "$COMET_STATE" ] || [ -z "$COMET_GUARD" ]; then
|
|
43
|
+
echo "ERROR: Comet scripts not found. Ensure the comet skill is installed." >&2
|
|
44
|
+
return 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
51
47
|
bash "$COMET_STATE" init <name> full
|
|
52
48
|
```
|
|
53
49
|
|
|
50
|
+
### 3. 入口状态验证
|
|
51
|
+
|
|
52
|
+
验证状态机已正确初始化:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
bash "$COMET_STATE" check <name> open
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
验证通过后继续 Step 4。验证失败时脚本会输出具体失败原因。
|
|
59
|
+
|
|
54
60
|
### 4. 内容完整性检查
|
|
55
61
|
|
|
56
62
|
确认三个文档内容完整:
|
|
@@ -61,7 +67,15 @@ bash "$COMET_STATE" init <name> full
|
|
|
61
67
|
## 退出条件
|
|
62
68
|
|
|
63
69
|
- proposal.md、design.md、tasks.md 均已创建且内容完整
|
|
64
|
-
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> open`,全部 PASS
|
|
70
|
+
- **阶段守卫**:运行 `bash "$COMET_GUARD" <change-name> open --apply`,全部 PASS 后自动流转到下一阶段
|
|
71
|
+
|
|
72
|
+
退出前必须使用 `--apply`,否则 `.comet.yaml` 仍停留在 `phase: open`,下一阶段入口检查会失败。
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
bash "$COMET_GUARD" <change-name> open --apply
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
完整流程会自动更新为 `phase: design`;hotfix/tweak preset 会自动更新为 `phase: build`。
|
|
65
79
|
|
|
66
80
|
## 自动流转
|
|
67
81
|
|
|
@@ -13,7 +13,7 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
|
|
|
13
13
|
1. 不新增 capability
|
|
14
14
|
2. 不改变架构
|
|
15
15
|
3. 不涉及接口变化
|
|
16
|
-
4. 通常不超过 3 个 tasks、
|
|
16
|
+
4. 通常不超过 3 个 tasks、4 个文件
|
|
17
17
|
|
|
18
18
|
**不适用**:如变更过程中发现需要 capability、架构或接口调整,应升级为完整 `/comet` 流程。
|
|
19
19
|
|
|
@@ -21,19 +21,17 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
|
|
|
21
21
|
|
|
22
22
|
## 流程(preset workflow,4 阶段)
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
执行链路:open → lightweight build → light verify → archive。Tweak 为每个阶段提供默认决策:精简开启、轻量构建、轻量验证、验证通过后归档。
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
开始前先定位 Comet 脚本:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
COMET_SEARCH_ROOTS=("." "$HOME/.claude/skills" "$HOME/.codex/skills" "$HOME/.cursor/skills")
|
|
30
|
+
COMET_STATE="${COMET_STATE:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-state.sh' -type f -print -quit 2>/dev/null)}"
|
|
31
|
+
COMET_GUARD="${COMET_GUARD:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-guard.sh' -type f -print -quit 2>/dev/null)}"
|
|
32
|
+
COMET_ARCHIVE="${COMET_ARCHIVE:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-archive.sh' -type f -print -quit 2>/dev/null)}"
|
|
31
33
|
```
|
|
32
34
|
|
|
33
|
-
验证通过后继续流程步骤。验证失败时脚本会输出具体失败原因。
|
|
34
|
-
|
|
35
|
-
执行链路:open → lightweight build → light verify → archive。Tweak 为每个阶段提供默认决策:精简开启、轻量构建、轻量验证、验证通过后归档。
|
|
36
|
-
|
|
37
35
|
### 1. 快速开启(preset open)
|
|
38
36
|
|
|
39
37
|
复用 Comet open 能力创建 change,但使用 tweak 默认值:不执行 `openspec-explore` 长探索,直接进入精简 change 创建。
|
|
@@ -52,6 +50,18 @@ bash "$COMET_STATE" check <name> open
|
|
|
52
50
|
bash "$COMET_STATE" init <name> tweak
|
|
53
51
|
```
|
|
54
52
|
|
|
53
|
+
初始化后验证状态:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
bash "$COMET_STATE" check <name> open
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
阶段守卫完成 open → build 过渡:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
bash "$COMET_GUARD" <change-name> open --apply
|
|
63
|
+
```
|
|
64
|
+
|
|
55
65
|
### 2. 轻量构建(preset build)
|
|
56
66
|
|
|
57
67
|
使用 tweak 默认值:`build_mode: direct`。跳过 `superpowers:brainstorming` 和 `superpowers:writing-plans`。
|
|
@@ -65,11 +75,18 @@ bash "$COMET_STATE" init <name> tweak
|
|
|
65
75
|
- 运行相关测试确认通过
|
|
66
76
|
- 将 tasks.md 中对应 `- [ ]` 勾选为 `- [x]`
|
|
67
77
|
- 提交代码,commit message 格式:`tweak: <简述变更>`
|
|
68
|
-
3.
|
|
78
|
+
3. 全部任务完成后,显式运行项目相关测试和构建命令
|
|
79
|
+
4. 运行阶段守卫完成 build → verify 过渡:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
bash "$COMET_GUARD" <change-name> build --apply
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
状态文件自动更新为 `phase: verify`、`verify_result: pending`,然后进入验证。
|
|
69
86
|
|
|
70
87
|
### 3. 轻量验证(preset verify)
|
|
71
88
|
|
|
72
|
-
复用 `/comet-verify`。Tweak 必须保持轻量验证条件:≤ 3 tasks、≤
|
|
89
|
+
复用 `/comet-verify`。Tweak 必须保持轻量验证条件:≤ 3 tasks、≤ 4 files、无 delta spec、无新 capability。
|
|
73
90
|
|
|
74
91
|
**立即执行:** 使用 Skill 工具加载 `comet-verify` 技能。禁止跳过此步骤。
|
|
75
92
|
|
|
@@ -119,4 +136,4 @@ Tweak 流程为 **一次性连续执行**。调用 `/comet-tweak` 后,agent
|
|
|
119
136
|
- 小改动已完成,测试通过
|
|
120
137
|
- change 已归档
|
|
121
138
|
- 未新增 capability、架构调整或接口变化
|
|
122
|
-
- **阶段守卫**:build → verify 前运行 `bash $COMET_GUARD <change-name> build`,verify → archive
|
|
139
|
+
- **阶段守卫**:build → verify 前运行 `bash "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `bash "$COMET_GUARD" <change-name> verify --apply`
|
|
@@ -17,7 +17,9 @@ description: "Comet 阶段 4:验证与收尾。用 /comet-verify 调用。验
|
|
|
17
17
|
执行入口验证:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
|
|
20
|
+
COMET_SEARCH_ROOTS=("." "$HOME/.claude/skills" "$HOME/.codex/skills" "$HOME/.cursor/skills")
|
|
21
|
+
COMET_STATE="${COMET_STATE:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-state.sh' -type f -print -quit 2>/dev/null)}"
|
|
22
|
+
COMET_GUARD="${COMET_GUARD:-$(find "${COMET_SEARCH_ROOTS[@]}" -path '*/comet/scripts/comet-guard.sh' -type f -print -quit 2>/dev/null)}"
|
|
21
23
|
bash "$COMET_STATE" check <name> verify
|
|
22
24
|
```
|
|
23
25
|
|
|
@@ -33,6 +35,20 @@ bash "$COMET_STATE" scale <name>
|
|
|
33
35
|
|
|
34
36
|
脚本自动统计任务数、增量规格数、变更文件数,判断使用 light 或 full 验证模式,并设置 verify_mode 字段。
|
|
35
37
|
|
|
38
|
+
注意:如果 build 阶段每个任务都已提交,脚本基于工作区 diff 的文件数可能低估改动规模。此时必须读取 plan 文件头的 `base-ref` 并用提交区间复核:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
PLAN=$(bash "$COMET_STATE" get <name> plan)
|
|
42
|
+
BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref: *//')
|
|
43
|
+
git diff --stat "$BASE_REF"...HEAD
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
若提交区间显示改动超过轻量阈值(> 5 个文件、跨模块协调、或 delta spec 超过 1 个 capability),手动设置为完整验证:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
bash "$COMET_STATE" set <name> verify_mode full
|
|
50
|
+
```
|
|
51
|
+
|
|
36
52
|
### 2a. 轻量验证(小改动)
|
|
37
53
|
|
|
38
54
|
当规模评估结果为"小"时,跳过 `openspec-verify-change`,直接执行以下检查:
|
|
@@ -45,6 +61,12 @@ bash "$COMET_STATE" scale <name>
|
|
|
45
61
|
|
|
46
62
|
**通过标准**:5 项全部 OK,无 CRITICAL 问题。
|
|
47
63
|
|
|
64
|
+
**不通过时**:报告失败项,记录失败并回退到 build 阶段,然后调用 `/comet-build` 修复。
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
bash "$COMET_STATE" transition <name> verify-fail
|
|
68
|
+
```
|
|
69
|
+
|
|
48
70
|
**报告格式**:简表列出 5 项检查结果 + PASS/FAIL。
|
|
49
71
|
|
|
50
72
|
**跳过项**(不在轻量验证中检查):
|
|
@@ -68,7 +90,11 @@ bash "$COMET_STATE" scale <name>
|
|
|
68
90
|
6. delta spec 与 design doc 无矛盾(若 Build 阶段有增量修改 spec,检查 design doc 是否有对应记录)
|
|
69
91
|
7. `docs/superpowers/specs/` 关联的设计文档可定位(文件存在且与当前 change 相关)
|
|
70
92
|
|
|
71
|
-
|
|
93
|
+
验证不通过时:报告缺失项,记录失败并回退到 build 阶段,然后调用 `/comet-build` 补充。
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
bash "$COMET_STATE" transition <name> verify-fail
|
|
97
|
+
```
|
|
72
98
|
|
|
73
99
|
**Spec 漂移处理**:
|
|
74
100
|
- 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),提示用户:
|
|
@@ -92,17 +118,31 @@ bash "$COMET_STATE" scale <name>
|
|
|
92
118
|
- 全部测试通过
|
|
93
119
|
- 无硬编码密钥或安全问题
|
|
94
120
|
|
|
121
|
+
### 4. 记录验证证据
|
|
122
|
+
|
|
123
|
+
验证报告必须落盘,并在 `.comet.yaml` 中记录;分支处理完成后也必须写入状态字段。不要手动设置 `verify_result: pass`,通过 guard 自动流转。
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
mkdir -p docs/superpowers/reports
|
|
127
|
+
# 将本次验证结论写入报告文件,例如:
|
|
128
|
+
# docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
129
|
+
|
|
130
|
+
bash "$COMET_STATE" set <name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
131
|
+
bash "$COMET_STATE" set <name> branch_status handled
|
|
132
|
+
```
|
|
133
|
+
|
|
95
134
|
## 退出条件
|
|
96
135
|
|
|
97
136
|
- 验证报告通过
|
|
98
137
|
- 分支已处理
|
|
99
|
-
- `.comet.yaml` 中 `
|
|
100
|
-
-
|
|
138
|
+
- `.comet.yaml` 中 `verification_report` 指向已存在的验证报告文件
|
|
139
|
+
- `.comet.yaml` 中 `branch_status: handled`
|
|
140
|
+
- **阶段守卫**:运行 `bash "$COMET_GUARD" <change-name> verify --apply`,全部 PASS 后通过 `comet-state transition verify-pass` 自动流转到 `phase: archive`
|
|
101
141
|
|
|
102
|
-
|
|
142
|
+
验证和分支处理均完成后,运行 guard 自动流转:
|
|
103
143
|
|
|
104
144
|
```bash
|
|
105
|
-
bash $COMET_GUARD <change-name> verify --apply
|
|
145
|
+
bash "$COMET_GUARD" <change-name> verify --apply
|
|
106
146
|
```
|
|
107
147
|
|
|
108
148
|
状态文件自动更新为 `phase: archive`、`verify_result: pass`、`verified_at: YYYY-MM-DD`。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rpamis/comet",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "OpenSpec + Superpowers dual-star development workflow",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"comet",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"lint:fix": "eslint src/ --fix",
|
|
37
37
|
"format": "prettier --write src/",
|
|
38
38
|
"format:check": "prettier --check src/",
|
|
39
|
-
"test:shell": "bats test/shell/*.bats",
|
|
39
|
+
"test:shell": "node scripts/run-bats.js test/shell/*.bats",
|
|
40
40
|
"prepare": "pnpm run build",
|
|
41
41
|
"prepublishOnly": "node scripts/prepublish-check.js && pnpm run build",
|
|
42
42
|
"postinstall": "node scripts/postinstall.js"
|