@rpamis/comet 0.1.7 → 0.2.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.
Files changed (67) hide show
  1. package/README.md +45 -13
  2. package/assets/manifest.json +2 -0
  3. package/assets/skills/comet/SKILL.md +214 -219
  4. package/assets/skills/comet/scripts/comet-archive.sh +8 -2
  5. package/assets/skills/comet/scripts/comet-guard.sh +32 -22
  6. package/assets/skills/comet/scripts/comet-state.sh +496 -0
  7. package/assets/skills/comet-archive/SKILL.md +6 -19
  8. package/assets/skills/comet-build/SKILL.md +16 -23
  9. package/assets/skills/comet-design/SKILL.md +7 -23
  10. package/assets/skills/comet-hotfix/SKILL.md +136 -167
  11. package/assets/skills/comet-open/SKILL.md +9 -31
  12. package/assets/skills/comet-tweak/SKILL.md +122 -154
  13. package/assets/skills/comet-verify/SKILL.md +11 -33
  14. package/assets/skills-zh/comet/SKILL.md +87 -92
  15. package/assets/skills-zh/comet-archive/SKILL.md +63 -76
  16. package/assets/skills-zh/comet-build/SKILL.md +153 -160
  17. package/assets/skills-zh/comet-design/SKILL.md +91 -107
  18. package/assets/skills-zh/comet-hotfix/SKILL.md +18 -49
  19. package/assets/skills-zh/comet-open/SKILL.md +70 -92
  20. package/assets/skills-zh/comet-tweak/SKILL.md +19 -51
  21. package/assets/skills-zh/comet-verify/SKILL.md +114 -136
  22. package/dist/cli/index.js +28 -1
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/commands/doctor.d.ts +6 -0
  25. package/dist/commands/doctor.d.ts.map +1 -0
  26. package/dist/commands/doctor.js +168 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/init.d.ts +9 -0
  29. package/dist/commands/init.d.ts.map +1 -0
  30. package/dist/commands/init.js +183 -0
  31. package/dist/commands/init.js.map +1 -0
  32. package/dist/commands/status.d.ts +6 -0
  33. package/dist/commands/status.d.ts.map +1 -0
  34. package/dist/commands/status.js +89 -0
  35. package/dist/commands/status.js.map +1 -0
  36. package/dist/commands/update.d.ts +8 -0
  37. package/dist/commands/update.d.ts.map +1 -0
  38. package/dist/commands/update.js +47 -0
  39. package/dist/commands/update.js.map +1 -0
  40. package/dist/core/detect.d.ts +8 -0
  41. package/dist/core/detect.d.ts.map +1 -0
  42. package/dist/core/detect.js +73 -0
  43. package/dist/core/detect.js.map +1 -0
  44. package/dist/core/openspec.d.ts +5 -0
  45. package/dist/core/openspec.d.ts.map +1 -0
  46. package/dist/core/openspec.js +58 -0
  47. package/dist/core/openspec.js.map +1 -0
  48. package/dist/core/platforms.d.ts.map +1 -1
  49. package/dist/core/platforms.js +6 -1
  50. package/dist/core/platforms.js.map +1 -1
  51. package/dist/core/skills.d.ts +22 -0
  52. package/dist/core/skills.d.ts.map +1 -0
  53. package/dist/core/skills.js +59 -0
  54. package/dist/core/skills.js.map +1 -0
  55. package/dist/core/superpowers.d.ts +5 -0
  56. package/dist/core/superpowers.d.ts.map +1 -0
  57. package/dist/core/superpowers.js +60 -0
  58. package/dist/core/superpowers.js.map +1 -0
  59. package/dist/core/types.d.ts +2 -0
  60. package/dist/core/types.d.ts.map +1 -0
  61. package/dist/core/types.js +2 -0
  62. package/dist/core/types.js.map +1 -0
  63. package/package.json +61 -50
  64. package/dist/core/init.d.ts +0 -14
  65. package/dist/core/init.d.ts.map +0 -1
  66. package/dist/core/init.js +0 -492
  67. package/dist/core/init.js.map +0 -1
@@ -22,25 +22,14 @@ Hotfix 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
22
22
 
23
23
  ### 0. 入口状态验证(Entry Check)
24
24
 
25
- 在执行任何操作之前,验证当前状态:
25
+ 执行入口验证:
26
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.
27
+ ```bash
28
+ COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
29
+ bash "$COMET_STATE" check <name> open
41
30
  ```
42
31
 
43
- 验证通过后才进入流程步骤。
32
+ 验证通过后继续流程步骤。验证失败时脚本会输出具体失败原因。
44
33
 
45
34
  执行链路:open → build → verify → archive。Hotfix 为每个阶段提供默认决策:精简开启、直接构建、按规模验证、验证通过后归档。
46
35
 
@@ -56,34 +45,11 @@ Hotfix 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
56
45
  - `tasks.md` — 修复任务清单
57
46
  - **无需 delta spec**(除非修复改变了已有 spec 的验收场景)
58
47
 
59
- `openspec/changes/<name>/` 下创建独立的 `.comet.yaml` 文件:
60
-
61
- ```yaml
62
- workflow: hotfix
63
- phase: build
64
- design_doc: null
65
- plan: null
66
- build_mode: direct
67
- isolation: branch
68
- verify_mode: light
69
- verify_result: pending
70
- verified_at: null
71
- archived: false
72
- ```
48
+ 初始化 Comet 状态文件:
73
49
 
74
- 【写入验证】创建完成后必须验证:
75
- cat openspec/changes/<name>/.comet.yaml
76
- 确认 workflow 行的值为 "hotfix"
77
- 确认 phase 行的值为 "build"
78
- 确认 design_doc 行的值为 "null"
79
- 确认 plan 行的值为 "null"
80
- 确认 build_mode 行的值为 "direct"
81
- 确认 isolation 行的值为 "branch"
82
- 确认 verify_mode 行的值为 "light"
83
- 确认 verify_result 行的值为 "pending"
84
- 确认 verified_at 行的值为 "null"
85
- 确认 archived 行的值为 "false"
86
- 如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
50
+ ```bash
51
+ bash "$COMET_STATE" init <name> hotfix
52
+ ```
87
53
 
88
54
  ### 2. 直接构建(preset build)
89
55
 
@@ -94,7 +60,7 @@ archived: false
94
60
  1. 读取 `openspec/changes/<name>/tasks.md`,获取未完成任务列表
95
61
  2. 对每个未完成任务:
96
62
  - 根据任务描述修改代码
97
- - 运行 `mvn spotless:apply` 格式化
63
+ - 运行项目格式化命令(如 `mvn spotless:apply`、`npm run format` 等)
98
64
  - 运行相关测试确认通过
99
65
  - 将 tasks.md 中对应 `- [ ]` 勾选为 `- [x]`
100
66
  - 提交代码,commit message 格式:`fix: <简述修复>`
@@ -148,12 +114,15 @@ Hotfix 流程为 **一次性连续执行**。调用 `/comet-hotfix` 后,agent
148
114
 
149
115
  ## 升级条件
150
116
 
151
- 修复过程中出现以下情况时,停止 hotfix 流程,升级为完整 `/comet`:
117
+ 满足以下**任一**条件时,停止 hotfix 流程,升级为完整 `/comet`:
152
118
 
153
- 1. 发现根因涉及架构缺陷
154
- 2. 修复需要新增接口或组件
155
- 3. 影响范围扩大到 > 10 个文件
156
- 4. 需要新 capability spec
119
+ | 条件 | 说明 |
120
+ |------|------|
121
+ | 改动涉及 **3+ 文件** | 超出单点修复范围 |
122
+ | 架构变更 | 新模块、新接口、新依赖 |
123
+ | 数据库 schema 变更 | 结构性调整 |
124
+ | 引入新的 public API | 修复产生了新的对外接口 |
125
+ | 修复范围超出单一函数/模块 | 需要多处协调修改 |
157
126
 
158
127
  升级方式:在当前 change 基础上补充 Design Doc(执行 `/comet-design`),后续正常走完整流程。
159
128
 
@@ -1,92 +1,70 @@
1
- ---
2
- name: comet-open
3
- description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec 探索想法、创建 change 结构(proposal + design + tasks)。"
4
- ---
5
-
6
- # Comet 阶段 1:开启(Open)
7
-
8
- ## 前置条件
9
-
10
- - 无活跃 change,或用户希望创建新 change
11
-
12
- ## 步骤
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
-
39
- ### 1. 探索想法
40
-
41
- **立即执行:** 使用 Skill 工具加载 `openspec-explore` 技能。禁止跳过此步骤。
42
-
43
- 技能加载后,按其指引自由探索问题空间。
44
-
45
- ### 2. 创建 Change 结构
46
-
47
- **立即执行:** 使用 Skill 工具加载 `openspec-new-change` 技能。若用户意图未明确、需要先形成建议,改为加载 `openspec-propose`。禁止跳过此步骤。
48
-
49
- 确认以下产物已创建:
50
-
51
- ```
52
- openspec/changes/<name>/
53
- ├── .openspec.yaml
54
- ├── .comet.yaml
55
- ├── proposal.md # Why + What:问题、目标、范围
56
- ├── design.md # How(高层):架构决策、方案选型
57
- └── tasks.md # 任务清单(勾选框)
58
- ```
59
-
60
- ### 3. 初始化 Comet 状态
61
-
62
- 在 `openspec/changes/<name>/` 下创建独立的 `.comet.yaml` 文件:
63
-
64
- ```yaml
65
- workflow: full
66
- phase: design
67
- design_doc: null
68
- plan: null
69
- build_mode: null
70
- verify_mode: null
71
- verify_result: pending
72
- verified_at: null
73
- archived: false
74
- ```
75
-
76
- ### 4. 内容完整性检查
77
-
78
- 确认三个文档内容完整:
79
- - **proposal.md**:问题背景、目标、范围、非目标
80
- - **design.md**:高层架构决策、方案选型、数据流
81
- - **tasks.md**:任务列表,每个任务有明确描述
82
-
83
- ## 退出条件
84
-
85
- - proposal.md、design.md、tasks.md 均已创建且内容完整
86
- - **阶段守卫**:运行 `bash $COMET_GUARD <change-name> open`,全部 PASS 后才允许流转
87
-
88
- ## 自动流转
89
-
90
- 退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
91
-
92
- > **REQUIRED NEXT SKILL:** 调用 `comet-design` skill 进入深度设计阶段。
1
+ ---
2
+ name: comet-open
3
+ description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec 探索想法、创建 change 结构(proposal + design + tasks)。"
4
+ ---
5
+
6
+ # Comet 阶段 1:开启(Open)
7
+
8
+ ## 前置条件
9
+
10
+ - 无活跃 change,或用户希望创建新 change
11
+
12
+ ## 步骤
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
+ ### 1. 探索想法
26
+
27
+ **立即执行:** 使用 Skill 工具加载 `openspec-explore` 技能。禁止跳过此步骤。
28
+
29
+ 技能加载后,按其指引自由探索问题空间。
30
+
31
+ ### 2. 创建 Change 结构
32
+
33
+ **立即执行:** 使用 Skill 工具加载 `openspec-new-change` 技能。若用户意图未明确、需要先形成建议,改为加载 `openspec-propose`。禁止跳过此步骤。
34
+
35
+ 确认以下产物已创建:
36
+
37
+ ```
38
+ openspec/changes/<name>/
39
+ ├── .openspec.yaml
40
+ ├── .comet.yaml
41
+ ├── proposal.md # Why + What:问题、目标、范围
42
+ ├── design.md # How(高层):架构决策、方案选型
43
+ └── tasks.md # 任务清单(勾选框)
44
+ ```
45
+
46
+ ### 3. 初始化 Comet 状态
47
+
48
+ 初始化 Comet 状态文件:
49
+
50
+ ```bash
51
+ bash "$COMET_STATE" init <name> full
52
+ ```
53
+
54
+ ### 4. 内容完整性检查
55
+
56
+ 确认三个文档内容完整:
57
+ - **proposal.md**:问题背景、目标、范围、非目标
58
+ - **design.md**:高层架构决策、方案选型、数据流
59
+ - **tasks.md**:任务列表,每个任务有明确描述
60
+
61
+ ## 退出条件
62
+
63
+ - proposal.md、design.md、tasks.md 均已创建且内容完整
64
+ - **阶段守卫**:运行 `bash $COMET_GUARD <change-name> open`,全部 PASS 后才允许流转
65
+
66
+ ## 自动流转
67
+
68
+ 退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
69
+
70
+ > **REQUIRED NEXT SKILL:** 调用 `comet-design` skill 进入深度设计阶段。
@@ -23,25 +23,14 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
23
23
 
24
24
  ### 0. 入口状态验证(Entry Check)
25
25
 
26
- 在执行任何操作之前,验证当前状态:
26
+ 执行入口验证:
27
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.
28
+ ```bash
29
+ COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
30
+ bash "$COMET_STATE" check <name> open
42
31
  ```
43
32
 
44
- 验证通过后才进入流程步骤。
33
+ 验证通过后继续流程步骤。验证失败时脚本会输出具体失败原因。
45
34
 
46
35
  执行链路:open → lightweight build → light verify → archive。Tweak 为每个阶段提供默认决策:精简开启、轻量构建、轻量验证、验证通过后归档。
47
36
 
@@ -57,34 +46,11 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
57
46
  - `tasks.md` — 不超过 3 个任务
58
47
  - **无需 delta spec**(除非变更改变了已有 spec 的验收场景;一旦需要 delta spec,升级为完整 `/comet`)
59
48
 
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
- isolation: branch
69
- verify_mode: light
70
- verify_result: pending
71
- verified_at: null
72
- archived: false
73
- ```
49
+ 初始化 Comet 状态文件:
74
50
 
75
- 【写入验证】创建完成后必须验证:
76
- cat openspec/changes/<name>/.comet.yaml
77
- 确认 workflow 行的值为 "tweak"
78
- 确认 phase 行的值为 "build"
79
- 确认 design_doc 行的值为 "null"
80
- 确认 plan 行的值为 "null"
81
- 确认 build_mode 行的值为 "direct"
82
- 确认 isolation 行的值为 "branch"
83
- 确认 verify_mode 行的值为 "light"
84
- 确认 verify_result 行的值为 "pending"
85
- 确认 verified_at 行的值为 "null"
86
- 确认 archived 行的值为 "false"
87
- 如任一字段不匹配,重试写入后再次验证。最多重试 2 次,仍失败则报告错误并终止。
51
+ ```bash
52
+ bash "$COMET_STATE" init <name> tweak
53
+ ```
88
54
 
89
55
  ### 2. 轻量构建(preset build)
90
56
 
@@ -95,7 +61,7 @@ archived: false
95
61
  1. 读取 `openspec/changes/<name>/tasks.md`,获取未完成任务列表
96
62
  2. 对每个未完成任务:
97
63
  - 根据任务描述修改目标文件
98
- - 运行 `mvn spotless:apply` 格式化
64
+ - 运行项目格式化命令(如 `mvn spotless:apply`、`npm run format` 等)
99
65
  - 运行相关测试确认通过
100
66
  - 将 tasks.md 中对应 `- [ ]` 勾选为 `- [x]`
101
67
  - 提交代码,commit message 格式:`tweak: <简述变更>`
@@ -133,14 +99,16 @@ Tweak 流程为 **一次性连续执行**。调用 `/comet-tweak` 后,agent
133
99
 
134
100
  ## 升级条件
135
101
 
136
- 执行过程中出现以下情况时,停止 tweak 流程,升级为完整 `/comet`:
102
+ 满足以下**任一**条件时,停止 tweak 流程,升级为完整 `/comet`:
137
103
 
138
- 1. 需要新增 capability
139
- 2. 需要架构调整
140
- 3. 需要接口变化
141
- 4. 影响范围扩大到 > 5 个文件
142
- 5. 任务数超过 3
143
- 6. 需要 delta spec
104
+ | 条件 | 说明 |
105
+ |------|------|
106
+ | 改动涉及 **5+ 文件** | 超出小改动范围 |
107
+ | 多模块协调修改 | 需要跨组件协调 |
108
+ | 需要新增测试用例 **5+** | 变更复杂度上升 |
109
+ | 配置项新增或删除 | 非值修改的配置变更 |
110
+ | 需要新增 capability | 超出局部优化 |
111
+ | 需要 delta spec | 影响了已有规格 |
144
112
 
145
113
  升级方式:在当前 change 基础上补充 Design Doc(执行 `/comet-design`),后续正常走完整流程。
146
114
 
@@ -1,136 +1,114 @@
1
- ---
2
- name: comet-verify
3
- description: "Comet 阶段 4:验证与收尾。用 /comet-verify 调用。验证实现符合设计,处理开发分支。"
4
- ---
5
-
6
- # Comet 阶段 4:验证与收尾(Verify)
7
-
8
- ## 前置条件
9
-
10
- - 代码已提交(阶段 3 完成)
11
- - tasks.md 全部任务已完成
12
-
13
- ## 步骤
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
-
38
- ### 1. 改动规模评估
39
-
40
- 根据以下指标判定改动规模:
41
-
42
- | 指标 | 小(轻量验证) | 大(完整验证) |
43
- |------|---------------|---------------|
44
- | tasks.md 任务数 | ≤ 3 | > 3 |
45
- | 变更文件数(git diff --stat) | ≤ 5 | > 5 |
46
- | 是否有 delta spec | 无 | 有 |
47
- | 是否新增 capability | 否 | 是 |
48
-
49
- **判定规则**:任一指标命中"大" → 完整验证。全部命中"小" → 轻量验证。
50
-
51
- 判定完成后,在 `openspec/changes/<name>/.comet.yaml` 中记录实际验证模式。`verify_mode` 只允许以下值之一:
52
-
53
- - `light`
54
- - `full`
55
-
56
- ### 2a. 轻量验证(小改动)
57
-
58
- 当规模评估结果为""时,跳过 `openspec-verify-change`,直接执行以下检查:
59
-
60
- 1. tasks.md 全部任务已完成 `[x]`
61
- 2. 改动文件与 tasks.md 描述一致(`git diff --stat` 对照 tasks 内容)
62
- 3. 编译通过(Maven 项目先执行 `mvn spotless:apply`,再执行 `mvn compile` 或等效命令)
63
- 4. 相关测试通过
64
- 5. 无明显安全问题(无硬编码密钥、无新增 unsafe 操作)
65
-
66
- **通过标准**:5 项全部 OK,无 CRITICAL 问题。
67
-
68
- **报告格式**:简表列出 5 项检查结果 + PASS/FAIL。
69
-
70
- **跳过项**(不在轻量验证中检查):
71
- - spec scenario 覆盖率
72
- - design doc 一致性深度比对
73
- - code pattern consistency 建议
74
- - delta spec design doc 漂移检测
75
-
76
- ### 2b. 完整验证(大改动)
77
-
78
- 当规模评估结果为"大"时:
79
-
80
- **立即执行:** 使用 Skill 工具加载 `openspec-verify-change` 技能。禁止跳过此步骤。
81
-
82
- 技能加载后,按其指引验证。检查项:
83
- 1. tasks.md 全部任务已完成(`[x]`)
84
- 2. 实现符合 design.md 设计决策
85
- 3. 实现符合 brainstorming 设计文档
86
- 4. 能力规格场景全部通过
87
- 5. proposal.md 目标已满足
88
- 6. delta spec 与 design doc 无矛盾(若 Build 阶段有增量修改 spec,检查 design doc 是否有对应记录)
89
- 7. `docs/superpowers/specs/` 关联的设计文档可定位(文件存在且与当前 change 相关)
90
-
91
- 验证不通过时:报告缺失项,返回阶段 3 补充(调用 `/comet-build`)。
92
-
93
- **Spec 漂移处理**:
94
- - 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),提示用户:
95
- - 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因
96
- - 选项 B:回退到 Build 阶段,补充 brainstorming 更新 design doc
97
- - 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`)
98
-
99
- ### 3. 收尾(Superpowers)
100
-
101
- **立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch` 技能。禁止跳过此步骤。
102
-
103
- 如 `superpowers:finishing-a-development-branch` 不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。
104
-
105
- 技能加载后,按其指引收尾。分支处理选项:
106
- 1. 本地合并到主分支
107
- 2. 推送并创建 PR
108
- 3. 保持分支(稍后处理)
109
- 4. 丢弃工作
110
-
111
- **确认项**:
112
- - Maven 测试或构建命令前已执行 `mvn spotless:apply`
113
- - 全部测试通过
114
- - 无遗留的 spotless 格式问题
115
- - 无硬编码密钥或安全问题
116
-
117
- ## 退出条件
118
-
119
- - 验证报告通过
120
- - 分支已处理
121
- - `.comet.yaml` 中 `verify_result` 已记录为 `pass`
122
- - **阶段守卫**:运行 `bash $COMET_GUARD <change-name> verify`,全部 PASS 后才允许流转
123
-
124
- 退出前运行 guard 自动流转:
125
-
126
- ```bash
127
- bash $COMET_GUARD <change-name> verify --apply
128
- ```
129
-
130
- 状态文件自动更新为 `phase: archive`、`verify_result: pass`、`verified_at: YYYY-MM-DD`。
131
-
132
- ## 自动流转
133
-
134
- 退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
135
-
136
- > **REQUIRED NEXT SKILL:** 调用 `comet-archive` skill 进入归档阶段。
1
+ ---
2
+ name: comet-verify
3
+ description: "Comet 阶段 4:验证与收尾。用 /comet-verify 调用。验证实现符合设计,处理开发分支。"
4
+ ---
5
+
6
+ # Comet 阶段 4:验证与收尾(Verify)
7
+
8
+ ## 前置条件
9
+
10
+ - 代码已提交(阶段 3 完成)
11
+ - tasks.md 全部任务已完成
12
+
13
+ ## 步骤
14
+
15
+ ### 0. 入口状态验证(Entry Check)
16
+
17
+ 执行入口验证:
18
+
19
+ ```bash
20
+ COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
21
+ bash "$COMET_STATE" check <name> verify
22
+ ```
23
+
24
+ 验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
25
+
26
+ ### 1. 改动规模评估
27
+
28
+ 执行规模评估:
29
+
30
+ ```bash
31
+ bash "$COMET_STATE" scale <name>
32
+ ```
33
+
34
+ 脚本自动统计任务数、增量规格数、变更文件数,判断使用 light 或 full 验证模式,并设置 verify_mode 字段。
35
+
36
+ ### 2a. 轻量验证(小改动)
37
+
38
+ 当规模评估结果为"小"时,跳过 `openspec-verify-change`,直接执行以下检查:
39
+
40
+ 1. tasks.md 全部任务已完成 `[x]`
41
+ 2. 改动文件与 tasks.md 描述一致(`git diff --stat` 对照 tasks 内容)
42
+ 3. 编译通过(执行项目对应的构建命令,如 `npm run build`、`mvn compile`、`cargo build` 等)
43
+ 4. 相关测试通过
44
+ 5. 无明显安全问题(无硬编码密钥、无新增 unsafe 操作)
45
+
46
+ **通过标准**:5 项全部 OK,无 CRITICAL 问题。
47
+
48
+ **报告格式**:简表列出 5 项检查结果 + PASS/FAIL。
49
+
50
+ **跳过项**(不在轻量验证中检查):
51
+ - spec scenario 覆盖率
52
+ - design doc 一致性深度比对
53
+ - code pattern consistency 建议
54
+ - delta spec 与 design doc 漂移检测
55
+
56
+ ### 2b. 完整验证(大改动)
57
+
58
+ 当规模评估结果为""时:
59
+
60
+ **立即执行:** 使用 Skill 工具加载 `openspec-verify-change` 技能。禁止跳过此步骤。
61
+
62
+ 技能加载后,按其指引验证。检查项:
63
+ 1. tasks.md 全部任务已完成(`[x]`)
64
+ 2. 实现符合 design.md 设计决策
65
+ 3. 实现符合 brainstorming 设计文档
66
+ 4. 能力规格场景全部通过
67
+ 5. proposal.md 目标已满足
68
+ 6. delta spec design doc 无矛盾(若 Build 阶段有增量修改 spec,检查 design doc 是否有对应记录)
69
+ 7. `docs/superpowers/specs/` 关联的设计文档可定位(文件存在且与当前 change 相关)
70
+
71
+ 验证不通过时:报告缺失项,返回阶段 3 补充(调用 `/comet-build`)。
72
+
73
+ **Spec 漂移处理**:
74
+ - 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),提示用户:
75
+ - 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因
76
+ - 选项 B:回退到 Build 阶段,补充 brainstorming 更新 design doc
77
+ - 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`)
78
+
79
+ ### 3. 收尾(Superpowers)
80
+
81
+ **立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch` 技能。禁止跳过此步骤。
82
+
83
+ `superpowers:finishing-a-development-branch` 不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。
84
+
85
+ 技能加载后,按其指引收尾。分支处理选项:
86
+ 1. 本地合并到主分支
87
+ 2. 推送并创建 PR
88
+ 3. 保持分支(稍后处理)
89
+ 4. 丢弃工作
90
+
91
+ **确认项**:
92
+ - 全部测试通过
93
+ - 无硬编码密钥或安全问题
94
+
95
+ ## 退出条件
96
+
97
+ - 验证报告通过
98
+ - 分支已处理
99
+ - `.comet.yaml` 中 `verify_result` 已记录为 `pass`
100
+ - **阶段守卫**:运行 `bash $COMET_GUARD <change-name> verify`,全部 PASS 后才允许流转
101
+
102
+ 退出前运行 guard 自动流转:
103
+
104
+ ```bash
105
+ bash $COMET_GUARD <change-name> verify --apply
106
+ ```
107
+
108
+ 状态文件自动更新为 `phase: archive`、`verify_result: pass`、`verified_at: YYYY-MM-DD`。
109
+
110
+ ## 自动流转
111
+
112
+ 退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
113
+
114
+ > **REQUIRED NEXT SKILL:** 调用 `comet-archive` skill 进入归档阶段。
package/dist/cli/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Command } from 'commander';
2
2
  import { createRequire } from 'module';
3
- import { initCommand } from '../core/init.js';
3
+ import { initCommand } from '../commands/init.js';
4
+ import { statusCommand } from '../commands/status.js';
5
+ import { doctorCommand } from '../commands/doctor.js';
6
+ import { updateCommand } from '../commands/update.js';
4
7
  const require = createRequire(import.meta.url);
5
8
  const { version } = require('../../package.json');
6
9
  const program = new Command();
@@ -14,8 +17,32 @@ program
14
17
  .option('--yes', 'Auto-install missing components, skip existing')
15
18
  .option('--skip-existing', 'Never overwrite existing components')
16
19
  .option('--overwrite', 'Overwrite manifest-managed files')
20
+ .option('--json', 'Output as JSON')
17
21
  .action(async (targetPath = '.', options) => {
18
22
  await initCommand(targetPath, options);
19
23
  });
24
+ program
25
+ .command('status [path]')
26
+ .description('Show active changes and workflow status')
27
+ .option('--json', 'Output as JSON')
28
+ .action(async (targetPath = '.', options) => {
29
+ await statusCommand(targetPath, options);
30
+ });
31
+ program
32
+ .command('doctor [path]')
33
+ .description('Diagnose Comet installation health')
34
+ .option('--json', 'Output as JSON')
35
+ .action(async (targetPath = '.', options) => {
36
+ await doctorCommand(targetPath, options);
37
+ });
38
+ program
39
+ .command('update [path]')
40
+ .description('Update comet skill files to latest version')
41
+ .option('--json', 'Output as JSON')
42
+ .option('--language <lang>', 'Language for skills (en, zh)')
43
+ .option('--scope <scope>', 'Install scope (global, project)')
44
+ .action(async (targetPath = '.', options) => {
45
+ await updateCommand(targetPath, options);
46
+ });
20
47
  program.parse();
21
48
  //# sourceMappingURL=index.js.map