@rpamis/comet 0.3.9 → 0.4.0-beta.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.
Files changed (624) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +371 -222
  3. package/assets/manifest.json +33 -12
  4. package/assets/skills/comet/SKILL.md +87 -102
  5. package/assets/skills/comet/reference/auto-transition.md +1 -1
  6. package/assets/skills/comet/reference/comet-yaml-fields.md +11 -4
  7. package/assets/skills/comet/reference/context-recovery.md +12 -2
  8. package/assets/skills/comet/reference/debug-gate.md +17 -1
  9. package/assets/skills/comet/reference/decision-point.md +13 -2
  10. package/assets/skills/comet/reference/intent-frame.md +74 -0
  11. package/assets/skills/comet/reference/scripts.md +69 -0
  12. package/assets/skills/comet/reference/subagent-dispatch.md +79 -23
  13. package/assets/skills/comet/rules/comet-phase-guard.en.md +18 -10
  14. package/assets/skills/comet/rules/comet-phase-guard.md +17 -10
  15. package/assets/skills/comet/runtime/classic/checks.yaml +6 -0
  16. package/assets/skills/comet/runtime/classic/guardrails.yaml +13 -0
  17. package/assets/skills/comet/runtime/classic/skill.yaml +122 -0
  18. package/assets/skills/comet/scripts/comet-archive.mjs +3 -0
  19. package/assets/skills/comet/scripts/comet-env.mjs +15 -0
  20. package/assets/skills/comet/scripts/comet-guard.mjs +3 -0
  21. package/assets/skills/comet/scripts/comet-handoff.mjs +3 -0
  22. package/assets/skills/comet/scripts/comet-hook-guard.mjs +3 -0
  23. package/assets/skills/comet/scripts/comet-intent.mjs +3 -0
  24. package/assets/skills/comet/scripts/comet-runtime.mjs +12857 -0
  25. package/assets/skills/comet/scripts/comet-state.mjs +3 -0
  26. package/assets/skills/comet/scripts/comet-yaml-validate.mjs +3 -0
  27. package/assets/skills/comet-any/SKILL.md +118 -0
  28. package/assets/skills/comet-any/reference/authored-zone-example.md +100 -0
  29. package/assets/skills/comet-any/reference/authoring-protocol.json +91 -0
  30. package/assets/skills/comet-any/reference/authoring-subagents.md +102 -0
  31. package/assets/skills/comet-any/reference/bundle-authoring.md +166 -0
  32. package/assets/skills/comet-any/reference/eval-provider.md +83 -0
  33. package/assets/skills/comet-any/reference/subagents/pause-points-author.md +75 -0
  34. package/assets/skills/comet-any/reference/subagents/reference-author.md +77 -0
  35. package/assets/skills/comet-any/reference/subagents/script-author.md +81 -0
  36. package/assets/skills/comet-any/reference/subagents/skill-core-author.md +129 -0
  37. package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +124 -0
  38. package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +100 -0
  39. package/assets/skills/comet-archive/SKILL.md +25 -15
  40. package/assets/skills/comet-build/SKILL.md +51 -40
  41. package/assets/skills/comet-design/SKILL.md +14 -18
  42. package/assets/skills/comet-hotfix/SKILL.md +33 -43
  43. package/assets/skills/comet-open/SKILL.md +10 -20
  44. package/assets/skills/comet-tweak/SKILL.md +71 -65
  45. package/assets/skills/comet-verify/SKILL.md +31 -35
  46. package/assets/skills-zh/comet/SKILL.md +87 -101
  47. package/assets/skills-zh/comet/reference/auto-transition.md +3 -3
  48. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +8 -4
  49. package/assets/skills-zh/comet/reference/context-recovery.md +11 -1
  50. package/assets/skills-zh/comet/reference/debug-gate.md +17 -1
  51. package/assets/skills-zh/comet/reference/decision-point.md +13 -2
  52. package/assets/skills-zh/comet/reference/intent-frame.md +74 -0
  53. package/assets/skills-zh/comet/reference/scripts.md +69 -0
  54. package/assets/skills-zh/comet/reference/subagent-dispatch.md +67 -18
  55. package/assets/skills-zh/comet/runtime/classic/checks.yaml +6 -0
  56. package/assets/skills-zh/comet/runtime/classic/guardrails.yaml +13 -0
  57. package/assets/skills-zh/comet/runtime/classic/skill.yaml +122 -0
  58. package/assets/skills-zh/comet-any/SKILL.md +118 -0
  59. package/assets/skills-zh/comet-any/reference/authored-zone-example.md +100 -0
  60. package/assets/skills-zh/comet-any/reference/authoring-protocol.json +91 -0
  61. package/assets/skills-zh/comet-any/reference/authoring-subagents.md +107 -0
  62. package/assets/skills-zh/comet-any/reference/bundle-authoring.md +166 -0
  63. package/assets/skills-zh/comet-any/reference/eval-provider.md +66 -0
  64. package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +79 -0
  65. package/assets/skills-zh/comet-any/reference/subagents/reference-author.md +81 -0
  66. package/assets/skills-zh/comet-any/reference/subagents/script-author.md +84 -0
  67. package/assets/skills-zh/comet-any/reference/subagents/skill-core-author.md +129 -0
  68. package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +124 -0
  69. package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +98 -0
  70. package/assets/skills-zh/comet-archive/SKILL.md +25 -15
  71. package/assets/skills-zh/comet-build/SKILL.md +41 -43
  72. package/assets/skills-zh/comet-design/SKILL.md +14 -18
  73. package/assets/skills-zh/comet-hotfix/SKILL.md +37 -47
  74. package/assets/skills-zh/comet-open/SKILL.md +12 -22
  75. package/assets/skills-zh/comet-tweak/SKILL.md +70 -63
  76. package/assets/skills-zh/comet-verify/SKILL.md +28 -30
  77. package/bin/comet.js +1 -1
  78. package/dist/{cli → app/cli}/index.d.ts.map +1 -1
  79. package/dist/app/cli/index.js +430 -0
  80. package/dist/app/cli/index.js.map +1 -0
  81. package/dist/app/commands/bundle.d.ts +51 -0
  82. package/dist/app/commands/bundle.d.ts.map +1 -0
  83. package/dist/app/commands/bundle.js +387 -0
  84. package/dist/app/commands/bundle.js.map +1 -0
  85. package/dist/app/commands/creator.d.ts +14 -0
  86. package/dist/app/commands/creator.d.ts.map +1 -0
  87. package/dist/app/commands/creator.js +82 -0
  88. package/dist/app/commands/creator.js.map +1 -0
  89. package/dist/app/commands/dashboard.d.ts +16 -0
  90. package/dist/app/commands/dashboard.d.ts.map +1 -0
  91. package/dist/app/commands/dashboard.js +53 -0
  92. package/dist/app/commands/dashboard.js.map +1 -0
  93. package/dist/{commands → app/commands}/doctor.d.ts +1 -1
  94. package/dist/app/commands/doctor.d.ts.map +1 -0
  95. package/dist/{commands → app/commands}/doctor.js +110 -60
  96. package/dist/app/commands/doctor.js.map +1 -0
  97. package/dist/app/commands/eval.d.ts +17 -0
  98. package/dist/app/commands/eval.d.ts.map +1 -0
  99. package/dist/app/commands/eval.js +169 -0
  100. package/dist/app/commands/eval.js.map +1 -0
  101. package/dist/app/commands/i18n.d.ts +4 -0
  102. package/dist/app/commands/i18n.d.ts.map +1 -0
  103. package/dist/{commands → app/commands}/i18n.js +22 -2
  104. package/dist/app/commands/i18n.js.map +1 -0
  105. package/dist/{commands → app/commands}/init.d.ts +3 -1
  106. package/dist/app/commands/init.d.ts.map +1 -0
  107. package/dist/{commands → app/commands}/init.js +81 -31
  108. package/dist/app/commands/init.js.map +1 -0
  109. package/dist/app/commands/platform-select-prompt.d.ts +38 -0
  110. package/dist/app/commands/platform-select-prompt.d.ts.map +1 -0
  111. package/dist/app/commands/platform-select-prompt.js +141 -0
  112. package/dist/app/commands/platform-select-prompt.js.map +1 -0
  113. package/dist/app/commands/publish.d.ts +7 -0
  114. package/dist/app/commands/publish.d.ts.map +1 -0
  115. package/dist/app/commands/publish.js +14 -0
  116. package/dist/app/commands/publish.js.map +1 -0
  117. package/dist/app/commands/skill.d.ts +23 -0
  118. package/dist/app/commands/skill.d.ts.map +1 -0
  119. package/dist/app/commands/skill.js +208 -0
  120. package/dist/app/commands/skill.js.map +1 -0
  121. package/dist/app/commands/status.d.ts.map +1 -0
  122. package/dist/app/commands/status.js +159 -0
  123. package/dist/app/commands/status.js.map +1 -0
  124. package/dist/{commands → app/commands}/uninstall.d.ts +1 -1
  125. package/dist/app/commands/uninstall.d.ts.map +1 -0
  126. package/dist/{commands → app/commands}/uninstall.js +3 -3
  127. package/dist/app/commands/uninstall.js.map +1 -0
  128. package/dist/{commands → app/commands}/update.d.ts +4 -3
  129. package/dist/app/commands/update.d.ts.map +1 -0
  130. package/dist/{commands → app/commands}/update.js +33 -10
  131. package/dist/app/commands/update.js.map +1 -0
  132. package/dist/config/repository-layout.json +98 -0
  133. package/dist/domains/bundle/authoring.d.ts +82 -0
  134. package/dist/domains/bundle/authoring.d.ts.map +1 -0
  135. package/dist/domains/bundle/authoring.js +185 -0
  136. package/dist/domains/bundle/authoring.js.map +1 -0
  137. package/dist/domains/bundle/bundle-platform.d.ts +39 -0
  138. package/dist/domains/bundle/bundle-platform.d.ts.map +1 -0
  139. package/dist/domains/bundle/bundle-platform.js +287 -0
  140. package/dist/domains/bundle/bundle-platform.js.map +1 -0
  141. package/dist/domains/bundle/candidates.d.ts +29 -0
  142. package/dist/domains/bundle/candidates.d.ts.map +1 -0
  143. package/dist/domains/bundle/candidates.js +37 -0
  144. package/dist/domains/bundle/candidates.js.map +1 -0
  145. package/dist/domains/bundle/compatibility-benchmark.d.ts +12 -0
  146. package/dist/domains/bundle/compatibility-benchmark.d.ts.map +1 -0
  147. package/dist/domains/bundle/compatibility-benchmark.js +224 -0
  148. package/dist/domains/bundle/compatibility-benchmark.js.map +1 -0
  149. package/dist/domains/bundle/compiler.d.ts +5 -0
  150. package/dist/domains/bundle/compiler.d.ts.map +1 -0
  151. package/dist/domains/bundle/compiler.js +106 -0
  152. package/dist/domains/bundle/compiler.js.map +1 -0
  153. package/dist/domains/bundle/distribute.d.ts +33 -0
  154. package/dist/domains/bundle/distribute.d.ts.map +1 -0
  155. package/dist/domains/bundle/distribute.js +166 -0
  156. package/dist/domains/bundle/distribute.js.map +1 -0
  157. package/dist/domains/bundle/draft.d.ts +19 -0
  158. package/dist/domains/bundle/draft.d.ts.map +1 -0
  159. package/dist/domains/bundle/draft.js +82 -0
  160. package/dist/domains/bundle/draft.js.map +1 -0
  161. package/dist/domains/bundle/eval.d.ts +36 -0
  162. package/dist/domains/bundle/eval.d.ts.map +1 -0
  163. package/dist/domains/bundle/eval.js +501 -0
  164. package/dist/domains/bundle/eval.js.map +1 -0
  165. package/dist/domains/bundle/factory-compose.d.ts +12 -0
  166. package/dist/domains/bundle/factory-compose.d.ts.map +1 -0
  167. package/dist/domains/bundle/factory-compose.js +309 -0
  168. package/dist/domains/bundle/factory-compose.js.map +1 -0
  169. package/dist/domains/bundle/factory-guide.d.ts +37 -0
  170. package/dist/domains/bundle/factory-guide.d.ts.map +1 -0
  171. package/dist/domains/bundle/factory-guide.js +96 -0
  172. package/dist/domains/bundle/factory-guide.js.map +1 -0
  173. package/dist/domains/bundle/factory-plan.d.ts +48 -0
  174. package/dist/domains/bundle/factory-plan.d.ts.map +1 -0
  175. package/dist/domains/bundle/factory-plan.js +172 -0
  176. package/dist/domains/bundle/factory-plan.js.map +1 -0
  177. package/dist/domains/bundle/factory-proposal.d.ts +31 -0
  178. package/dist/domains/bundle/factory-proposal.d.ts.map +1 -0
  179. package/dist/domains/bundle/factory-proposal.js +225 -0
  180. package/dist/domains/bundle/factory-proposal.js.map +1 -0
  181. package/dist/domains/bundle/factory-resolve.d.ts +11 -0
  182. package/dist/domains/bundle/factory-resolve.d.ts.map +1 -0
  183. package/dist/domains/bundle/factory-resolve.js +121 -0
  184. package/dist/domains/bundle/factory-resolve.js.map +1 -0
  185. package/dist/domains/bundle/factory.d.ts +17 -0
  186. package/dist/domains/bundle/factory.d.ts.map +1 -0
  187. package/dist/domains/bundle/factory.js +511 -0
  188. package/dist/domains/bundle/factory.js.map +1 -0
  189. package/dist/domains/bundle/hash.d.ts +3 -0
  190. package/dist/domains/bundle/hash.d.ts.map +1 -0
  191. package/dist/domains/bundle/hash.js +72 -0
  192. package/dist/domains/bundle/hash.js.map +1 -0
  193. package/dist/domains/bundle/load.d.ts +4 -0
  194. package/dist/domains/bundle/load.d.ts.map +1 -0
  195. package/dist/domains/bundle/load.js +355 -0
  196. package/dist/domains/bundle/load.js.map +1 -0
  197. package/dist/domains/bundle/next-action.d.ts +37 -0
  198. package/dist/domains/bundle/next-action.d.ts.map +1 -0
  199. package/dist/domains/bundle/next-action.js +185 -0
  200. package/dist/domains/bundle/next-action.js.map +1 -0
  201. package/dist/domains/bundle/platform.d.ts +21 -0
  202. package/dist/domains/bundle/platform.d.ts.map +1 -0
  203. package/dist/domains/bundle/platform.js +170 -0
  204. package/dist/domains/bundle/platform.js.map +1 -0
  205. package/dist/domains/bundle/preferences.d.ts +11 -0
  206. package/dist/domains/bundle/preferences.d.ts.map +1 -0
  207. package/dist/domains/bundle/preferences.js +17 -0
  208. package/dist/domains/bundle/preferences.js.map +1 -0
  209. package/dist/domains/bundle/publish.d.ts +14 -0
  210. package/dist/domains/bundle/publish.d.ts.map +1 -0
  211. package/dist/domains/bundle/publish.js +159 -0
  212. package/dist/domains/bundle/publish.js.map +1 -0
  213. package/dist/domains/bundle/readiness-user-summary.d.ts +25 -0
  214. package/dist/domains/bundle/readiness-user-summary.d.ts.map +1 -0
  215. package/dist/domains/bundle/readiness-user-summary.js +186 -0
  216. package/dist/domains/bundle/readiness-user-summary.js.map +1 -0
  217. package/dist/domains/bundle/review-summary.d.ts +36 -0
  218. package/dist/domains/bundle/review-summary.d.ts.map +1 -0
  219. package/dist/domains/bundle/review-summary.js +348 -0
  220. package/dist/domains/bundle/review-summary.js.map +1 -0
  221. package/dist/domains/bundle/state.d.ts +7 -0
  222. package/dist/domains/bundle/state.d.ts.map +1 -0
  223. package/dist/domains/bundle/state.js +132 -0
  224. package/dist/domains/bundle/state.js.map +1 -0
  225. package/dist/domains/bundle/types.d.ts +347 -0
  226. package/dist/domains/bundle/types.d.ts.map +1 -0
  227. package/dist/domains/bundle/types.js.map +1 -0
  228. package/dist/domains/bundle/user-facing.d.ts +48 -0
  229. package/dist/domains/bundle/user-facing.d.ts.map +1 -0
  230. package/dist/domains/bundle/user-facing.js +73 -0
  231. package/dist/domains/bundle/user-facing.js.map +1 -0
  232. package/dist/domains/bundle/validate.d.ts +5 -0
  233. package/dist/domains/bundle/validate.d.ts.map +1 -0
  234. package/dist/domains/bundle/validate.js +292 -0
  235. package/dist/domains/bundle/validate.js.map +1 -0
  236. package/dist/domains/comet-classic/classic-archive-entry.d.ts +2 -0
  237. package/dist/domains/comet-classic/classic-archive-entry.d.ts.map +1 -0
  238. package/dist/domains/comet-classic/classic-archive-entry.js +4 -0
  239. package/dist/domains/comet-classic/classic-archive-entry.js.map +1 -0
  240. package/dist/domains/comet-classic/classic-archive.d.ts +3 -0
  241. package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -0
  242. package/dist/domains/comet-classic/classic-archive.js +392 -0
  243. package/dist/domains/comet-classic/classic-archive.js.map +1 -0
  244. package/dist/domains/comet-classic/classic-cli.d.ts +15 -0
  245. package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -0
  246. package/dist/domains/comet-classic/classic-cli.js +94 -0
  247. package/dist/domains/comet-classic/classic-cli.js.map +1 -0
  248. package/dist/domains/comet-classic/classic-diagnostics.d.ts +16 -0
  249. package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -0
  250. package/dist/domains/comet-classic/classic-diagnostics.js +57 -0
  251. package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -0
  252. package/dist/domains/comet-classic/classic-evidence.d.ts +10 -0
  253. package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -0
  254. package/dist/domains/comet-classic/classic-evidence.js +114 -0
  255. package/dist/domains/comet-classic/classic-evidence.js.map +1 -0
  256. package/dist/domains/comet-classic/classic-guard-entry.d.ts +2 -0
  257. package/dist/domains/comet-classic/classic-guard-entry.d.ts.map +1 -0
  258. package/dist/domains/comet-classic/classic-guard-entry.js +4 -0
  259. package/dist/domains/comet-classic/classic-guard-entry.js.map +1 -0
  260. package/dist/domains/comet-classic/classic-guard.d.ts +3 -0
  261. package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -0
  262. package/dist/domains/comet-classic/classic-guard.js +833 -0
  263. package/dist/domains/comet-classic/classic-guard.js.map +1 -0
  264. package/dist/domains/comet-classic/classic-handoff-entry.d.ts +2 -0
  265. package/dist/domains/comet-classic/classic-handoff-entry.d.ts.map +1 -0
  266. package/dist/domains/comet-classic/classic-handoff-entry.js +4 -0
  267. package/dist/domains/comet-classic/classic-handoff-entry.js.map +1 -0
  268. package/dist/domains/comet-classic/classic-handoff.d.ts +3 -0
  269. package/dist/domains/comet-classic/classic-handoff.d.ts.map +1 -0
  270. package/dist/domains/comet-classic/classic-handoff.js +478 -0
  271. package/dist/domains/comet-classic/classic-handoff.js.map +1 -0
  272. package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts +2 -0
  273. package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts.map +1 -0
  274. package/dist/domains/comet-classic/classic-hook-guard-entry.js +4 -0
  275. package/dist/domains/comet-classic/classic-hook-guard-entry.js.map +1 -0
  276. package/dist/domains/comet-classic/classic-hook-guard.d.ts +3 -0
  277. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -0
  278. package/dist/domains/comet-classic/classic-hook-guard.js +302 -0
  279. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -0
  280. package/dist/domains/comet-classic/classic-intent-command.d.ts +3 -0
  281. package/dist/domains/comet-classic/classic-intent-command.d.ts.map +1 -0
  282. package/dist/domains/comet-classic/classic-intent-command.js +40 -0
  283. package/dist/domains/comet-classic/classic-intent-command.js.map +1 -0
  284. package/dist/domains/comet-classic/classic-intent-entry.d.ts +2 -0
  285. package/dist/domains/comet-classic/classic-intent-entry.d.ts.map +1 -0
  286. package/dist/domains/comet-classic/classic-intent-entry.js +4 -0
  287. package/dist/domains/comet-classic/classic-intent-entry.js.map +1 -0
  288. package/dist/domains/comet-classic/classic-intent.d.ts +79 -0
  289. package/dist/domains/comet-classic/classic-intent.d.ts.map +1 -0
  290. package/dist/domains/comet-classic/classic-intent.js +307 -0
  291. package/dist/domains/comet-classic/classic-intent.js.map +1 -0
  292. package/dist/domains/comet-classic/classic-migrate.d.ts +18 -0
  293. package/dist/domains/comet-classic/classic-migrate.d.ts.map +1 -0
  294. package/dist/domains/comet-classic/classic-migrate.js +184 -0
  295. package/dist/domains/comet-classic/classic-migrate.js.map +1 -0
  296. package/dist/domains/comet-classic/classic-paths.d.ts +8 -0
  297. package/dist/domains/comet-classic/classic-paths.d.ts.map +1 -0
  298. package/dist/domains/comet-classic/classic-paths.js +61 -0
  299. package/dist/domains/comet-classic/classic-paths.js.map +1 -0
  300. package/dist/domains/comet-classic/classic-resolver.d.ts +10 -0
  301. package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -0
  302. package/dist/domains/comet-classic/classic-resolver.js +89 -0
  303. package/dist/domains/comet-classic/classic-resolver.js.map +1 -0
  304. package/dist/domains/comet-classic/classic-runtime-evals.d.ts +9 -0
  305. package/dist/domains/comet-classic/classic-runtime-evals.d.ts.map +1 -0
  306. package/dist/domains/comet-classic/classic-runtime-evals.js +45 -0
  307. package/dist/domains/comet-classic/classic-runtime-evals.js.map +1 -0
  308. package/dist/domains/comet-classic/classic-runtime-run.d.ts +7 -0
  309. package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -0
  310. package/dist/domains/comet-classic/classic-runtime-run.js +105 -0
  311. package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -0
  312. package/dist/domains/comet-classic/classic-script-entry.d.ts +3 -0
  313. package/dist/domains/comet-classic/classic-script-entry.d.ts.map +1 -0
  314. package/dist/domains/comet-classic/classic-script-entry.js +31 -0
  315. package/dist/domains/comet-classic/classic-script-entry.js.map +1 -0
  316. package/dist/domains/comet-classic/classic-state-command.d.ts +3 -0
  317. package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -0
  318. package/dist/domains/comet-classic/classic-state-command.js +984 -0
  319. package/dist/domains/comet-classic/classic-state-command.js.map +1 -0
  320. package/dist/domains/comet-classic/classic-state-entry.d.ts +2 -0
  321. package/dist/domains/comet-classic/classic-state-entry.d.ts.map +1 -0
  322. package/dist/domains/comet-classic/classic-state-entry.js +4 -0
  323. package/dist/domains/comet-classic/classic-state-entry.js.map +1 -0
  324. package/dist/domains/comet-classic/classic-state-events.d.ts +18 -0
  325. package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -0
  326. package/dist/domains/comet-classic/classic-state-events.js +15 -0
  327. package/dist/domains/comet-classic/classic-state-events.js.map +1 -0
  328. package/dist/domains/comet-classic/classic-state.d.ts +69 -0
  329. package/dist/domains/comet-classic/classic-state.d.ts.map +1 -0
  330. package/dist/domains/comet-classic/classic-state.js +238 -0
  331. package/dist/domains/comet-classic/classic-state.js.map +1 -0
  332. package/dist/domains/comet-classic/classic-store.d.ts +7 -0
  333. package/dist/domains/comet-classic/classic-store.d.ts.map +1 -0
  334. package/dist/domains/comet-classic/classic-store.js +127 -0
  335. package/dist/domains/comet-classic/classic-store.js.map +1 -0
  336. package/dist/domains/comet-classic/classic-transitions.d.ts +24 -0
  337. package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -0
  338. package/dist/domains/comet-classic/classic-transitions.js +124 -0
  339. package/dist/domains/comet-classic/classic-transitions.js.map +1 -0
  340. package/dist/domains/comet-classic/classic-validate-command.d.ts +3 -0
  341. package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -0
  342. package/dist/domains/comet-classic/classic-validate-command.js +154 -0
  343. package/dist/domains/comet-classic/classic-validate-command.js.map +1 -0
  344. package/dist/domains/comet-classic/classic-validate-entry.d.ts +2 -0
  345. package/dist/domains/comet-classic/classic-validate-entry.d.ts.map +1 -0
  346. package/dist/domains/comet-classic/classic-validate-entry.js +4 -0
  347. package/dist/domains/comet-classic/classic-validate-entry.js.map +1 -0
  348. package/dist/domains/comet-classic/index.d.ts +20 -0
  349. package/dist/domains/comet-classic/index.d.ts.map +1 -0
  350. package/dist/domains/comet-classic/index.js +20 -0
  351. package/dist/domains/comet-classic/index.js.map +1 -0
  352. package/dist/domains/dashboard/collector.d.ts +12 -0
  353. package/dist/domains/dashboard/collector.d.ts.map +1 -0
  354. package/dist/domains/dashboard/collector.js +475 -0
  355. package/dist/domains/dashboard/collector.js.map +1 -0
  356. package/dist/domains/dashboard/git.d.ts +8 -0
  357. package/dist/domains/dashboard/git.d.ts.map +1 -0
  358. package/dist/domains/dashboard/git.js +69 -0
  359. package/dist/domains/dashboard/git.js.map +1 -0
  360. package/dist/domains/dashboard/next-action.d.ts +17 -0
  361. package/dist/domains/dashboard/next-action.d.ts.map +1 -0
  362. package/dist/domains/dashboard/next-action.js +83 -0
  363. package/dist/domains/dashboard/next-action.js.map +1 -0
  364. package/dist/domains/dashboard/open-browser.d.ts +9 -0
  365. package/dist/domains/dashboard/open-browser.d.ts.map +1 -0
  366. package/dist/domains/dashboard/open-browser.js +40 -0
  367. package/dist/domains/dashboard/open-browser.js.map +1 -0
  368. package/dist/domains/dashboard/risk.d.ts +24 -0
  369. package/dist/domains/dashboard/risk.d.ts.map +1 -0
  370. package/dist/domains/dashboard/risk.js +97 -0
  371. package/dist/domains/dashboard/risk.js.map +1 -0
  372. package/dist/domains/dashboard/server.d.ts +21 -0
  373. package/dist/domains/dashboard/server.d.ts.map +1 -0
  374. package/dist/domains/dashboard/server.js +149 -0
  375. package/dist/domains/dashboard/server.js.map +1 -0
  376. package/dist/domains/dashboard/task-parser.d.ts +13 -0
  377. package/dist/domains/dashboard/task-parser.d.ts.map +1 -0
  378. package/dist/domains/dashboard/task-parser.js +82 -0
  379. package/dist/domains/dashboard/task-parser.js.map +1 -0
  380. package/dist/domains/dashboard/types.d.ts +122 -0
  381. package/dist/domains/dashboard/types.d.ts.map +1 -0
  382. package/dist/domains/dashboard/types.js +10 -0
  383. package/dist/domains/dashboard/types.js.map +1 -0
  384. package/dist/domains/dashboard/verify-parser.d.ts +18 -0
  385. package/dist/domains/dashboard/verify-parser.d.ts.map +1 -0
  386. package/dist/domains/dashboard/verify-parser.js +94 -0
  387. package/dist/domains/dashboard/verify-parser.js.map +1 -0
  388. package/dist/domains/dashboard/web/assets/demo-DQyfozbi.js +1 -0
  389. package/dist/domains/dashboard/web/assets/index-BcO3_QlT.css +1 -0
  390. package/dist/domains/dashboard/web/assets/index-CjU3VXVu.js +22 -0
  391. package/dist/domains/dashboard/web/favicon.png +0 -0
  392. package/dist/domains/dashboard/web/index.html +16 -0
  393. package/dist/domains/dashboard/yaml.d.ts +13 -0
  394. package/dist/domains/dashboard/yaml.d.ts.map +1 -0
  395. package/dist/domains/dashboard/yaml.js +61 -0
  396. package/dist/domains/dashboard/yaml.js.map +1 -0
  397. package/dist/domains/engine/evals.d.ts +4 -0
  398. package/dist/domains/engine/evals.d.ts.map +1 -0
  399. package/dist/domains/engine/evals.js +25 -0
  400. package/dist/domains/engine/evals.js.map +1 -0
  401. package/dist/domains/engine/guardrails.d.ts +10 -0
  402. package/dist/domains/engine/guardrails.d.ts.map +1 -0
  403. package/dist/domains/engine/guardrails.js +25 -0
  404. package/dist/domains/engine/guardrails.js.map +1 -0
  405. package/dist/domains/engine/loop.d.ts +15 -0
  406. package/dist/domains/engine/loop.d.ts.map +1 -0
  407. package/dist/domains/engine/loop.js +126 -0
  408. package/dist/domains/engine/loop.js.map +1 -0
  409. package/dist/domains/engine/manual-run.d.ts +30 -0
  410. package/dist/domains/engine/manual-run.d.ts.map +1 -0
  411. package/dist/domains/engine/manual-run.js +184 -0
  412. package/dist/domains/engine/manual-run.js.map +1 -0
  413. package/dist/domains/engine/resolver.d.ts +20 -0
  414. package/dist/domains/engine/resolver.d.ts.map +1 -0
  415. package/dist/domains/engine/resolver.js +36 -0
  416. package/dist/domains/engine/resolver.js.map +1 -0
  417. package/dist/domains/engine/run-store.d.ts +13 -0
  418. package/dist/domains/engine/run-store.d.ts.map +1 -0
  419. package/dist/domains/engine/run-store.js +100 -0
  420. package/dist/domains/engine/run-store.js.map +1 -0
  421. package/dist/domains/engine/runtime-types.d.ts +11 -0
  422. package/dist/domains/engine/runtime-types.d.ts.map +1 -0
  423. package/dist/domains/engine/runtime-types.js +2 -0
  424. package/dist/domains/engine/runtime-types.js.map +1 -0
  425. package/dist/domains/engine/standalone-run.d.ts +13 -0
  426. package/dist/domains/engine/standalone-run.d.ts.map +1 -0
  427. package/dist/domains/engine/standalone-run.js +27 -0
  428. package/dist/domains/engine/standalone-run.js.map +1 -0
  429. package/dist/domains/engine/state.d.ts +10 -0
  430. package/dist/domains/engine/state.d.ts.map +1 -0
  431. package/dist/domains/engine/state.js +160 -0
  432. package/dist/domains/engine/state.js.map +1 -0
  433. package/dist/domains/engine/types.d.ts +51 -0
  434. package/dist/domains/engine/types.d.ts.map +1 -0
  435. package/dist/domains/engine/types.js +2 -0
  436. package/dist/domains/engine/types.js.map +1 -0
  437. package/dist/domains/eval/index.d.ts +7 -0
  438. package/dist/domains/eval/index.d.ts.map +1 -0
  439. package/dist/domains/eval/index.js +11 -0
  440. package/dist/domains/eval/index.js.map +1 -0
  441. package/dist/domains/eval/repository-benchmarks.d.ts +6 -0
  442. package/dist/domains/eval/repository-benchmarks.d.ts.map +1 -0
  443. package/dist/domains/eval/repository-benchmarks.js +10 -0
  444. package/dist/domains/eval/repository-benchmarks.js.map +1 -0
  445. package/dist/domains/factory/artifacts.d.ts +53 -0
  446. package/dist/domains/factory/artifacts.d.ts.map +1 -0
  447. package/dist/domains/factory/artifacts.js +8 -0
  448. package/dist/domains/factory/artifacts.js.map +1 -0
  449. package/dist/domains/factory/package.d.ts +7 -0
  450. package/dist/domains/factory/package.d.ts.map +1 -0
  451. package/dist/domains/factory/package.js +1511 -0
  452. package/dist/domains/factory/package.js.map +1 -0
  453. package/dist/domains/factory/types.d.ts +127 -0
  454. package/dist/domains/factory/types.d.ts.map +1 -0
  455. package/dist/domains/factory/types.js +2 -0
  456. package/dist/domains/factory/types.js.map +1 -0
  457. package/dist/{core → domains/integrations}/codegraph.d.ts +1 -1
  458. package/dist/domains/integrations/codegraph.d.ts.map +1 -0
  459. package/dist/{core → domains/integrations}/codegraph.js +1 -1
  460. package/dist/domains/integrations/codegraph.js.map +1 -0
  461. package/dist/domains/integrations/openspec.d.ts +18 -0
  462. package/dist/domains/integrations/openspec.d.ts.map +1 -0
  463. package/dist/{core → domains/integrations}/openspec.js +102 -25
  464. package/dist/domains/integrations/openspec.js.map +1 -0
  465. package/dist/{core → domains/integrations}/superpowers.d.ts +10 -2
  466. package/dist/domains/integrations/superpowers.d.ts.map +1 -0
  467. package/dist/{core → domains/integrations}/superpowers.js +59 -13
  468. package/dist/domains/integrations/superpowers.js.map +1 -0
  469. package/dist/domains/skill/discovery.d.ts +17 -0
  470. package/dist/domains/skill/discovery.d.ts.map +1 -0
  471. package/dist/domains/skill/discovery.js +80 -0
  472. package/dist/domains/skill/discovery.js.map +1 -0
  473. package/dist/domains/skill/find.d.ts +41 -0
  474. package/dist/domains/skill/find.d.ts.map +1 -0
  475. package/dist/domains/skill/find.js +251 -0
  476. package/dist/domains/skill/find.js.map +1 -0
  477. package/dist/domains/skill/install.d.ts +11 -0
  478. package/dist/domains/skill/install.d.ts.map +1 -0
  479. package/dist/domains/skill/install.js +82 -0
  480. package/dist/domains/skill/install.js.map +1 -0
  481. package/dist/domains/skill/inventory.d.ts +19 -0
  482. package/dist/domains/skill/inventory.d.ts.map +1 -0
  483. package/dist/domains/skill/inventory.js +64 -0
  484. package/dist/domains/skill/inventory.js.map +1 -0
  485. package/dist/domains/skill/languages.d.ts +19 -0
  486. package/dist/domains/skill/languages.d.ts.map +1 -0
  487. package/dist/domains/skill/languages.js +21 -0
  488. package/dist/domains/skill/languages.js.map +1 -0
  489. package/dist/domains/skill/load.d.ts +5 -0
  490. package/dist/domains/skill/load.d.ts.map +1 -0
  491. package/dist/domains/skill/load.js +313 -0
  492. package/dist/domains/skill/load.js.map +1 -0
  493. package/dist/domains/skill/platform-install.d.ts +87 -0
  494. package/dist/domains/skill/platform-install.d.ts.map +1 -0
  495. package/dist/{core/skills.js → domains/skill/platform-install.js} +243 -51
  496. package/dist/domains/skill/platform-install.js.map +1 -0
  497. package/dist/domains/skill/preferences.d.ts +42 -0
  498. package/dist/domains/skill/preferences.d.ts.map +1 -0
  499. package/dist/domains/skill/preferences.js +118 -0
  500. package/dist/domains/skill/preferences.js.map +1 -0
  501. package/dist/domains/skill/snapshot.d.ts +8 -0
  502. package/dist/domains/skill/snapshot.d.ts.map +1 -0
  503. package/dist/domains/skill/snapshot.js +184 -0
  504. package/dist/domains/skill/snapshot.js.map +1 -0
  505. package/dist/domains/skill/types.d.ts +85 -0
  506. package/dist/domains/skill/types.d.ts.map +1 -0
  507. package/dist/domains/skill/types.js +2 -0
  508. package/dist/{core → domains/skill}/types.js.map +1 -1
  509. package/dist/{core → domains/skill}/uninstall.d.ts +2 -18
  510. package/dist/domains/skill/uninstall.d.ts.map +1 -0
  511. package/dist/{core → domains/skill}/uninstall.js +15 -66
  512. package/dist/domains/skill/uninstall.js.map +1 -0
  513. package/dist/domains/skill/validate.d.ts +3 -0
  514. package/dist/domains/skill/validate.d.ts.map +1 -0
  515. package/dist/domains/skill/validate.js +81 -0
  516. package/dist/domains/skill/validate.js.map +1 -0
  517. package/dist/domains/workflow-contract/builtins.d.ts +8 -0
  518. package/dist/domains/workflow-contract/builtins.d.ts.map +1 -0
  519. package/dist/domains/workflow-contract/builtins.js +229 -0
  520. package/dist/domains/workflow-contract/builtins.js.map +1 -0
  521. package/dist/domains/workflow-contract/hash.d.ts +3 -0
  522. package/dist/domains/workflow-contract/hash.d.ts.map +1 -0
  523. package/dist/domains/workflow-contract/hash.js +16 -0
  524. package/dist/domains/workflow-contract/hash.js.map +1 -0
  525. package/dist/domains/workflow-contract/index.d.ts +6 -0
  526. package/dist/domains/workflow-contract/index.d.ts.map +1 -0
  527. package/dist/domains/workflow-contract/index.js +5 -0
  528. package/dist/domains/workflow-contract/index.js.map +1 -0
  529. package/dist/domains/workflow-contract/normalize.d.ts +3 -0
  530. package/dist/domains/workflow-contract/normalize.d.ts.map +1 -0
  531. package/dist/domains/workflow-contract/normalize.js +146 -0
  532. package/dist/domains/workflow-contract/normalize.js.map +1 -0
  533. package/dist/domains/workflow-contract/types.d.ts +128 -0
  534. package/dist/domains/workflow-contract/types.d.ts.map +1 -0
  535. package/dist/domains/workflow-contract/types.js +2 -0
  536. package/dist/domains/workflow-contract/types.js.map +1 -0
  537. package/dist/domains/workflow-contract/validation.d.ts +3 -0
  538. package/dist/domains/workflow-contract/validation.d.ts.map +1 -0
  539. package/dist/domains/workflow-contract/validation.js +180 -0
  540. package/dist/domains/workflow-contract/validation.js.map +1 -0
  541. package/dist/platform/fs/file-system.d.ts.map +1 -0
  542. package/dist/platform/fs/file-system.js.map +1 -0
  543. package/dist/platform/install/detect.d.ts.map +1 -0
  544. package/dist/{core → platform/install}/detect.js +4 -3
  545. package/dist/platform/install/detect.js.map +1 -0
  546. package/dist/platform/install/platforms.d.ts.map +1 -0
  547. package/dist/{core → platform/install}/platforms.js +41 -0
  548. package/dist/platform/install/platforms.js.map +1 -0
  549. package/dist/platform/install/types.d.ts +3 -0
  550. package/dist/platform/install/types.d.ts.map +1 -0
  551. package/dist/platform/install/types.js +2 -0
  552. package/dist/platform/install/types.js.map +1 -0
  553. package/dist/platform/paths/repository-layout.d.ts +22 -0
  554. package/dist/platform/paths/repository-layout.d.ts.map +1 -0
  555. package/dist/platform/paths/repository-layout.js +11 -0
  556. package/dist/platform/paths/repository-layout.js.map +1 -0
  557. package/dist/platform/process/command-error.d.ts.map +1 -0
  558. package/dist/platform/process/command-error.js.map +1 -0
  559. package/dist/platform/process/shell-quote.d.ts +22 -0
  560. package/dist/platform/process/shell-quote.d.ts.map +1 -0
  561. package/dist/platform/process/shell-quote.js +34 -0
  562. package/dist/platform/process/shell-quote.js.map +1 -0
  563. package/dist/platform/version/version.d.ts.map +1 -0
  564. package/dist/{core → platform/version}/version.js +16 -3
  565. package/dist/platform/version/version.js.map +1 -0
  566. package/package.json +39 -13
  567. package/assets/skills/comet/scripts/comet-archive.sh +0 -311
  568. package/assets/skills/comet/scripts/comet-env.sh +0 -110
  569. package/assets/skills/comet/scripts/comet-guard.sh +0 -778
  570. package/assets/skills/comet/scripts/comet-handoff.sh +0 -390
  571. package/assets/skills/comet/scripts/comet-hook-guard.sh +0 -336
  572. package/assets/skills/comet/scripts/comet-state.sh +0 -1338
  573. package/assets/skills/comet/scripts/comet-yaml-validate.sh +0 -225
  574. package/dist/cli/index.js +0 -84
  575. package/dist/cli/index.js.map +0 -1
  576. package/dist/commands/doctor.d.ts.map +0 -1
  577. package/dist/commands/doctor.js.map +0 -1
  578. package/dist/commands/i18n.d.ts +0 -4
  579. package/dist/commands/i18n.d.ts.map +0 -1
  580. package/dist/commands/i18n.js.map +0 -1
  581. package/dist/commands/init.d.ts.map +0 -1
  582. package/dist/commands/init.js.map +0 -1
  583. package/dist/commands/status.d.ts.map +0 -1
  584. package/dist/commands/status.js +0 -108
  585. package/dist/commands/status.js.map +0 -1
  586. package/dist/commands/uninstall.d.ts.map +0 -1
  587. package/dist/commands/uninstall.js.map +0 -1
  588. package/dist/commands/update.d.ts.map +0 -1
  589. package/dist/commands/update.js.map +0 -1
  590. package/dist/core/codegraph.d.ts.map +0 -1
  591. package/dist/core/codegraph.js.map +0 -1
  592. package/dist/core/command-error.d.ts.map +0 -1
  593. package/dist/core/command-error.js.map +0 -1
  594. package/dist/core/detect.d.ts.map +0 -1
  595. package/dist/core/detect.js.map +0 -1
  596. package/dist/core/openspec.d.ts +0 -11
  597. package/dist/core/openspec.d.ts.map +0 -1
  598. package/dist/core/openspec.js.map +0 -1
  599. package/dist/core/platforms.d.ts.map +0 -1
  600. package/dist/core/platforms.js.map +0 -1
  601. package/dist/core/skills.d.ts +0 -58
  602. package/dist/core/skills.d.ts.map +0 -1
  603. package/dist/core/skills.js.map +0 -1
  604. package/dist/core/superpowers.d.ts.map +0 -1
  605. package/dist/core/superpowers.js.map +0 -1
  606. package/dist/core/types.d.ts +0 -2
  607. package/dist/core/types.d.ts.map +0 -1
  608. package/dist/core/uninstall.d.ts.map +0 -1
  609. package/dist/core/uninstall.js.map +0 -1
  610. package/dist/core/version.d.ts.map +0 -1
  611. package/dist/core/version.js.map +0 -1
  612. package/dist/utils/file-system.d.ts.map +0 -1
  613. package/dist/utils/file-system.js.map +0 -1
  614. /package/dist/{cli → app/cli}/index.d.ts +0 -0
  615. /package/dist/{commands → app/commands}/status.d.ts +0 -0
  616. /package/dist/{core → domains/bundle}/types.js +0 -0
  617. /package/dist/{utils → platform/fs}/file-system.d.ts +0 -0
  618. /package/dist/{utils → platform/fs}/file-system.js +0 -0
  619. /package/dist/{core → platform/install}/detect.d.ts +0 -0
  620. /package/dist/{core → platform/install}/platforms.d.ts +0 -0
  621. /package/dist/{core → platform/process}/command-error.d.ts +0 -0
  622. /package/dist/{core → platform/process}/command-error.js +0 -0
  623. /package/dist/{core → platform/version}/version.d.ts +0 -0
  624. /package/scripts/{postinstall.js → install/postinstall.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-build
3
- description: "Comet 阶段 3:计划与构建。用 /comet-build 调用。制定计划并选择执行方式(subagent 或直接执行)实施。"
3
+ description: "Use when full Comet change 已完成 design 阶段,需要创建/恢复实施计划、选择执行方式或继续 build 阶段任务。"
4
4
  ---
5
5
 
6
6
  # Comet 阶段 3:计划与构建(Build)
@@ -14,16 +14,10 @@ description: "Comet 阶段 3:计划与构建。用 /comet-build 调用。制
14
14
 
15
15
  ### 0. 入口状态验证(Entry Check)
16
16
 
17
- 执行入口验证:
17
+ 按 `comet/reference/scripts.md` 定位脚本(定位 `comet-env.mjs`),然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
18
18
 
19
19
  ```bash
20
- COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.sh' -type f -print -quit 2>/dev/null)}"
21
- if [ -z "$COMET_ENV" ]; then
22
- echo "ERROR: comet-env.sh not found. Ensure the comet skill is installed." >&2
23
- return 1
24
- fi
25
- . "$COMET_ENV"
26
- "$COMET_BASH" "$COMET_STATE" check <name> build
20
+ node "$COMET_STATE" check <name> build
27
21
  ```
28
22
 
29
23
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
@@ -32,13 +26,13 @@ fi
32
26
 
33
27
  ### 1. 制定计划(Subagent Offload)
34
28
 
35
- 通过 subagent 创建实施计划,避免 planning skill 占用主 session 上下文。计划文件和执行反馈必须使用触发本次工作流的用户请求语言。
29
+ 通过 subagent 创建实施计划,避免 planning skill 占用主 session 上下文。计划文件和执行反馈必须使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取到的 Comet 配置产物语言。
36
30
 
37
31
  **Subagent 指令**:
38
32
 
39
33
  你是实施计划专家。基于以下输入创建实施计划:
40
34
 
41
- 1. **立即执行:** 使用 Skill 工具加载 Superpowers `writing-plans` 技能。禁止跳过此步骤。技能加载后,ARGUMENTS 必须包含:`Language: 使用触发本次工作流的用户请求语言输出`
35
+ 1. **立即执行:** 使用 Skill 工具加载 Superpowers `writing-plans` 技能。禁止跳过此步骤。技能加载后,ARGUMENTS 必须包含:`Language: 使用 "$COMET_BASH" "$COMET_STATE" get <name> language 读取到的 Comet 配置产物语言输出`
42
36
  2. 读取 Design Doc(`docs/superpowers/specs/` 下的技术设计文档)
43
37
  3. 读取 `openspec/changes/<name>/tasks.md`(任务边界)
44
38
  4. 按技能指引创建计划
@@ -75,7 +69,7 @@ Subagent 完成后:
75
69
  先记录 plan 路径:
76
70
 
77
71
  ```bash
78
- "$COMET_BASH" "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
72
+ node "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
79
73
  ```
80
74
 
81
75
  无需手动更新 phase,阶段守卫(guard `--apply`)会在退出条件满足后推进 `phase` 字段。
@@ -84,7 +78,7 @@ Subagent 完成后:
84
78
 
85
79
  | 选项 | 行为 | 说明 |
86
80
  |------|------|------|
87
- | A | 继续执行 | 保持在当前模型中,进入 Step 3 选择工作区隔离和执行方式 |
81
+ | A | 继续执行 | 保持在当前模型中,进入 Step 3 选择工作区隔离、执行方式、TDD 模式和代码审查模式 |
88
82
  | B | 暂停切换模型 | 记录 `build_pause: plan-ready`,本次 `/comet-build` 停止,用户稍后可从 `/comet` 或 `/comet-build` 恢复 |
89
83
 
90
84
  这是用户决策点。**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户明确选择**,不得自动继续,也不得把暂停写入 `build_mode`。
@@ -92,13 +86,13 @@ Subagent 完成后:
92
86
  用户选择继续时:
93
87
 
94
88
  ```bash
95
- "$COMET_BASH" "$COMET_STATE" set <name> build_pause null
89
+ node "$COMET_STATE" set <name> build_pause null
96
90
  ```
97
91
 
98
92
  用户选择暂停时:
99
93
 
100
94
  ```bash
101
- "$COMET_BASH" "$COMET_STATE" set <name> build_pause plan-ready
95
+ node "$COMET_STATE" set <name> build_pause plan-ready
102
96
  ```
103
97
 
104
98
  设置 `build_pause: plan-ready` 后,当前调用停止。不要选择 `isolation` 或 `build_mode`,不要加载执行技能。
@@ -108,10 +102,10 @@ Subagent 完成后:
108
102
  如果恢复时检测到 `build_pause: plan-ready` 且 `plan` 文件存在,不要重新运行 `writing-plans`。先告知用户当前停在 plan-ready 暂停点;用户确认继续后,设置:
109
103
 
110
104
  ```bash
111
- "$COMET_BASH" "$COMET_STATE" set <name> build_pause null
105
+ node "$COMET_STATE" set <name> build_pause null
112
106
  ```
113
107
 
114
- 然后继续本步骤选择工作区隔离和执行方式。
108
+ 然后继续本步骤选择工作区隔离、执行方式、TDD 模式和代码审查模式。
115
109
 
116
110
  计划已写入当前分支。在开始执行前,**一次性询问用户**选择工作区隔离方式、执行方式、TDD 模式和代码审查模式:
117
111
 
@@ -130,7 +124,7 @@ Subagent 完成后:
130
124
 
131
125
  | 选项 | 技能 | 适用场景 |
132
126
  |------|------|---------|
133
- | A | Superpowers `subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 |
127
+ | A | Superpowers `subagent-driven-development` | 任务独立、复杂度高;每个任务在隔离的 implementer subagent 中执行,审查由 `review_mode` 驱动 |
134
128
  | B | Superpowers `executing-plans` | 任务简单、无子agent环境、轻量快速 |
135
129
 
136
130
  **执行方式推荐规则**:
@@ -143,11 +137,11 @@ Subagent 完成后:
143
137
  用户选择后,更新 `isolation`、执行方式、TDD 模式和代码审查模式相关字段:
144
138
 
145
139
  ```bash
146
- "$COMET_BASH" "$COMET_STATE" set <name> isolation <branch|worktree>
140
+ node "$COMET_STATE" set <name> isolation <branch|worktree>
147
141
  ```
148
142
 
149
- - 若用户选择 `executing-plans`:运行 `"$COMET_BASH" "$COMET_STATE" set <name> subagent_dispatch null`,再运行 `"$COMET_BASH" "$COMET_STATE" set <name> build_mode executing-plans`
150
- - 若用户选择 `subagent-driven-development`:先确认当前平台存在可调用的真实后台 subagent / Task / multi-agent 调度能力;确认后先运行 `"$COMET_BASH" "$COMET_STATE" set <name> subagent_dispatch confirmed`,再运行 `"$COMET_BASH" "$COMET_STATE" set <name> build_mode subagent-driven-development`
143
+ - 若用户选择 `executing-plans`:运行 `node "$COMET_STATE" set <name> subagent_dispatch null`,再运行 `node "$COMET_STATE" set <name> build_mode executing-plans`
144
+ - 若用户选择 `subagent-driven-development`:先确认当前平台存在可调用的真实后台 subagent / Task / multi-agent 调度能力;确认后先运行 `node "$COMET_STATE" set <name> subagent_dispatch confirmed`,再运行 `node "$COMET_STATE" set <name> build_mode subagent-driven-development`
151
145
  - 若无法确认真实后台调度能力,不得写入 `build_mode: subagent-driven-development`;必须暂停等待用户改选 `executing-plans`
152
146
 
153
147
  **TDD 模式**:
@@ -155,33 +149,33 @@ Subagent 完成后:
155
149
  | 选项 | 含义 | 适用场景 |
156
150
  |------|------|---------|
157
151
  | `tdd` | 每个任务先写失败测试再写实现 | 推荐。变更涉及业务逻辑、新功能、API |
158
- | `direct` | 直接实现,不强制 TDD 流程 | 变更不需要测试覆盖,或用户选择跳过测试直接写代码。hotfix/tweak preset 默认使用 `direct` |
152
+ | `direct` | 直接实现,不强制 TDD 流程 | 变更不需要测试覆盖,或用户选择跳过测试直接写代码。hotfix/tweak 预设默认使用 `direct` |
159
153
 
160
- 运行 `"$COMET_BASH" "$COMET_STATE" set <name> tdd_mode <tdd|direct>`
154
+ 运行 `node "$COMET_STATE" set <name> tdd_mode <tdd|direct>`
161
155
 
162
156
  **代码审查模式**:
163
157
 
164
158
  | 选项 | 含义 | 适用场景 |
165
159
  |------|------|---------|
166
160
  | `off` | 不自动派发代码审查 | 文档、配置、文案、小范围低风险任务 |
167
- | `standard` | 只在任务完成后运行一次最终轻量代码审查;若发现问题,最多自动修复一轮,然后交给用户决策 | 默认推荐,适合大多数普通改动 |
168
- | `thorough` | 按批次或风险边界运行合并审查,最后再运行一次完整审查 | 高风险、多模块、架构或安全相关改动 |
161
+ | `standard` | 默认不为每任务派发 reviewer,仅当任务命中风险信号时派发每任务 reviewer,外加一次最终轻量代码审查 | 默认推荐,适合大多数普通改动 |
162
+ | `thorough` | 为每个任务派发每任务 reviewer(spec + quality),外加一次最终完整审查 | 高风险、多模块、架构或安全相关改动 |
169
163
 
170
- 运行 `"$COMET_BASH" "$COMET_STATE" set <name> review_mode <off|standard|thorough>`
164
+ 运行 `node "$COMET_STATE" set <name> review_mode <off|standard|thorough>`
171
165
 
172
166
  `isolation` 是脚本级硬约束。full workflow 初始化时可以为 `null`,但只允许存在到本步骤之前。若保持 `null`,`build → verify` 的 guard 和 `comet-state transition build-complete` 都会失败。
173
167
 
174
- `subagent_dispatch` 是脚本级硬约束。`build_mode: subagent-driven-development` 离开 build 阶段前必须同时满足 `subagent_dispatch: confirmed`,否则 `comet-guard.sh build --apply` 和 `comet-state transition build-complete` 都会失败。
168
+ `subagent_dispatch` 是脚本级硬约束。`build_mode: subagent-driven-development` 离开 build 阶段前必须同时满足 `subagent_dispatch: confirmed`,否则 `comet-guard.mjs build --apply` 和 `comet-state transition build-complete` 都会失败。
175
169
 
176
- `tdd_mode` 是脚本级硬约束。full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`,否则 `comet-guard.sh build --apply` 和 `comet-state transition build-complete` 都会失败。
170
+ `tdd_mode` 是脚本级硬约束。full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`,否则 `comet-guard.mjs build --apply` 和 `comet-state transition build-complete` 都会失败。
177
171
 
178
- `review_mode` 是脚本级硬约束。新建 full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`,否则 `comet-guard.sh build --apply` 和 `comet-state transition build-complete` 都会失败。旧状态文件若没有该字段,按兼容路径继续,但恢复时应补写该字段。
172
+ `review_mode` 是脚本级硬约束。新建 full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`,否则 `comet-guard.mjs build --apply` 和 `comet-state transition build-complete` 都会失败。旧状态文件若没有该字段,按兼容路径继续,但恢复时应补写该字段。
179
173
 
180
- `build_mode` 默认仅 hotfix/tweak preset 使用 `direct`。full workflow 不得默认使用 `direct`。只有用户明确要求跳过计划执行技能,且你已记录显式 override 时,才允许:
174
+ `build_mode` 默认仅 hotfix/tweak 预设使用 `direct`。full workflow 不得默认使用 `direct`。只有用户明确要求跳过计划执行技能,且你已记录显式 override 时,才允许:
181
175
 
182
176
  ```bash
183
- "$COMET_BASH" "$COMET_STATE" set <name> direct_override true
184
- "$COMET_BASH" "$COMET_STATE" set <name> build_mode direct
177
+ node "$COMET_STATE" set <name> direct_override true
178
+ node "$COMET_STATE" set <name> build_mode direct
185
179
  ```
186
180
 
187
181
  没有 `direct_override: true` 时,full workflow 的 `build_mode=direct` 会被 guard 和状态转换同时拦截。
@@ -212,9 +206,9 @@ git commit -m "chore: add implementation plan"
212
206
 
213
207
  **执行计划**:必须按 `build_mode` 的真实运行位置处理。
214
208
 
215
- - `build_mode: executing-plans`:**立即执行:** 使用 Skill 工具加载 Superpowers `executing-plans` 技能。禁止跳过此步骤。若该技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。技能加载后,ARGUMENTS 必须包含与 Step 1 相同的 Language 约束:`Language: 使用触发本次工作流的用户请求语言输出`。按计划执行。
209
+ - `build_mode: executing-plans`:**立即执行:** 使用 Skill 工具加载 Superpowers `executing-plans` 技能。禁止跳过此步骤。若该技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。技能加载后,ARGUMENTS 必须包含与 Step 1 相同的 Language 约束:`Language: 使用 "$COMET_BASH" "$COMET_STATE" get <name> language 读取到的 Comet 配置产物语言输出`。按计划执行。
216
210
  - `build_mode: subagent-driven-development`:主会话只负责协调,禁止直接编写实现代码。**立即执行:** 使用 Skill 工具加载 Superpowers `subagent-driven-development` 技能。技能加载后,读取 `comet/reference/subagent-dispatch.md` 获取 Comet 专属扩展(真实后台调度、任务隔离、勾选验证、TDD 约束、连续执行、上下文恢复),与技能工作流配合应用。若两者发生冲突,以更具体的 Comet 扩展为准。
217
- - 如果当前平台没有真实后台 agent 调度能力,必须暂停并等待用户选择改用主窗口执行。用户选择改用主窗口执行后,必须先运行 `"$COMET_BASH" "$COMET_STATE" set <name> build_mode executing-plans`,再按 `build_mode: executing-plans` 分支加载 Superpowers `executing-plans` 技能。用户未明确选择前,不得继续执行任务。
211
+ - 如果当前平台没有真实后台 agent 调度能力,必须暂停并等待用户选择改用主窗口执行。用户选择改用主窗口执行后,必须先运行 `node "$COMET_STATE" set <name> build_mode executing-plans`,再按 `build_mode: executing-plans` 分支加载 Superpowers `executing-plans` 技能。用户未明确选择前,不得继续执行任务。
218
212
 
219
213
  **TDD 模式执行约束**:
220
214
 
@@ -226,10 +220,14 @@ git commit -m "chore: add implementation plan"
226
220
 
227
221
  **`executing-plans` review gate**:
228
222
 
229
- `build_mode` 为 `executing-plans` `review_mode` `standard` `thorough` 时,在所有计划任务完成后、运行 build → verify 阶段守卫前,必须使用 Skill 工具加载 Superpowers `requesting-code-review` 技能并请求一次代码审查。`review_mode: off` 时跳过自动代码审查,不加载 `requesting-code-review`,并在验证报告草稿或 tasks.md 中记录跳过原因。
223
+ `executing-plans` 下,主会话直接执行任务(没有隔离的 implementer subagent),因此不存在 `subagent-driven-development` 那样的每任务 reviewer。代码审查针对已完成的 diff 进行,并按 `review_mode` 分级:
230
224
 
231
- 要求:
232
- - `requesting-code-review` 技能必须在 `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply` 之前加载
225
+ - **`review_mode: off`**:不自动代码审查。不加载 `requesting-code-review`。在验证报告草稿或 tasks.md 中记录跳过原因。
226
+ - **`review_mode: standard`**:在所有计划任务完成后、运行 build → verify 阶段守卫前,使用 Skill 工具加载 Superpowers `requesting-code-review` 技能一次,请求一次轻量代码审查(正确性、安全、边界),范围覆盖整个 change
227
+ - **`review_mode: thorough`**:除最终那次审查外,按任务分段每 3 个任务请求一次分段代码审查(范围限于该段的 diff)。若总任务数 ≤ 3,跳过执行中分段,只做最终审查。每次分段审查用 `requesting-code-review` 针对该段的提交区间进行。这是 `executing-plans` 下最接近 `subagent-driven-development` 每任务审查的等价物,因为它没有隔离的 implementer 可供逐任务审查。
228
+
229
+ 要求(适用于 `standard` 和 `thorough`):
230
+ - `requesting-code-review` 技能必须在 `node "$COMET_GUARD" <change-name> build --apply` 之前加载
233
231
  - 若 `requesting-code-review` 技能不可用,跳过 review gate 但必须在 tasks.md 中记录 `<!-- review skipped: skill unavailable -->`,并继续 guard 流转
234
232
  - CRITICAL review 发现(安全漏洞、数据丢失风险、构建/测试失败)必须先修复,不得带入 verify
235
233
  - 非 CRITICAL review 发现如选择接受,必须在 tasks.md、commit body、验证报告草稿或其他持久产物中记录接受原因和影响范围
@@ -268,7 +266,7 @@ git commit -m "chore: add implementation plan"
268
266
 
269
267
  Build 是最长阶段,可能跨越大量任务。为支持上下文压缩后断点恢复:
270
268
 
271
- - **每完成一个 task**:按当前执行分支和 `review_mode` 完成验收后再勾选对应任务并提交。`subagent-driven-development` 在 `standard` 或 `off` 时不做 per-task reviewer;在 `thorough` 时只按批次或风险边界做合并审查,不做每 task 双审查。所有模式都必须按任务唯一文本完成定向检查。可用 `grep -c '\- \[ \]' tasks.md` 检查剩余未勾选数,无需重新读取整个文件
269
+ - **每完成一个 task**:按当前执行分支和 `review_mode` 完成验收后再勾选对应任务并提交。`subagent-driven-development` 在 `off` 时不派发每任务 reviewer;`standard` 下仅当任务命中风险信号时派发;`thorough` 下每个任务都派发每任务 reviewer。所有模式都必须按任务唯一文本完成定向检查。可用 `grep -c '\- \[ \]' tasks.md` 检查剩余未勾选数,无需重新读取整个文件
272
270
  - **上下文压缩后恢复**:按 `comet/reference/context-recovery.md` 执行,phase 参数为 `build`。
273
271
  - **用户手动修改恢复**:按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。该协议定义了检查步骤、归因分类和禁令。build 阶段的特殊处理:
274
272
  1. 归因后,若 diff 暗示计划或 spec 已变化,按 Step 4「Spec 增量更新」分级处理
@@ -283,8 +281,8 @@ Build 是最长阶段,可能跨越大量任务。为支持上下文压缩后
283
281
  - `build_mode` 已写为 `subagent-driven-development`、`executing-plans` 或带显式 override 的 `direct`;若为 `subagent-driven-development`,`subagent_dispatch` 必须为 `confirmed`
284
282
  - `tdd_mode` 已写为 `tdd` 或 `direct`
285
283
  - `review_mode` 已写为 `off`、`standard` 或 `thorough`
286
- - `review_mode` `standard` 或 `thorough`,已按对应模式完成代码审查,且 CRITICAL review 发现已修复或非 CRITICAL review 发现已记录接受理由;若 `review_mode: off`,已在持久产物中记录跳过自动代码审查的原因
287
- - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`,全部 PASS 后由守卫推进到 `phase: verify`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
284
+ - 已按所选 `review_mode` 完成"执行计划"章节中 executing-plans review gate 规定的代码审查:`standard` 或 `thorough` 下已请求代码审查且 CRITICAL review 发现已修复、非 CRITICAL review 发现已记录接受理由;`review_mode: off` 下已在持久产物中记录跳过自动代码审查的原因
285
+ - **阶段守卫**:运行 `node "$COMET_GUARD" <change-name> build --apply`,全部 PASS 后由守卫推进到 `phase: verify`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
288
286
 
289
287
  Guard 会优先读取项目配置中的命令:
290
288
 
@@ -294,12 +292,12 @@ verify_command: <verify command>
294
292
  ```
295
293
 
296
294
  配置位置可为 change 的 `.comet.yaml`,也可为仓库根目录的 `.comet.yaml` / `comet.yaml` / `.comet.yml` / `comet.yml`。
297
- 未配置时才回退到 `npm run build`、Maven 或 Cargo 的默认探测。构建失败时 guard 会打印失败命令输出,作为排查证据。
295
+ 配置命令使用受限 shell 语法:允许命令词、引号、路径和用 `&&` 串联的顺序步骤;拒绝 `;`、管道、裸 `&`、`$` 和反引号。未配置时才回退到 `npm run build`、Maven 或 Cargo 的默认探测。构建失败时 guard 会打印失败命令输出,作为排查证据。
298
296
 
299
297
  退出前运行阶段守卫推进 phase(此步骤与 `auto_transition` 无关):
300
298
 
301
299
  ```bash
302
- "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply
300
+ node "$COMET_GUARD" <change-name> build --apply
303
301
  ```
304
302
 
305
303
  状态文件自动更新为 `phase: verify`、`verify_result: pending`。
@@ -309,7 +307,7 @@ verify_command: <verify command>
309
307
  按 `comet/reference/auto-transition.md` 执行。关键命令:
310
308
 
311
309
  ```bash
312
- "$COMET_BASH" "$COMET_STATE" next <change-name>
310
+ node "$COMET_STATE" next <change-name>
313
311
  ```
314
312
 
315
313
  - `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-design
3
- description: "Comet 阶段 2:深度设计。用 /comet-design 调用。通过 brainstorming 产出 Design Doc delta spec。"
3
+ description: "Use when full Comet change 已完成 open 阶段但缺少 Superpowers Design Doc,或 design 阶段需要从 OpenSpec 交接包恢复。"
4
4
  ---
5
5
 
6
6
  # Comet 阶段 2:深度设计(Design)
@@ -10,20 +10,16 @@ description: "Comet 阶段 2:深度设计。用 /comet-design 调用。通过
10
10
  - 活跃 change 已存在(proposal.md、design.md、tasks.md)
11
11
  - 无 Design Doc(`docs/superpowers/specs/` 下无对应文件)
12
12
 
13
+ > 职责边界:open 阶段的 `design.md` 给出**高层方案框架**(架构决策方向、方案选型、数据流);design 阶段的 Design Doc 是对它的**深度技术细化**(详细实现设计、技术风险、测试策略、边界条件),是深化而非替代或重写。
14
+
13
15
  ## 步骤
14
16
 
15
17
  ### 0. 入口状态验证(Entry Check)
16
18
 
17
- 执行入口验证:
19
+ 按 `comet/reference/scripts.md` 定位脚本(定位 `comet-env.mjs`),然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
18
20
 
19
21
  ```bash
20
- COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.sh' -type f -print -quit 2>/dev/null)}"
21
- if [ -z "$COMET_ENV" ]; then
22
- echo "ERROR: comet-env.sh not found. Ensure the comet skill is installed." >&2
23
- return 1
24
- fi
25
- . "$COMET_ENV"
26
- "$COMET_BASH" "$COMET_STATE" check <name> design
22
+ node "$COMET_STATE" check <name> design
27
23
  ```
28
24
 
29
25
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
@@ -35,7 +31,7 @@ fi
35
31
  **必须由脚本生成,不允许 agent 临场手写 summary 代替。**
36
32
 
37
33
  ```bash
38
- "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write
34
+ node "$COMET_HANDOFF" <change-name> design --write
39
35
  ```
40
36
 
41
37
  脚本会根据 change `.comet.yaml` 的 `context_compression` 快照生成并记录交接包。
@@ -74,7 +70,7 @@ beta 交接包是 **结构化 spec projection**,用于减少 OpenSpec 原文 t
74
70
  如确实需要全文上下文,可显式运行:
75
71
 
76
72
  ```bash
77
- "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write --full
73
+ node "$COMET_HANDOFF" <change-name> design --write --full
78
74
  ```
79
75
 
80
76
  交接包来源来自 OpenSpec open 阶段产物:
@@ -90,7 +86,7 @@ beta 交接包是 **结构化 spec projection**,用于减少 OpenSpec 原文 t
90
86
  技能加载时,ARGUMENTS 必须包含:
91
87
 
92
88
  ```text
93
- Language: 使用触发本次工作流的用户请求语言输出
89
+ Language: 使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取到的 Comet 配置产物语言输出
94
90
  ```
95
91
 
96
92
  技能加载后,按其指引使用以下上下文:
@@ -218,13 +214,13 @@ canonical_spec: openspec
218
214
 
219
215
  ```bash
220
216
  # 记录 design_doc 路径
221
- "$COMET_BASH" "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md
217
+ node "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md
222
218
 
223
219
  # 如有 delta spec 变更,重新生成 handoff(更新 hash)
224
- "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write
220
+ node "$COMET_HANDOFF" <change-name> design --write
225
221
 
226
222
  # 阶段守卫推进 phase 到下一阶段
227
- "$COMET_BASH" "$COMET_GUARD" <change-name> design --apply
223
+ node "$COMET_GUARD" <change-name> design --apply
228
224
  ```
229
225
 
230
226
  如果没有 delta spec 变更,跳过 handoff 重新生成步骤。状态文件自动更新,无需手动编辑其他字段。
@@ -239,12 +235,12 @@ canonical_spec: openspec
239
235
  - beta 模式下,`spec-context.json` 必须结构合法且引用当前源文件(由 guard 强制校验)
240
236
  - 如有新能力或补充验收场景,OpenSpec delta spec 已创建/更新
241
237
  - `design_doc` 已写入 `.comet.yaml`
242
- - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> design --apply`,全部 PASS 后由守卫推进到 `phase: build`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
238
+ - **阶段守卫**:运行 `node "$COMET_GUARD" <change-name> design --apply`,全部 PASS 后由守卫推进到 `phase: build`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
243
239
 
244
240
  退出前必须使用 `--apply`:
245
241
 
246
242
  ```bash
247
- "$COMET_BASH" "$COMET_GUARD" <change-name> design --apply
243
+ node "$COMET_GUARD" <change-name> design --apply
248
244
  ```
249
245
 
250
246
  ## 上下文压缩恢复
@@ -256,7 +252,7 @@ canonical_spec: openspec
256
252
  按 `comet/reference/auto-transition.md` 执行。关键命令:
257
253
 
258
254
  ```bash
259
- "$COMET_BASH" "$COMET_STATE" next <change-name>
255
+ node "$COMET_STATE" next <change-name>
260
256
  ```
261
257
 
262
258
  - `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-hotfix
3
- description: "Comet 预设路径:Bug fix / 热修复。跳过 brainstorming,直接 open → build → verify → archive。适用于行为修复、不涉及新 capability 设计的场景。"
3
+ description: "Use when 用户要修复已有行为 bug,且不新增 capability、不需要完整设计;也用于恢复 hotfix workflow。"
4
4
  ---
5
5
 
6
6
  # Comet 预设路径:Hotfix
@@ -10,32 +10,23 @@ description: "Comet 预设路径:Bug fix / 热修复。跳过 brainstorming,
10
10
  **适用条件**(必须全部满足):
11
11
  1. 修复已有功能的 bug,不新增 capability
12
12
  2. 不涉及接口变更或架构调整
13
- 3. 改动范围可预估(通常 ≤ 2 个文件)
13
+ 3. 改动范围可预估(文件数仅作提示,不作为硬性升级条件,见下方升级判定)
14
14
 
15
- **不适用**:如修复过程发现需要架构调整,应升级为完整 `/comet` 流程。
15
+ **不适用**:如修复过程命中质变信号(见「升级判定」章节),由用户决定是否升级为完整 `/comet` 流程。
16
16
 
17
17
  ---
18
18
 
19
- ## 流程(preset workflow,6 步)
19
+ ## 流程(预设流程,6 步)
20
20
 
21
21
  ### 0. 输出语言约束
22
22
 
23
- 精简版 OpenSpec 产物必须使用触发本次工作流的用户请求语言。
23
+ 精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml` 尚不存在时读取 `.comet/config.yaml` 的 `language`,初始化后使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取。
24
24
 
25
25
  执行链路:open → build → verify → archive。Hotfix 为每个阶段提供默认决策:精简开启、直接构建、按规模验证、验证通过后进入归档前最终确认。
26
26
 
27
- 开始前先定位 Comet 脚本:
27
+ 开始前按 `comet/reference/scripts.md` 定位 Comet 脚本(定位 `comet-env.mjs`);从任意入口恢复时先按 `comet/reference/context-recovery.md` 确认 phase/workflow。
28
28
 
29
- ```bash
30
- COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.sh' -type f -print -quit 2>/dev/null)}"
31
- if [ -z "$COMET_ENV" ]; then
32
- echo "ERROR: comet-env.sh not found. Ensure the comet skill is installed." >&2
33
- return 1
34
- fi
35
- . "$COMET_ENV"
36
- ```
37
-
38
- ### 1. 快速开启(preset open)
29
+ ### 1. 快速开启(预设 open)
39
30
 
40
31
  复用 Comet open 能力创建 change,但使用 hotfix 默认值:不执行 `openspec-explore` 长探索,直接进入精简 change 创建。
41
32
 
@@ -50,35 +41,35 @@ fi
50
41
  初始化 Comet 状态文件:
51
42
 
52
43
  ```bash
53
- "$COMET_BASH" "$COMET_STATE" init <name> hotfix
44
+ node "$COMET_STATE" init <name> hotfix
54
45
  ```
55
46
 
56
47
  初始化后验证状态:
57
48
 
58
49
  ```bash
59
- "$COMET_BASH" "$COMET_STATE" check <name> open
50
+ node "$COMET_STATE" check <name> open
60
51
  ```
61
52
 
62
53
  阶段守卫完成 open → build 过渡:
63
54
 
64
55
  ```bash
65
- "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply
56
+ node "$COMET_GUARD" <change-name> open --apply
66
57
  ```
67
58
 
68
59
  检查 `auto_transition` 决定是否继续:
69
60
 
70
61
  ```bash
71
- "$COMET_BASH" "$COMET_STATE" next <name>
62
+ node "$COMET_STATE" next <name>
72
63
  ```
73
64
 
74
65
  - `NEXT: auto` → 继续 Step 2
75
66
  - `NEXT: manual` → 暂停,按 `HINT` 提示用户手动运行 `/<SKILL>`
76
67
 
77
- ### 2. 直接构建(preset build)
68
+ ### 2. 直接构建(预设 build)
78
69
 
79
- 使用 hotfix 默认值:`build_mode: direct`,默认 `review_mode: off`。跳过 Superpowers `brainstorming` 和 `writing-plans`(除非任务 > 3 个;若超过 3 个任务,转入 `/comet-build` 的计划与执行方式选择——注意这不触发 full workflow 升级,仅切换执行方式)。
70
+ 使用 hotfix 默认值:`build_mode: direct`,`review_mode: off`(hotfix/tweak 跳过 review_mode 选择——guard 不要求预设工作流选择此项)。跳过 Superpowers `brainstorming` 和 `writing-plans`(除非任务 > 3 个;若超过 3 个任务,转入 `/comet-build` 的计划与执行方式选择——注意这不触发 full workflow 升级,仅切换执行方式)。
80
71
 
81
- 继续或开始修改前,按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。若归因后发现修复范围超出 hotfix,按本文件“升级条件”处理。
72
+ 继续或开始修改前,按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。若归因后发现修复命中质变信号或文件数 tripwire,按本文件「升级判定」处理。
82
73
 
83
74
  **立即执行:** 按 tasks.md 逐个执行任务:
84
75
 
@@ -107,29 +98,29 @@ fi
107
98
  2. 搜索验证问题代码不再存在
108
99
  3. 如根因未消除,回到 Step 2 继续修复(此时仍在 build 阶段,无需状态回退)
109
100
 
110
- **升级条件**:
111
- - 根因消除检查发现深层架构问题 → 停止 hotfix,按升级条件阻塞确认处理
112
- - 修复需要额外接口变更 → 停止 hotfix,按升级条件阻塞确认处理
101
+ **升级判定信号**:
102
+ - 根因消除检查发现深层架构问题 → 命中质变信号,按「升级判定」章节暂停交用户决定
103
+ - 修复需要额外接口变更 → 命中质变信号(引入新的 public API),按「升级判定」章节暂停交用户决定
113
104
 
114
105
  根因确认消除后,运行阶段守卫完成 build → verify 过渡:
115
106
 
116
107
  ```bash
117
- "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply
108
+ node "$COMET_GUARD" <change-name> build --apply
118
109
  ```
119
110
 
120
111
  状态文件自动更新为 `phase: verify`、`verify_result: pending`,然后进入验证。
121
112
 
122
- ### 4. 验证(preset verify)
113
+ ### 4. 验证(预设 verify)
123
114
 
124
115
  复用 `/comet-verify`,由 comet-verify 的规模评估决定轻量或完整验证。
125
116
 
126
117
  **立即执行:** 使用 Skill 工具加载 `comet-verify` 技能。禁止跳过此步骤。
127
118
 
128
- 无 delta spec 的小范围 hotfix 通常满足轻量验证条件(≤ 3 tasks、≤ 2 files),comet-verify 的规模评估会选择轻量验证路径(6 项快速检查;默认 `review_mode: off` 时不自动派发代码审查)。若用户希望增加审查,可在验证前运行 `"$COMET_BASH" "$COMET_STATE" set <name> review_mode standard` 或 `thorough`。若 hotfix 创建了 delta spec,则根据 comet-verify 的规模评估规则进入完整验证路径。
119
+ 无 delta spec 的小范围 hotfix 通常满足轻量验证条件(≤ 3 tasks、改动文件数低于 scale 阈值),comet-verify 的规模评估会选择轻量验证路径(6 项快速检查;默认 `review_mode: off` 时不自动派发代码审查)。若用户希望增加审查,可在验证前运行 `node "$COMET_STATE" set <name> review_mode standard` 或 `thorough`。若 hotfix 创建了 delta spec,则根据 comet-verify 的规模评估规则进入完整验证路径。
129
120
 
130
121
  验证通过后,按 `/comet-verify` 的规则将 `.comet.yaml` 的 `verify_result` 记录为 `pass`,归档前不得跳过该状态。验证通过后仍必须进入 `/comet-archive` 的归档前最终确认,不得自动运行归档脚本。
131
122
 
132
- ### 5. 归档(preset archive)
123
+ ### 5. 归档(预设 archive)
133
124
 
134
125
  复用 `/comet-archive`。归档前必须满足 `.comet.yaml` 中 `verify_result: pass`,并等待 `/comet-archive` 的归档前最终确认。
135
126
 
@@ -143,7 +134,7 @@ fi
143
134
  <IMPORTANT>
144
135
  Hotfix 流程默认 **一次性连续执行**。调用 `/comet-hotfix` 后,agent 在 hotfix 自有步骤间自动推进,不主动停顿。**例外**:若 `auto_transition: false`,则在每个 phase 边界(build/verify/archive 之间)停下,由用户手动运行下一阶段命令——此时连续执行降级为逐阶段手动推进,详见下方「自动衔接下一阶段」。但无论 `auto_transition` 取何值,以下情况都必须暂停等待用户确认:
145
136
 
146
- 1. 遇到升级条件(见"升级条件"章节),**必须使用当前平台可用的用户输入/确认机制暂停并等待用户明确确认**升级为完整流程
137
+ 1. 遇到升级判定信号(见「升级判定」章节),**必须使用当前平台可用的用户输入/确认机制暂停并等待用户明确选择**:继续 hotfix 流程,还是升级为完整 `/comet` 流程
147
138
  2. 任务超过 3 个转入 `/comet-build` 时的工作区隔离和执行方式选择
148
139
  3. 验证阶段(comet-verify)的验证失败决策和分支处理决策
149
140
  4. 归档前最终确认(comet-archive 执行归档脚本前)
@@ -155,28 +146,27 @@ Hotfix 流程默认 **一次性连续执行**。调用 `/comet-hotfix` 后,age
155
146
 
156
147
  ---
157
148
 
158
- ## 升级条件
149
+ ## 升级判定
159
150
 
160
- 满足以下**任一**条件时,停止 hotfix 流程,升级为完整 `/comet`:
151
+ hotfix 的升级判定只决定是否从预设流程转为 full;文件数不自动升级,`comet-state scale` 只决定验证轻重。
161
152
 
162
- | 条件 | 说明 |
163
- |------|------|
164
- | 改动涉及 **3+ 文件** | 超出单点修复范围 |
165
- | 架构变更 | 新模块、新接口、新依赖 |
166
- | 数据库 schema 变更 | 结构性调整 |
167
- | 引入新的 public API | 修复产生了新的对外接口 |
168
- | 修复范围超出单一函数/模块 | 需要多处协调修改 |
153
+ 若由 `/comet` 入口传入 intent frame,hotfix 在 build 前只复核 `risk_signal` 和升级信号:新增 capability、public API、schema 变更、跨模块协调或深层架构问题。命中时进入现有升级决策点;不得重新实现入口意图识别。
169
154
 
170
- 满足升级条件时**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户明确确认**升级为完整 `/comet` 流程。不得直接进入 `/comet-design`,不得自动补充 Design Doc。
155
+ 持续检查以下质变信号:跨模块协调修改、需要新增 capability、数据库 schema 变更、引入新的 public API、触及深层架构问题(hotfix 语境下多在根因消除检查时暴露)。命中任一信号时,agent **不得自行升级或自行判定可继续**。
171
156
 
172
- 用户确认升级后,**必须先更新 workflow phase 字段**再进入完整流程:
157
+ 文件数 tripwire 仅作提示:改动文件数超过提示阈值(如 > 4 个文件)时,也交给用户决定继续 hotfix 还是升级 full;文件数多不等于质变。bug 修复通常聚焦在 1-3 个文件,超过阈值说明改动面偏大、值得让用户复核是否仍属预设范围。
158
+
159
+ 命中质变信号或文件数 tripwire 时,**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户明确选择**。不得直接进入 `/comet-design`,不得自动补充 Design Doc。
160
+
161
+ 用户选择升级(选项 B)后,使用状态机合法的升级通道,单条命令完成预设流程 → full 转换并回退到 design 阶段:
173
162
 
174
163
  ```bash
175
- "$COMET_BASH" "$COMET_STATE" set <name> workflow full
176
- "$COMET_BASH" "$COMET_STATE" set <name> phase design
164
+ node "$COMET_STATE" transition <name> preset-escalate
177
165
  ```
178
166
 
179
- 然后在当前 change 基础上补充 Design Doc:**立即使用 Skill 工具加载 `comet-design` skill**,后续正常走完整流程。若用户不确认升级,停止 hotfix 并报告当前变更已超出 hotfix 适用范围。
167
+ 该命令原子地把 `workflow`/`classic_profile` 置为 `full`、`phase` 回退到 `design`、清空 `design_doc`(满足 comet-design 入口要求)。然后在当前 change 基础上补充 Design Doc:**立即使用 Skill 工具加载 `comet-design` skill**,后续正常走完整流程。
168
+
169
+ 用户选择继续(选项 A)时,继续 hotfix 流程,并记录用户确认继续的原因。
180
170
 
181
171
  ---
182
172
 
@@ -185,14 +175,14 @@ Hotfix 流程默认 **一次性连续执行**。调用 `/comet-hotfix` 后,age
185
175
  - Bug 已修复,测试通过
186
176
  - change 已归档
187
177
  - 如有 spec 变更,已同步到 main spec
188
- - **阶段守卫**:build → verify 前运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply`
178
+ - **阶段守卫**:build → verify 前运行 `node "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `node "$COMET_GUARD" <change-name> verify --apply`
189
179
 
190
180
  ## 自动衔接下一阶段
191
181
 
192
182
  按 `comet/reference/auto-transition.md` 执行。关键命令:
193
183
 
194
184
  ```bash
195
- "$COMET_BASH" "$COMET_STATE" next <name>
185
+ node "$COMET_STATE" next <name>
196
186
  ```
197
187
 
198
188
  - `NEXT: auto` → 调用 `SKILL` 指向的 skill 继续 hotfix 流程(`phase: build` 返回 `comet-hotfix`,`verify` 返回 `comet-verify`,`archive` 返回 `comet-archive`)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-open
3
- description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec 探索想法、确认需求澄清,再创建 change 结构(proposal + design + tasks)。"
3
+ description: "Use when Comet 需要创建新的 OpenSpec change,或 active change 缺少 proposal/design/tasks/.comet.yaml 初始化产物。"
4
4
  ---
5
5
 
6
6
  # Comet 阶段 1:开启(Open)
@@ -13,7 +13,7 @@ description: "Comet 阶段 1:开启。用 /comet-open 调用。通过 OpenSpec
13
13
 
14
14
  ### 0. 输出语言约束
15
15
 
16
- 传递给 OpenSpec 的所有提问和产物要求都必须包含输出语言约束:使用触发本次工作流的用户请求语言。恢复已有 change 且产物已有明确主语言时,除非用户明确要求切换,否则保持该语言。
16
+ 传递给 OpenSpec 的所有提问和产物要求都必须包含解析后的 Comet 产物语言,并使用 `en`、`zh-CN` 这类规范化 ID。`.comet.yaml` 尚不存在时读取 `.comet/config.yaml` 的 `language`;change 初始化后使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取。没有配置语言时才回退到当前用户请求语言。生成的 `proposal.md`、`design.md`、`tasks.md` 必须以该语言为主语言。
17
17
 
18
18
  ### 1. 探索想法与需求澄清
19
19
 
@@ -131,26 +131,16 @@ openspec/changes/<name>/
131
131
  ├── .openspec.yaml
132
132
  ├── .comet.yaml
133
133
  ├── proposal.md # Why + What:问题、目标、范围
134
- ├── design.md # How(高层):架构决策、方案选型
134
+ ├── design.md # How(高层框架):架构决策、方案选型(深度技术设计在 design 阶段 Design Doc 细化)
135
135
  └── tasks.md # 任务清单(勾选框)
136
136
  ```
137
137
 
138
138
  创建 `.comet.yaml` 状态文件:
139
139
 
140
+ 先按 `comet/reference/scripts.md` 定位脚本(定位 `comet-env.mjs`),然后初始化状态:
141
+
140
142
  ```bash
141
- COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.sh' -type f -print -quit 2>/dev/null)}"
142
- if [ -z "$COMET_ENV" ]; then
143
- echo "ERROR: comet-env.sh not found. Ensure the comet skill is installed." >&2
144
- return 1
145
- fi
146
- . "$COMET_ENV"
147
-
148
- if [ -z "$COMET_STATE" ] || [ -z "$COMET_GUARD" ]; then
149
- echo "ERROR: Comet scripts not found. Ensure the comet skill is installed." >&2
150
- return 1
151
- fi
152
-
153
- "$COMET_BASH" "$COMET_STATE" init <name> full
143
+ node "$COMET_STATE" init <name> full
154
144
  ```
155
145
 
156
146
  ### 3. 入口状态验证
@@ -158,7 +148,7 @@ fi
158
148
  验证状态机已正确初始化:
159
149
 
160
150
  ```bash
161
- "$COMET_BASH" "$COMET_STATE" check <name> open
151
+ node "$COMET_STATE" check <name> open
162
152
  ```
163
153
 
164
154
  验证通过后继续 Step 4。验证失败时脚本会输出具体失败原因。
@@ -195,26 +185,26 @@ fi
195
185
 
196
186
  - proposal.md、design.md、tasks.md 均已创建且内容完整
197
187
  - **用户已确认** proposal、design、tasks 内容符合预期
198
- - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> open --apply`,全部 PASS 后由守卫推进到下一阶段(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
188
+ - **阶段守卫**:运行 `node "$COMET_GUARD" <change-name> open --apply`,全部 PASS 后由守卫推进到下一阶段(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
199
189
 
200
190
  退出前必须使用 `--apply`,否则 `.comet.yaml` 仍停留在 `phase: open`,下一阶段入口检查会失败。
201
191
 
202
192
  ```bash
203
- "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply
193
+ node "$COMET_GUARD" <change-name> open --apply
204
194
  ```
205
195
 
206
- 完整流程会自动更新为 `phase: design`;hotfix/tweak preset 会自动更新为 `phase: build`。
196
+ 完整流程会自动更新为 `phase: design`;hotfix/tweak 预设会自动更新为 `phase: build`。
207
197
 
208
198
  ## 自动衔接下一阶段
209
199
 
210
200
  按 `comet/reference/auto-transition.md` 执行。关键命令:
211
201
 
212
202
  ```bash
213
- "$COMET_BASH" "$COMET_STATE" next <change-name>
203
+ node "$COMET_STATE" next <change-name>
214
204
  ```
215
205
 
216
206
  - `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
217
207
  - `NEXT: manual` → 不要调用下一 skill,按 `HINT` 提示用户手动运行 `/<SKILL>`
218
208
  - `NEXT: done` → 流程已完成,无需继续
219
209
 
220
- hotfix/tweak preset 由对应 preset skill 控制后续流转(phase 直接进入 build),其 `next` 会返回对应 preset skill
210
+ hotfix/tweak 预设由对应预设 Skill 控制后续流转(phase 直接进入 build),其 `next` 会返回对应预设 Skill