@rpamis/comet 0.3.0 → 0.3.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.
@@ -58,9 +58,11 @@ bash "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
58
58
 
59
59
  无需手动更新 phase,guard 会在退出条件满足后自动流转。
60
60
 
61
- ### 3. 工作区隔离
61
+ ### 3. 选择工作方式
62
62
 
63
- 计划已写入当前分支。在开始执行前,选择工作区隔离方式:
63
+ 计划已写入当前分支。在开始执行前,**一次性询问用户**选择工作区隔离方式和执行方式:
64
+
65
+ **工作区隔离**:
64
66
 
65
67
  | 选项 | 方式 | 说明 |
66
68
  |------|------|------|
@@ -71,52 +73,30 @@ bash "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
71
73
  - 变更涉及 ≤ 3 个文件 → 推荐 A
72
74
  - 需要并行开发、当前分支有未提交工作 → 推荐 B
73
75
 
74
- 用户选择后,更新 `isolation` 字段。`isolation` 只允许以下值之一:
75
-
76
- ```bash
77
- bash "$COMET_STATE" set <name> isolation <value>
78
- ```
79
-
80
- - `branch`
81
- - `worktree`
82
-
83
- <IMPORTANT>
84
- 这是脚本级硬约束,不是建议。full workflow 初始化时 `isolation` 可以暂时为 `null`,但只允许存在到本步骤之前。
85
- 进入实现前必须停下来询问用户并写入 `branch` 或 `worktree`。若保持 `null`,`build → verify` 的 guard 和 `comet-state transition build-complete` 都会失败。
86
- </IMPORTANT>
87
-
88
- **执行隔离**:
89
-
90
- - **branch**:执行 `git checkout -b <change-name>`,后续工作在新分支上进行
91
- - **worktree**:调用 `superpowers:using-git-worktrees` 技能或使用原生 `EnterWorktree` 工具创建隔离工作区
92
-
93
- 创建隔离后,确认计划文件可访问(分支方式天然可访问;worktree 方式需确认计划已提交)。
94
-
95
- ### 4. 选择执行方式
96
-
97
- 向用户展示计划摘要(任务数、涉及模块),然后询问执行方式:
76
+ **执行方式**:
98
77
 
99
78
  | 选项 | 技能 | 适用场景 |
100
79
  |------|------|---------|
101
80
  | A | `superpowers:subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 |
102
81
  | B | `superpowers:executing-plans` | 任务简单、无子agent环境、轻量快速 |
103
82
 
104
- **推荐规则**:
83
+ **执行方式推荐规则**:
105
84
  - 任务数 ≥ 3 → 推荐 A
106
85
  - 任务数 ≤ 2 且无跨模块依赖 → 推荐 B
107
86
  - 来自 hotfix 路径 → 推荐 B
108
87
 
109
- 用户选择后,更新 `build_mode` 字段。`build_mode` 只允许以下值之一:
88
+ 这是用户决策点。必须暂停并等待用户明确选择隔离方式和执行方式,**不得根据推荐规则自行选择 `branch` `worktree`**,也**不得根据推荐规则自行选择执行方式**。推荐规则只能用于说明建议,不能替代用户确认。
89
+
90
+ 用户选择后,更新 `isolation` 和 `build_mode` 字段:
110
91
 
111
92
  ```bash
112
- bash "$COMET_STATE" set <name> build_mode <value>
93
+ bash "$COMET_STATE" set <name> isolation <branch|worktree>
94
+ bash "$COMET_STATE" set <name> build_mode <subagent-driven-development|executing-plans|direct>
113
95
  ```
114
96
 
115
- - `subagent-driven-development`
116
- - `executing-plans`
117
- - `direct`(默认仅 hotfix/tweak preset 使用)
97
+ `isolation` 是脚本级硬约束。full workflow 初始化时可以为 `null`,但只允许存在到本步骤之前。若保持 `null`,`build → verify` 的 guard 和 `comet-state transition build-complete` 都会失败。
118
98
 
119
- full workflow 不得默认使用 `direct`。只有用户明确要求跳过计划执行技能,且你已记录显式 override 时,才允许:
99
+ `build_mode` 默认仅 hotfix/tweak preset 使用 `direct`。full workflow 不得默认使用 `direct`。只有用户明确要求跳过计划执行技能,且你已记录显式 override 时,才允许:
120
100
 
121
101
  ```bash
122
102
  bash "$COMET_STATE" set <name> direct_override true
@@ -125,7 +105,14 @@ bash "$COMET_STATE" set <name> build_mode direct
125
105
 
126
106
  没有 `direct_override: true` 时,full workflow 的 `build_mode=direct` 会被 guard 和状态转换同时拦截。
127
107
 
128
- 然后,**立即执行:** 使用 Skill 工具加载对应技能。禁止跳过此步骤。
108
+ **执行隔离**:
109
+
110
+ - **branch**:执行 `git checkout -b <change-name>`,后续工作在新分支上进行
111
+ - **worktree**:必须使用 Skill 工具加载 `superpowers:using-git-worktrees` 技能创建隔离工作区。禁止用普通 shell 命令或原生工具绕过该技能;如该技能不可用,停止流程并提示安装或启用 Superpowers 技能。
112
+
113
+ 创建隔离后,确认计划文件可访问(分支方式天然可访问;worktree 方式需确认计划已提交)。
114
+
115
+ **加载执行技能**:使用 Skill 工具加载对应技能。禁止跳过此步骤。
129
116
 
130
117
  如所选 Superpowers 技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。
131
118
 
@@ -134,17 +121,19 @@ bash "$COMET_STATE" set <name> build_mode direct
134
121
  - 完成 tasks.md 勾选(`- [ ]` → `- [x]`)
135
122
  - 每个任务完成后提交代码
136
123
 
137
- ### 5. Spec 增量更新
124
+ ### 4. Spec 增量更新
138
125
 
139
126
  实施过程中发现初版 spec 不完整时,按变更规模分级处理:
140
127
 
141
128
  | 规模 | 触发条件 | 做法 |
142
129
  |------|---------|------|
143
130
  | 小 | 遗漏验收场景、边界条件 | 直接编辑 delta spec + design.md,追加 tasks.md 任务 |
144
- | 中 | 接口变更、新增组件、数据流变化 | 重新 `superpowers:brainstorming` 更新 Design Doc + delta spec |
145
- | 大 | 全新 capability 需求 | `/opsx:new` 创建独立 change |
131
+ | 中 | 接口变更、新增组件、数据流变化 | 暂停并等待用户确认后,必须使用 Skill 工具加载 `superpowers:brainstorming` 更新 Design Doc + delta spec |
132
+ | 大 | 全新 capability 需求 | 必须暂停并等待用户确认拆分;用户确认后,通过 `/comet-open` 创建独立 change |
133
+
134
+ **50% 阈值判定**:以 tasks.md 初始任务总数为基准,若新增任务数超过该总数的一半,视为超出原计划范围,必须暂停并等待用户决定是否拆分为新 change。
146
135
 
147
- **50% 阈值判定**:以 tasks.md 初始任务总数为基准,若新增任务数超过该总数的一半,视为超出原计划范围,应考虑拆分为新 change。
136
+ 创建独立 change 时必须调用 `/comet-open`,不得直接调用 `/opsx:new`。`/comet-open` 会同时创建 OpenSpec 产物和 `.comet.yaml`,避免新 change 脱离 Comet 状态机。
148
137
 
149
138
  **原则**:
150
139
  - delta spec 是活文档,本阶段期间随时可修改
@@ -152,14 +141,14 @@ bash "$COMET_STATE" set <name> build_mode direct
152
141
  - 不提前同步到 main spec,归档时统一同步
153
142
  - 小规模增量直接改 delta spec 时,应在 commit message 中注明,便于归档时判断 design doc 漂移
154
143
 
155
- ### 6. 上下文管理
144
+ ### 5. 上下文管理
156
145
 
157
146
  Build 是最长阶段,可能跨越大量任务。为支持上下文压缩后断点恢复:
158
147
 
159
148
  - **每完成一个 task**:立即勾选 tasks.md 并提交代码,确保 `.comet.yaml` 和文件状态持久化
160
149
  - **上下文压缩后恢复**:读取 `.comet.yaml` 的 `phase` 字段确认仍在 build 阶段,读取 plan 文件头的 `base-ref`,再读取 tasks.md 找到下一个未勾选任务继续执行
161
150
  - **用户手动修改恢复**:按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。该协议定义了检查步骤、归因分类和禁令。build 阶段的特殊处理:
162
- 1. 归因后,若 diff 暗示计划或 spec 已变化,按 Step 5「Spec 增量更新」分级处理
151
+ 1. 归因后,若 diff 暗示计划或 spec 已变化,按 Step 4「Spec 增量更新」分级处理
163
152
  - **长任务拆分**:单任务超过 200 行代码变更时,考虑拆分为多个子任务分别提交
164
153
 
165
154
  ## 退出条件
@@ -92,23 +92,41 @@ canonical_spec: openspec
92
92
 
93
93
  如 `superpowers:brainstorming` 不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。
94
94
 
95
- 技能加载后,按其指引产出:
96
- - `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` — 设计文档(技术 RFC)
97
- - 如需补充验收场景,回写 `openspec/changes/<name>/specs/<capability>/spec.md` — OpenSpec delta 能力规格
95
+ 技能加载后,按其指引产出设计方案(以对话形式呈现):
96
+ - 技术方案:架构、数据流、关键技术选型与风险
97
+ - 测试策略
98
+ - 如需补充验收场景,标明将回写的 delta spec 变更
99
+
100
+ brainstorming 阶段不写入 Design Doc 文件,仅产出设计方案供 Step 1c 用户确认。确认后才创建 `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` 并回写 delta spec。
101
+
102
+ ### 1c. 用户确认设计方案(阻塞点)
103
+
104
+ brainstorming 产出设计方案后,**必须暂停并等待用户明确确认设计方案**。不得在用户确认前创建最终 Design Doc、写入 `design_doc`、运行 design guard,或进入 `/comet-build`。
105
+
106
+ 暂停时只展示必要摘要:
107
+ - 采用的技术方案
108
+ - 关键取舍与风险
109
+ - 测试策略
110
+ - 如有 Spec Patch,列出将回写的 delta spec 变更
111
+
112
+ 用户明确确认后,才继续 Step 2。若用户要求调整,继续 brainstorming 迭代,直到用户确认。
98
113
 
99
114
  ### 2. 更新 Comet 状态
100
115
 
101
- 先记录 design_doc 路径,再运行 guard 自动流转:
116
+ 先记录 design_doc 路径。如果 Step 1c 回写了 delta spec(新增或修改了 `specs/*/spec.md`),必须重新生成 handoff 以更新 hash:
102
117
 
103
118
  ```bash
104
119
  # 记录 design_doc 路径
105
120
  bash "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md
106
121
 
122
+ # 如有 delta spec 变更,重新生成 handoff(更新 hash)
123
+ bash "$COMET_HANDOFF" <change-name> design --write
124
+
107
125
  # 自动流转到下一阶段
108
126
  bash "$COMET_GUARD" <change-name> design --apply
109
127
  ```
110
128
 
111
- 状态文件自动更新,无需手动编辑其他字段。
129
+ 如果没有 delta spec 变更,跳过 handoff 重新生成步骤。状态文件自动更新,无需手动编辑其他字段。
112
130
 
113
131
  ## 退出条件
114
132
 
@@ -75,33 +75,34 @@ bash "$COMET_GUARD" <change-name> open --apply
75
75
  - 将 tasks.md 中对应 `- [ ]` 勾选为 `- [x]`
76
76
  - 提交代码,commit message 格式:`fix: <简述修复>`
77
77
  3. 全部任务完成后,显式运行项目相关测试和构建命令
78
- 4. 运行阶段守卫完成 build → verify 过渡:
79
-
80
- ```bash
81
- bash "$COMET_GUARD" <change-name> build --apply
82
- ```
83
-
84
- 状态文件自动更新为 `phase: verify`、`verify_result: pending`,然后进入验证。
85
78
 
86
79
  **如修复影响已有 spec 验收场景**:
87
80
  - 在 `openspec/changes/<name>/specs/<capability>/spec.md` 创建 delta spec
88
81
  - 仅包含 `## MODIFIED Requirements` 部分
89
82
 
90
- ### 3a. Hotfix 专属检查:根因消除
83
+ ### 3. 根因消除检查
91
84
 
92
- **在加载 comet-verify 之前执行**,确保修复确实消除了问题根因:
85
+ **在运行 build guard 之前执行**,确保修复确实消除了问题根因:
93
86
 
94
87
  1. 读取 proposal.md 中的 bug 描述和根因
95
88
  2. 搜索验证问题代码不再存在
96
- 3. 如根因未消除,返回 Step 2 继续修复
89
+ 3. 如根因未消除,回到 Step 2 继续修复(此时仍在 build 阶段,无需状态回退)
97
90
 
98
91
  **升级条件**:
99
- - 根因消除检查发现深层架构问题 → 停止 hotfix,升级为 `/comet`
100
- - 修复需要额外接口变更 → 停止 hotfix,升级为 `/comet`
92
+ - 根因消除检查发现深层架构问题 → 停止 hotfix,按升级条件阻塞确认处理
93
+ - 修复需要额外接口变更 → 停止 hotfix,按升级条件阻塞确认处理
101
94
 
102
- ### 3b. 验证(preset verify
95
+ 根因确认消除后,运行阶段守卫完成 build verify 过渡:
103
96
 
104
- 根因消除检查通过后,复用 `/comet-verify`,由 comet-verify 的规模评估决定轻量或完整验证。
97
+ ```bash
98
+ bash "$COMET_GUARD" <change-name> build --apply
99
+ ```
100
+
101
+ 状态文件自动更新为 `phase: verify`、`verify_result: pending`,然后进入验证。
102
+
103
+ ### 4. 验证(preset verify)
104
+
105
+ 复用 `/comet-verify`,由 comet-verify 的规模评估决定轻量或完整验证。
105
106
 
106
107
  **立即执行:** 使用 Skill 工具加载 `comet-verify` 技能。禁止跳过此步骤。
107
108
 
@@ -121,11 +122,15 @@ bash "$COMET_GUARD" <change-name> build --apply
121
122
  ## 连续执行模式
122
123
 
123
124
  <IMPORTANT>
124
- Hotfix 流程为 **一次性连续执行**。调用 `/comet-hotfix` 后,agent 必须自动走完全部 4 个阶段,中间不停顿等待用户输入(除非遇到升级条件需要用户确认)。
125
+ Hotfix 流程为 **一次性连续执行**。调用 `/comet-hotfix` 后,agent hotfix 自有步骤间自动推进,不主动停顿。但以下情况必须暂停等待用户确认:
126
+
127
+ 1. 遇到升级条件(见"升级条件"章节)
128
+ 2. 任务超过 3 个转入 `/comet-build` 时的工作区隔离和执行方式选择
129
+ 3. 验证阶段(comet-verify)的验证失败决策和分支处理决策
125
130
 
126
131
  执行顺序:快速开启 → 直接构建 → 验证 → 归档 → 完成
127
132
 
128
- 每个阶段完成后立即进入下一阶段,无需用户再次输入。阶段内部仍必须按上文要求调用对应 Comet/OpenSpec/Superpowers skill
133
+ 每个阶段完成后立即进入下一阶段。阶段内部仍必须按上文要求调用对应 Comet/OpenSpec/Superpowers skill,被调用的 skill 如有自己的用户决策点,按该 skill 规则执行。
129
134
  </IMPORTANT>
130
135
 
131
136
  ---
@@ -142,7 +147,15 @@ Hotfix 流程为 **一次性连续执行**。调用 `/comet-hotfix` 后,agent
142
147
  | 引入新的 public API | 修复产生了新的对外接口 |
143
148
  | 修复范围超出单一函数/模块 | 需要多处协调修改 |
144
149
 
145
- 升级方式:在当前 change 基础上补充 Design Doc(执行 `/comet-design`),后续正常走完整流程。
150
+ 满足升级条件时必须暂停并等待用户明确确认升级为完整 `/comet` 流程。不得直接进入 `/comet-design`,不得自动补充 Design Doc。
151
+
152
+ 用户确认升级后,**必须先更新 workflow 字段**再进入完整流程:
153
+
154
+ ```bash
155
+ bash "$COMET_STATE" set <name> workflow full
156
+ ```
157
+
158
+ 然后在当前 change 基础上补充 Design Doc:**立即使用 Skill 工具加载 `comet-design` skill**,后续正常走完整流程。若用户不确认升级,停止 hotfix 并报告当前变更已超出 hotfix 适用范围。
146
159
 
147
160
  ---
148
161
 
@@ -81,4 +81,6 @@ bash "$COMET_GUARD" <change-name> open --apply
81
81
 
82
82
  退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
83
83
 
84
- > **REQUIRED NEXT SKILL:** 调用 `comet-design` skill 进入深度设计阶段。
84
+ > **REQUIRED NEXT SKILL(完整流程):** 调用 `comet-design` skill 进入深度设计阶段。
85
+ >
86
+ > hotfix/tweak preset 由对应 preset skill 控制后续流转(phase 直接进入 build),不经过本节。
@@ -92,7 +92,7 @@ bash "$COMET_GUARD" <change-name> build --apply
92
92
 
93
93
  **立即执行:** 使用 Skill 工具加载 `comet-verify` 技能。禁止跳过此步骤。
94
94
 
95
- 如规模评估进入完整验证路径,停止 tweak,升级为完整 `/comet`。
95
+ 如规模评估进入完整验证路径,停止 tweak,按升级条件阻塞确认处理。
96
96
 
97
97
  验证通过后,按 `/comet-verify` 的规则将 `.comet.yaml` 的 `verify_result` 记录为 `pass`,归档前不得跳过该状态。
98
98
 
@@ -107,11 +107,14 @@ bash "$COMET_GUARD" <change-name> build --apply
107
107
  ## 连续执行模式
108
108
 
109
109
  <IMPORTANT>
110
- Tweak 流程为 **一次性连续执行**。调用 `/comet-tweak` 后,agent 必须自动走完全部 4 个阶段,中间不停顿等待用户输入(除非遇到升级条件需要用户确认)。
110
+ Tweak 流程为 **一次性连续执行**。调用 `/comet-tweak` 后,agent tweak 自有步骤间自动推进,不主动停顿。但以下情况必须暂停等待用户确认:
111
+
112
+ 1. 遇到升级条件(见"升级条件"章节)
113
+ 2. 验证阶段(comet-verify)的验证失败决策和分支处理决策
111
114
 
112
115
  执行顺序:快速开启 → 轻量构建 → 轻量验证 → 归档 → 完成
113
116
 
114
- 每个阶段完成后立即进入下一阶段,无需用户再次输入。阶段内部仍必须按上文要求调用对应 Comet/OpenSpec/Superpowers skill
117
+ 每个阶段完成后立即进入下一阶段。阶段内部仍必须按上文要求调用对应 Comet/OpenSpec/Superpowers skill,被调用的 skill 如有自己的用户决策点,按该 skill 规则执行。
115
118
  </IMPORTANT>
116
119
 
117
120
  ---
@@ -129,7 +132,15 @@ Tweak 流程为 **一次性连续执行**。调用 `/comet-tweak` 后,agent
129
132
  | 需要新增 capability | 超出局部优化 |
130
133
  | 需要 delta spec | 影响了已有规格 |
131
134
 
132
- 升级方式:在当前 change 基础上补充 Design Doc(执行 `/comet-design`),后续正常走完整流程。
135
+ 满足升级条件时必须暂停并等待用户明确确认升级为完整 `/comet` 流程。不得直接进入 `/comet-design`,不得自动补充 Design Doc。
136
+
137
+ 用户确认升级后,**必须先更新 workflow 字段**再进入完整流程:
138
+
139
+ ```bash
140
+ bash "$COMET_STATE" set <name> workflow full
141
+ ```
142
+
143
+ 然后在当前 change 基础上补充 Design Doc:**立即使用 Skill 工具加载 `comet-design` skill**,后续正常走完整流程。若用户不确认升级,停止 tweak 并报告当前变更已超出 tweak 适用范围。
133
144
 
134
145
  ---
135
146
 
@@ -37,13 +37,14 @@ bash "$COMET_STATE" scale <change-name>
37
37
 
38
38
  验证开始前,按 `comet/reference/dirty-worktree.md` 协议检查并处理未提交改动。verify 阶段的特殊处理:
39
39
 
40
- 1. 若 dirty diff 属于当前 change 且涉及实现、测试、tasks、delta spec 或 design doc 变更,不在 verify 阶段直接修复或提交;先记录失败并回退到 build 阶段
40
+ 1. 若 dirty diff 属于当前 change 且涉及实现、测试、tasks、delta spec 或 design doc 变更,不在 verify 阶段直接修复或提交;报告失败项并进入 Step 1b 的验证失败决策阻塞点
41
41
  2. 若 dirty diff 只是 verify 本阶段产物(例如验证报告草稿、分支处理记录),可继续在 verify 阶段完成并记录状态
42
- 3. 若 dirty diff 已实现但 tasks.md 未勾选,视为 build 状态滞后;先记录失败并回退到 build 阶段,由 `/comet-build` 验证实现、补勾任务并提交
42
+ 3. 若 dirty diff 已实现但 tasks.md 未勾选,视为 build 状态滞后;报告失败项并进入 Step 1b,由用户决定回退修复或接受偏差
43
43
 
44
- 回退到 build 阶段:
44
+ 用户选择修复后,才允许回退到 build 阶段:
45
45
 
46
46
  ```bash
47
+ # 仅在用户确认修复后执行
47
48
  bash "$COMET_STATE" transition <change-name> verify-fail
48
49
  ```
49
50
 
@@ -55,12 +56,25 @@ BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref: *
55
56
  git diff --stat "$BASE_REF"...HEAD
56
57
  ```
57
58
 
58
- 若提交区间显示改动超过轻量阈值(> 5 个文件、跨模块协调、或 delta spec 超过 1 个 capability),手动设置为完整验证:
59
+ 若提交区间显示改动超过轻量阈值(> 4 个文件、跨模块协调、或 delta spec 超过 1 个 capability),手动设置为完整验证:
59
60
 
60
61
  ```bash
61
62
  bash "$COMET_STATE" set <change-name> verify_mode full
62
63
  ```
63
64
 
65
+ ### 1b. 验证失败决策(阻塞点)
66
+
67
+ 验证不通过时必须暂停并等待用户决定修复或接受偏差。不得自动运行 `bash "$COMET_STATE" transition <change-name> verify-fail`,也不得自动调用 `/comet-build`。
68
+
69
+ 暂停时必须列出:
70
+ - 失败项
71
+ - 是否属于 CRITICAL(构建失败、测试失败、安全问题、核心验收场景失败)
72
+ - 推荐处理方式
73
+
74
+ 用户选择后按以下方式继续:
75
+ - **全部修复**:运行 `bash "$COMET_STATE" transition <change-name> verify-fail`,然后调用 `/comet-build` 修复
76
+ - **逐项处理**:CRITICAL 失败项必须修复;非 CRITICAL 失败项可选择接受偏差,但必须在验证报告中记录接受原因和影响范围。若存在任何 CRITICAL 失败项,不允许跳过修复直接全部接受
77
+
64
78
  ### 2a. 轻量验证(小改动)
65
79
 
66
80
  当规模评估结果为"小"时,跳过 `openspec-verify-change`,直接执行以下检查:
@@ -73,9 +87,10 @@ bash "$COMET_STATE" set <change-name> verify_mode full
73
87
 
74
88
  **通过标准**:5 项全部 OK,无 CRITICAL 问题。
75
89
 
76
- **不通过时**:报告失败项,记录失败并回退到 build 阶段,然后调用 `/comet-build` 修复。
90
+ **不通过时**:报告失败项,进入 Step 1b 的验证失败决策阻塞点。用户选择修复后,才执行以下命令记录失败并回退到 build 阶段,然后调用 `/comet-build` 修复:
77
91
 
78
92
  ```bash
93
+ # 仅在用户确认修复后执行
79
94
  bash "$COMET_STATE" transition <change-name> verify-fail
80
95
  ```
81
96
 
@@ -95,23 +110,24 @@ bash "$COMET_STATE" transition <change-name> verify-fail
95
110
 
96
111
  技能加载后,按其指引验证。检查项:
97
112
  1. tasks.md 全部任务已完成(`[x]`)
98
- 2. 实现符合 design.md 设计决策
99
- 3. 实现符合 brainstorming 设计文档
113
+ 2. 实现符合 `openspec/changes/<name>/design.md` 高层设计决策
114
+ 3. 实现符合 Design Doc(`docs/superpowers/specs/` 下的技术设计文档)
100
115
  4. 能力规格场景全部通过
101
116
  5. proposal.md 目标已满足
102
117
  6. delta spec 与 design doc 无矛盾(若 Build 阶段有增量修改 spec,检查 design doc 是否有对应记录)
103
118
  7. `docs/superpowers/specs/` 关联的设计文档可定位(文件存在且与当前 change 相关)
104
119
 
105
- 验证不通过时:报告缺失项,记录失败并回退到 build 阶段,然后调用 `/comet-build` 补充。
120
+ 验证不通过时:报告缺失项,进入 Step 1b 的验证失败决策阻塞点。用户选择修复后,才执行以下命令记录失败并回退到 build 阶段,然后调用 `/comet-build` 补充:
106
121
 
107
122
  ```bash
123
+ # 仅在用户确认修复后执行
108
124
  bash "$COMET_STATE" transition <change-name> verify-fail
109
125
  ```
110
126
 
111
- **Spec 漂移处理**:
112
- - 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),提示用户:
113
- - 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因
114
- - 选项 B:回退到 Build 阶段,补充 brainstorming 更新 design doc
127
+ **Spec 漂移处理**(用户决策点):
128
+ - 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),**必须暂停并等待用户选择处理方式**,不得自动选择。选项:
129
+ - 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因。选项 A 属于 verify 阶段允许产物;写入后不得因该 design doc 变更再次触发 Step 1b dirty-worktree 决策
130
+ - 选项 B:用户选择 B 后,运行 `bash "$COMET_STATE" transition <change-name> verify-fail`,然后调用 `/comet-build`;由 `/comet-build` 的 Spec 增量更新规则加载 `superpowers:brainstorming` 更新 Design Doc + delta spec
115
131
  - 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`)
116
132
 
117
133
  ### 3. 收尾(Superpowers)
@@ -126,6 +142,8 @@ bash "$COMET_STATE" transition <change-name> verify-fail
126
142
  3. 保持分支(稍后处理)
127
143
  4. 丢弃工作
128
144
 
145
+ 这是用户决策点。**必须暂停并等待用户选择分支处理方式**,不得根据推荐、默认值或当前分支状态自行选择。只有在用户完成选择且对应操作完成后,才允许写入 `branch_status: handled`。
146
+
129
147
  **确认项**:
130
148
  - 全部测试通过
131
149
  - 无硬编码密钥或安全问题
package/bin/comet.js CHANGED
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
2
-
3
- import '../dist/cli/index.js';
1
+ #!/usr/bin/env node
2
+
3
+ import '../dist/cli/index.js';
@@ -99,7 +99,7 @@ async function updateCometNpmPackage(scope, projectPath) {
99
99
  const args = buildNpmUpdateArgs(scope);
100
100
  const cwd = scope === 'global' ? process.cwd() : projectPath;
101
101
  return new Promise((resolve) => {
102
- const child = spawn(getNpmExecutable(), args, { cwd, stdio: 'inherit' });
102
+ const child = spawn(getNpmExecutable(), args, { cwd, stdio: 'inherit', shell: true });
103
103
  child.on('error', () => resolve(false));
104
104
  child.on('exit', (code) => resolve(code === 0));
105
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6B5C,CAAC;AAKF,iBAAS,8BAA8B,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAeR;AAED,iBAAe,8BAA8B,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,CAc7C;AAED,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6B5C,CAAC;AAMF,iBAAS,8BAA8B,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAeR;AAED,iBAAe,8BAA8B,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,CA6B7C;AAED,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,CAAC"}
@@ -31,6 +31,7 @@ const SKILLS_AGENT_MAP = {
31
31
  trae: 'trae',
32
32
  };
33
33
  const VALID_PLATFORM_IDS = new Set(Object.keys(SKILLS_AGENT_MAP));
34
+ const ANSI_ESCAPE_PATTERN = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*[a-zA-Z]`, 'g');
34
35
  const SUPERPOWERS_INSTALL_TIMEOUT_MS = 300_000;
35
36
  function buildSuperpowersInstallCommand(_projectPath, scope, platformIds, platform = process.platform) {
36
37
  const unknownIds = platformIds.filter((id) => !VALID_PLATFORM_IDS.has(id));
@@ -56,7 +57,22 @@ async function installSuperpowersForPlatforms(projectPath, scope, platformIds) {
56
57
  return 'installed';
57
58
  }
58
59
  catch (error) {
59
- console.error(` Superpowers install failed: ${error.message}`);
60
+ const execError = error;
61
+ console.error(` Superpowers install failed: ${execError.message}`);
62
+ const stderr = execError.stderr?.toString()?.trim();
63
+ if (stderr) {
64
+ const cleaned = stderr
65
+ .replace(ANSI_ESCAPE_PATTERN, '')
66
+ .replace(/\[999D\[J/g, '')
67
+ .replace(/\[\?25[hl]/g, '')
68
+ .split('\n')
69
+ .filter((line) => line.trim() && !/^(│|├|╮|╯|●|◇|◒|◐|◓|◑|■)/.test(line.trim()))
70
+ .join('\n')
71
+ .trim();
72
+ if (cleaned) {
73
+ console.error(` ${cleaned.split('\n').join('\n ')}`);
74
+ }
75
+ }
60
76
  return 'failed';
61
77
  }
62
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpamis/comet",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "OpenSpec + Superpowers dual-star development workflow",
5
5
  "keywords": [
6
6
  "comet",
@@ -1,44 +1,44 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Postinstall script that hints about comet init.
5
- *
6
- * The tip is suppressed when:
7
- * - CI=true environment variable is set
8
- * - COMET_NO_HINTS=1 environment variable is set
9
- * - dist/ directory doesn't exist (dev setup scenario)
10
- */
11
-
12
- import { promises as fs } from 'fs';
13
- import path from 'path';
14
- import { fileURLToPath } from 'url';
15
-
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = path.dirname(__filename);
18
-
19
- function shouldSkip() {
20
- if (process.env.CI === 'true' || process.env.CI === '1') return true;
21
- if (process.env.COMET_NO_HINTS === '1') return true;
22
- return false;
23
- }
24
-
25
- async function distExists() {
26
- try {
27
- const stat = await fs.stat(path.join(__dirname, '..', 'dist'));
28
- return stat.isDirectory();
29
- } catch {
30
- return false;
31
- }
32
- }
33
-
34
- async function main() {
35
- try {
36
- if (shouldSkip()) return;
37
- if (!(await distExists())) return;
38
- console.log(`\nTip: Run 'comet init' to set up Comet workflow in your project`);
39
- } catch {
40
- // Never break npm install
41
- }
42
- }
43
-
44
- main().catch(() => process.exit(0));
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Postinstall script that hints about comet init.
5
+ *
6
+ * The tip is suppressed when:
7
+ * - CI=true environment variable is set
8
+ * - COMET_NO_HINTS=1 environment variable is set
9
+ * - dist/ directory doesn't exist (dev setup scenario)
10
+ */
11
+
12
+ import { promises as fs } from 'fs';
13
+ import path from 'path';
14
+ import { fileURLToPath } from 'url';
15
+
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = path.dirname(__filename);
18
+
19
+ function shouldSkip() {
20
+ if (process.env.CI === 'true' || process.env.CI === '1') return true;
21
+ if (process.env.COMET_NO_HINTS === '1') return true;
22
+ return false;
23
+ }
24
+
25
+ async function distExists() {
26
+ try {
27
+ const stat = await fs.stat(path.join(__dirname, '..', 'dist'));
28
+ return stat.isDirectory();
29
+ } catch {
30
+ return false;
31
+ }
32
+ }
33
+
34
+ async function main() {
35
+ try {
36
+ if (shouldSkip()) return;
37
+ if (!(await distExists())) return;
38
+ console.log(`\nTip: Run 'comet init' to set up Comet workflow in your project`);
39
+ } catch {
40
+ // Never break npm install
41
+ }
42
+ }
43
+
44
+ main().catch(() => process.exit(0));