@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,29 @@ description: "Comet 阶段 4:验证与收尾。用 /comet-verify 调用。验
|
|
|
12
12
|
|
|
13
13
|
## 步骤
|
|
14
14
|
|
|
15
|
+
### 0. 入口状态验证(Entry Check)
|
|
16
|
+
|
|
17
|
+
在执行任何操作之前,读取并验证当前状态:
|
|
18
|
+
|
|
19
|
+
**检查清单:**
|
|
20
|
+
1. `openspec/changes/<name>/.comet.yaml` 存在
|
|
21
|
+
2. `phase` 字段的值为 `"verify"`
|
|
22
|
+
3. `verify_result` 字段为 `"pending"` 或 null(尚未验证通过)
|
|
23
|
+
|
|
24
|
+
**验证方式:**
|
|
25
|
+
- `cat openspec/changes/<name>/.comet.yaml` 读取全部字段
|
|
26
|
+
- 如 `verify_result` 已是 `"pass"`,说明此 change 已验证过
|
|
27
|
+
|
|
28
|
+
**失败输出:**
|
|
29
|
+
```
|
|
30
|
+
[HARD STOP] Entry check failed for comet-verify
|
|
31
|
+
Expected: phase=verify, verify_result=pending|null
|
|
32
|
+
Actual: phase=<实际值>, verify_result=<实际值>
|
|
33
|
+
Suggestion: Run comet-build first, or this change was already verified.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
验证通过后才进入步骤 1。
|
|
37
|
+
|
|
15
38
|
### 1. 改动规模评估
|
|
16
39
|
|
|
17
40
|
根据以下指标判定改动规模:
|
|
@@ -25,7 +48,7 @@ description: "Comet 阶段 4:验证与收尾。用 /comet-verify 调用。验
|
|
|
25
48
|
|
|
26
49
|
**判定规则**:任一指标命中"大" → 完整验证。全部命中"小" → 轻量验证。
|
|
27
50
|
|
|
28
|
-
判定完成后,在 `openspec/changes/<name>/.
|
|
51
|
+
判定完成后,在 `openspec/changes/<name>/.comet.yaml` 中记录实际验证模式。`verify_mode` 只允许以下值之一:
|
|
29
52
|
|
|
30
53
|
- `light`
|
|
31
54
|
- `full`
|
|
@@ -34,20 +57,23 @@ Few-shot 示例:
|
|
|
34
57
|
|
|
35
58
|
```yaml
|
|
36
59
|
# 全部指标命中“小”
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
verify_result: pending
|
|
60
|
+
phase: verify
|
|
61
|
+
verify_mode: light
|
|
62
|
+
verify_result: pending
|
|
41
63
|
```
|
|
42
64
|
|
|
43
65
|
```yaml
|
|
44
|
-
#
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
verify_result: pending
|
|
66
|
+
# 任一指标命中”大”
|
|
67
|
+
phase: verify
|
|
68
|
+
verify_mode: full
|
|
69
|
+
verify_result: pending
|
|
49
70
|
```
|
|
50
71
|
|
|
72
|
+
【写入验证】更新完成后必须验证:
|
|
73
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
74
|
+
确认 verify_mode 行的值为 “<light 或 full>”
|
|
75
|
+
如不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
76
|
+
|
|
51
77
|
### 2a. 轻量验证(小改动)
|
|
52
78
|
|
|
53
79
|
当规模评估结果为"小"时,跳过 `openspec-verify-change`,直接执行以下检查:
|
|
@@ -113,17 +139,24 @@ comet:
|
|
|
113
139
|
|
|
114
140
|
- 验证报告通过
|
|
115
141
|
- 分支已处理
|
|
116
|
-
- `.
|
|
142
|
+
- `.comet.yaml` 中 `verify_result` 已记录为 `pass`
|
|
143
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> verify`,全部 PASS 后才允许流转
|
|
117
144
|
|
|
118
|
-
|
|
145
|
+
退出前在 `.comet.yaml` 中合并更新以下字段(保留其他字段不变):
|
|
119
146
|
|
|
120
147
|
```yaml
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
verified_at: YYYY-MM-DD
|
|
148
|
+
phase: archive
|
|
149
|
+
verify_result: pass
|
|
150
|
+
verified_at: YYYY-MM-DD
|
|
125
151
|
```
|
|
126
152
|
|
|
153
|
+
【写入验证】更新完成后必须验证:
|
|
154
|
+
cat openspec/changes/<name>/.comet.yaml
|
|
155
|
+
确认 phase 行的值为 "archive"
|
|
156
|
+
确认 verify_result 行的值为 "pass"
|
|
157
|
+
确认 verified_at 行的值非空(格式为 YYYY-MM-DD)
|
|
158
|
+
如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
|
|
159
|
+
|
|
127
160
|
## 自动流转
|
|
128
161
|
|
|
129
162
|
退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
|
package/package.json
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@rpamis/comet",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "OpenSpec + Superpowers dual-star development workflow",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"comet",
|
|
7
|
-
"openspec",
|
|
8
|
-
"superpowers",
|
|
9
|
-
"skills",
|
|
10
|
-
"workflow"
|
|
11
|
-
],
|
|
12
|
-
"license": "MIT",
|
|
13
|
-
"author": "benym",
|
|
14
|
-
"type": "module",
|
|
15
|
-
"publishConfig": {
|
|
16
|
-
"access": "public"
|
|
17
|
-
},
|
|
18
|
-
"bin": {
|
|
19
|
-
"comet": "./bin/comet.js"
|
|
20
|
-
},
|
|
21
|
-
"files": [
|
|
22
|
-
"dist",
|
|
23
|
-
"bin",
|
|
24
|
-
"assets",
|
|
25
|
-
"scripts/postinstall.js",
|
|
26
|
-
"!dist/**/*.test.js",
|
|
27
|
-
"!dist/**/__tests__"
|
|
28
|
-
],
|
|
29
|
-
"scripts": {
|
|
30
|
-
"build": "node build.js",
|
|
31
|
-
"dev": "tsc --watch",
|
|
32
|
-
"test": "vitest run",
|
|
33
|
-
"test:watch": "vitest",
|
|
34
|
-
"prepare": "pnpm run build",
|
|
35
|
-
"prepublishOnly": "node scripts/prepublish-check.js && pnpm run build",
|
|
36
|
-
"postinstall": "node scripts/postinstall.js"
|
|
37
|
-
},
|
|
38
|
-
"engines": {
|
|
39
|
-
"node": ">=18"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/node": "^24.2.0",
|
|
43
|
-
"typescript": "^5.9.3",
|
|
44
|
-
"vitest": "^3.2.4"
|
|
45
|
-
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"@inquirer/prompts": "^8.4.3",
|
|
48
|
-
"commander": "^14.0.0"
|
|
49
|
-
}
|
|
50
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@rpamis/comet",
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "OpenSpec + Superpowers dual-star development workflow",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"comet",
|
|
7
|
+
"openspec",
|
|
8
|
+
"superpowers",
|
|
9
|
+
"skills",
|
|
10
|
+
"workflow"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"author": "benym",
|
|
14
|
+
"type": "module",
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"bin": {
|
|
19
|
+
"comet": "./bin/comet.js"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"bin",
|
|
24
|
+
"assets",
|
|
25
|
+
"scripts/postinstall.js",
|
|
26
|
+
"!dist/**/*.test.js",
|
|
27
|
+
"!dist/**/__tests__"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "node build.js",
|
|
31
|
+
"dev": "tsc --watch",
|
|
32
|
+
"test": "vitest run",
|
|
33
|
+
"test:watch": "vitest",
|
|
34
|
+
"prepare": "pnpm run build",
|
|
35
|
+
"prepublishOnly": "node scripts/prepublish-check.js && pnpm run build",
|
|
36
|
+
"postinstall": "node scripts/postinstall.js"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^24.2.0",
|
|
43
|
+
"typescript": "^5.9.3",
|
|
44
|
+
"vitest": "^3.2.4"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@inquirer/prompts": "^8.4.3",
|
|
48
|
+
"commander": "^14.0.0"
|
|
49
|
+
}
|
|
50
|
+
}
|