@rpamis/comet 0.4.0-beta.4 → 0.4.0-beta.6

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 (199) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +11 -4
  3. package/assets/manifest.json +1 -1
  4. package/assets/skills/comet/SKILL.md +30 -28
  5. package/assets/skills/comet/reference/auto-transition.md +1 -1
  6. package/assets/skills/comet/reference/comet-yaml-fields.md +8 -4
  7. package/assets/skills/comet/reference/context-recovery.md +2 -2
  8. package/assets/skills/comet/reference/decision-point.md +11 -0
  9. package/assets/skills/comet/reference/subagent-dispatch.md +6 -5
  10. package/assets/skills/comet/rules/comet-phase-guard.en.md +23 -28
  11. package/assets/skills/comet/rules/comet-phase-guard.md +22 -28
  12. package/assets/skills/comet/scripts/comet-runtime.mjs +682 -309
  13. package/assets/skills/comet-any/SKILL.md +1 -1
  14. package/assets/skills/comet-any/reference/authored-zone-example.md +10 -5
  15. package/assets/skills/comet-any/reference/subagents/pause-points-author.md +14 -11
  16. package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +2 -0
  17. package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +5 -4
  18. package/assets/skills/comet-archive/SKILL.md +33 -13
  19. package/assets/skills/comet-build/SKILL.md +37 -29
  20. package/assets/skills/comet-design/SKILL.md +23 -22
  21. package/assets/skills/comet-hotfix/SKILL.md +46 -31
  22. package/assets/skills/comet-open/SKILL.md +97 -58
  23. package/assets/skills/comet-tweak/SKILL.md +34 -19
  24. package/assets/skills/comet-verify/SKILL.md +37 -59
  25. package/assets/skills-zh/comet/SKILL.md +30 -28
  26. package/assets/skills-zh/comet/reference/auto-transition.md +1 -1
  27. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +8 -4
  28. package/assets/skills-zh/comet/reference/context-recovery.md +2 -2
  29. package/assets/skills-zh/comet/reference/decision-point.md +11 -0
  30. package/assets/skills-zh/comet/reference/subagent-dispatch.md +6 -5
  31. package/assets/skills-zh/comet-any/SKILL.md +1 -1
  32. package/assets/skills-zh/comet-any/reference/authored-zone-example.md +10 -5
  33. package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +14 -12
  34. package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +2 -0
  35. package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +5 -4
  36. package/assets/skills-zh/comet-archive/SKILL.md +33 -13
  37. package/assets/skills-zh/comet-build/SKILL.md +37 -29
  38. package/assets/skills-zh/comet-design/SKILL.md +23 -22
  39. package/assets/skills-zh/comet-hotfix/SKILL.md +45 -30
  40. package/assets/skills-zh/comet-open/SKILL.md +96 -57
  41. package/assets/skills-zh/comet-tweak/SKILL.md +33 -18
  42. package/assets/skills-zh/comet-verify/SKILL.md +37 -59
  43. package/dist/app/commands/doctor.d.ts.map +1 -1
  44. package/dist/app/commands/doctor.js +62 -15
  45. package/dist/app/commands/doctor.js.map +1 -1
  46. package/dist/app/commands/init.d.ts +1 -1
  47. package/dist/app/commands/init.d.ts.map +1 -1
  48. package/dist/app/commands/init.js +58 -14
  49. package/dist/app/commands/init.js.map +1 -1
  50. package/dist/app/commands/status.d.ts +1 -0
  51. package/dist/app/commands/status.d.ts.map +1 -1
  52. package/dist/app/commands/status.js +10 -0
  53. package/dist/app/commands/status.js.map +1 -1
  54. package/dist/app/commands/uninstall.d.ts +3 -0
  55. package/dist/app/commands/uninstall.d.ts.map +1 -1
  56. package/dist/app/commands/uninstall.js +70 -36
  57. package/dist/app/commands/uninstall.js.map +1 -1
  58. package/dist/app/commands/update.d.ts.map +1 -1
  59. package/dist/app/commands/update.js +213 -34
  60. package/dist/app/commands/update.js.map +1 -1
  61. package/dist/domains/bundle/bundle-platform.d.ts +1 -0
  62. package/dist/domains/bundle/bundle-platform.d.ts.map +1 -1
  63. package/dist/domains/bundle/bundle-platform.js +6 -2
  64. package/dist/domains/bundle/bundle-platform.js.map +1 -1
  65. package/dist/domains/comet-classic/classic-branch-binding.d.ts +51 -0
  66. package/dist/domains/comet-classic/classic-branch-binding.d.ts.map +1 -0
  67. package/dist/domains/comet-classic/classic-branch-binding.js +107 -0
  68. package/dist/domains/comet-classic/classic-branch-binding.js.map +1 -0
  69. package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -1
  70. package/dist/domains/comet-classic/classic-current-change.js +37 -20
  71. package/dist/domains/comet-classic/classic-current-change.js.map +1 -1
  72. package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
  73. package/dist/domains/comet-classic/classic-guard.js +50 -16
  74. package/dist/domains/comet-classic/classic-guard.js.map +1 -1
  75. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
  76. package/dist/domains/comet-classic/classic-hook-guard.js +138 -21
  77. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
  78. package/dist/domains/comet-classic/classic-resolver.js +1 -1
  79. package/dist/domains/comet-classic/classic-resolver.js.map +1 -1
  80. package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -1
  81. package/dist/domains/comet-classic/classic-state-command.js +113 -14
  82. package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
  83. package/dist/domains/comet-classic/classic-state-events.d.ts +1 -1
  84. package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -1
  85. package/dist/domains/comet-classic/classic-state.d.ts +4 -2
  86. package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
  87. package/dist/domains/comet-classic/classic-state.js +16 -1
  88. package/dist/domains/comet-classic/classic-state.js.map +1 -1
  89. package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -1
  90. package/dist/domains/comet-classic/classic-transitions.js +17 -2
  91. package/dist/domains/comet-classic/classic-transitions.js.map +1 -1
  92. package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -1
  93. package/dist/domains/comet-classic/classic-validate-command.js +13 -1
  94. package/dist/domains/comet-classic/classic-validate-command.js.map +1 -1
  95. package/dist/domains/dashboard/web/assets/_commonjsHelpers-CqkleIqs.js +1 -0
  96. package/dist/domains/dashboard/web/assets/arc-TGVUG2WN.js +1 -0
  97. package/dist/domains/dashboard/web/assets/architectureDiagram-3BPJPVTR-ASHmiHoP.js +36 -0
  98. package/dist/domains/dashboard/web/assets/blockDiagram-GPEHLZMM-CwASxBKe.js +132 -0
  99. package/dist/domains/dashboard/web/assets/c4Diagram-AAUBKEIU-BU8z_WNk.js +10 -0
  100. package/dist/domains/dashboard/web/assets/channel-kp6Ng2JJ.js +1 -0
  101. package/dist/domains/dashboard/web/assets/chunk-2J33WTMH-CBGlUx4_.js +1 -0
  102. package/dist/domains/dashboard/web/assets/chunk-4BX2VUAB-CS-iGcFz.js +1 -0
  103. package/dist/domains/dashboard/web/assets/chunk-55IACEB6-BUtCVJat.js +1 -0
  104. package/dist/domains/dashboard/web/assets/chunk-727SXJPM-C94tj_pf.js +206 -0
  105. package/dist/domains/dashboard/web/assets/chunk-AQP2D5EJ-BFOKcpdG.js +231 -0
  106. package/dist/domains/dashboard/web/assets/chunk-FMBD7UC4-Dmx8B-st.js +15 -0
  107. package/dist/domains/dashboard/web/assets/chunk-ND2GUHAM-DYV00CNn.js +1 -0
  108. package/dist/domains/dashboard/web/assets/chunk-QZHKN3VN-DMJJyQnw.js +1 -0
  109. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-yBDjgMY_.js +1 -0
  110. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-yBDjgMY_.js +1 -0
  111. package/dist/domains/dashboard/web/assets/cose-bilkent-S5V4N54A-P4nE2rea.js +1 -0
  112. package/dist/domains/dashboard/web/assets/cynefin-VYW2F7L2-C-R1HXDv.js +166 -0
  113. package/dist/domains/dashboard/web/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
  114. package/dist/domains/dashboard/web/assets/dagre-BM42HDAG-BH8d-C9z.js +4 -0
  115. package/dist/domains/dashboard/web/assets/defaultLocale-DX6XiGOO.js +1 -0
  116. package/dist/domains/dashboard/web/assets/diagram-2AECGRRQ-DpXTgQIH.js +43 -0
  117. package/dist/domains/dashboard/web/assets/diagram-5GNKFQAL-DSiFJzSw.js +10 -0
  118. package/dist/domains/dashboard/web/assets/diagram-KO2AKTUF-DULMkben.js +3 -0
  119. package/dist/domains/dashboard/web/assets/diagram-LMA3HP47-Pi8m_NO9.js +24 -0
  120. package/dist/domains/dashboard/web/assets/diagram-OG6HWLK6-BSe6bCWm.js +24 -0
  121. package/dist/domains/dashboard/web/assets/erDiagram-TEJ5UH35-zb-FEcbq.js +85 -0
  122. package/dist/domains/dashboard/web/assets/flowDiagram-I6XJVG4X-Dr-Gk0z2.js +162 -0
  123. package/dist/domains/dashboard/web/assets/ganttDiagram-6RSMTGT7-qs6Zb2A6.js +292 -0
  124. package/dist/domains/dashboard/web/assets/gitGraphDiagram-PVQCEYII-BQ314orT.js +106 -0
  125. package/dist/domains/dashboard/web/assets/graph--OzhPTMs.js +1 -0
  126. package/dist/domains/dashboard/web/assets/index-BLAfkNTu.css +1 -0
  127. package/dist/domains/dashboard/web/assets/index-DlSYK56b.js +139 -0
  128. package/dist/domains/dashboard/web/assets/index-DtLUOcAW.js +24 -0
  129. package/dist/domains/dashboard/web/assets/index-QO0z6F4w.js +10 -0
  130. package/dist/domains/dashboard/web/assets/infoDiagram-5YYISTIA-O0bQp98A.js +2 -0
  131. package/dist/domains/dashboard/web/assets/init-Gi6I4Gst.js +1 -0
  132. package/dist/domains/dashboard/web/assets/ishikawaDiagram-YF4QCWOH-BPC7wbKh.js +70 -0
  133. package/dist/domains/dashboard/web/assets/journeyDiagram-JHISSGLW-ohViOd4b.js +139 -0
  134. package/dist/domains/dashboard/web/assets/kanban-definition-UN3LZRKU-CHleNdbG.js +89 -0
  135. package/dist/domains/dashboard/web/assets/katex-HP8lGamR.js +257 -0
  136. package/dist/domains/dashboard/web/assets/layout-SsrduOYp.js +1 -0
  137. package/dist/domains/dashboard/web/assets/linear-CyqiW--Q.js +1 -0
  138. package/dist/domains/dashboard/web/assets/marked.esm-DECB3bxB.js +64 -0
  139. package/dist/domains/dashboard/web/assets/mermaid.core-qS9XvtaK.js +301 -0
  140. package/dist/domains/dashboard/web/assets/mindmap-definition-RKZ34NQL-oaGkqO9l.js +96 -0
  141. package/dist/domains/dashboard/web/assets/ordinal-Cboi1Yqb.js +1 -0
  142. package/dist/domains/dashboard/web/assets/pieDiagram-4H26LBE5-CPcB-AFh.js +30 -0
  143. package/dist/domains/dashboard/web/assets/purify.es-VaSPOPhr.js +3 -0
  144. package/dist/domains/dashboard/web/assets/quadrantDiagram-W4KKPZXB-LFy52Qtj.js +7 -0
  145. package/dist/domains/dashboard/web/assets/requirementDiagram-4Y6WPE33-BdjeaYP_.js +84 -0
  146. package/dist/domains/dashboard/web/assets/sankeyDiagram-5OEKKPKP-DDJ4styL.js +40 -0
  147. package/dist/domains/dashboard/web/assets/sequenceDiagram-3UESZ5HK-BL5bFNoz.js +162 -0
  148. package/dist/domains/dashboard/web/assets/stateDiagram-AJRCARHV-BNUfikui.js +1 -0
  149. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-DGrsmWts.js +1 -0
  150. package/dist/domains/dashboard/web/assets/timeline-definition-PNZ67QCA--ps2uu6L.js +120 -0
  151. package/dist/domains/dashboard/web/assets/vennDiagram-CIIHVFJN-C2q8q26c.js +34 -0
  152. package/dist/domains/dashboard/web/assets/wardleyDiagram-YWT4CUSO-BUH9gXqd.js +78 -0
  153. package/dist/domains/dashboard/web/assets/xychartDiagram-2RQKCTM6-B-DielEy.js +7 -0
  154. package/dist/domains/dashboard/web/index.html +16 -16
  155. package/dist/domains/factory/package.d.ts.map +1 -1
  156. package/dist/domains/factory/package.js +20 -6
  157. package/dist/domains/factory/package.js.map +1 -1
  158. package/dist/domains/integrations/openspec.d.ts +4 -1
  159. package/dist/domains/integrations/openspec.d.ts.map +1 -1
  160. package/dist/domains/integrations/openspec.js +56 -4
  161. package/dist/domains/integrations/openspec.js.map +1 -1
  162. package/dist/domains/skill/find.d.ts.map +1 -1
  163. package/dist/domains/skill/find.js +7 -1
  164. package/dist/domains/skill/find.js.map +1 -1
  165. package/dist/domains/skill/json-object.d.ts +13 -0
  166. package/dist/domains/skill/json-object.d.ts.map +1 -0
  167. package/dist/domains/skill/json-object.js +24 -0
  168. package/dist/domains/skill/json-object.js.map +1 -0
  169. package/dist/domains/skill/platform-inspect.d.ts +9 -0
  170. package/dist/domains/skill/platform-inspect.d.ts.map +1 -0
  171. package/dist/domains/skill/platform-inspect.js +149 -0
  172. package/dist/domains/skill/platform-inspect.js.map +1 -0
  173. package/dist/domains/skill/platform-install.d.ts +16 -6
  174. package/dist/domains/skill/platform-install.d.ts.map +1 -1
  175. package/dist/domains/skill/platform-install.js +277 -144
  176. package/dist/domains/skill/platform-install.js.map +1 -1
  177. package/dist/domains/skill/uninstall.d.ts.map +1 -1
  178. package/dist/domains/skill/uninstall.js +204 -141
  179. package/dist/domains/skill/uninstall.js.map +1 -1
  180. package/dist/platform/fs/file-system.d.ts +3 -3
  181. package/dist/platform/fs/file-system.d.ts.map +1 -1
  182. package/dist/platform/fs/file-system.js +21 -11
  183. package/dist/platform/fs/file-system.js.map +1 -1
  184. package/dist/platform/install/platforms.d.ts +4 -0
  185. package/dist/platform/install/platforms.d.ts.map +1 -1
  186. package/dist/platform/install/platforms.js +2 -0
  187. package/dist/platform/install/platforms.js.map +1 -1
  188. package/dist/platform/install/project-registry.d.ts +1 -0
  189. package/dist/platform/install/project-registry.d.ts.map +1 -1
  190. package/dist/platform/install/project-registry.js +9 -1
  191. package/dist/platform/install/project-registry.js.map +1 -1
  192. package/dist/platform/install/skill-root-owner.d.ts +15 -0
  193. package/dist/platform/install/skill-root-owner.d.ts.map +1 -0
  194. package/dist/platform/install/skill-root-owner.js +68 -0
  195. package/dist/platform/install/skill-root-owner.js.map +1 -0
  196. package/package.json +6 -1
  197. package/dist/domains/dashboard/web/assets/index-CIvN-PL8.js +0 -22
  198. package/dist/domains/dashboard/web/assets/index-DcyRPBnT.css +0 -1
  199. package/eval/.env +0 -28
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-tweak
3
- description: "Use when 用户要进行可收敛为单一 OpenSpec change 的轻量或中等变更,且不需要完整设计;也用于恢复 tweak workflow。"
3
+ description: "仅在用户明确调用 /comet-tweak,或由 Comet Skill/runtime 路由到 tweak preset 时使用;处理可收敛为单一 OpenSpec change 的轻量或中等变更。"
4
4
  ---
5
5
 
6
6
  # Comet 预设路径:Tweak
@@ -23,7 +23,7 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
23
23
 
24
24
  ### 0. 输出语言约束
25
25
 
26
- 精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml` 尚不存在时依次读取项目 `.comet/config.yaml` 和全局 `~/.comet/config.yaml` 的 `language`,初始化后使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取。
26
+ 精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml` 尚不存在时依次读取项目 `.comet/config.yaml` 和全局 `~/.comet/config.yaml` 的 `language`,初始化后使用 `comet state get <name> language` 读取。
27
27
 
28
28
  执行链路:open → OpenSpec apply → verify → archive。Tweak 为每个阶段提供默认决策:精简开启、通过 OpenSpec apply 直接构建、按规模与 delta spec 判定验证轻重、验证通过后进入归档前最终确认。
29
29
 
@@ -46,24 +46,39 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
46
46
  初始化 Comet 状态文件:
47
47
 
48
48
  ```bash
49
- node "$COMET_STATE" init <name> tweak
49
+ comet state init <name> tweak
50
+ comet state select <name>
50
51
  ```
51
52
 
52
53
  初始化后验证状态:
53
54
 
54
55
  ```bash
55
- node "$COMET_STATE" check <name> open
56
+ comet state check <name> open
57
+ ```
58
+
59
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
60
+
61
+ 入口工作区隔离是用户决策点,不再把 `current` 当作默认隔离模式写入。按 `comet/reference/decision-point.md` 暂停让用户单选:
62
+
63
+ - A. 当前分支直接工作:运行 `comet state set <name> isolation current`,如实绑定当前分支
64
+ - B. 创建分支:先创建并切换到 `tweak/YYYYMMDD/<change-name>`,再运行 `comet state set <name> isolation branch`
65
+ - C. 创建 worktree:必须先使用 Skill 工具加载 Superpowers `using-git-worktrees` 技能,由该技能创建隔离工作区;进入 worktree 后运行 `comet state set <name> isolation worktree`
66
+
67
+ B/C 完成后,必须在实际执行分支或 worktree 中重新运行:
68
+
69
+ ```bash
70
+ comet state select <name>
56
71
  ```
57
72
 
58
73
  阶段守卫完成 open → build 过渡:
59
74
 
60
75
  ```bash
61
- node "$COMET_GUARD" <change-name> open --apply
76
+ comet guard <change-name> open --apply
62
77
  ```
63
78
 
64
79
  ### 2. OpenSpec apply 构建(tweak 专用预设 build)
65
80
 
66
- 使用 tweak 默认值:`build_mode: direct`。跳过 Superpowers `brainstorming` 和 `writing-plans`,改由 OpenSpec 的 apply action 执行当前 change 的 tasks。
81
+ 使用 tweak 默认值:`build_mode: direct`。`isolation` 必须沿用 Step 1 中用户已确认的入口工作区隔离方式,不得自行改回 `current`。跳过 Superpowers `brainstorming` 和 `writing-plans`,改由 OpenSpec 的 apply action 执行当前 change 的 tasks。
67
82
 
68
83
  <IMPORTANT>
69
84
  这条 apply 路径只属于 tweak。完整 `/comet` 或 `workflow: full` 不得套用 tweak 的 `openspec-apply-change` 构建路径;full 仍必须先通过 `/comet-design` 生成 Design Doc,再由 `/comet-build` 通过 Superpowers `writing-plans`、执行方式选择和对应执行技能完成构建。
@@ -96,7 +111,7 @@ node "$COMET_GUARD" <change-name> open --apply
96
111
  运行阶段守卫完成 build → verify 过渡:
97
112
 
98
113
  ```bash
99
- node "$COMET_GUARD" <change-name> build --apply
114
+ comet guard <change-name> build --apply
100
115
  ```
101
116
 
102
117
  状态文件自动更新为 `phase: verify`、`verify_result: pending`,然后进入验证。
@@ -110,10 +125,10 @@ node "$COMET_GUARD" <change-name> build --apply
110
125
  **带 delta spec 的验证分流**:tweak 接受 delta spec 作为正常产物。若本次 change 创建了 delta spec,进入 comet-verify 前显式设置完整验证模式,走 OpenSpec 原生验证(`openspec-verify-change`)以覆盖 delta spec 一致性:
111
126
 
112
127
  ```bash
113
- node "$COMET_STATE" set <change-name> verify_mode full
128
+ comet state set <change-name> verify_mode full
114
129
  ```
115
130
 
116
- 无 delta spec 的 tweak 通常满足轻量验证条件(≤ 3 tasks、改动文件数低于 scale 阈值),由 comet-verify 的规模评估选择轻量验证路径(6 项快速检查)。若用户希望增加审查,可在验证前运行 `node "$COMET_STATE" set <name> review_mode standard` 或 `thorough`。
131
+ 无 delta spec 的 tweak 通常满足轻量验证条件(≤ 3 tasks、改动文件数低于 scale 阈值),由 comet-verify 的规模评估选择轻量验证路径(6 项快速检查)。若用户希望增加审查,可在验证前运行 `comet state set <name> review_mode standard` 或 `thorough`。
117
132
 
118
133
  验证通过后,按 `/comet-verify` 的规则将 `.comet.yaml` 的 `verify_result` 记录为 `pass`,归档前不得跳过该状态。验证通过后仍必须进入 `/comet-archive` 的归档前最终确认,不得自动运行归档脚本。
119
134
 
@@ -128,11 +143,11 @@ node "$COMET_STATE" set <change-name> verify_mode full
128
143
  ## 连续执行模式
129
144
 
130
145
  <IMPORTANT>
131
- Tweak 流程默认 **一次性连续执行**。调用 `/comet-tweak` 后,agent 在 tweak 自有步骤间自动推进,不主动停顿。**例外**:若 `auto_transition: false`,则在每个 phase 边界(build/verify/archive 之间)停下,由用户手动运行下一阶段命令——此时连续执行降级为逐阶段手动推进,详见下方「自动衔接下一阶段」。但无论 `auto_transition` 取何值,以下情况都必须暂停等待用户确认:
146
+ Tweak 流程默认 **一次性连续执行**。调用 `/comet-tweak` 后,agent 在 tweak 自有步骤间自动推进,不主动停顿。**例外**:若 `auto_transition: false`,则在每个 phase 边界(build/verify/archive 之间)结束当前调用并按 `HINT` 交还控制权,由用户稍后手动运行下一阶段命令;这是手动衔接,不是新的确认点。无论 `auto_transition` 取何值,以下真正的用户决策仍需暂停:
132
147
 
133
148
  1. 遇到升级判定信号(见「升级判定」章节),**必须使用当前平台可用的用户输入/确认机制暂停并等待用户明确选择**:继续 tweak 轻量流程,还是升级为完整 `/comet` 流程
134
- 2. 验证阶段(comet-verify)的验证失败决策和分支处理决策
135
- 3. 归档前最终确认(comet-archive 执行归档脚本前)
149
+ 2. 验证阶段(comet-verify)接受 WARNING/SUGGESTION 偏差、处理 Spec 漂移或超过自动修复上限后的策略决策;前 3 次明确可修复失败自动闭环
150
+ 3. 归档前最终确认,以及归档提交后的分支处理决策
136
151
 
137
152
  执行顺序:快速开启 → 构建(含升级判定检查)→ 验证 → 归档 → 完成
138
153
 
@@ -143,7 +158,7 @@ Tweak 流程默认 **一次性连续执行**。调用 `/comet-tweak` 后,agent
143
158
 
144
159
  ## 升级判定
145
160
 
146
- tweak 的升级判定只决定是否从轻量预设转为 full;delta spec 本身不是升级理由,文件数不自动升级,`comet-state scale` 只决定验证轻重。
161
+ tweak 的升级判定只决定是否从轻量预设转为 full;delta spec 本身不是升级理由,文件数不自动升级,`comet state scale` 只决定验证轻重。
147
162
 
148
163
  若由 `/comet` 入口传入 intent frame,tweak 在 build 前只复核 `risk_signal` 和升级信号:新增 capability、public API、schema 变更、跨模块协调或深层架构问题。命中时进入现有升级决策点;delta spec 仍是 tweak 的正常产物,不因存在 delta spec 自动升级;不得重新实现入口意图识别。
149
164
 
@@ -156,10 +171,10 @@ tweak 的升级判定只决定是否从轻量预设转为 full;delta spec 本
156
171
  用户选择升级(选项 B)后,使用状态机合法的升级通道,单条命令完成预设流程 → full 转换并回退到 design 阶段:
157
172
 
158
173
  ```bash
159
- node "$COMET_STATE" transition <name> preset-escalate
174
+ comet state transition <name> preset-escalate
160
175
  ```
161
176
 
162
- 该命令原子地把 `workflow`/`classic_profile` 置为 `full`、`phase` 回退到 `design`、清空 `design_doc`(满足 comet-design 入口要求)。然后在当前 change 基础上补充 Design Doc:**立即使用 Skill 工具加载 `comet-design` skill**,后续正常走完整流程。
177
+ 该命令原子地把 `workflow`/`classic_profile` 置为 `full`、`phase` 回退到 `design`、清空 `design_doc`,并清除预设专属的 `build_mode`、`tdd_mode`、`review_mode`、`isolation` `verify_mode`。然后在当前 change 基础上补充 Design Doc:**立即使用 Skill 工具加载 `comet-design` skill**;进入 build 后必须重新进行一次完整的联合工作方式选择。
163
178
 
164
179
  用户选择继续(选项 A)时,继续 tweak 流程,并记录用户确认继续的原因。
165
180
 
@@ -170,16 +185,16 @@ node "$COMET_STATE" transition <name> preset-escalate
170
185
  - 变更已完成,测试通过
171
186
  - change 已归档
172
187
  - 如有 spec 变更,已同步到 main spec
173
- - **阶段守卫**:build → verify 前运行 `node "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `node "$COMET_GUARD" <change-name> verify --apply`
188
+ - **阶段守卫**:build → verify 前运行 `comet guard <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `comet guard <change-name> verify --apply`
174
189
 
175
190
  ## 自动衔接下一阶段
176
191
 
177
192
  按 `comet/reference/auto-transition.md` 执行。关键命令:
178
193
 
179
194
  ```bash
180
- node "$COMET_STATE" next <name>
195
+ comet state next <name>
181
196
  ```
182
197
 
183
198
  - `NEXT: auto` → 调用 `SKILL` 指向的 skill 继续 tweak 流程(`phase: build` 返回 `comet-tweak`,`verify` 返回 `comet-verify`,`archive` 返回 `comet-archive`)
184
- - `NEXT: manual` → 不要调用下一 skill,按 `HINT` 提示用户手动运行 `/<SKILL>`
199
+ - `NEXT: manual` → 不调用下一 skill,按 `HINT` 交还控制权并结束当前调用;不再创建确认点
185
200
  - `NEXT: done` → 流程已完成,无需继续
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: comet-verify
3
- description: "Use when Comet change 已完成 build 阶段,需要验证实现、处理验证失败决策或完成分支收尾。"
3
+ description: "仅在用户明确调用 /comet-verify,或由 Comet Skill/runtime 路由到 verify 阶段时使用;验证 Comet change、记录证据并处理修复循环。"
4
4
  ---
5
5
 
6
- # Comet 阶段 4:验证与收尾(Verify)
6
+ # Comet 阶段 4:验证(Verify)
7
7
 
8
8
  ## 前置条件
9
9
 
@@ -14,7 +14,7 @@ description: "Use when Comet change 已完成 build 阶段,需要验证实现
14
14
 
15
15
  ### 0a. 输出语言约束
16
16
 
17
- 验证报告和分支处理说明必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
17
+ 验证报告必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
18
18
 
19
19
  ### 0b. 入口状态验证(Entry Check)
20
20
 
@@ -27,7 +27,9 @@ comet state check <change-name> verify
27
27
 
28
28
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
29
29
 
30
- **幂等性**:verify 阶段所有检查可安全重复执行。如 `verify_result` 已为 `pass` `branch_status` 已为 `handled`,说明验证已完成,直接执行 guard 流转。如 `verify_result` `pending`,从头开始验证。
30
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
31
+
32
+ **幂等性**:verify 阶段所有检查可安全重复执行。如 `verify_result` 已为 `pass`,说明验证已完成并应进入 archive;`branch_status` 在归档提交和最终分支处理完成前保持 `pending`。如 `verify_result` 为 `pending`,从头开始验证。
31
33
 
32
34
  ### 1. 改动规模评估
33
35
 
@@ -41,27 +43,26 @@ comet state scale <change-name>
41
43
 
42
44
  验证开始前,按 `comet/reference/dirty-worktree.md` 协议检查并处理未提交改动。verify 阶段的特殊处理:
43
45
 
44
- 1. 若 dirty diff 属于当前 change 且涉及实现、测试、tasks、delta spec 或 design doc 变更,不在 verify 阶段直接修复或提交;报告失败项并进入 Step 1b 的验证失败决策阻塞点
45
- 2. 若 dirty diff 只是 verify 本阶段产物(例如验证报告草稿、分支处理记录),可继续在 verify 阶段完成并记录状态
46
- 3. 若 dirty diff 已实现但 tasks.md 未勾选,视为 build 状态滞后;报告失败项并进入 Step 1b,由用户决定回退修复或接受偏差
46
+ 1. 若 dirty diff 明确属于当前 change,它就是本次验证输入;继续验证,但不在 verify 阶段修改或提交实现、测试、tasks、delta spec 或 Design Doc
47
+ 2. 若 dirty diff 只是 verify 本阶段产物(例如验证报告草稿),可继续在 verify 阶段完成并记录状态
48
+ 3. 若 dirty diff 显示实现已存在但 tasks.md 未勾选,视为 build 状态滞后;这是只有一个合法下一步的自动处理,运行 `verify-fail` 返回 build 核对证据并更新任务状态,不得询问是否接受未完成任务
49
+ 4. 若 dirty diff 无法归因或属于其他 change,按 dirty-worktree 协议报告停止条件;不要把归因失败伪装成“继续/忽略”决策
47
50
 
48
- 用户选择修复后,才允许回退到 build 阶段:
51
+ 需要回到 build 修复或补齐状态时运行:
49
52
 
50
53
  ```bash
51
- # 仅在用户确认修复后执行
52
54
  comet state transition <change-name> verify-fail
53
55
  ```
54
56
 
55
- 注意:verify-fail 回退到 build 时 `branch_status` 不会被重置。如果首次 verify 已完成分支处理,修复后再次进入 verify 时跳过已完成的分支处理步骤,直接使用 `comet state set <change-name> branch_status handled` 保留原有分支处理结果。
56
-
57
57
  注意:如果 build 阶段每个任务都已提交,脚本基于工作区 diff 的文件数可能低估改动规模。此时必须读取 plan 文件头的 `base-ref` 并用提交区间复核:
58
58
 
59
59
  ```bash
60
- PLAN=$(comet state get <change-name> plan)
61
- BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref: *//')
62
- git diff --stat "$BASE_REF"...HEAD
60
+ comet state get <change-name> plan
61
+ git diff --stat <从 plan frontmatter 读取的 base-ref>...HEAD
63
62
  ```
64
63
 
64
+ 第一条命令返回 plan 路径;使用当前平台的文件读取能力解析其 frontmatter 中唯一的 `base-ref`,确认它是有效提交后再代入第二条命令。不得依赖 POSIX 文本管道。
65
+
65
66
  若提交区间显示改动超过轻量阈值(> 8 个文件、跨模块协调、或 delta spec 超过 1 个 capability),手动设置为完整验证:
66
67
 
67
68
  ```bash
@@ -70,33 +71,34 @@ comet state set <change-name> verify_mode full
70
71
 
71
72
  **覆盖机制**:如 agent 或用户认为自动评估结果不合适,可随时通过 `comet state set <change-name> verify_mode <light|full>` 手动覆盖。
72
73
 
73
- ### 1b. 验证失败决策(阻塞点)
74
+ ### 1b. 验证失败自动修复与例外决策
74
75
 
75
- 验证不通过时**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户决定修复或接受偏差**。不得自动运行 `comet state transition <change-name> verify-fail`,也不得自动调用 `/comet-build`。
76
+ 先运行 `comet state get <change-name> verify_failures` 读取已持久化的连续失败次数。前 3 次可修复失败自动回到 build:报告失败项后运行 `comet state transition <change-name> verify-fail`,再调用 `/comet-build` 修复,不需要用户确认。
76
77
 
77
- 暂停时必须列出:
78
+ 报告必须列出:
78
79
  - 失败项
79
80
  - 是否属于 CRITICAL 或 IMPORTANT(构建失败、测试失败、安全问题、核心验收场景失败、简化代码审查发现的正确性/安全/边界问题)
80
81
  - 推荐处理方式
81
82
 
82
- **不确定性原则**:无法确定严重程度时,降级处理(SUGGESTION > WARNING > CRITICAL)。仅对构建失败、测试失败、安全问题使用 CRITICAL;模糊或不确定的问题标为 WARNING 或 SUGGESTION。
83
+ **不确定性原则**:无法确定严重程度时使用较低级别。仅对构建失败、测试失败、安全问题使用 CRITICAL;明确影响核心验收或正确性的项使用 IMPORTANT;模糊或不确定的问题标为 WARNING 或 SUGGESTION。
83
84
 
84
- 用户选择后按以下方式继续:
85
- - **全部修复**:运行 `comet state transition <change-name> verify-fail`,然后调用 `/comet-build` 修复
86
- - **逐项处理**:CRITICAL 或 IMPORTANT 失败项必须修复;WARNING/SUGGESTION 失败项可选择接受偏差,但必须在验证报告中记录接受原因和影响范围。若存在任何 CRITICAL 或 IMPORTANT 失败项,不允许跳过修复直接全部接受
85
+ 按以下方式处理:
86
+ - **CRITICAL/IMPORTANT 或范围内可明确修复的问题**:未达到上限时自动回到 build 修复;不得创建“是否修复”的伪决策,也不允许接受偏差
87
+ - **WARNING/SUGGESTION 且修复会引入行为、范围或风险取舍**:按 `comet/reference/decision-point.md` 让用户选择修复或接受偏差;接受时必须在验证报告中记录原因和影响范围
88
+ - **WARNING/SUGGESTION 且修复安全、局部、无取舍**:未达到上限时自动修复,不因级别较低而强制停顿
87
89
 
88
- **重试上限**:连续 3 verify-fail 循环后,第 4 次失败时代理不得自动选择继续修复;**必须使用当前平台可用的用户输入/确认机制暂停**,仅给出两个选项:「接受所有偏差并记录」或「继续修复」,由用户明确决定。
90
+ 只有接受 WARNING/SUGGESTION 偏差或第 4 次失败后的策略选择才是用户决策点。当前 `verify_failures >= 3` 时不得自动执行下一次 `verify-fail`;按协议只提供「继续修复」或「停止当前 workflow 并寻求外部决策」两个选项。用户选择继续后才记录下一次失败并回到 build。CRITICAL/IMPORTANT 始终不可豁免。
89
91
 
90
92
  ### 2. 产物上下文加载(Hash 按需读)
91
93
 
92
94
  验证需要读取 OpenSpec 产物时,先检查产物是否自 design 阶段以来发生变化:
93
95
 
94
96
  ```bash
95
- RECORDED_HASH=$(comet state get <change-name> handoff_hash)
96
- CURRENT_HASH=$(comet handoff <change-name> --hash-only 2>/dev/null || echo "")
97
+ comet state get <change-name> handoff_hash
98
+ comet handoff <change-name> --hash-only
97
99
  ```
98
100
 
99
- - `RECORDED_HASH` = `CURRENT_HASH` 且均非空且均非 `null`:OpenSpec 产物未变化,**tasks.md 无需重新读取全文**(用 `grep -c '\- \[ \]' tasks.md` 确认完成数即可)。proposal.md、design.md、delta spec 仍需读取用于对照检查。
101
+ - 分别读取两条命令的标准输出;若记录值与当前值相等,且均非空、非 `null`:OpenSpec 产物未变化,**tasks.md 无需重新读取全文**(解析复选框确认无未完成项即可)。proposal.md、design.md、delta spec 仍需读取用于对照检查。
100
102
  - 若 `RECORDED_HASH` 为空、为 `null`、或与 `CURRENT_HASH` 不一致:产物已变化或 hash 未记录,正常读取所有所需文件全文。
101
103
 
102
104
  此优化仅跳过 tasks.md 的重复全文读取。proposal.md 和 design.md 包含验证检查项所需的完整上下文,不得因 hash 匹配而跳过。
@@ -124,16 +126,15 @@ comet state record-check <change-name> verify --command "<实际运行的验证
124
126
 
125
127
  `--command` 只记录命令文本,Comet **绝不会执行该文本**。verify 与 build 证据彼此独立,不能互相替代;即使兼容流程使用 `COMET_SKIP_BUILD=1`,也不能把该绕过标记视为可审计的验证或构建证据。
126
128
 
127
- 简化代码审查的输入应限定为本次改动 diff、tasks.md 和必要的测试结果;审查范围只覆盖实现正确性、安全风险和边界条件,不执行 spec 覆盖率、Design Doc 一致性或漂移检查。若审查发现 CRITICAL 或 IMPORTANT 问题,按验证失败处理并进入 Step 1b。`review_mode: off` 只跳过自动 code review,不跳过构建、测试、安全检查或异常调试协议。
129
+ 简化代码审查的输入应限定为本次改动 diff、tasks.md 和必要的测试结果;审查范围只覆盖实现正确性、安全风险和边界条件,不执行 spec 覆盖率、Design Doc 一致性或漂移检查。若审查发现 CRITICAL 或 IMPORTANT 问题,按 Step 1b 的自动修复/重试规则处理。`review_mode: off` 只跳过自动 code review,不跳过构建、测试、安全检查或异常调试协议。
128
130
 
129
131
  **与 build 阶段审查的去重**:若 build 阶段(`executing-plans` 或 `subagent-driven-development`)已按 `review_mode` 对同一 diff 完成最终代码审查,verify 的这次轻量审查聚焦「实现是否符合 spec/tasks 的正确性」与「build 之后新增的改动」,不重复评审 build 已审过且未变化的 diff。
130
132
 
131
133
  **通过标准**:6 项全部 OK,无 CRITICAL 或 IMPORTANT 问题。
132
134
 
133
- **不通过时**:报告失败项,进入 Step 1b 的验证失败决策阻塞点。用户选择修复后,才执行以下命令记录失败并回退到 build 阶段,然后调用 `/comet-build` 修复:
135
+ **不通过时**:报告失败项并按 Step 1b 分类。未达到自动修复上限且问题必须或适合修复时,直接执行以下命令回到 build 阶段,然后调用 `/comet-build`:
134
136
 
135
137
  ```bash
136
- # 仅在用户确认修复后执行
137
138
  comet state transition <change-name> verify-fail
138
139
  ```
139
140
 
@@ -160,10 +161,9 @@ comet state transition <change-name> verify-fail
160
161
  6. delta spec 与 design doc 无矛盾(若 Build 阶段有增量修改 spec,检查 design doc 是否有对应记录)
161
162
  7. `docs/superpowers/specs/` 关联的设计文档可定位(文件存在且与当前 change 相关)
162
163
 
163
- 验证不通过时:报告缺失项,进入 Step 1b 的验证失败决策阻塞点。用户选择修复后,才执行以下命令记录失败并回退到 build 阶段,然后调用 `/comet-build` 补充:
164
+ 验证不通过时:报告缺失项并按 Step 1b 分类。未达到自动修复上限且缺失项可在当前 change 内补齐时,直接执行以下命令回到 build 阶段,然后调用 `/comet-build`:
164
165
 
165
166
  ```bash
166
- # 仅在用户确认修复后执行
167
167
  comet state transition <change-name> verify-fail
168
168
  ```
169
169
 
@@ -173,46 +173,24 @@ comet state transition <change-name> verify-fail
173
173
  - 选项 B:用户选择 B 后,运行 `comet state transition <change-name> verify-fail`,然后调用 `/comet-build`;由 `/comet-build` 的 Spec 增量更新规则加载 Superpowers `brainstorming` 更新 Design Doc + delta spec
174
174
  - 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`)
175
175
 
176
- ### 3. 收尾(Superpowers)
177
-
178
- **立即执行:** 使用 Skill 工具加载 Superpowers `finishing-a-development-branch` 技能。禁止跳过此步骤。
179
-
180
- 如 Superpowers `finishing-a-development-branch` 技能不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。
181
-
182
- 技能加载后,按其指引收尾。分支处理选项:
183
- 1. 本地合并到主分支
184
- 2. 推送并创建 PR
185
- 3. 保持分支(稍后处理)
186
- 4. 丢弃工作
176
+ ### 3. 记录验证证据
187
177
 
188
- 这是用户决策点。**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户选择分支处理方式**,不得根据推荐、默认值或当前分支状态自行选择。只有在用户完成选择且对应操作完成后,才允许写入 `branch_status: handled`。
189
-
190
- **确认项**:
191
- - 全部测试通过
192
- - 无硬编码密钥或安全问题
193
-
194
- ### 4. 记录验证证据
195
-
196
- 验证报告必须落盘,并在 `.comet.yaml` 中记录;分支处理完成后也必须写入状态字段。不要手动设置 `verify_result: pass`,由阶段守卫 `--apply` 推进。
178
+ 验证报告必须落盘,并在 `.comet.yaml` 中记录。不要在 verify 阶段处理、合并或丢弃分支,也不要写入 `branch_status: handled`;归档会产生必须包含在最终提交中的 spec 和元数据改动,分支收尾统一由 `/comet-archive` 在归档提交后执行。不要手动设置 `verify_result: pass`,由阶段守卫 `--apply` 推进。
197
179
 
198
180
  ```bash
199
- mkdir -p docs/superpowers/reports
200
- # 将本次验证结论写入报告文件,例如:
201
- # docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
202
-
203
181
  comet state set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
204
- comet state set <change-name> branch_status handled
205
182
  ```
206
183
 
184
+ 使用当前平台的文件能力创建 `docs/superpowers/reports/` 和报告文件,不依赖 POSIX 专用目录命令。
185
+
207
186
  ## 退出条件
208
187
 
209
188
  - 验证报告通过
210
- - 分支已处理
211
189
  - `.comet.yaml` 中 `verification_report` 指向已存在的验证报告文件
212
- - `.comet.yaml` 中 `branch_status: handled`
190
+ - `.comet.yaml` 中 `branch_status` 仍为 `pending`
213
191
  - **阶段守卫**:运行 `comet guard <change-name> verify --apply`,全部 PASS 后由守卫通过 `comet state transition verify-pass` 推进到 `phase: archive`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
214
192
 
215
- 验证和分支处理均完成后,运行阶段守卫推进 phase(此步骤与 `auto_transition` 无关):
193
+ 验证证据完成后,运行阶段守卫推进 phase(此步骤与 `auto_transition` 无关):
216
194
 
217
195
  ```bash
218
196
  comet guard <change-name> verify --apply
@@ -233,7 +211,7 @@ comet state next <change-name>
233
211
  ```
234
212
 
235
213
  - `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
236
- - `NEXT: manual` → 不要调用下一 skill,按 `HINT` 提示用户手动运行 `/<SKILL>`
214
+ - `NEXT: manual` → 不调用下一 skill,按 `HINT` 交还控制权并结束当前调用;不再创建确认点
237
215
  - `NEXT: done` → 流程已完成,无需继续
238
216
 
239
217
  注意:无论 `NEXT` 为 `auto` 还是 `manual`,`comet-archive` 进入后必须先执行归档前最终确认阻塞点,等待用户明确选择「确认归档」后才允许运行归档脚本。不得因为验证已通过就自动归档。
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../app/commands/doctor.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAUpE,KAAK,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAwXzC,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../app/commands/doctor.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAUpE,KAAK,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAubzC,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -1,12 +1,12 @@
1
1
  import path from 'path';
2
2
  import os from 'os';
3
- import { execSync } from 'child_process';
4
3
  import { fileExists, readDir } from '../../platform/fs/file-system.js';
5
- import { isCommandAvailable } from '../../domains/integrations/openspec.js';
4
+ import { getOpenSpecVersion, isCommandAvailable, isOpenSpecVersionCompatible, MINIMUM_OPENSPEC_VERSION, } from '../../domains/integrations/openspec.js';
6
5
  import { hasCodegraphProjectIndex, resolveCodegraphCommand, } from '../../domains/integrations/codegraph.js';
7
6
  import { readManifest, getAssetsDir, getManagedSkillPaths, } from '../../domains/skill/platform-install.js';
8
- import { PLATFORMS, getPlatformSkillsDirs } from '../../platform/install/platforms.js';
9
- import { hasPlatformDetectionPath } from '../../platform/install/detect.js';
7
+ import { getPlatformRuleDestinations, inspectCometHooksForPlatform, } from '../../domains/skill/platform-inspect.js';
8
+ import { PLATFORMS, getPlatformSkillsDirs, } from '../../platform/install/platforms.js';
9
+ import { resolveCanonicalSkillRootOwners } from '../../platform/install/skill-root-owner.js';
10
10
  import { inspectClassicChange } from '../../domains/comet-classic/classic-diagnostics.js';
11
11
  import { getCurrentVersion } from '../../platform/version/version.js';
12
12
  const SUPERPOWERS_SENTINELS = [
@@ -29,15 +29,15 @@ async function checkOpenSpecCli() {
29
29
  message: 'not installed — install with: npm install -g @fission-ai/openspec@latest',
30
30
  };
31
31
  }
32
- try {
33
- const version = execSync('openspec --version', { stdio: 'pipe', timeout: 10_000 })
34
- .toString()
35
- .trim();
36
- return { check: 'openspec CLI', status: 'pass', message: `installed (${version})` };
37
- }
38
- catch {
39
- return { check: 'openspec CLI', status: 'pass', message: 'installed' };
32
+ const version = getOpenSpecVersion();
33
+ if (!version || !isOpenSpecVersionCompatible(version)) {
34
+ return {
35
+ check: 'openspec CLI',
36
+ status: 'warn',
37
+ message: `installed (${version || 'version unknown'}), but Comet requires >= ${MINIMUM_OPENSPEC_VERSION} — run: npm install -g @fission-ai/openspec@latest`,
38
+ };
40
39
  }
40
+ return { check: 'openspec CLI', status: 'pass', message: `installed (${version})` };
41
41
  }
42
42
  function checkEnvironment(projectPath, context) {
43
43
  return {
@@ -125,6 +125,51 @@ function getScopeBases(projectPath, scope, context) {
125
125
  }
126
126
  return bases;
127
127
  }
128
+ async function checkPlatformComponents(baseDir, platform, scope) {
129
+ const results = [];
130
+ const ruleDestinations = await getPlatformRuleDestinations(baseDir, platform, scope);
131
+ if (ruleDestinations.length > 0) {
132
+ let present = 0;
133
+ const inspectionErrors = [];
134
+ for (const destination of ruleDestinations) {
135
+ try {
136
+ if (await fileExists(destination))
137
+ present++;
138
+ }
139
+ catch (error) {
140
+ inspectionErrors.push(`${destination}: ${error.message}`);
141
+ }
142
+ }
143
+ results.push({
144
+ check: `rules: ${platform.name} (${scope})`,
145
+ status: inspectionErrors.length === 0 && present === ruleDestinations.length ? 'pass' : 'warn',
146
+ message: inspectionErrors.length > 0
147
+ ? `unable to inspect managed Rule (${inspectionErrors.join('; ')}) — run: comet update --scope ${scope}`
148
+ : present === ruleDestinations.length
149
+ ? `complete (${present} files)`
150
+ : `partial (${present}/${ruleDestinations.length} files) — run: comet update --scope ${scope}`,
151
+ });
152
+ }
153
+ if (platform.supportsHooks && platform.hookFormat) {
154
+ const inspection = await inspectCometHooksForPlatform(baseDir, platform, scope);
155
+ results.push({
156
+ check: `hooks: ${platform.name} (${scope})`,
157
+ status: inspection.present ? 'pass' : 'warn',
158
+ message: inspection.present
159
+ ? 'managed Hook present'
160
+ : `${inspection.error ?? 'managed Hook missing'} — run: comet update --scope ${scope}`,
161
+ });
162
+ }
163
+ return results;
164
+ }
165
+ async function getPlatformsForSkillInspection(baseDir, scope, doctorScope) {
166
+ return (await resolveCanonicalSkillRootOwners(baseDir, scope, {
167
+ respectDetectionPaths: doctorScope === 'auto',
168
+ })).map(({ platform, hasOwnershipEvidence, sharedCanonicalRoot }) => ({
169
+ platform,
170
+ inspectComponents: !sharedCanonicalRoot || hasOwnershipEvidence,
171
+ }));
172
+ }
128
173
  async function checkSkillCompleteness(projectPath, scope, context) {
129
174
  const results = [];
130
175
  const manifest = await readManifest();
@@ -136,9 +181,8 @@ async function checkSkillCompleteness(projectPath, scope, context) {
136
181
  global: { hasInstall: false, hasComplete: false },
137
182
  };
138
183
  for (const base of getScopeBases(projectPath, scope, context)) {
139
- for (const platform of PLATFORMS) {
140
- if (scope === 'auto' && !(await hasPlatformDetectionPath(base.baseDir, platform)))
141
- continue;
184
+ const platforms = await getPlatformsForSkillInspection(base.baseDir, base.scope, scope);
185
+ for (const { platform, inspectComponents } of platforms) {
142
186
  const skillsDirs = getPlatformSkillsDirs(platform, base.scope);
143
187
  const canonicalSkillsDir = skillsDirs[0];
144
188
  let detectedSkillsDir;
@@ -186,6 +230,9 @@ async function checkSkillCompleteness(projectPath, scope, context) {
186
230
  status: 'warn',
187
231
  message: `partial (${present.length}/${total} files; missing ${missing.length}) — run: comet update --scope ${base.scope}`,
188
232
  });
233
+ if (inspectComponents) {
234
+ results.push(...(await checkPlatformComponents(base.baseDir, platform, base.scope)));
235
+ }
189
236
  }
190
237
  }
191
238
  if (scope === 'auto' && !scopeState.project.hasInstall && scopeState.global.hasComplete) {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../app/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../app/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ type InitOptions = {
10
10
  language?: string;
11
11
  installMode?: InstallMode;
12
12
  };
13
- type ComponentAction = 'overwrite' | 'skip' | 'install';
13
+ type ComponentAction = 'overwrite' | 'skip' | 'install' | 'reuse';
14
14
  type BulkOverwriteChoice = 'overwrite-all' | 'skip-all' | 'choose';
15
15
  type ComponentPlan = {
16
16
  osAction: ComponentAction;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../app/commands/init.ts"],"names":[],"mappings":"AASA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAkBnE,OAAO,EAAK,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGnD,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAGF,KAAK,eAAe,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AACxD,KAAK,mBAAmB,GAAG,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC;AAUnE,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAkGF,iBAAS,wBAAwB,CAAC,CAAC,SAAS,aAAa,EACvD,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAC9C,WAAW,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD,CAAC,CAUH;AAyJD,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoR9F;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,YAAY,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../app/commands/init.ts"],"names":[],"mappings":"AASA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAkBnE,OAAO,EAAK,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGnD,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAGF,KAAK,eAAe,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAClE,KAAK,mBAAmB,GAAG,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC;AAUnE,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAkGF,iBAAS,wBAAwB,CAAC,CAAC,SAAS,aAAa,EACvD,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAC9C,WAAW,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD,CAAC,CAUH;AA8JD,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqU9F;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,YAAY,EAAE,cAAc,EAAE,CAAC"}