@rpamis/comet 0.4.0-beta.3 → 0.4.0-beta.5

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 (605) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +15 -1
  3. package/assets/manifest.json +2 -1
  4. package/assets/skills/comet/SKILL.md +54 -28
  5. package/assets/skills/comet/reference/auto-transition.md +1 -1
  6. package/assets/skills/comet/reference/comet-yaml-fields.md +11 -6
  7. package/assets/skills/comet/reference/context-recovery.md +12 -2
  8. package/assets/skills/comet/reference/decision-point.md +11 -0
  9. package/assets/skills/comet/reference/scripts.md +47 -15
  10. package/assets/skills/comet/reference/subagent-dispatch.md +6 -5
  11. package/assets/skills/comet/rules/comet-phase-guard.en.md +31 -28
  12. package/assets/skills/comet/rules/comet-phase-guard.md +31 -29
  13. package/assets/skills/comet/scripts/comet-resume-probe.mjs +3 -0
  14. package/assets/skills/comet/scripts/comet-runtime.mjs +1568 -476
  15. package/assets/skills/comet-any/SKILL.md +1 -1
  16. package/assets/skills/comet-any/reference/authored-zone-example.md +10 -5
  17. package/assets/skills/comet-any/reference/subagents/pause-points-author.md +14 -11
  18. package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +2 -0
  19. package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +5 -4
  20. package/assets/skills/comet-archive/SKILL.md +52 -18
  21. package/assets/skills/comet-build/SKILL.md +64 -45
  22. package/assets/skills/comet-design/SKILL.md +24 -22
  23. package/assets/skills/comet-hotfix/SKILL.md +37 -34
  24. package/assets/skills/comet-open/SKILL.md +106 -57
  25. package/assets/skills/comet-tweak/SKILL.md +23 -18
  26. package/assets/skills/comet-verify/SKILL.md +57 -72
  27. package/assets/skills-zh/comet/SKILL.md +54 -28
  28. package/assets/skills-zh/comet/reference/auto-transition.md +1 -1
  29. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +11 -6
  30. package/assets/skills-zh/comet/reference/context-recovery.md +12 -2
  31. package/assets/skills-zh/comet/reference/decision-point.md +11 -0
  32. package/assets/skills-zh/comet/reference/scripts.md +47 -15
  33. package/assets/skills-zh/comet/reference/subagent-dispatch.md +6 -5
  34. package/assets/skills-zh/comet-any/SKILL.md +1 -1
  35. package/assets/skills-zh/comet-any/reference/authored-zone-example.md +10 -5
  36. package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +14 -12
  37. package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +2 -0
  38. package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +5 -4
  39. package/assets/skills-zh/comet-archive/SKILL.md +52 -18
  40. package/assets/skills-zh/comet-build/SKILL.md +64 -45
  41. package/assets/skills-zh/comet-design/SKILL.md +24 -22
  42. package/assets/skills-zh/comet-hotfix/SKILL.md +36 -33
  43. package/assets/skills-zh/comet-open/SKILL.md +105 -56
  44. package/assets/skills-zh/comet-tweak/SKILL.md +22 -17
  45. package/assets/skills-zh/comet-verify/SKILL.md +57 -72
  46. package/dist/app/cli/comet-banner.d.ts +25 -0
  47. package/dist/app/cli/comet-banner.d.ts.map +1 -0
  48. package/dist/app/cli/comet-banner.js +265 -0
  49. package/dist/app/cli/comet-banner.js.map +1 -0
  50. package/dist/app/cli/index.js +36 -2
  51. package/dist/app/cli/index.js.map +1 -1
  52. package/dist/app/commands/classic.d.ts +4 -0
  53. package/dist/app/commands/classic.d.ts.map +1 -0
  54. package/dist/app/commands/classic.js +11 -0
  55. package/dist/app/commands/classic.js.map +1 -0
  56. package/dist/app/commands/doctor.d.ts.map +1 -1
  57. package/dist/app/commands/doctor.js +99 -37
  58. package/dist/app/commands/doctor.js.map +1 -1
  59. package/dist/app/commands/eval.d.ts.map +1 -1
  60. package/dist/app/commands/eval.js +57 -20
  61. package/dist/app/commands/eval.js.map +1 -1
  62. package/dist/app/commands/i18n.d.ts +1 -1
  63. package/dist/app/commands/i18n.d.ts.map +1 -1
  64. package/dist/app/commands/i18n.js +12 -4
  65. package/dist/app/commands/i18n.js.map +1 -1
  66. package/dist/app/commands/init.d.ts +1 -1
  67. package/dist/app/commands/init.d.ts.map +1 -1
  68. package/dist/app/commands/init.js +72 -25
  69. package/dist/app/commands/init.js.map +1 -1
  70. package/dist/app/commands/project-scope-selection.d.ts +13 -0
  71. package/dist/app/commands/project-scope-selection.d.ts.map +1 -0
  72. package/dist/app/commands/project-scope-selection.js +33 -0
  73. package/dist/app/commands/project-scope-selection.js.map +1 -0
  74. package/dist/app/commands/resume-probe.d.ts +11 -0
  75. package/dist/app/commands/resume-probe.d.ts.map +1 -0
  76. package/dist/app/commands/resume-probe.js +63 -0
  77. package/dist/app/commands/resume-probe.js.map +1 -0
  78. package/dist/app/commands/status.d.ts +31 -0
  79. package/dist/app/commands/status.d.ts.map +1 -1
  80. package/dist/app/commands/status.js +109 -20
  81. package/dist/app/commands/status.js.map +1 -1
  82. package/dist/app/commands/uninstall.d.ts +5 -0
  83. package/dist/app/commands/uninstall.d.ts.map +1 -1
  84. package/dist/app/commands/uninstall.js +264 -53
  85. package/dist/app/commands/uninstall.js.map +1 -1
  86. package/dist/app/commands/update.d.ts +6 -0
  87. package/dist/app/commands/update.d.ts.map +1 -1
  88. package/dist/app/commands/update.js +558 -86
  89. package/dist/app/commands/update.js.map +1 -1
  90. package/dist/config/repository-layout.json +4 -2
  91. package/dist/domains/bundle/bundle-platform.d.ts +1 -0
  92. package/dist/domains/bundle/bundle-platform.d.ts.map +1 -1
  93. package/dist/domains/bundle/bundle-platform.js +9 -3
  94. package/dist/domains/bundle/bundle-platform.js.map +1 -1
  95. package/dist/domains/bundle/eval-manifest-runtime.d.ts +6 -0
  96. package/dist/domains/bundle/eval-manifest-runtime.d.ts.map +1 -0
  97. package/dist/domains/bundle/eval-manifest-runtime.js +58 -0
  98. package/dist/domains/bundle/eval-manifest-runtime.js.map +1 -0
  99. package/dist/domains/bundle/types.d.ts +1 -1
  100. package/dist/domains/bundle/types.d.ts.map +1 -1
  101. package/dist/domains/comet-classic/classic-archive.d.ts +1 -0
  102. package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -1
  103. package/dist/domains/comet-classic/classic-archive.js +35 -38
  104. package/dist/domains/comet-classic/classic-archive.js.map +1 -1
  105. package/dist/domains/comet-classic/classic-cli.d.ts +1 -1
  106. package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -1
  107. package/dist/domains/comet-classic/classic-cli.js +3 -0
  108. package/dist/domains/comet-classic/classic-cli.js.map +1 -1
  109. package/dist/domains/comet-classic/classic-command-checks.d.ts +20 -0
  110. package/dist/domains/comet-classic/classic-command-checks.d.ts.map +1 -0
  111. package/dist/domains/comet-classic/classic-command-checks.js +97 -0
  112. package/dist/domains/comet-classic/classic-command-checks.js.map +1 -0
  113. package/dist/domains/comet-classic/classic-current-change.d.ts +19 -0
  114. package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -0
  115. package/dist/domains/comet-classic/classic-current-change.js +132 -0
  116. package/dist/domains/comet-classic/classic-current-change.js.map +1 -0
  117. package/dist/domains/comet-classic/classic-diagnostics.d.ts +2 -1
  118. package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -1
  119. package/dist/domains/comet-classic/classic-diagnostics.js +54 -1
  120. package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -1
  121. package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -1
  122. package/dist/domains/comet-classic/classic-evidence.js +4 -0
  123. package/dist/domains/comet-classic/classic-evidence.js.map +1 -1
  124. package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
  125. package/dist/domains/comet-classic/classic-guard.js +83 -80
  126. package/dist/domains/comet-classic/classic-guard.js.map +1 -1
  127. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
  128. package/dist/domains/comet-classic/classic-hook-guard.js +179 -42
  129. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
  130. package/dist/domains/comet-classic/classic-project-config.d.ts +16 -0
  131. package/dist/domains/comet-classic/classic-project-config.d.ts.map +1 -0
  132. package/dist/domains/comet-classic/classic-project-config.js +40 -0
  133. package/dist/domains/comet-classic/classic-project-config.js.map +1 -0
  134. package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -1
  135. package/dist/domains/comet-classic/classic-resolver.js +4 -4
  136. package/dist/domains/comet-classic/classic-resolver.js.map +1 -1
  137. package/dist/domains/comet-classic/classic-resume-probe-command.d.ts +3 -0
  138. package/dist/domains/comet-classic/classic-resume-probe-command.d.ts.map +1 -0
  139. package/dist/domains/comet-classic/classic-resume-probe-command.js +58 -0
  140. package/dist/domains/comet-classic/classic-resume-probe-command.js.map +1 -0
  141. package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts +2 -0
  142. package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts.map +1 -0
  143. package/dist/domains/comet-classic/classic-resume-probe-entry.js +4 -0
  144. package/dist/domains/comet-classic/classic-resume-probe-entry.js.map +1 -0
  145. package/dist/domains/comet-classic/classic-resume-probe.d.ts +29 -0
  146. package/dist/domains/comet-classic/classic-resume-probe.d.ts.map +1 -0
  147. package/dist/domains/comet-classic/classic-resume-probe.js +386 -0
  148. package/dist/domains/comet-classic/classic-resume-probe.js.map +1 -0
  149. package/dist/domains/comet-classic/classic-runtime-run.d.ts +2 -1
  150. package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -1
  151. package/dist/domains/comet-classic/classic-runtime-run.js +38 -0
  152. package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -1
  153. package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -1
  154. package/dist/domains/comet-classic/classic-state-command.js +150 -25
  155. package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
  156. package/dist/domains/comet-classic/classic-state.d.ts +5 -2
  157. package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
  158. package/dist/domains/comet-classic/classic-state.js +17 -1
  159. package/dist/domains/comet-classic/classic-state.js.map +1 -1
  160. package/dist/domains/comet-classic/classic-store.d.ts +4 -1
  161. package/dist/domains/comet-classic/classic-store.d.ts.map +1 -1
  162. package/dist/domains/comet-classic/classic-store.js +4 -3
  163. package/dist/domains/comet-classic/classic-store.js.map +1 -1
  164. package/dist/domains/comet-classic/classic-transitions.d.ts +1 -1
  165. package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -1
  166. package/dist/domains/comet-classic/classic-transitions.js +36 -3
  167. package/dist/domains/comet-classic/classic-transitions.js.map +1 -1
  168. package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -1
  169. package/dist/domains/comet-classic/classic-validate-command.js +8 -1
  170. package/dist/domains/comet-classic/classic-validate-command.js.map +1 -1
  171. package/dist/domains/comet-classic/index.d.ts +3 -0
  172. package/dist/domains/comet-classic/index.d.ts.map +1 -1
  173. package/dist/domains/comet-classic/index.js +3 -0
  174. package/dist/domains/comet-classic/index.js.map +1 -1
  175. package/dist/domains/dashboard/collector.js +10 -2
  176. package/dist/domains/dashboard/collector.js.map +1 -1
  177. package/dist/domains/dashboard/web/assets/_commonjsHelpers-CqkleIqs.js +1 -0
  178. package/dist/domains/dashboard/web/assets/arc-TGVUG2WN.js +1 -0
  179. package/dist/domains/dashboard/web/assets/architectureDiagram-3BPJPVTR-ASHmiHoP.js +36 -0
  180. package/dist/domains/dashboard/web/assets/blockDiagram-GPEHLZMM-CwASxBKe.js +132 -0
  181. package/dist/domains/dashboard/web/assets/c4Diagram-AAUBKEIU-BU8z_WNk.js +10 -0
  182. package/dist/domains/dashboard/web/assets/channel-kp6Ng2JJ.js +1 -0
  183. package/dist/domains/dashboard/web/assets/chunk-2J33WTMH-CBGlUx4_.js +1 -0
  184. package/dist/domains/dashboard/web/assets/chunk-4BX2VUAB-CS-iGcFz.js +1 -0
  185. package/dist/domains/dashboard/web/assets/chunk-55IACEB6-BUtCVJat.js +1 -0
  186. package/dist/domains/dashboard/web/assets/chunk-727SXJPM-C94tj_pf.js +206 -0
  187. package/dist/domains/dashboard/web/assets/chunk-AQP2D5EJ-BFOKcpdG.js +231 -0
  188. package/dist/domains/dashboard/web/assets/chunk-FMBD7UC4-Dmx8B-st.js +15 -0
  189. package/dist/domains/dashboard/web/assets/chunk-ND2GUHAM-DYV00CNn.js +1 -0
  190. package/dist/domains/dashboard/web/assets/chunk-QZHKN3VN-DMJJyQnw.js +1 -0
  191. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-yBDjgMY_.js +1 -0
  192. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-yBDjgMY_.js +1 -0
  193. package/dist/domains/dashboard/web/assets/cose-bilkent-S5V4N54A-P4nE2rea.js +1 -0
  194. package/dist/domains/dashboard/web/assets/cynefin-VYW2F7L2-C-R1HXDv.js +166 -0
  195. package/dist/domains/dashboard/web/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
  196. package/dist/domains/dashboard/web/assets/dagre-BM42HDAG-BH8d-C9z.js +4 -0
  197. package/dist/domains/dashboard/web/assets/defaultLocale-DX6XiGOO.js +1 -0
  198. package/dist/domains/dashboard/web/assets/diagram-2AECGRRQ-DpXTgQIH.js +43 -0
  199. package/dist/domains/dashboard/web/assets/diagram-5GNKFQAL-DSiFJzSw.js +10 -0
  200. package/dist/domains/dashboard/web/assets/diagram-KO2AKTUF-DULMkben.js +3 -0
  201. package/dist/domains/dashboard/web/assets/diagram-LMA3HP47-Pi8m_NO9.js +24 -0
  202. package/dist/domains/dashboard/web/assets/diagram-OG6HWLK6-BSe6bCWm.js +24 -0
  203. package/dist/domains/dashboard/web/assets/erDiagram-TEJ5UH35-zb-FEcbq.js +85 -0
  204. package/dist/domains/dashboard/web/assets/flowDiagram-I6XJVG4X-Dr-Gk0z2.js +162 -0
  205. package/dist/domains/dashboard/web/assets/ganttDiagram-6RSMTGT7-qs6Zb2A6.js +292 -0
  206. package/dist/domains/dashboard/web/assets/gitGraphDiagram-PVQCEYII-BQ314orT.js +106 -0
  207. package/dist/domains/dashboard/web/assets/graph--OzhPTMs.js +1 -0
  208. package/dist/domains/dashboard/web/assets/index-BLAfkNTu.css +1 -0
  209. package/dist/domains/dashboard/web/assets/index-DlSYK56b.js +139 -0
  210. package/dist/domains/dashboard/web/assets/index-DtLUOcAW.js +24 -0
  211. package/dist/domains/dashboard/web/assets/index-QO0z6F4w.js +10 -0
  212. package/dist/domains/dashboard/web/assets/infoDiagram-5YYISTIA-O0bQp98A.js +2 -0
  213. package/dist/domains/dashboard/web/assets/init-Gi6I4Gst.js +1 -0
  214. package/dist/domains/dashboard/web/assets/ishikawaDiagram-YF4QCWOH-BPC7wbKh.js +70 -0
  215. package/dist/domains/dashboard/web/assets/journeyDiagram-JHISSGLW-ohViOd4b.js +139 -0
  216. package/dist/domains/dashboard/web/assets/kanban-definition-UN3LZRKU-CHleNdbG.js +89 -0
  217. package/dist/domains/dashboard/web/assets/katex-HP8lGamR.js +257 -0
  218. package/dist/domains/dashboard/web/assets/layout-SsrduOYp.js +1 -0
  219. package/dist/domains/dashboard/web/assets/linear-CyqiW--Q.js +1 -0
  220. package/dist/domains/dashboard/web/assets/marked.esm-DECB3bxB.js +64 -0
  221. package/dist/domains/dashboard/web/assets/mermaid.core-qS9XvtaK.js +301 -0
  222. package/dist/domains/dashboard/web/assets/mindmap-definition-RKZ34NQL-oaGkqO9l.js +96 -0
  223. package/dist/domains/dashboard/web/assets/ordinal-Cboi1Yqb.js +1 -0
  224. package/dist/domains/dashboard/web/assets/pieDiagram-4H26LBE5-CPcB-AFh.js +30 -0
  225. package/dist/domains/dashboard/web/assets/purify.es-VaSPOPhr.js +3 -0
  226. package/dist/domains/dashboard/web/assets/quadrantDiagram-W4KKPZXB-LFy52Qtj.js +7 -0
  227. package/dist/domains/dashboard/web/assets/requirementDiagram-4Y6WPE33-BdjeaYP_.js +84 -0
  228. package/dist/domains/dashboard/web/assets/sankeyDiagram-5OEKKPKP-DDJ4styL.js +40 -0
  229. package/dist/domains/dashboard/web/assets/sequenceDiagram-3UESZ5HK-BL5bFNoz.js +162 -0
  230. package/dist/domains/dashboard/web/assets/stateDiagram-AJRCARHV-BNUfikui.js +1 -0
  231. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-DGrsmWts.js +1 -0
  232. package/dist/domains/dashboard/web/assets/timeline-definition-PNZ67QCA--ps2uu6L.js +120 -0
  233. package/dist/domains/dashboard/web/assets/vennDiagram-CIIHVFJN-C2q8q26c.js +34 -0
  234. package/dist/domains/dashboard/web/assets/wardleyDiagram-YWT4CUSO-BUH9gXqd.js +78 -0
  235. package/dist/domains/dashboard/web/assets/xychartDiagram-2RQKCTM6-B-DielEy.js +7 -0
  236. package/dist/domains/dashboard/web/index.html +16 -16
  237. package/dist/domains/engine/types.d.ts +1 -1
  238. package/dist/domains/engine/types.d.ts.map +1 -1
  239. package/dist/domains/factory/package.d.ts.map +1 -1
  240. package/dist/domains/factory/package.js +20 -6
  241. package/dist/domains/factory/package.js.map +1 -1
  242. package/dist/domains/integrations/openspec.d.ts +4 -1
  243. package/dist/domains/integrations/openspec.d.ts.map +1 -1
  244. package/dist/domains/integrations/openspec.js +62 -10
  245. package/dist/domains/integrations/openspec.js.map +1 -1
  246. package/dist/domains/skill/find.d.ts.map +1 -1
  247. package/dist/domains/skill/find.js +1 -6
  248. package/dist/domains/skill/find.js.map +1 -1
  249. package/dist/domains/skill/json-object.d.ts +13 -0
  250. package/dist/domains/skill/json-object.d.ts.map +1 -0
  251. package/dist/domains/skill/json-object.js +24 -0
  252. package/dist/domains/skill/json-object.js.map +1 -0
  253. package/dist/domains/skill/managed-markdown.d.ts +14 -0
  254. package/dist/domains/skill/managed-markdown.d.ts.map +1 -0
  255. package/dist/domains/skill/managed-markdown.js +126 -0
  256. package/dist/domains/skill/managed-markdown.js.map +1 -0
  257. package/dist/domains/skill/platform-inspect.d.ts +9 -0
  258. package/dist/domains/skill/platform-inspect.d.ts.map +1 -0
  259. package/dist/domains/skill/platform-inspect.js +149 -0
  260. package/dist/domains/skill/platform-inspect.js.map +1 -0
  261. package/dist/domains/skill/platform-install.d.ts +20 -9
  262. package/dist/domains/skill/platform-install.d.ts.map +1 -1
  263. package/dist/domains/skill/platform-install.js +356 -153
  264. package/dist/domains/skill/platform-install.js.map +1 -1
  265. package/dist/domains/skill/project-instructions.d.ts +22 -0
  266. package/dist/domains/skill/project-instructions.d.ts.map +1 -0
  267. package/dist/domains/skill/project-instructions.js +61 -0
  268. package/dist/domains/skill/project-instructions.js.map +1 -0
  269. package/dist/domains/skill/uninstall.d.ts +3 -1
  270. package/dist/domains/skill/uninstall.d.ts.map +1 -1
  271. package/dist/domains/skill/uninstall.js +259 -149
  272. package/dist/domains/skill/uninstall.js.map +1 -1
  273. package/dist/platform/fs/file-system.d.ts +3 -3
  274. package/dist/platform/fs/file-system.d.ts.map +1 -1
  275. package/dist/platform/fs/file-system.js +21 -11
  276. package/dist/platform/fs/file-system.js.map +1 -1
  277. package/dist/platform/install/detect.d.ts +2 -1
  278. package/dist/platform/install/detect.d.ts.map +1 -1
  279. package/dist/platform/install/detect.js +10 -1
  280. package/dist/platform/install/detect.js.map +1 -1
  281. package/dist/platform/install/platforms.d.ts +9 -1
  282. package/dist/platform/install/platforms.d.ts.map +1 -1
  283. package/dist/platform/install/platforms.js +23 -4
  284. package/dist/platform/install/platforms.js.map +1 -1
  285. package/dist/platform/install/project-registry.d.ts +38 -0
  286. package/dist/platform/install/project-registry.d.ts.map +1 -0
  287. package/dist/platform/install/project-registry.js +213 -0
  288. package/dist/platform/install/project-registry.js.map +1 -0
  289. package/dist/platform/install/skill-root-owner.d.ts +15 -0
  290. package/dist/platform/install/skill-root-owner.d.ts.map +1 -0
  291. package/dist/platform/install/skill-root-owner.js +68 -0
  292. package/dist/platform/install/skill-root-owner.js.map +1 -0
  293. package/eval/.env.example +52 -0
  294. package/eval/CLAUDE.md +43 -0
  295. package/eval/README.md +538 -0
  296. package/eval/langsmith/.env.example +16 -0
  297. package/eval/langsmith/README.md +93 -0
  298. package/eval/langsmith/skills/README.md +5 -0
  299. package/eval/langsmith/tasks/README.md +5 -0
  300. package/eval/langsmith/tests/conftest.py +187 -0
  301. package/eval/langsmith/tests/tasks/test_tasks.py +287 -0
  302. package/eval/langsmith/treatments/README.md +5 -0
  303. package/eval/local/README.md +80 -0
  304. package/eval/local/regression_baseline.json +13 -0
  305. package/eval/local/report-style-demo-assets/quality_cost.en.svg +41 -0
  306. package/eval/local/report-style-demo-assets/quality_cost.zh.svg +41 -0
  307. package/eval/local/report-style-demo-assets/rubric_delta.en.svg +56 -0
  308. package/eval/local/report-style-demo-assets/rubric_delta.zh.svg +56 -0
  309. package/eval/local/report-style-demo-assets/task_outcomes.en.svg +46 -0
  310. package/eval/local/report-style-demo-assets/task_outcomes.zh.svg +46 -0
  311. package/eval/local/report-style-demo.html +867 -0
  312. package/eval/local/scripts/compare_baselines.py +1018 -0
  313. package/eval/local/scripts/generate_report_style_demo_charts.py +322 -0
  314. package/eval/local/scripts/regression_check.py +171 -0
  315. package/eval/local/scripts/render_readme_benchmark_figures.py +416 -0
  316. package/eval/local/scripts/rescore_rubric.py +120 -0
  317. package/eval/local/skills/benchmarks/039-release/comet-classic-039/SKILL.md +282 -0
  318. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/auto-transition.md +27 -0
  319. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/comet-yaml-fields.md +68 -0
  320. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/context-recovery.md +35 -0
  321. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/debug-gate.md +17 -0
  322. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/decision-point.md +20 -0
  323. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/dirty-worktree.md +59 -0
  324. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/file-structure.md +28 -0
  325. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/subagent-dispatch.md +113 -0
  326. package/eval/local/skills/benchmarks/039-release/comet-classic-039/rules/comet-phase-guard.md +125 -0
  327. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-archive.sh +311 -0
  328. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-env.sh +110 -0
  329. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-guard.sh +778 -0
  330. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-handoff.sh +390 -0
  331. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-hook-guard.sh +336 -0
  332. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-state.sh +1338 -0
  333. package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-yaml-validate.sh +225 -0
  334. package/eval/local/skills/benchmarks/039-release/comet-classic-039-archive/SKILL.md +100 -0
  335. package/eval/local/skills/benchmarks/039-release/comet-classic-039-build/SKILL.md +304 -0
  336. package/eval/local/skills/benchmarks/039-release/comet-classic-039-design/SKILL.md +263 -0
  337. package/eval/local/skills/benchmarks/039-release/comet-classic-039-hotfix/SKILL.md +204 -0
  338. package/eval/local/skills/benchmarks/039-release/comet-classic-039-open/SKILL.md +220 -0
  339. package/eval/local/skills/benchmarks/039-release/comet-classic-039-tweak/SKILL.md +180 -0
  340. package/eval/local/skills/benchmarks/039-release/comet-classic-039-verify/SKILL.md +234 -0
  341. package/eval/local/skills/benchmarks/040-beta/comet/SKILL.md +261 -0
  342. package/eval/local/skills/benchmarks/040-beta/comet/reference/auto-transition.md +27 -0
  343. package/eval/local/skills/benchmarks/040-beta/comet/reference/comet-yaml-fields.md +73 -0
  344. package/eval/local/skills/benchmarks/040-beta/comet/reference/context-recovery.md +45 -0
  345. package/eval/local/skills/benchmarks/040-beta/comet/reference/debug-gate.md +33 -0
  346. package/eval/local/skills/benchmarks/040-beta/comet/reference/decision-point.md +31 -0
  347. package/eval/local/skills/benchmarks/040-beta/comet/reference/dirty-worktree.md +59 -0
  348. package/eval/local/skills/benchmarks/040-beta/comet/reference/file-structure.md +28 -0
  349. package/eval/local/skills/benchmarks/040-beta/comet/reference/intent-frame.md +74 -0
  350. package/eval/local/skills/benchmarks/040-beta/comet/reference/scripts.md +69 -0
  351. package/eval/local/skills/benchmarks/040-beta/comet/reference/subagent-dispatch.md +169 -0
  352. package/eval/local/skills/benchmarks/040-beta/comet/rules/comet-phase-guard.md +130 -0
  353. package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/checks.yaml +6 -0
  354. package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/guardrails.yaml +13 -0
  355. package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/skill.yaml +122 -0
  356. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-archive.mjs +9515 -0
  357. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-env.mjs +15 -0
  358. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-guard.mjs +10173 -0
  359. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-handoff.mjs +9491 -0
  360. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-hook-guard.mjs +9175 -0
  361. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-intent.mjs +404 -0
  362. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-state.mjs +9273 -0
  363. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-yaml-validate.mjs +7627 -0
  364. package/eval/local/skills/benchmarks/040-beta/comet-archive/SKILL.md +110 -0
  365. package/eval/local/skills/benchmarks/040-beta/comet-build/SKILL.md +315 -0
  366. package/eval/local/skills/benchmarks/040-beta/comet-design/SKILL.md +260 -0
  367. package/eval/local/skills/benchmarks/040-beta/comet-hotfix/SKILL.md +190 -0
  368. package/eval/local/skills/benchmarks/040-beta/comet-open/SKILL.md +210 -0
  369. package/eval/local/skills/benchmarks/040-beta/comet-tweak/SKILL.md +183 -0
  370. package/eval/local/skills/benchmarks/040-beta/comet-verify/SKILL.md +230 -0
  371. package/eval/local/skills/benchmarks/dependency/claude-md/comet-workflow/CLAUDE.md +12 -0
  372. package/eval/local/skills/benchmarks/dependency/openspec/openspec-apply-change/SKILL.md +156 -0
  373. package/eval/local/skills/benchmarks/dependency/openspec/openspec-archive-change/SKILL.md +114 -0
  374. package/eval/local/skills/benchmarks/dependency/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
  375. package/eval/local/skills/benchmarks/dependency/openspec/openspec-continue-change/SKILL.md +118 -0
  376. package/eval/local/skills/benchmarks/dependency/openspec/openspec-explore/SKILL.md +288 -0
  377. package/eval/local/skills/benchmarks/dependency/openspec/openspec-ff-change/SKILL.md +101 -0
  378. package/eval/local/skills/benchmarks/dependency/openspec/openspec-new-change/SKILL.md +74 -0
  379. package/eval/local/skills/benchmarks/dependency/openspec/openspec-onboard/SKILL.md +554 -0
  380. package/eval/local/skills/benchmarks/dependency/openspec/openspec-propose/SKILL.md +110 -0
  381. package/eval/local/skills/benchmarks/dependency/openspec/openspec-sync-specs/SKILL.md +138 -0
  382. package/eval/local/skills/benchmarks/dependency/openspec/openspec-verify-change/SKILL.md +168 -0
  383. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/SKILL.md +159 -0
  384. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/frame-template.html +213 -0
  385. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/helper.js +167 -0
  386. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/server.cjs +723 -0
  387. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/start-server.sh +209 -0
  388. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/stop-server.sh +120 -0
  389. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
  390. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/visual-companion.md +291 -0
  391. package/eval/local/skills/benchmarks/dependency/superpowers/dispatching-parallel-agents/SKILL.md +185 -0
  392. package/eval/local/skills/benchmarks/dependency/superpowers/executing-plans/SKILL.md +70 -0
  393. package/eval/local/skills/benchmarks/dependency/superpowers/finishing-a-development-branch/SKILL.md +241 -0
  394. package/eval/local/skills/benchmarks/dependency/superpowers/receiving-code-review/SKILL.md +213 -0
  395. package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/SKILL.md +103 -0
  396. package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/code-reviewer.md +172 -0
  397. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/SKILL.md +418 -0
  398. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/implementer-prompt.md +139 -0
  399. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/review-package +44 -0
  400. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/sdd-workspace +22 -0
  401. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/task-brief +40 -0
  402. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/task-reviewer-prompt.md +188 -0
  403. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  404. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/SKILL.md +296 -0
  405. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  406. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  407. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  408. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/find-polluter.sh +63 -0
  409. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  410. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-academic.md +14 -0
  411. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  412. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  413. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  414. package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/SKILL.md +371 -0
  415. package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  416. package/eval/local/skills/benchmarks/dependency/superpowers/using-git-worktrees/SKILL.md +202 -0
  417. package/eval/local/skills/benchmarks/dependency/superpowers/verification-before-completion/SKILL.md +139 -0
  418. package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/SKILL.md +174 -0
  419. package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  420. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/SKILL.md +689 -0
  421. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  422. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  423. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  424. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/persuasion-principles.md +187 -0
  425. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/render-graphs.js +168 -0
  426. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  427. package/eval/local/tasks/authoring-skill-smoke/environment/Dockerfile +2 -0
  428. package/eval/local/tasks/authoring-skill-smoke/instruction.md +4 -0
  429. package/eval/local/tasks/authoring-skill-smoke/task.toml +21 -0
  430. package/eval/local/tasks/authoring-skill-smoke/validation/test_authoring_skill_smoke.py +54 -0
  431. package/eval/local/tasks/comet-agent-memory-routing/environment/Dockerfile +28 -0
  432. package/eval/local/tasks/comet-agent-memory-routing/environment/agent_system.py +40 -0
  433. package/eval/local/tasks/comet-agent-memory-routing/environment/test_agent_system.py +29 -0
  434. package/eval/local/tasks/comet-agent-memory-routing/instruction.md +20 -0
  435. package/eval/local/tasks/comet-agent-memory-routing/task.toml +24 -0
  436. package/eval/local/tasks/comet-agent-memory-routing/validation/test_agent_memory_routing.py +24 -0
  437. package/eval/local/tasks/comet-api-cache-ttl/environment/Dockerfile +39 -0
  438. package/eval/local/tasks/comet-api-cache-ttl/environment/cache.py +39 -0
  439. package/eval/local/tasks/comet-api-cache-ttl/environment/test_cache.py +81 -0
  440. package/eval/local/tasks/comet-api-cache-ttl/instruction.md +33 -0
  441. package/eval/local/tasks/comet-api-cache-ttl/task.toml +24 -0
  442. package/eval/local/tasks/comet-api-cache-ttl/validation/test_api_cache_ttl.py +58 -0
  443. package/eval/local/tasks/comet-cross-file-refactor/environment/Dockerfile +15 -0
  444. package/eval/local/tasks/comet-cross-file-refactor/environment/cli.py +13 -0
  445. package/eval/local/tasks/comet-cross-file-refactor/environment/counting.py +13 -0
  446. package/eval/local/tasks/comet-cross-file-refactor/environment/test_textkit.py +21 -0
  447. package/eval/local/tasks/comet-cross-file-refactor/instruction.md +16 -0
  448. package/eval/local/tasks/comet-cross-file-refactor/task.toml +20 -0
  449. package/eval/local/tasks/comet-cross-file-refactor/validation/test_cross_file_refactor.py +20 -0
  450. package/eval/local/tasks/comet-dependency-confusion/environment/Dockerfile +28 -0
  451. package/eval/local/tasks/comet-dependency-confusion/environment/app.py +8 -0
  452. package/eval/local/tasks/comet-dependency-confusion/environment/settings_loader.py +14 -0
  453. package/eval/local/tasks/comet-dependency-confusion/environment/test_settings_service.py +19 -0
  454. package/eval/local/tasks/comet-dependency-confusion/instruction.md +18 -0
  455. package/eval/local/tasks/comet-dependency-confusion/task.toml +24 -0
  456. package/eval/local/tasks/comet-dependency-confusion/validation/test_dependency_confusion.py +24 -0
  457. package/eval/local/tasks/comet-fix-median/environment/Dockerfile +50 -0
  458. package/eval/local/tasks/comet-fix-median/environment/stats.py +54 -0
  459. package/eval/local/tasks/comet-fix-median/environment/test_stats.py +68 -0
  460. package/eval/local/tasks/comet-fix-median/instruction.md +25 -0
  461. package/eval/local/tasks/comet-fix-median/task.toml +24 -0
  462. package/eval/local/tasks/comet-fix-median/validation/test_fix_median.py +60 -0
  463. package/eval/local/tasks/comet-framework-selection/environment/Dockerfile +28 -0
  464. package/eval/local/tasks/comet-framework-selection/environment/architecture.py +12 -0
  465. package/eval/local/tasks/comet-framework-selection/environment/test_architecture.py +30 -0
  466. package/eval/local/tasks/comet-framework-selection/instruction.md +22 -0
  467. package/eval/local/tasks/comet-framework-selection/task.toml +24 -0
  468. package/eval/local/tasks/comet-framework-selection/validation/test_framework_selection.py +24 -0
  469. package/eval/local/tasks/comet-full-workflow/environment/Dockerfile +53 -0
  470. package/eval/local/tasks/comet-full-workflow/environment/test_wordcount.py +29 -0
  471. package/eval/local/tasks/comet-full-workflow/environment/wordcount.py +40 -0
  472. package/eval/local/tasks/comet-full-workflow/instruction.md +18 -0
  473. package/eval/local/tasks/comet-full-workflow/task.toml +24 -0
  474. package/eval/local/tasks/comet-full-workflow/validation/test_full_workflow.py +171 -0
  475. package/eval/local/tasks/comet-graph-execution-review/environment/Dockerfile +28 -0
  476. package/eval/local/tasks/comet-graph-execution-review/environment/pipeline.py +19 -0
  477. package/eval/local/tasks/comet-graph-execution-review/environment/test_pipeline.py +53 -0
  478. package/eval/local/tasks/comet-graph-execution-review/instruction.md +21 -0
  479. package/eval/local/tasks/comet-graph-execution-review/task.toml +24 -0
  480. package/eval/local/tasks/comet-graph-execution-review/validation/test_graph_execution_review.py +24 -0
  481. package/eval/local/tasks/comet-human-approval-flow/environment/Dockerfile +15 -0
  482. package/eval/local/tasks/comet-human-approval-flow/environment/approvals.py +17 -0
  483. package/eval/local/tasks/comet-human-approval-flow/environment/test_approvals.py +30 -0
  484. package/eval/local/tasks/comet-human-approval-flow/instruction.md +15 -0
  485. package/eval/local/tasks/comet-human-approval-flow/task.toml +20 -0
  486. package/eval/local/tasks/comet-human-approval-flow/validation/test_human_approval_flow.py +20 -0
  487. package/eval/local/tasks/comet-layered-streaming-fix/environment/Dockerfile +20 -0
  488. package/eval/local/tasks/comet-layered-streaming-fix/environment/chat_app.py +19 -0
  489. package/eval/local/tasks/comet-layered-streaming-fix/environment/test_chat_app.py +15 -0
  490. package/eval/local/tasks/comet-layered-streaming-fix/instruction.md +14 -0
  491. package/eval/local/tasks/comet-layered-streaming-fix/task.toml +20 -0
  492. package/eval/local/tasks/comet-layered-streaming-fix/validation/test_layered_streaming_fix.py +20 -0
  493. package/eval/local/tasks/comet-noise-distractor/environment/Dockerfile +15 -0
  494. package/eval/local/tasks/comet-noise-distractor/environment/distractor.md +4 -0
  495. package/eval/local/tasks/comet-noise-distractor/environment/invoice.py +5 -0
  496. package/eval/local/tasks/comet-noise-distractor/environment/test_invoice.py +18 -0
  497. package/eval/local/tasks/comet-noise-distractor/instruction.md +17 -0
  498. package/eval/local/tasks/comet-noise-distractor/task.toml +20 -0
  499. package/eval/local/tasks/comet-noise-distractor/validation/test_noise_distractor.py +20 -0
  500. package/eval/local/tasks/comet-observability-env-template/environment/Dockerfile +15 -0
  501. package/eval/local/tasks/comet-observability-env-template/environment/env_writer.py +17 -0
  502. package/eval/local/tasks/comet-observability-env-template/environment/test_env_writer.py +17 -0
  503. package/eval/local/tasks/comet-observability-env-template/instruction.md +20 -0
  504. package/eval/local/tasks/comet-observability-env-template/task.toml +20 -0
  505. package/eval/local/tasks/comet-observability-env-template/validation/test_observability_env_template.py +46 -0
  506. package/eval/local/tasks/comet-perf-dedupe/environment/Dockerfile +39 -0
  507. package/eval/local/tasks/comet-perf-dedupe/environment/dedupe.py +22 -0
  508. package/eval/local/tasks/comet-perf-dedupe/environment/test_dedupe.py +43 -0
  509. package/eval/local/tasks/comet-perf-dedupe/instruction.md +25 -0
  510. package/eval/local/tasks/comet-perf-dedupe/task.toml +24 -0
  511. package/eval/local/tasks/comet-perf-dedupe/validation/test_perf_dedupe.py +40 -0
  512. package/eval/local/tasks/comet-persistence-threading/environment/Dockerfile +15 -0
  513. package/eval/local/tasks/comet-persistence-threading/environment/session_store.py +15 -0
  514. package/eval/local/tasks/comet-persistence-threading/environment/test_session_store.py +21 -0
  515. package/eval/local/tasks/comet-persistence-threading/instruction.md +14 -0
  516. package/eval/local/tasks/comet-persistence-threading/task.toml +20 -0
  517. package/eval/local/tasks/comet-persistence-threading/validation/test_persistence_threading.py +20 -0
  518. package/eval/local/tasks/comet-refactor-counter/environment/Dockerfile +39 -0
  519. package/eval/local/tasks/comet-refactor-counter/environment/test_text_processor.py +57 -0
  520. package/eval/local/tasks/comet-refactor-counter/environment/text_processor.py +49 -0
  521. package/eval/local/tasks/comet-refactor-counter/instruction.md +31 -0
  522. package/eval/local/tasks/comet-refactor-counter/task.toml +24 -0
  523. package/eval/local/tasks/comet-refactor-counter/validation/test_refactor_counter.py +75 -0
  524. package/eval/local/tasks/comet-robust-config/environment/Dockerfile +39 -0
  525. package/eval/local/tasks/comet-robust-config/environment/config_loader.py +56 -0
  526. package/eval/local/tasks/comet-robust-config/environment/test_config_loader.py +72 -0
  527. package/eval/local/tasks/comet-robust-config/instruction.md +30 -0
  528. package/eval/local/tasks/comet-robust-config/task.toml +24 -0
  529. package/eval/local/tasks/comet-robust-config/validation/test_robust_config.py +37 -0
  530. package/eval/local/tasks/generic-skill-smoke/environment/Dockerfile +2 -0
  531. package/eval/local/tasks/generic-skill-smoke/instruction.md +7 -0
  532. package/eval/local/tasks/generic-skill-smoke/task.toml +21 -0
  533. package/eval/local/tasks/generic-skill-smoke/validation/test_generic_skill_smoke.py +36 -0
  534. package/eval/local/tasks/index.yaml +155 -0
  535. package/eval/local/tasks/workflow-overlay-contract/environment/Dockerfile +5 -0
  536. package/eval/local/tasks/workflow-overlay-contract/instruction.md +5 -0
  537. package/eval/local/tasks/workflow-overlay-contract/task.toml +21 -0
  538. package/eval/local/tasks/workflow-overlay-contract/validation/test_workflow_overlay_contract.py +235 -0
  539. package/eval/local/tasks/workflow-route-conformance/environment/Dockerfile +2 -0
  540. package/eval/local/tasks/workflow-route-conformance/instruction.md +5 -0
  541. package/eval/local/tasks/workflow-route-conformance/task.toml +21 -0
  542. package/eval/local/tasks/workflow-route-conformance/validation/test_workflow_route_conformance.py +84 -0
  543. package/eval/local/tests/conftest.py +1148 -0
  544. package/eval/local/tests/scaffold/test_attribution.py +48 -0
  545. package/eval/local/tests/scaffold/test_compare_baselines.py +999 -0
  546. package/eval/local/tests/scaffold/test_conftest_helpers.py +534 -0
  547. package/eval/local/tests/scaffold/test_evidence.py +15 -0
  548. package/eval/local/tests/scaffold/test_langsmith_conftest.py +244 -0
  549. package/eval/local/tests/scaffold/test_logging.py +243 -0
  550. package/eval/local/tests/scaffold/test_manifests.py +132 -0
  551. package/eval/local/tests/scaffold/test_profiles.py +866 -0
  552. package/eval/local/tests/scaffold/test_regression_check.py +19 -0
  553. package/eval/local/tests/scaffold/test_report_style_demo_charts.py +45 -0
  554. package/eval/local/tests/scaffold/test_sample_quality.py +211 -0
  555. package/eval/local/tests/scaffold/test_tasks.py +168 -0
  556. package/eval/local/tests/scaffold/test_treatments.py +244 -0
  557. package/eval/local/tests/scaffold/test_utils.py +139 -0
  558. package/eval/local/tests/tasks/test_tasks.py +445 -0
  559. package/eval/local/tests/tasks/test_validation_scripts.py +143 -0
  560. package/eval/local/treatments/comet/comet_full_039.yaml +141 -0
  561. package/eval/local/treatments/comet/comet_full_040_beta.yaml +140 -0
  562. package/eval/local/treatments/common/control.yaml +4 -0
  563. package/eval/pyproject.toml +41 -0
  564. package/eval/report-html-config.json +6 -0
  565. package/eval/scaffold/__init__.py +67 -0
  566. package/eval/scaffold/python/__init__.py +95 -0
  567. package/eval/scaffold/python/attribution.py +43 -0
  568. package/eval/scaffold/python/evidence.py +38 -0
  569. package/eval/scaffold/python/external_data_handler.py +18 -0
  570. package/eval/scaffold/python/generic_llm_judge.py +235 -0
  571. package/eval/scaffold/python/judge_config.py +168 -0
  572. package/eval/scaffold/python/llm_judge.py +191 -0
  573. package/eval/scaffold/python/logging.py +705 -0
  574. package/eval/scaffold/python/manifests.py +129 -0
  575. package/eval/scaffold/python/paper_charts.py +25 -0
  576. package/eval/scaffold/python/pass_at_k.py +107 -0
  577. package/eval/scaffold/python/paths.py +56 -0
  578. package/eval/scaffold/python/profiles.py +127 -0
  579. package/eval/scaffold/python/report_outputs.py +1391 -0
  580. package/eval/scaffold/python/sample_quality.py +339 -0
  581. package/eval/scaffold/python/schema.py +39 -0
  582. package/eval/scaffold/python/skill_parser.py +469 -0
  583. package/eval/scaffold/python/tasks.py +330 -0
  584. package/eval/scaffold/python/treatments.py +271 -0
  585. package/eval/scaffold/python/utils.py +366 -0
  586. package/eval/scaffold/python/validation/__init__.py +21 -0
  587. package/eval/scaffold/python/validation/authoring_rubric.py +326 -0
  588. package/eval/scaffold/python/validation/comet_workflow.py +187 -0
  589. package/eval/scaffold/python/validation/core.py +264 -0
  590. package/eval/scaffold/python/validation/dataset.py +337 -0
  591. package/eval/scaffold/python/validation/docker.py +106 -0
  592. package/eval/scaffold/python/validation/evaluator.py +549 -0
  593. package/eval/scaffold/python/validation/generic_rubric.py +169 -0
  594. package/eval/scaffold/python/validation/rubric.py +740 -0
  595. package/eval/scaffold/python/validation/runner.py +237 -0
  596. package/eval/scaffold/python/validation/scripts.py +58 -0
  597. package/eval/scaffold/python/validation/tracing.py +313 -0
  598. package/eval/scaffold/shell/common.sh +126 -0
  599. package/eval/scaffold/shell/docker.sh +482 -0
  600. package/eval/scaffold/shell/run-claude-loop.sh +181 -0
  601. package/eval/scaffold/shell/setup.sh +259 -0
  602. package/eval/simulator-instruction.md +9 -0
  603. package/package.json +29 -2
  604. package/dist/domains/dashboard/web/assets/index-BcO3_QlT.css +0 -1
  605. package/dist/domains/dashboard/web/assets/index-CjU3VXVu.js +0 -22
@@ -2,7 +2,7 @@
2
2
 
3
3
  规范路径:`comet/reference/comet-yaml-fields.md`
4
4
 
5
- 本文件是 `openspec/changes/<name>/` 下每个 change 级 `.comet.yaml` 状态文件的字段参考。按需查阅,不随 skill 一次性加载。项目级默认配置只放在 `.comet/config.yaml`。
5
+ 本文件是 `openspec/changes/<name>/` 下每个 change 级 `.comet.yaml` 状态文件的字段参考。按需查阅,不随 skill 一次性加载。项目级默认配置放在 `.comet/config.yaml`,全局默认配置放在 `~/.comet/config.yaml`;项目配置优先于全局配置。
6
6
 
7
7
  ## 示例
8
8
 
@@ -22,10 +22,12 @@ auto_transition: true
22
22
  isolation: branch
23
23
  verify_mode: light
24
24
  verify_result: pending
25
+ verify_failures: 0
25
26
  verification_report: null
26
27
  branch_status: pending
27
28
  created_at: 2026-05-26
28
29
  verified_at: null
30
+ archive_confirmation: null
29
31
  archived: false
30
32
  ```
31
33
 
@@ -34,7 +36,7 @@ archived: false
34
36
  | 字段 | 含义 |
35
37
  |------|------|
36
38
  | `workflow` | `full`、`hotfix` 或 `tweak` |
37
- | `language` | 产物语言,仅支持 `en` 或 `zh-CN`。由 `comet init` 的初始化语言写入 `.comet/config.yaml`,创建 change 时快照到 `.comet.yaml`,用于约束 OpenSpec / Superpowers 产物主语言 |
39
+ | `language` | 产物语言,仅支持 `en` 或 `zh-CN`。由 `comet init` 按安装范围写入项目或全局 `.comet/config.yaml`,创建 change 时按“项目优先、全局回退”快照到 `.comet.yaml`,用于约束 OpenSpec / Superpowers 产物主语言 |
38
40
  | `phase` | 当前阶段:`open`、`design`、`build`、`verify`、`archive`(init 统一设为 `open`,guard 负责过渡) |
39
41
  | `design_doc` | 关联的 Superpowers Design Doc 路径,可为空 |
40
42
  | `plan` | 关联的 Superpowers Plan 路径,可为空 |
@@ -42,16 +44,18 @@ archived: false
42
44
  | `build_mode` | 已选择的执行方式,可为空。取值:`subagent-driven-development`(隔离后台 subagent 逐任务实现并审查)、`executing-plans`(主会话按计划顺序执行)、`direct`(主会话直接编码,默认仅 hotfix/tweak 允许,full workflow 需 `direct_override: true`) |
43
45
  | `build_pause` | build 阶段内部暂停点。`null` 表示无暂停,`plan-ready` 表示 plan 已生成,用户选择切换模型后暂停 |
44
46
  | `subagent_dispatch` | `null` 或 `confirmed`。仅当已确认当前平台存在真实后台 subagent / Task / multi-agent 调度能力时,`build_mode: subagent-driven-development` 才能写入并用于离开 build 阶段 |
45
- | `tdd_mode` | `tdd` 或 `direct`。full workflow 离开 build 阶段前必须已选择。`tdd` 强制每个任务先写失败测试再实现;`direct` 不强制 TDDhotfix/tweak 默认 `direct` |
47
+ | `tdd_mode` | `tdd` 或 `direct`。full workflow 离开 build 阶段前必须已选择。`tdd` 强制每个任务先写失败测试再实现;`direct` 不强制逐任务 TDD,但仍需相关测试与 bug 回归证据。hotfix/tweak 默认 `direct` |
46
48
  | `review_mode` | `off`、`standard` 或 `thorough`。full workflow 离开 build 阶段前必须已选择;hotfix/tweak 默认 `off` |
47
- | `isolation` | `branch` 或 `worktree`,工作区隔离方式。full 初始化可为 `null`,但只允许持续到 `/comet-build` Step 3 前;hotfix/tweak 默认 `branch` |
49
+ | `isolation` | `current`、`branch` 或 `worktree`。full 初始化可为 `null`,离开 build 前必须实际创建/选择 `branch` `worktree`;hotfix/tweak 默认 `current`,不得在未创建分支时虚构为 `branch` |
48
50
  | `verify_mode` | `light` 或 `full`,可为空 |
49
51
  | `auto_transition` | `true` 或 `false`。只控制阶段守卫推进 phase 后是否自动调用下一个 skill;`false` 时由 `comet-state next` 输出 `manual`,暂停下一 skill 调用,但不阻止 phase 字段更新 |
50
52
  | `verify_result` | `pending`、`pass` 或 `fail` |
53
+ | `verify_failures` | 机器维护的连续验证失败次数;`verify-fail` 自动加一,`verify-pass` 或 `archive-reopen` 重置为 `0`。达到 `3` 后下一次失败必须进入超限策略决策 |
51
54
  | `verification_report` | 验证报告文件路径,verify 通过前必须指向已存在文件 |
52
- | `branch_status` | `pending` 或 `handled`,分支处理完成后设为 `handled` |
55
+ | `branch_status` | `pending` 或 `handled`。verify 和 archive 执行期间保持 `pending`;归档改动提交且用户选择的分支处理完成后设为 `handled` |
53
56
  | `created_at` | change 创建日期(init 时自动写入),格式 `YYYY-MM-DD` |
54
57
  | `verified_at` | 验证通过时间,可为空 |
58
+ | `archive_confirmation` | `null`、`pending` 或 `confirmed`。`verify-pass` 进入 archive 阶段时写入 `pending`;用户在 `/comet-archive` 最终确认选择「确认归档」后,`archive-confirm` transition 写入 `confirmed`;`archive-reopen` 会清空该字段,防止复用旧确认 |
55
59
  | `archived` | change 是否已归档 |
56
60
 
57
61
  ## 可选字段
@@ -62,7 +66,7 @@ archived: false
62
66
 
63
67
  ## 状态机硬约束
64
68
 
65
- - `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`
69
+ - full workflow 的 `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`;hotfix/tweak 可使用 `current`
66
70
  - `build → verify` 前,`build_mode` 必须已选择
67
71
  - `build_mode: subagent-driven-development` 必须同时有 `subagent_dispatch: confirmed`
68
72
  - full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`
@@ -70,4 +74,5 @@ archived: false
70
74
  - `build_mode: direct` 默认只允许 `hotfix` / `tweak`;full workflow 需要 `direct_override: true`
71
75
  - `build_pause` 不是执行方式,不得写入 `build_mode`
72
76
  - 这些约束同时存在于 `comet-guard.mjs build --apply` 和 `comet-state.mjs transition <name> build-complete`
77
+ - `archive_confirmation` 是 machine-owned 字段,只能由 `verify-pass`、`archive-confirm` 和 `archive-reopen` transition 更新,不能通过 `set` 直接伪造确认;`archived` transition 和真实归档命令都要求其值为 `confirmed`
73
78
  - `preset-escalate` 事件:仅允许 `hotfix`/`tweak` workflow 在 `phase: build` 时调用,原子地把 `workflow`/`classic_profile` 置为 `full`、`phase` 回退到 `design`、清空 `design_doc`(满足 comet-design 入口要求)。这是预设升级到 full 的唯一合法通道——直接 `set phase design` 会被状态机硬拦截,`set classic_profile` 属于 machine-owned 字段不可手动设置
@@ -9,15 +9,25 @@
9
9
  用户可能直接从 `/comet-open`、`/comet-design`、`/comet-build`、`/comet-verify`、`/comet-archive`、`/comet-hotfix` 或 `/comet-tweak` 回到流程。进入任意子 Skill 时,都先按 `comet/reference/scripts.md` 定位脚本,再用当前子 Skill 对应 phase 运行入口检查或恢复检查。不得依赖对话历史判断阶段。
10
10
 
11
11
  ```bash
12
- node "$COMET_STATE" check <change-name> <phase> --recover
12
+ comet state check <change-name> <phase> --recover
13
13
  ```
14
14
 
15
15
  若检查结果显示实际 phase、workflow 或 evidence 应由其他 Skill 处理,按脚本输出和 `/comet` 路由规则切换;不要在错误阶段继续补写状态。若存在未提交改动,先按 `comet/reference/dirty-worktree.md` 归因。
16
16
 
17
+ ## 未显式 `/comet` 的恢复
18
+
19
+ 如果用户没有提 `/comet`,但本仓库可能有 active change,开始处理需要改动或调查的任务前先运行 Ambient Resume 探针。先按 `comet/reference/scripts.md` 定位脚本并确保 `$COMET_RESUME_PROBE` 可用,然后把当前用户请求从 stdin 传入:
20
+
21
+ ```bash
22
+ node "$COMET_RESUME_PROBE" probe --stdin
23
+ ```
24
+
25
+ 只有返回 `auto_resume` 才自动恢复;`ask_user` 必须短问用户;`out_of_scope` 和 `none` 不进入 workflow。
26
+
17
27
  ## 恢复步骤
18
28
 
19
29
  ```bash
20
- node "$COMET_STATE" check <change-name> <phase> --recover
30
+ comet state check <change-name> <phase> --recover
21
31
  ```
22
32
 
23
33
  脚本输出结构化恢复上下文(phase、已完成字段、待完成字段、恢复动作)。按 **Recovery action** 决定下一步。
@@ -4,6 +4,17 @@
4
4
 
5
5
  本协议由所有包含用户决策点的 comet 子 skill 共享。凡标注为“阻塞点”或“用户决策点”的步骤,都必须按本协议处理。
6
6
 
7
+ ## 先判断是否真的需要用户决策
8
+
9
+ 区分用户决策点、自动处理与停止条件:
10
+
11
+ - **用户决策点**:存在两个或更多均合法、会改变范围、行为、风险承担或不可逆结果的选项,必须由用户选择
12
+ - **自动处理**:只有一个安全且在当前请求范围内的下一步,例如修复明确失败、补齐可验证状态、重试幂等检查或按已持久化配置继续;直接执行并报告,不得制造确认
13
+ - **停止条件**:依赖缺失、状态损坏、路径越界或外部命令不可用,导致当前没有合法下一步;报告阻塞原因和恢复条件,不得伪造选项
14
+ - **手动衔接**:`NEXT: manual` 只是交还控制权,不是新的用户决策点;输出 `HINT` 后结束当前调用,不再询问“是否继续”
15
+
16
+ 只有第一类使用本协议。相邻且可同时回答的选择必须合并;已经持久化且仍有效的选择不得重复询问。展示选项前先检查平台能力和状态,只展示真实可执行的选项;若某字段只剩一个合法值,说明原因后直接采用,不为它单独创建停顿点。
17
+
7
18
  ## 核心规则
8
19
 
9
20
  - 决策点是阻塞点。到达决策点时必须暂停,等待用户明确选择后才能继续
@@ -1,12 +1,30 @@
1
- # 脚本定位与命令
1
+ # 稳定 CLI 与内部脚本兼容说明
2
2
 
3
3
  规范路径:`comet/reference/scripts.md`
4
4
 
5
- 本文件是 Comet 脚本定位和 state/guard/handoff/archive 命令面的单一事实来源。每会话加载一次,然后复用缓存的环境变量。
5
+ 本文件是 Comet 公开 CLI 与内部脚本兼容方式的单一事实来源。公开工作流必须优先使用稳定命令面:`comet state`、`comet guard`、`comet handoff`、`comet archive`。
6
6
 
7
- ## 引导(每会话运行一次)
7
+ ## 公开工作流协议
8
8
 
9
- Comet 脚本随 skill 包分发在 `comet/scripts/` 下。**不硬编码路径** 定位一次,缓存到环境变量。子 Skill 可以直接引用本节,只有需要完全自包含执行时才内联此块;修改时以本文件为单一事实源:
9
+ 正常安装和日常工作流直接使用 `comet` CLI,不需要定位 launcher,也不要向用户暴露内部 `classic` 命名:
10
+
11
+ ```bash
12
+ comet state select <change-name>
13
+ comet state current
14
+ comet state clear-selection
15
+ comet state check <change-name> <phase>
16
+ comet guard <change-name> <phase> --apply
17
+ comet handoff <change-name>
18
+ comet archive <change-name>
19
+ ```
20
+
21
+ 当多个 active change 共存时,进入明确的 change 后先运行 `comet state select <change-name>`。普通源码写入只受该选择管辖;尚未选择时 hook 会阻塞并要求选择。单 active change 可继续自动归属。切换 branch/worktree 或选择失效后必须重新运行 `select`。
22
+
23
+ guard 的 `--apply` 在检查通过后推进状态。需要直接表达状态事件时使用 `comet state transition`;阶段推进后使用 `comet state next` 解析是否自动调用下一 Skill。
24
+
25
+ ## 兼容、恢复与内部命令引导
26
+
27
+ 以下脚本定位只用于旧版兼容、CLI 不可用时的恢复,以及 `/comet` 内部入口命令。正常公开工作流不得优先采用此方式。Comet 脚本随 Skill 包分发在 `comet/scripts/` 下;需要恢复时不要硬编码路径,而应定位一次并缓存环境变量:
10
28
 
11
29
  ```bash
12
30
  COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.mjs' -type f -print -quit 2>/dev/null)}"
@@ -20,6 +38,7 @@ COMET_GUARD="$COMET_SCRIPTS_DIR/comet-guard.mjs"
20
38
  COMET_HANDOFF="$COMET_SCRIPTS_DIR/comet-handoff.mjs"
21
39
  COMET_ARCHIVE="$COMET_SCRIPTS_DIR/comet-archive.mjs"
22
40
  COMET_INTENT="$COMET_SCRIPTS_DIR/comet-intent.mjs"
41
+ COMET_RESUME_PROBE="$COMET_SCRIPTS_DIR/comet-resume-probe.mjs"
23
42
 
24
43
  # 脚本定位失败时停止流程
25
44
  if [ -z "$COMET_SCRIPTS_DIR" ]; then
@@ -28,34 +47,47 @@ if [ -z "$COMET_SCRIPTS_DIR" ]; then
28
47
  fi
29
48
  ```
30
49
 
31
- 加载 comet 后,agent 应执行以上变量赋值一次,后续全程复用 `$COMET_GUARD`、`$COMET_STATE`、`$COMET_HANDOFF`、`$COMET_ARCHIVE`、`$COMET_INTENT`。
50
+ 只有进入上述兼容、恢复或内部命令路径时,Agent 才执行这些变量赋值。`COMET_INTENT` `COMET_RESUME_PROBE` 仍是内部入口引导所需变量,不应全局移除。
51
+
52
+ | 变量 | 用途 |
53
+ |------|------|
54
+ | `COMET_STATE` | `.comet.yaml` 状态读写、phase 检查和恢复上下文 |
55
+ | `COMET_GUARD` | 阶段退出守卫和 `--apply` 状态推进 |
56
+ | `COMET_HANDOFF` | Design/Build handoff 上下文包生成 |
57
+ | `COMET_ARCHIVE` | 一键归档和主 spec 同步 |
58
+ | `COMET_INTENT` | `/comet` 入口意图识别和路由评分 |
59
+ | `COMET_RESUME_PROBE` | 只读 Ambient Resume 探针,判断是否应恢复 active Comet workflow |
32
60
 
33
61
  ## 自动状态更新
34
62
 
35
63
  guard 支持 `--apply` 参数,验证通过后自动更新 `.comet.yaml` 状态字段:
36
64
 
37
65
  ```bash
38
- node "$COMET_GUARD" <change-name> <phase> --apply
66
+ comet guard <change-name> <phase> --apply
39
67
  ```
40
68
 
41
- `--apply` 内部委托给 `comet-state transition`。需要直接表达状态事件时使用:
69
+ `--apply` 内部委托给状态机 transition。需要直接表达状态事件时使用:
42
70
 
43
71
  ```bash
44
- node "$COMET_STATE" transition <change-name> open-complete
45
- node "$COMET_STATE" transition <change-name> design-complete
46
- node "$COMET_STATE" transition <change-name> build-complete
47
- node "$COMET_STATE" transition <change-name> verify-pass
48
- node "$COMET_STATE" transition <change-name> verify-fail
72
+ comet state transition <change-name> open-complete
73
+ comet state transition <change-name> design-complete
74
+ comet state transition <change-name> build-complete
75
+ comet state transition <change-name> verify-pass
76
+ comet state transition <change-name> verify-fail
77
+ comet state transition <change-name> archive-confirm
78
+ comet state transition <change-name> archive-reopen
79
+ comet state transition <change-name> archived
80
+ comet state transition <change-name> preset-escalate
49
81
  ```
50
82
 
51
- 归档完成由 `node "$COMET_ARCHIVE" <change-name>` 负责;OpenSpec 会把 change 移到带日期前缀的归档目录,不要手动 transition 一个 `<archive-name>`。
83
+ 归档完成由 `comet archive <change-name>` 负责;OpenSpec 会先把 change 移到带日期前缀的归档目录,再由 Comet 完成状态记录。预归档确认使用 `archive-confirm` 或 `archive-reopen`;不要在归档流程之外手动执行 `archived` transition。
52
84
 
53
85
  ## 解析下一步
54
86
 
55
87
  阶段守卫推进 phase 后,用 `next` 子命令解析是否自动调用下一个 skill:
56
88
 
57
89
  ```bash
58
- node "$COMET_STATE" next <change-name>
90
+ comet state next <change-name>
59
91
  ```
60
92
 
61
93
  输出 `NEXT: auto|manual|done` + `SKILL: <skill-name>`(`done` 时省略)+ `HINT`(仅 `manual` 时)。`auto_transition: false` 时输出 `manual`,只暂停下一 skill 调用,不影响已发生的 phase 推进。
@@ -65,5 +97,5 @@ node "$COMET_STATE" next <change-name>
65
97
  一键完成归档全部步骤:
66
98
 
67
99
  ```bash
68
- node "$COMET_ARCHIVE" <change-name>
100
+ comet archive <change-name>
69
101
  ```
@@ -11,9 +11,10 @@
11
11
  > 仅在以下情况才停止并等待用户输入:
12
12
  > - 任务处于 **BLOCKED** 状态(`review_mode: standard` 下风险任务 1 轮 review-fix 或最终轻量复查仍未通过,或 `review_mode: thorough` 下任务级/最终审查 2 轮审查-修复仍未通过)
13
13
  > - 存在无法从仓库、计划或既有上下文消除的真实歧义
14
- > - 平台没有真实后台 agent 调度能力,需要用户改选 `executing-plans`
15
14
  > - 用户**明确**要求暂停
16
15
  >
16
+ > 后台调度能力在执行中失效属于运行停止条件,不自动构成新的用户决策点:退出派发循环并返回 `/comet-build` Step 2 的同一个联合决策,移除 `subagent-driven-development`。若只剩一个合法执行方式,说明原因后直接采用;仍有多个合法方式时才等待用户重新选择。
17
+ >
17
18
  > 此规则适用于整个派发循环,而非单个任务。
18
19
 
19
20
  ## 开始前
@@ -34,14 +35,14 @@
34
35
  - **Claude Code**:对每个 implementer,以及 `review_mode` 要求的 task reviewer、修复 agent 和 final reviewer 使用 `Agent` 工具并设置 `run_in_background: true`。禁止内联执行 task,禁止错误进入需要预先创建 team 的团队模式。
35
36
  - **其他平台**:使用平台等效的后台 agent / Task / 多 agent 派发机制。
36
37
  - **禁止**跨 task 或角色复用 implementer、reviewer 或修复 agent。每个 agent 拥有全新的隔离上下文,并且只接收当前角色所需的单个 task 上下文。
37
- - 若平台无真实后台派发能力,不得继续;暂停并等待用户改选 `build_mode: executing-plans`。
38
+ - 若真实后台派发能力在执行中失效,不得继续派发或由主会话代写实现;返回 `/comet-build` Step 2 的同一个联合决策并移除不可用模式。不得另设“是否改用 executing-plans”的停顿点;只剩一个合法模式时直接采用。
38
39
 
39
40
  ### 1. 派发 Prompt 与回报契约
40
41
 
41
42
  每个 implementer 或修复 agent prompt 必须包含:
42
43
 
43
44
  - 当前单个 task 的完整文本、架构背景和依赖上下文
44
- - `Language: 使用 "$COMET_BASH" "$COMET_STATE" get <name> language 读取到的 Comet 配置产物语言输出`
45
+ - `Language: 使用 comet state get <name> language 读取到的 Comet 配置产物语言输出`
45
46
  - 允许修改的文件范围和禁止修改的范围
46
47
  - 必须执行的测试命令和提交要求
47
48
  - 修复 agent 还必须收到对应 reviewer 的完整反馈
@@ -142,8 +143,8 @@ Comet 不读取、不写入、也不要求任何 Superpowers `subagent-driven-de
142
143
  4. 运行定向验证:
143
144
 
144
145
  ```bash
145
- node "$COMET_STATE" task-checkoff "$PLAN_FILE" "$PLAN_TASK_TEXT"
146
- node "$COMET_STATE" task-checkoff "openspec/changes/<name>/tasks.md" "$OPENSPEC_TASK_TEXT"
146
+ comet state task-checkoff <plan-file> <plan-task-text>
147
+ comet state task-checkoff openspec/changes/<name>/tasks.md <openspec-task-text>
147
148
  ```
148
149
 
149
150
  仅在对应映射存在时运行第二条。脚本会要求任务文本恰好出现一次且该项已勾选;验证失败时不得进入下一个 task。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-any
3
- description: "Use when 用户想定制 Comet 五阶段 Skill、创建 workflow Skill、整理已有 Skill,或用 Workflow Node / Skill Binding / Output Schema 编排 Skill。"
3
+ description: "仅在用户明确调用 /comet-any,或明确要求定制 Comet 五阶段流程、创建或升级由 Comet Creator 管理的 workflow Skill 时使用;不要用于一般 Skill 的编写、整理或评审。"
4
4
  ---
5
5
 
6
6
  # Comet Any - Skill Creator
@@ -62,21 +62,26 @@ Decision Core 应建模 Auto 区不处理的三件事:(1) **语义化当前节
62
62
  - 若状态显示某 Node 已完成但预期 artifact 缺失,视为未完成并重新进入。
63
63
  - 若用户在某个 Node 中途恢复但话题变了,确认是继续当前 Node 还是开始新的。
64
64
 
65
- ### 决策点(必须暂停)
65
+ ### 决策分类与决策点
66
+
67
+ 先分类再行动:有两个或以上会改变范围、行为、风险接受或不可逆结果的合法选项才是用户决策;唯一安全下一步直接执行;缺少依赖、状态损坏或无法继续的 guard 失败是停止条件;`NEXT: manual` 只是交还控制权。只有第一类必须暂停。
66
68
 
67
69
  | 情况 | 处理 |
68
70
  |------|------|
69
- | 首次调用,无 workflow 状态 | 初始化状态,在开始第一个 Node 前与用户确认主题/范围 |
70
- | 用户输入在两个 Node 间有歧义 | 询问用户指哪个 Node;不要猜测 |
71
+ | 首次调用且主题/范围明确 | 自动初始化状态并进入第一个 Node;不得为了确认已知信息而停顿 |
72
+ | 主题、范围或目标 Node 存在两个以上互斥且合法的解释 | 合并为一个问题,让用户选择;不要猜测 |
71
73
  | Node 需要用户确认输出才能推进 | 记录 evidence 后停下;等待明确确认 |
72
- | Node guard 失败且原因不明 | 展示 guard 输出,询问用户如何继续 |
74
+ | WARNING/偏差接受或不可逆发布存在真实取舍 | 只展示当前可执行选项,并记录用户选择 |
75
+
76
+ Node guard 失败时先自动读取证据并执行唯一安全修复;若缺少依赖或状态损坏导致无法继续,报告停止条件和恢复要求。只有恢复方式存在多个会改变范围或风险的合法选项时,才升级为上表中的用户决策。
73
77
 
74
78
  ### Red Flags
75
79
 
76
80
  | Agent 想法 | 实际风险 |
77
81
  |-----------|---------|
78
- | "用户提到了主题,所以研究隐式确认" | 提到 ≠ 确认。在第一个 Node 边界暂停并确认范围。 |
82
+ | "首次调用都应该再确认一次" | 清晰输入不需要重复批准;只有互斥解释仍会改变范围时才询问。 |
79
83
  | "脚本返回 NEXT: auto,应该立即加载下一个 Skill" | `NEXT: auto` 表示 Node 完成,不是跳过确认。检查下一个 Node 是否有决策点。 |
84
+ | "guard 失败,所以让用户决定怎么办" | 先自动诊断并执行唯一安全修复;无合法动作时报告停止条件,不要发明选项。 |
80
85
  | "看起来和上次一样的话题,从上次断点继续" | 始终重新读取状态。对话记忆在上下文压缩后不可靠。 |
81
86
  | "Exit Check 通过了,所以工作够好了" | Exit Check 是机械的。你的职责是判断检查之外的质量——稀疏笔记、浅层分析、缺失视角,脚本抓不到。 |
82
87
  ```
@@ -4,8 +4,7 @@
4
4
 
5
5
  ## 职责
6
6
 
7
- 设计用户在 Skill 中必须停顿选择的位置,以及跨设备断点恢复方式。停顿点必须是明确的用户选择,
8
- 不能被默认推荐、历史偏好或自动推进绕过。
7
+ 设计用户在 Skill 中真正必须选择的位置,以及跨设备断点恢复方式。必须先区分四类情况:用户决策、自动处理、停止条件和手动衔接。只有存在两个或以上会改变范围、行为、风险接受或不可逆结果的合法选项时,才创建用户停顿点;单一安全动作直接执行,缺少依赖或状态损坏只报告停止条件,手动衔接只交还控制权。真正的用户决策不能被默认推荐、历史偏好或自动推进绕过。
9
8
 
10
9
  必须覆盖:
11
10
 
@@ -16,11 +15,10 @@
16
15
 
17
16
  读取主会话提供的通用输入,尤其关注:
18
17
 
19
- - Skill Creator 方案确认页中的 `confirm-generate`、`revise-proposal`、`cancel`。
20
- - eval 工作量选择 `skip / quick / full eval`,以及当前 draft hash 的 eval evidence 缺失或过期时的阻塞恢复。
21
- - 安装前人工批准。
22
- - unresolved、ambiguous、capability gap、executable disclosure 等阻塞点。
23
- - runner 恢复状态和跨设备恢复入口。
18
+ - Skill Creator 方案确认页中的 `confirm-generate`、`revise-proposal`、`cancel`:这是会改变生成结果的用户决策。
19
+ - eval 工作量选择 `skip / quick / full eval` 和安装前人工批准:只有确实存在多个合法选项时才是用户决策。
20
+ - 当前 draft hash 的 eval evidence 缺失或过期、unresolved、ambiguous、capability gap、executable disclosure:逐项判断是可自动修复、无路可走的停止条件,还是确有多个恢复选项的用户决策;不得统一写成停顿点。
21
+ - runner 恢复状态和跨设备恢复入口:复用仍有效的持久化选择,不得在恢复时重复询问。
24
22
 
25
23
  使用文件交接:主会话提供路径,不粘贴大段全文。不要继承主会话历史;只使用本 brief、通用输入、
26
24
  workflow protocol 和已有草稿。
@@ -35,21 +33,23 @@ model: <必须显式指定 model>
35
33
  prompt:
36
34
  你是停顿点作者 subagent。
37
35
  先读取本 brief、通用输入路径、workflow protocol 路径、Skill 草稿路径和报告文件路径。
38
- 开始前先提出问题:如果用户选择项、阻塞恢复或跨设备状态不清楚,先返回 NEEDS_CONTEXT。
39
- 不要猜测或自行补全缺失停顿点。
36
+ 开始前先把候选节点分类为用户决策、自动处理、停止条件或手动衔接。如果分类所需事实缺失,先返回 NEEDS_CONTEXT。
37
+ 不要猜测缺失选择,也不要把自动修复、guard 失败、能力缺口、单一合法动作或手动衔接伪装成用户停顿点。
40
38
  只产出 decision-points 和 recovery 草稿,不写 Bundle state,不执行候选脚本。
41
39
  把完整停顿点草稿写入报告文件路径,并只返回 15 行以内状态摘要。
42
40
  ```
43
41
 
44
42
  ## 输出要求
45
43
 
46
- 返回停顿点草稿,说明:
44
+ 返回草稿时先列分类表,再说明真正的用户停顿点:
47
45
 
46
+ - 每个候选节点属于用户决策、自动处理、停止条件还是手动衔接,以及判定依据。
48
47
  - 每个停顿点的触发条件。
49
48
  - 用户可选择项。
50
49
  - 每个选择会进入哪个阶段。
51
50
  - 停顿点证据写入哪里。
52
- - 恢复时如何显示当前阶段、阻塞原因、建议下一步和可选项。
51
+ - 自动处理如何直接推进;停止条件如何报告恢复条件而不发明选项。
52
+ - 恢复时如何显示当前阶段、阻塞原因、建议下一步和真实可选项,并复用已持久化选择。
53
53
 
54
54
  停顿点必须适配当前 workflow protocol,不得只列 Comet 原始停顿点。
55
55
 
@@ -58,8 +58,10 @@ prompt:
58
58
  返回前逐项检查:
59
59
 
60
60
  - 每个用户停顿点都有触发条件、选项、下一阶段和证据位置。
61
+ - 每个停顿点至少有两个当前可执行的合法选项;相邻且可同时回答的选择已合并,单一合法值不会制造停顿。
62
+ - guard 失败、确定性重试、状态对账、能力缺口和 `NEXT: manual` 已按实际情况归入自动处理、停止条件或手动衔接,而不是默认询问用户。
61
63
  - 默认推荐、历史偏好和自动推进都不能绕过必须停顿点。
62
- - 恢复摘要能显示当前阶段、阻塞原因、建议下一步和可选项。
64
+ - 恢复摘要能显示当前阶段、阻塞原因、建议下一步和真实可选项,且不会重复询问仍有效的选择。
63
65
  - 跨设备恢复不依赖当前会话记忆。
64
66
  - 停顿点适配当前组合 Skill,不只是照列 Comet 原始停顿点。
65
67
 
@@ -61,6 +61,8 @@ prompt:
61
61
  - 阶段推进没有通过脚本输出 `NEXT:` 和 `SKILL:` 表达。
62
62
  - workflow protocol 声明的 `requiredSkillCalls` 没有在对应Node Skill 中明确要求加载,或 subagent 槽位没有要求子代理任务提示加载该 Skill。
63
63
  - 用户停顿点缺失,或停顿点可被默认值绕过。
64
+ - 把确定性修复、guard 失败、状态对账、能力缺口、单一合法动作或 `NEXT: manual` 默认写成用户停顿点;或把可同时回答的相邻选择拆成连续确认。
65
+ - entry Skill 的 frontmatter description 没有说明它是托管 workflow 的入口/恢复路由,或 internal Node Skill 的 description 允许普通任务直接触发而未限定为显式调用或 entry/runtime 路由。
64
66
  - 中文 Skill 混入英文流程句。
65
67
  - 嵌套 Skill 调用使用 provider 前缀。
66
68
  - 用户可见 `SKILL.md` 泄漏生成审计章节、source hash 或内部 metadata。
@@ -20,7 +20,7 @@
20
20
 
21
21
  - **语义化当前节点检测** — 如何判断用户在哪个 Node,而非只跑脚本。建模 comet 的 Step 0(从用户消息检测意图,检查 Node 顺序,处理"属于前序/后序 Node"的冲突)+ Step 1(读状态,文件优先于过期状态)。
22
22
  - **Resume 与 drift 规则** — 上下文恢复时怎么办(从头重新检测,永远不信任对话历史),状态说 DONE 但 artifact 缺失时怎么办,用户在 Node 中途换话题时怎么办。
23
- - **决策点**必须暂停等用户确认的情况的显式表格(首次调用确认范围、Node 歧义、用户确认、guard 失败)。
23
+ - **决策分类与决策点**先区分用户决策、自动处理、停止条件和手动衔接,再只为真正需要用户选择的情况建表。清晰的首次调用、可确定修复的 guard 失败、单一合法下一步和 `NEXT: manual` 都不得制造确认点。
24
24
  - **Red flags** — "agent 想法 → 实际风险"模式,抓自欺(如"用户提到了主题所以研究已确认" → 提到 ≠ 确认)。
25
25
 
26
26
  没有这四个子节的 Decision Core 是 stub,不是 Decision Core。entry 是每次调用最先读取的文件——它决定了 Skill 感觉"智能"还是"机械"。
@@ -48,10 +48,10 @@ model: <必须显式指定 model>
48
48
  prompt:
49
49
  你是 workflow entry 作者 subagent。
50
50
  先读取本 brief、通用输入路径、脚本契约路径、workflow protocol 路径和报告文件路径。
51
- 开始前先提出问题:如果启动路由、恢复路径、当前阶段判定或用户停顿点不清楚,先返回 NEEDS_CONTEXT。
51
+ 开始前先分类用户决策、自动处理、停止条件和手动衔接;如果启动路由、恢复路径、当前阶段判定或真正的用户选择不清楚,先返回 NEEDS_CONTEXT。
52
52
  不要猜测或自行补全缺失流程。
53
53
  只写 entry SKILL.md 草稿,不写 internal Node Skill,不写 Bundle state,不执行候选脚本。
54
- Decision Core 必须包含四个子节:### 自动节点检测(Step 0 意图检测 + Step 1 状态读取 + Resume 规则)、### 决策点(显式暂停表格)、### Red Flags(agent 想法 → 实际风险表格)。没有这些子节的 Decision Core 是 stub。
54
+ Decision Core 必须包含四个子节:### 自动节点检测(Step 0 意图检测 + Step 1 状态读取 + Resume 规则)、### 决策分类与决策点(只列真正的用户选择)、### Red Flags(agent 想法 → 实际风险表格)。不得把 guard 失败、确定性修复、单一合法动作或手动衔接列为用户决策。没有这些子节的 Decision Core 是 stub。
55
55
  把完整 entry 草稿写入报告文件路径,并只返回 15 行以内状态摘要。
56
56
  ```
57
57
 
@@ -64,7 +64,7 @@ entry 草稿必须体现:
64
64
  - 只有脚本输出 `NEXT: auto` 和 `SKILL: <node-skill>` 后,才加载这一个 Node Skill。
65
65
  - 阶段路线只能作为参考表,不能使用“立即执行”或“必须加载”这类执行指令。
66
66
  - 对 `/comet` 定制,entry 必须列出必调槽位 Skill,但只能作为阶段内义务说明,不能变成 entry 立即执行清单。
67
- - 用户停顿点、恢复路径和参考文件清楚可见。
67
+ - 用户决策、自动处理、停止条件、手动衔接、恢复路径和参考文件清楚可见;只有至少两个真实合法选项时才停顿,相邻选择应合并。
68
68
  - 对 `/comet` 定制,说明保留 open / design / build / verify / archive 主路径和阶段守卫。
69
69
 
70
70
  禁止:
@@ -83,6 +83,7 @@ entry 草稿必须体现:
83
83
  - entry 没有立即加载Node Skill 的清单。
84
84
  - 阶段路线是参考,不是执行步骤。
85
85
  - 自动推进引用脚本输出的 `NEXT:` 和 `SKILL:`。
86
+ - 清晰首次调用直接初始化;guard 失败先自动诊断或报告停止条件;`NEXT: manual` 只交还控制权;以上情况均不伪造用户决策。
86
87
  - 中文用户可见文案没有混入英文流程句。
87
88
 
88
89
  ## 必须返回的 claim
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: comet-archive
3
- description: "Use when Comet change 验证已通过,需要用户确认归档、合并 delta spec,或恢复 archive 阶段。"
3
+ description: "仅在用户明确调用 /comet-archive,或由 Comet Skill/runtime 路由到 archive 阶段时使用;确认归档、合并 delta spec 并完成分支收尾。"
4
4
  ---
5
5
 
6
6
  # Comet 阶段 5:归档(Archive)
@@ -8,52 +8,59 @@ description: "Use when Comet change 验证已通过,需要用户确认归档
8
8
  ## 前置条件
9
9
 
10
10
  - 验证已通过(阶段 4 完成)
11
- - 分支已处理
11
+ - 归档提交和分支处理尚未完成(`branch_status: pending`)
12
12
  - `openspec/changes/<name>/.comet.yaml` 中 `verify_result: pass`
13
13
 
14
14
  ## 步骤
15
15
 
16
16
  ### 0. 输出语言约束
17
17
 
18
- 归档摘要和生命周期闭环说明必须使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取到的 Comet 配置产物语言。
18
+ 归档摘要和生命周期闭环说明必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
19
19
 
20
20
  ### 0b. 入口状态验证(Entry Check)
21
21
 
22
- 按 `comet/reference/scripts.md` 定位脚本(定位 `comet-env.mjs`),然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
22
+ 按 `comet/reference/scripts.md` 使用稳定 `comet` CLI,然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
23
23
 
24
24
  ```bash
25
- node "$COMET_STATE" check <name> archive
25
+ comet state select <change-name>
26
+ comet state check <name> archive
26
27
  ```
27
28
 
28
29
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
29
30
 
30
31
  ### 1. 归档前最终确认(阻塞点)
31
32
 
32
- 入口验证通过后,**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户确认是否立即归档**。不得在用户确认前运行 `node "$COMET_ARCHIVE" "<change-name>"`。
33
+ 入口验证通过后,**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户确认是否立即归档**。不得在用户确认前运行 `comet archive "<change-name>"`。
33
34
 
34
35
  确认前必须向用户展示简短摘要:
35
36
  - change 名称
36
37
  - 验证报告路径和结论
37
- - 分支处理状态
38
+ - 当前分支/工作区和未提交改动归因摘要
38
39
  - 本次归档将执行的不可逆动作:按 OpenSpec delta 语义合并主 spec、标注 design doc / plan、移动 change 到 archive 目录
39
40
 
40
41
  用户确认问题必须以单选题形式呈现,包含以下选项:
41
- - 「确认归档」— 立即执行归档脚本,完成 spec 合并和 change 移动
42
- - 「需要调整或重新验证」— 不执行归档;运行 `node "$COMET_STATE" transition <change-name> archive-reopen` 回到 `phase: verify`,再调用 `/comet-verify`。若验证阶段确认需要修复,再按 `/comet-verify` 的验证失败决策回到 `/comet-build`
42
+ - 「确认归档」— 写入最终确认状态后执行归档脚本,完成 spec 合并和 change 移动
43
+ - 「需要调整或重新验证」— 不执行归档;运行 `comet state transition <change-name> archive-reopen` 回到 `phase: verify`,再调用 `/comet-verify`。若验证阶段确认需要修复,再按 `/comet-verify` 的验证失败决策回到 `/comet-build`
43
44
  - 「暂不归档」— 不执行归档,保留当前 `phase: archive` 状态,等待用户稍后再次调用 `/comet-archive`
44
45
 
45
- 只有用户选择「确认归档」后,才允许继续 Step 2。用户选择「需要调整或重新验证」后,必须先执行 `archive-reopen` 状态回退,不得手动编辑 `.comet.yaml`。
46
+ 用户选择「确认归档」后,立即执行:
47
+
48
+ ```bash
49
+ comet state transition <change-name> archive-confirm
50
+ ```
51
+
52
+ 如 transition 返回非零退出码,报告错误并停止。只有 transition 成功后,才允许继续 Step 2。用户选择「需要调整或重新验证」后,必须先执行 `archive-reopen` 状态回退,不得手动编辑 `.comet.yaml`。
46
53
 
47
54
  ### 2. 执行归档
48
55
 
49
- 运行归档脚本,自动完成以下全部步骤:
56
+ 运行归档脚本:
50
57
 
51
58
  ```bash
52
- node "$COMET_ARCHIVE" "<change-name>"
59
+ comet archive "<change-name>"
53
60
  ```
54
61
 
55
62
  脚本自动执行:
56
- 1. 入口状态验证(phase=archive, verify_result=pass, archived=false)
63
+ 1. 入口状态验证(phase=archive, verify_result=pass, archive_confirmation=confirmed, archived=false)
57
64
  2. Design doc 前置元数据标注(archived-with, status)
58
65
  3. Plan 前置元数据标注(archived-with)
59
66
  4. 调用 OpenSpec archive 按 delta 语义合并主 spec 并移动 change 到归档目录
@@ -62,6 +69,7 @@ node "$COMET_ARCHIVE" "<change-name>"
62
69
 
63
70
  如脚本返回非零退出码,报告错误并停止。
64
71
  如脚本返回零退出码,归档完成。
72
+
65
73
  脚本摘要中的 `X/Y steps succeeded` 以真实执行步骤计数,不会因 delta spec 同步或文档标注重复累计。
66
74
 
67
75
  脚本会调用 OpenSpec 归档能力按 `ADDED/MODIFIED/REMOVED/RENAMED` 语义合并主 spec,并在归档后校验主 spec 中没有残留 delta-only section 标题。
@@ -75,31 +83,57 @@ Spec 生命周期在此完成:
75
83
  brainstorming → delta spec → 实施 → 验证 → 主 spec 合并 → design doc 标注 → 归档
76
84
  ```
77
85
 
78
- ### 4. 提交归档改动
86
+ ### 4. 精确提交归档改动
79
87
 
80
88
  归档脚本只移动文件和合并 spec,不会自动提交。归档完成后工作区会有以下未提交改动:
81
89
  - change 目录从 `openspec/changes/<name>/` 移动到 `openspec/changes/archive/YYYY-MM-DD-<name>/`
82
90
  - 主 spec 按 delta 语义合并的内容
83
91
  - design doc / plan 的归档元数据标注
84
92
 
85
- **必须提示用户提交这些归档改动**,否则归档成果会停留在工作区。展示待提交文件后建议执行:
93
+ 归档后先读取 `git status --short`,并以归档前的 dirty-worktree 归因记录为基线。只允许暂存可归因于当前 change 的路径:原 active change 路径、脚本输出的实际 archive 路径、被本次 delta 更新的 main specs,以及当前 Design Doc/Plan 的归档元数据。存在无法归因的路径时停止并请求用户处理。
94
+
95
+ 使用显式 pathspec 暂存核对后的路径,再检查 staged diff;不得使用全仓库暂存,也不得把用户已有改动混入归档提交:
86
96
 
87
97
  ```bash
88
- git add -A
98
+ git add -- <逐项核对后的归档路径...>
99
+ git diff --cached --stat
89
100
  git commit -m "chore: archive <change-name>"
90
101
  ```
91
102
 
92
- 如分支处理(阶段 4)选择尚未合并到主分支,提交后按所选方式(合并 / PR / 保持分支)一并收尾。
103
+ 提交失败或 staged diff 含无关路径时停止,不得继续分支处理。
104
+
105
+ ### 5. 归档提交后的分支处理
106
+
107
+ 归档提交成功后,**立即执行:** 使用 Skill 工具加载 Superpowers `finishing-a-development-branch` 技能。该步骤必须位于归档与归档提交之后,确保最终分支/PR 包含 spec 合并和归档元数据。
108
+
109
+ 如该技能不可用,停止流程并提示安装或启用;不得把 `branch_status` 标记为完成。技能加载后,按 `comet/reference/decision-point.md` 暂停让用户选择:
110
+
111
+ 1. 本地合并到主分支
112
+ 2. 推送并创建 PR
113
+ 3. 保持当前分支稍后处理
114
+
115
+ 归档已经完成,因此这里不提供“丢弃工作”选项。只有用户选择的操作成功完成(或明确选择保持分支)后,才运行:
116
+
117
+ ```bash
118
+ comet state set <change-name> branch_status handled
119
+ comet guard <change-name> archive
120
+ comet state clear-selection
121
+ ```
122
+
123
+ archive guard 必须同时确认归档产物完整且 `branch_status: handled`;失败时流程仍未完成。
93
124
 
94
125
  ## 退出条件
95
126
 
96
127
  - 归档脚本执行成功(退出码 0)
97
128
  - 归档目录 `openspec/changes/archive/YYYY-MM-DD-<change-name>/` 存在
98
129
  - 归档后的 `.comet.yaml` 中 `archived: true`
130
+ - 归档改动已通过精确 pathspec 提交
131
+ - 用户选择的分支处理已完成,归档状态中的 `branch_status: handled`
132
+ - `comet guard <change-name> archive` 通过
99
133
 
100
134
  归档脚本会把 `openspec/changes/<name>/` 移动到 `openspec/changes/archive/YYYY-MM-DD-<name>/`。
101
135
 
102
- > **WARNING**: 归档成功后**不要再对原 change 名运行** `node "$COMET_GUARD" <change-name> archive`,因为原活跃目录已经不存在。误调会导致 guard 报错"change directory not found"。归档完整性以脚本退出码和归档目录状态为准。
136
+ `comet guard <change-name> archive` 会按原 change 名解析实际归档目录;不要手工拼接日期目录名。
103
137
 
104
138
  ## 完成
105
139