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

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 (687) hide show
  1. package/README.md +209 -74
  2. package/assets/manifest.json +14 -5
  3. package/assets/skills/comet/SKILL.md +17 -282
  4. package/assets/skills/comet/reference/comet-yaml-fields.md +1 -1
  5. package/assets/skills/comet/reference/context-recovery.md +3 -3
  6. package/assets/skills/comet/reference/intent-frame.md +2 -2
  7. package/assets/skills/comet/reference/scripts.md +2 -2
  8. package/assets/skills/comet/rules/comet-workflow-guard.en.md +32 -0
  9. package/assets/skills/comet/rules/comet-workflow-guard.md +32 -0
  10. package/assets/skills/comet/scripts/comet-entry-runtime.mjs +7834 -0
  11. package/assets/skills/comet/scripts/comet-hook-router.mjs +10307 -0
  12. package/assets/skills/comet/scripts/comet-runtime.mjs +612 -499
  13. package/assets/skills/comet-any/SKILL.md +4 -4
  14. package/assets/skills/comet-any/reference/authoring-subagents.md +1 -1
  15. package/assets/skills/comet-any/reference/bundle-authoring.md +1 -1
  16. package/assets/skills/comet-any/reference/subagents/reference-author.md +1 -1
  17. package/assets/skills/comet-any/reference/subagents/script-author.md +1 -1
  18. package/assets/skills/comet-any/reference/subagents/skill-core-author.md +1 -1
  19. package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +2 -2
  20. package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +3 -3
  21. package/assets/skills/comet-archive/SKILL.md +1 -2
  22. package/assets/skills/comet-build/SKILL.md +1 -1
  23. package/assets/skills/comet-classic/SKILL.md +293 -0
  24. package/assets/skills/comet-design/SKILL.md +1 -1
  25. package/assets/skills/comet-hotfix/SKILL.md +4 -4
  26. package/assets/skills/comet-native/SKILL.md +257 -0
  27. package/assets/skills/comet-native/reference/artifacts.md +204 -0
  28. package/assets/skills/comet-native/reference/commands.md +118 -0
  29. package/assets/skills/comet-native/reference/recovery.md +143 -0
  30. package/assets/skills/comet-native/scripts/comet-native-hook-guard.mjs +4 -0
  31. package/assets/skills/comet-native/scripts/comet-native-runtime.mjs +28898 -0
  32. package/assets/skills/comet-open/SKILL.md +4 -4
  33. package/assets/skills/comet-tweak/SKILL.md +7 -7
  34. package/assets/skills-zh/comet/SKILL.md +17 -270
  35. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +1 -1
  36. package/assets/skills-zh/comet/reference/context-recovery.md +3 -3
  37. package/assets/skills-zh/comet/reference/intent-frame.md +2 -2
  38. package/assets/skills-zh/comet/reference/scripts.md +2 -2
  39. package/assets/skills-zh/comet-any/SKILL.md +4 -4
  40. package/assets/skills-zh/comet-any/reference/authoring-subagents.md +1 -1
  41. package/assets/skills-zh/comet-any/reference/bundle-authoring.md +1 -1
  42. package/assets/skills-zh/comet-any/reference/subagents/reference-author.md +1 -1
  43. package/assets/skills-zh/comet-any/reference/subagents/script-author.md +1 -1
  44. package/assets/skills-zh/comet-any/reference/subagents/skill-core-author.md +1 -1
  45. package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +2 -2
  46. package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +3 -3
  47. package/assets/skills-zh/comet-archive/SKILL.md +1 -2
  48. package/assets/skills-zh/comet-build/SKILL.md +1 -1
  49. package/assets/skills-zh/comet-classic/SKILL.md +281 -0
  50. package/assets/skills-zh/comet-design/SKILL.md +1 -1
  51. package/assets/skills-zh/comet-hotfix/SKILL.md +4 -4
  52. package/assets/skills-zh/comet-native/SKILL.md +257 -0
  53. package/assets/skills-zh/comet-native/reference/artifacts.md +206 -0
  54. package/assets/skills-zh/comet-native/reference/commands.md +118 -0
  55. package/assets/skills-zh/comet-native/reference/recovery.md +143 -0
  56. package/assets/skills-zh/comet-open/SKILL.md +4 -4
  57. package/assets/skills-zh/comet-tweak/SKILL.md +7 -7
  58. package/dist/app/cli/index.js +59 -13
  59. package/dist/app/cli/index.js.map +1 -1
  60. package/dist/app/commands/command-result.d.ts +6 -0
  61. package/dist/app/commands/command-result.d.ts.map +1 -0
  62. package/dist/app/commands/command-result.js +4 -0
  63. package/dist/app/commands/command-result.js.map +1 -0
  64. package/dist/app/commands/doctor.d.ts +1 -0
  65. package/dist/app/commands/doctor.d.ts.map +1 -1
  66. package/dist/app/commands/doctor.js +201 -26
  67. package/dist/app/commands/doctor.js.map +1 -1
  68. package/dist/app/commands/eval.d.ts +3 -1
  69. package/dist/app/commands/eval.d.ts.map +1 -1
  70. package/dist/app/commands/eval.js +17 -7
  71. package/dist/app/commands/eval.js.map +1 -1
  72. package/dist/app/commands/i18n.d.ts +1 -1
  73. package/dist/app/commands/i18n.d.ts.map +1 -1
  74. package/dist/app/commands/i18n.js +6 -2
  75. package/dist/app/commands/i18n.js.map +1 -1
  76. package/dist/app/commands/init.d.ts +10 -2
  77. package/dist/app/commands/init.d.ts.map +1 -1
  78. package/dist/app/commands/init.js +331 -50
  79. package/dist/app/commands/init.js.map +1 -1
  80. package/dist/app/commands/native.d.ts +2 -0
  81. package/dist/app/commands/native.d.ts.map +1 -0
  82. package/dist/app/commands/native.js +10 -0
  83. package/dist/app/commands/native.js.map +1 -0
  84. package/dist/app/commands/project-scope-selection.d.ts.map +1 -1
  85. package/dist/app/commands/project-scope-selection.js +2 -0
  86. package/dist/app/commands/project-scope-selection.js.map +1 -1
  87. package/dist/app/commands/resume-probe.d.ts.map +1 -1
  88. package/dist/app/commands/resume-probe.js +8 -2
  89. package/dist/app/commands/resume-probe.js.map +1 -1
  90. package/dist/app/commands/status.d.ts +0 -32
  91. package/dist/app/commands/status.d.ts.map +1 -1
  92. package/dist/app/commands/status.js +44 -177
  93. package/dist/app/commands/status.js.map +1 -1
  94. package/dist/app/commands/update.d.ts +20 -4
  95. package/dist/app/commands/update.d.ts.map +1 -1
  96. package/dist/app/commands/update.js +698 -90
  97. package/dist/app/commands/update.js.map +1 -1
  98. package/dist/app/commands/workflow.d.ts +6 -0
  99. package/dist/app/commands/workflow.d.ts.map +1 -0
  100. package/dist/app/commands/workflow.js +11 -0
  101. package/dist/app/commands/workflow.js.map +1 -0
  102. package/dist/config/repository-layout.json +21 -1
  103. package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -1
  104. package/dist/domains/comet-classic/classic-archive.js +3 -0
  105. package/dist/domains/comet-classic/classic-archive.js.map +1 -1
  106. package/dist/domains/comet-classic/classic-current-change.d.ts +3 -5
  107. package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -1
  108. package/dist/domains/comet-classic/classic-current-change.js +31 -57
  109. package/dist/domains/comet-classic/classic-current-change.js.map +1 -1
  110. package/dist/domains/comet-classic/classic-hook-guard.d.ts +9 -0
  111. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
  112. package/dist/domains/comet-classic/classic-hook-guard.js +84 -11
  113. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
  114. package/dist/domains/comet-classic/classic-project-config.d.ts.map +1 -1
  115. package/dist/domains/comet-classic/classic-project-config.js +12 -8
  116. package/dist/domains/comet-classic/classic-project-config.js.map +1 -1
  117. package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -1
  118. package/dist/domains/comet-classic/classic-runtime-run.js +9 -1
  119. package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -1
  120. package/dist/domains/comet-entry/current-selection-repair.d.ts +17 -0
  121. package/dist/domains/comet-entry/current-selection-repair.d.ts.map +1 -0
  122. package/dist/domains/comet-entry/current-selection-repair.js +19 -0
  123. package/dist/domains/comet-entry/current-selection-repair.js.map +1 -0
  124. package/dist/domains/comet-entry/current-selection.d.ts +28 -0
  125. package/dist/domains/comet-entry/current-selection.d.ts.map +1 -0
  126. package/dist/domains/comet-entry/current-selection.js +116 -0
  127. package/dist/domains/comet-entry/current-selection.js.map +1 -0
  128. package/dist/domains/comet-entry/entry-runtime-entry.d.ts +2 -0
  129. package/dist/domains/comet-entry/entry-runtime-entry.d.ts.map +1 -0
  130. package/dist/domains/comet-entry/entry-runtime-entry.js +3 -0
  131. package/dist/domains/comet-entry/entry-runtime-entry.js.map +1 -0
  132. package/dist/domains/comet-entry/entry-runtime.d.ts +7 -0
  133. package/dist/domains/comet-entry/entry-runtime.d.ts.map +1 -0
  134. package/dist/domains/comet-entry/entry-runtime.js +55 -0
  135. package/dist/domains/comet-entry/entry-runtime.js.map +1 -0
  136. package/dist/domains/comet-entry/hook-adapter.d.ts +6 -0
  137. package/dist/domains/comet-entry/hook-adapter.d.ts.map +1 -0
  138. package/dist/domains/comet-entry/hook-adapter.js +202 -0
  139. package/dist/domains/comet-entry/hook-adapter.js.map +1 -0
  140. package/dist/domains/comet-entry/hook-router-entry.d.ts +8 -0
  141. package/dist/domains/comet-entry/hook-router-entry.d.ts.map +1 -0
  142. package/dist/domains/comet-entry/hook-router-entry.js +92 -0
  143. package/dist/domains/comet-entry/hook-router-entry.js.map +1 -0
  144. package/dist/domains/comet-entry/hook-router.d.ts +32 -0
  145. package/dist/domains/comet-entry/hook-router.d.ts.map +1 -0
  146. package/dist/domains/comet-entry/hook-router.js +133 -0
  147. package/dist/domains/comet-entry/hook-router.js.map +1 -0
  148. package/dist/domains/comet-entry/hook-types.d.ts +20 -0
  149. package/dist/domains/comet-entry/hook-types.d.ts.map +1 -0
  150. package/dist/domains/comet-entry/hook-types.js +2 -0
  151. package/dist/domains/comet-entry/hook-types.js.map +1 -0
  152. package/dist/domains/comet-entry/init-workflow.d.ts +16 -0
  153. package/dist/domains/comet-entry/init-workflow.d.ts.map +1 -0
  154. package/dist/domains/comet-entry/init-workflow.js +103 -0
  155. package/dist/domains/comet-entry/init-workflow.js.map +1 -0
  156. package/dist/domains/comet-entry/project-status.d.ts +3 -0
  157. package/dist/domains/comet-entry/project-status.d.ts.map +1 -0
  158. package/dist/domains/comet-entry/project-status.js +222 -0
  159. package/dist/domains/comet-entry/project-status.js.map +1 -0
  160. package/dist/domains/comet-entry/resolve-entry.d.ts +3 -0
  161. package/dist/domains/comet-entry/resolve-entry.d.ts.map +1 -0
  162. package/dist/domains/comet-entry/resolve-entry.js +22 -0
  163. package/dist/domains/comet-entry/resolve-entry.js.map +1 -0
  164. package/dist/domains/comet-entry/resume-probe.d.ts +34 -0
  165. package/dist/domains/comet-entry/resume-probe.d.ts.map +1 -0
  166. package/dist/domains/comet-entry/resume-probe.js +458 -0
  167. package/dist/domains/comet-entry/resume-probe.js.map +1 -0
  168. package/dist/domains/comet-entry/types.d.ts +59 -0
  169. package/dist/domains/comet-entry/types.d.ts.map +1 -0
  170. package/dist/domains/comet-entry/types.js +2 -0
  171. package/dist/domains/comet-entry/types.js.map +1 -0
  172. package/dist/domains/comet-entry/workflow-resolution.d.ts +8 -0
  173. package/dist/domains/comet-entry/workflow-resolution.d.ts.map +1 -0
  174. package/dist/domains/comet-entry/workflow-resolution.js +16 -0
  175. package/dist/domains/comet-entry/workflow-resolution.js.map +1 -0
  176. package/dist/domains/comet-native/index.d.ts +35 -0
  177. package/dist/domains/comet-native/index.d.ts.map +1 -0
  178. package/dist/domains/comet-native/index.js +35 -0
  179. package/dist/domains/comet-native/index.js.map +1 -0
  180. package/dist/domains/comet-native/native-acceptance.d.ts +42 -0
  181. package/dist/domains/comet-native/native-acceptance.d.ts.map +1 -0
  182. package/dist/domains/comet-native/native-acceptance.js +503 -0
  183. package/dist/domains/comet-native/native-acceptance.js.map +1 -0
  184. package/dist/domains/comet-native/native-archive-content.d.ts +26 -0
  185. package/dist/domains/comet-native/native-archive-content.d.ts.map +1 -0
  186. package/dist/domains/comet-native/native-archive-content.js +159 -0
  187. package/dist/domains/comet-native/native-archive-content.js.map +1 -0
  188. package/dist/domains/comet-native/native-archive-inspection.d.ts +9 -0
  189. package/dist/domains/comet-native/native-archive-inspection.d.ts.map +1 -0
  190. package/dist/domains/comet-native/native-archive-inspection.js +94 -0
  191. package/dist/domains/comet-native/native-archive-inspection.js.map +1 -0
  192. package/dist/domains/comet-native/native-archive-preflight.d.ts +52 -0
  193. package/dist/domains/comet-native/native-archive-preflight.d.ts.map +1 -0
  194. package/dist/domains/comet-native/native-archive-preflight.js +214 -0
  195. package/dist/domains/comet-native/native-archive-preflight.js.map +1 -0
  196. package/dist/domains/comet-native/native-archive-transaction.d.ts +19 -0
  197. package/dist/domains/comet-native/native-archive-transaction.d.ts.map +1 -0
  198. package/dist/domains/comet-native/native-archive-transaction.js +1181 -0
  199. package/dist/domains/comet-native/native-archive-transaction.js.map +1 -0
  200. package/dist/domains/comet-native/native-archive.d.ts +36 -0
  201. package/dist/domains/comet-native/native-archive.d.ts.map +1 -0
  202. package/dist/domains/comet-native/native-archive.js +403 -0
  203. package/dist/domains/comet-native/native-archive.js.map +1 -0
  204. package/dist/domains/comet-native/native-artifacts.d.ts +10 -0
  205. package/dist/domains/comet-native/native-artifacts.d.ts.map +1 -0
  206. package/dist/domains/comet-native/native-artifacts.js +204 -0
  207. package/dist/domains/comet-native/native-artifacts.js.map +1 -0
  208. package/dist/domains/comet-native/native-atomic-file.d.ts +10 -0
  209. package/dist/domains/comet-native/native-atomic-file.d.ts.map +1 -0
  210. package/dist/domains/comet-native/native-atomic-file.js +175 -0
  211. package/dist/domains/comet-native/native-atomic-file.js.map +1 -0
  212. package/dist/domains/comet-native/native-bounded-file.d.ts +19 -0
  213. package/dist/domains/comet-native/native-bounded-file.d.ts.map +1 -0
  214. package/dist/domains/comet-native/native-bounded-file.js +180 -0
  215. package/dist/domains/comet-native/native-bounded-file.js.map +1 -0
  216. package/dist/domains/comet-native/native-build-evidence.d.ts +42 -0
  217. package/dist/domains/comet-native/native-build-evidence.d.ts.map +1 -0
  218. package/dist/domains/comet-native/native-build-evidence.js +257 -0
  219. package/dist/domains/comet-native/native-build-evidence.js.map +1 -0
  220. package/dist/domains/comet-native/native-canonical-hash.d.ts +10 -0
  221. package/dist/domains/comet-native/native-canonical-hash.d.ts.map +1 -0
  222. package/dist/domains/comet-native/native-canonical-hash.js +100 -0
  223. package/dist/domains/comet-native/native-canonical-hash.js.map +1 -0
  224. package/dist/domains/comet-native/native-change-recovery.d.ts +11 -0
  225. package/dist/domains/comet-native/native-change-recovery.d.ts.map +1 -0
  226. package/dist/domains/comet-native/native-change-recovery.js +15 -0
  227. package/dist/domains/comet-native/native-change-recovery.js.map +1 -0
  228. package/dist/domains/comet-native/native-change.d.ts +61 -0
  229. package/dist/domains/comet-native/native-change.d.ts.map +1 -0
  230. package/dist/domains/comet-native/native-change.js +696 -0
  231. package/dist/domains/comet-native/native-change.js.map +1 -0
  232. package/dist/domains/comet-native/native-check-receipt-model.d.ts +63 -0
  233. package/dist/domains/comet-native/native-check-receipt-model.d.ts.map +1 -0
  234. package/dist/domains/comet-native/native-check-receipt-model.js +347 -0
  235. package/dist/domains/comet-native/native-check-receipt-model.js.map +1 -0
  236. package/dist/domains/comet-native/native-check-receipt-storage.d.ts +10 -0
  237. package/dist/domains/comet-native/native-check-receipt-storage.d.ts.map +1 -0
  238. package/dist/domains/comet-native/native-check-receipt-storage.js +196 -0
  239. package/dist/domains/comet-native/native-check-receipt-storage.js.map +1 -0
  240. package/dist/domains/comet-native/native-check-receipt.d.ts +19 -0
  241. package/dist/domains/comet-native/native-check-receipt.d.ts.map +1 -0
  242. package/dist/domains/comet-native/native-check-receipt.js +446 -0
  243. package/dist/domains/comet-native/native-check-receipt.js.map +1 -0
  244. package/dist/domains/comet-native/native-check.d.ts +18 -0
  245. package/dist/domains/comet-native/native-check.d.ts.map +1 -0
  246. package/dist/domains/comet-native/native-check.js +29 -0
  247. package/dist/domains/comet-native/native-check.js.map +1 -0
  248. package/dist/domains/comet-native/native-checkpoint-journal.d.ts +13 -0
  249. package/dist/domains/comet-native/native-checkpoint-journal.d.ts.map +1 -0
  250. package/dist/domains/comet-native/native-checkpoint-journal.js +53 -0
  251. package/dist/domains/comet-native/native-checkpoint-journal.js.map +1 -0
  252. package/dist/domains/comet-native/native-checkpoint-storage.d.ts +43 -0
  253. package/dist/domains/comet-native/native-checkpoint-storage.d.ts.map +1 -0
  254. package/dist/domains/comet-native/native-checkpoint-storage.js +487 -0
  255. package/dist/domains/comet-native/native-checkpoint-storage.js.map +1 -0
  256. package/dist/domains/comet-native/native-cli-entry.d.ts +2 -0
  257. package/dist/domains/comet-native/native-cli-entry.d.ts.map +1 -0
  258. package/dist/domains/comet-native/native-cli-entry.js +18 -0
  259. package/dist/domains/comet-native/native-cli-entry.js.map +1 -0
  260. package/dist/domains/comet-native/native-cli.d.ts +7 -0
  261. package/dist/domains/comet-native/native-cli.d.ts.map +1 -0
  262. package/dist/domains/comet-native/native-cli.js +642 -0
  263. package/dist/domains/comet-native/native-cli.js.map +1 -0
  264. package/dist/domains/comet-native/native-config.d.ts +15 -0
  265. package/dist/domains/comet-native/native-config.d.ts.map +1 -0
  266. package/dist/domains/comet-native/native-config.js +281 -0
  267. package/dist/domains/comet-native/native-config.js.map +1 -0
  268. package/dist/domains/comet-native/native-conflict-inspection.d.ts +17 -0
  269. package/dist/domains/comet-native/native-conflict-inspection.d.ts.map +1 -0
  270. package/dist/domains/comet-native/native-conflict-inspection.js +90 -0
  271. package/dist/domains/comet-native/native-conflict-inspection.js.map +1 -0
  272. package/dist/domains/comet-native/native-conflict-radar.d.ts +75 -0
  273. package/dist/domains/comet-native/native-conflict-radar.d.ts.map +1 -0
  274. package/dist/domains/comet-native/native-conflict-radar.js +326 -0
  275. package/dist/domains/comet-native/native-conflict-radar.js.map +1 -0
  276. package/dist/domains/comet-native/native-continuation.d.ts +9 -0
  277. package/dist/domains/comet-native/native-continuation.d.ts.map +1 -0
  278. package/dist/domains/comet-native/native-continuation.js +146 -0
  279. package/dist/domains/comet-native/native-continuation.js.map +1 -0
  280. package/dist/domains/comet-native/native-contract-files.d.ts +24 -0
  281. package/dist/domains/comet-native/native-contract-files.d.ts.map +1 -0
  282. package/dist/domains/comet-native/native-contract-files.js +66 -0
  283. package/dist/domains/comet-native/native-contract-files.js.map +1 -0
  284. package/dist/domains/comet-native/native-contract.d.ts +41 -0
  285. package/dist/domains/comet-native/native-contract.d.ts.map +1 -0
  286. package/dist/domains/comet-native/native-contract.js +141 -0
  287. package/dist/domains/comet-native/native-contract.js.map +1 -0
  288. package/dist/domains/comet-native/native-diagnostics.d.ts +18 -0
  289. package/dist/domains/comet-native/native-diagnostics.d.ts.map +1 -0
  290. package/dist/domains/comet-native/native-diagnostics.js +522 -0
  291. package/dist/domains/comet-native/native-diagnostics.js.map +1 -0
  292. package/dist/domains/comet-native/native-doctor.d.ts +12 -0
  293. package/dist/domains/comet-native/native-doctor.d.ts.map +1 -0
  294. package/dist/domains/comet-native/native-doctor.js +768 -0
  295. package/dist/domains/comet-native/native-doctor.js.map +1 -0
  296. package/dist/domains/comet-native/native-evidence-retention.d.ts +37 -0
  297. package/dist/domains/comet-native/native-evidence-retention.d.ts.map +1 -0
  298. package/dist/domains/comet-native/native-evidence-retention.js +885 -0
  299. package/dist/domains/comet-native/native-evidence-retention.js.map +1 -0
  300. package/dist/domains/comet-native/native-evidence-storage.d.ts +41 -0
  301. package/dist/domains/comet-native/native-evidence-storage.d.ts.map +1 -0
  302. package/dist/domains/comet-native/native-evidence-storage.js +351 -0
  303. package/dist/domains/comet-native/native-evidence-storage.js.map +1 -0
  304. package/dist/domains/comet-native/native-findings.d.ts +8 -0
  305. package/dist/domains/comet-native/native-findings.d.ts.map +1 -0
  306. package/dist/domains/comet-native/native-findings.js +238 -0
  307. package/dist/domains/comet-native/native-findings.js.map +1 -0
  308. package/dist/domains/comet-native/native-guards.d.ts +7 -0
  309. package/dist/domains/comet-native/native-guards.d.ts.map +1 -0
  310. package/dist/domains/comet-native/native-guards.js +126 -0
  311. package/dist/domains/comet-native/native-guards.js.map +1 -0
  312. package/dist/domains/comet-native/native-hash.d.ts +3 -0
  313. package/dist/domains/comet-native/native-hash.d.ts.map +1 -0
  314. package/dist/domains/comet-native/native-hash.js +12 -0
  315. package/dist/domains/comet-native/native-hash.js.map +1 -0
  316. package/dist/domains/comet-native/native-hook-guard.d.ts +17 -0
  317. package/dist/domains/comet-native/native-hook-guard.d.ts.map +1 -0
  318. package/dist/domains/comet-native/native-hook-guard.js +154 -0
  319. package/dist/domains/comet-native/native-hook-guard.js.map +1 -0
  320. package/dist/domains/comet-native/native-lock.d.ts +47 -0
  321. package/dist/domains/comet-native/native-lock.d.ts.map +1 -0
  322. package/dist/domains/comet-native/native-lock.js +395 -0
  323. package/dist/domains/comet-native/native-lock.js.map +1 -0
  324. package/dist/domains/comet-native/native-mutation-lock.d.ts +5 -0
  325. package/dist/domains/comet-native/native-mutation-lock.d.ts.map +1 -0
  326. package/dist/domains/comet-native/native-mutation-lock.js +66 -0
  327. package/dist/domains/comet-native/native-mutation-lock.js.map +1 -0
  328. package/dist/domains/comet-native/native-paths.d.ts +10 -0
  329. package/dist/domains/comet-native/native-paths.d.ts.map +1 -0
  330. package/dist/domains/comet-native/native-paths.js +171 -0
  331. package/dist/domains/comet-native/native-paths.js.map +1 -0
  332. package/dist/domains/comet-native/native-progress-checkpoint.d.ts +13 -0
  333. package/dist/domains/comet-native/native-progress-checkpoint.d.ts.map +1 -0
  334. package/dist/domains/comet-native/native-progress-checkpoint.js +104 -0
  335. package/dist/domains/comet-native/native-progress-checkpoint.js.map +1 -0
  336. package/dist/domains/comet-native/native-protected-file.d.ts +113 -0
  337. package/dist/domains/comet-native/native-protected-file.d.ts.map +1 -0
  338. package/dist/domains/comet-native/native-protected-file.js +509 -0
  339. package/dist/domains/comet-native/native-protected-file.js.map +1 -0
  340. package/dist/domains/comet-native/native-redaction.d.ts +2 -0
  341. package/dist/domains/comet-native/native-redaction.d.ts.map +1 -0
  342. package/dist/domains/comet-native/native-redaction.js +18 -0
  343. package/dist/domains/comet-native/native-redaction.js.map +1 -0
  344. package/dist/domains/comet-native/native-repair-integration.d.ts +42 -0
  345. package/dist/domains/comet-native/native-repair-integration.d.ts.map +1 -0
  346. package/dist/domains/comet-native/native-repair-integration.js +184 -0
  347. package/dist/domains/comet-native/native-repair-integration.js.map +1 -0
  348. package/dist/domains/comet-native/native-repair-runtime.d.ts +73 -0
  349. package/dist/domains/comet-native/native-repair-runtime.d.ts.map +1 -0
  350. package/dist/domains/comet-native/native-repair-runtime.js +509 -0
  351. package/dist/domains/comet-native/native-repair-runtime.js.map +1 -0
  352. package/dist/domains/comet-native/native-repair-stagnation.d.ts +85 -0
  353. package/dist/domains/comet-native/native-repair-stagnation.d.ts.map +1 -0
  354. package/dist/domains/comet-native/native-repair-stagnation.js +256 -0
  355. package/dist/domains/comet-native/native-repair-stagnation.js.map +1 -0
  356. package/dist/domains/comet-native/native-resume-view.d.ts +14 -0
  357. package/dist/domains/comet-native/native-resume-view.d.ts.map +1 -0
  358. package/dist/domains/comet-native/native-resume-view.js +105 -0
  359. package/dist/domains/comet-native/native-resume-view.js.map +1 -0
  360. package/dist/domains/comet-native/native-revision.d.ts +20 -0
  361. package/dist/domains/comet-native/native-revision.d.ts.map +1 -0
  362. package/dist/domains/comet-native/native-revision.js +32 -0
  363. package/dist/domains/comet-native/native-revision.js.map +1 -0
  364. package/dist/domains/comet-native/native-root-move.d.ts +20 -0
  365. package/dist/domains/comet-native/native-root-move.d.ts.map +1 -0
  366. package/dist/domains/comet-native/native-root-move.js +812 -0
  367. package/dist/domains/comet-native/native-root-move.js.map +1 -0
  368. package/dist/domains/comet-native/native-run-consistency.d.ts +3 -0
  369. package/dist/domains/comet-native/native-run-consistency.d.ts.map +1 -0
  370. package/dist/domains/comet-native/native-run-consistency.js +136 -0
  371. package/dist/domains/comet-native/native-run-consistency.js.map +1 -0
  372. package/dist/domains/comet-native/native-run-store.d.ts +41 -0
  373. package/dist/domains/comet-native/native-run-store.d.ts.map +1 -0
  374. package/dist/domains/comet-native/native-run-store.js +451 -0
  375. package/dist/domains/comet-native/native-run-store.js.map +1 -0
  376. package/dist/domains/comet-native/native-runtime-package.d.ts +16 -0
  377. package/dist/domains/comet-native/native-runtime-package.d.ts.map +1 -0
  378. package/dist/domains/comet-native/native-runtime-package.js +72 -0
  379. package/dist/domains/comet-native/native-runtime-package.js.map +1 -0
  380. package/dist/domains/comet-native/native-schema-migration.d.ts +11 -0
  381. package/dist/domains/comet-native/native-schema-migration.d.ts.map +1 -0
  382. package/dist/domains/comet-native/native-schema-migration.js +899 -0
  383. package/dist/domains/comet-native/native-schema-migration.js.map +1 -0
  384. package/dist/domains/comet-native/native-selection.d.ts +12 -0
  385. package/dist/domains/comet-native/native-selection.d.ts.map +1 -0
  386. package/dist/domains/comet-native/native-selection.js +52 -0
  387. package/dist/domains/comet-native/native-selection.js.map +1 -0
  388. package/dist/domains/comet-native/native-sensitive-paths.d.ts +7 -0
  389. package/dist/domains/comet-native/native-sensitive-paths.d.ts.map +1 -0
  390. package/dist/domains/comet-native/native-sensitive-paths.js +69 -0
  391. package/dist/domains/comet-native/native-sensitive-paths.js.map +1 -0
  392. package/dist/domains/comet-native/native-snapshot.d.ts +74 -0
  393. package/dist/domains/comet-native/native-snapshot.d.ts.map +1 -0
  394. package/dist/domains/comet-native/native-snapshot.js +2308 -0
  395. package/dist/domains/comet-native/native-snapshot.js.map +1 -0
  396. package/dist/domains/comet-native/native-specs.d.ts +12 -0
  397. package/dist/domains/comet-native/native-specs.d.ts.map +1 -0
  398. package/dist/domains/comet-native/native-specs.js +270 -0
  399. package/dist/domains/comet-native/native-specs.js.map +1 -0
  400. package/dist/domains/comet-native/native-trajectory-limits.d.ts +7 -0
  401. package/dist/domains/comet-native/native-trajectory-limits.d.ts.map +1 -0
  402. package/dist/domains/comet-native/native-trajectory-limits.js +13 -0
  403. package/dist/domains/comet-native/native-trajectory-limits.js.map +1 -0
  404. package/dist/domains/comet-native/native-trajectory-recovery.d.ts +37 -0
  405. package/dist/domains/comet-native/native-trajectory-recovery.d.ts.map +1 -0
  406. package/dist/domains/comet-native/native-trajectory-recovery.js +133 -0
  407. package/dist/domains/comet-native/native-trajectory-recovery.js.map +1 -0
  408. package/dist/domains/comet-native/native-trajectory.d.ts +16 -0
  409. package/dist/domains/comet-native/native-trajectory.d.ts.map +1 -0
  410. package/dist/domains/comet-native/native-trajectory.js +27 -0
  411. package/dist/domains/comet-native/native-trajectory.js.map +1 -0
  412. package/dist/domains/comet-native/native-transaction.d.ts +45 -0
  413. package/dist/domains/comet-native/native-transaction.d.ts.map +1 -0
  414. package/dist/domains/comet-native/native-transaction.js +846 -0
  415. package/dist/domains/comet-native/native-transaction.js.map +1 -0
  416. package/dist/domains/comet-native/native-transition-evidence.d.ts +4 -0
  417. package/dist/domains/comet-native/native-transition-evidence.d.ts.map +1 -0
  418. package/dist/domains/comet-native/native-transition-evidence.js +20 -0
  419. package/dist/domains/comet-native/native-transition-evidence.js.map +1 -0
  420. package/dist/domains/comet-native/native-transition-journal.d.ts +30 -0
  421. package/dist/domains/comet-native/native-transition-journal.d.ts.map +1 -0
  422. package/dist/domains/comet-native/native-transition-journal.js +819 -0
  423. package/dist/domains/comet-native/native-transition-journal.js.map +1 -0
  424. package/dist/domains/comet-native/native-transitions.d.ts +13 -0
  425. package/dist/domains/comet-native/native-transitions.d.ts.map +1 -0
  426. package/dist/domains/comet-native/native-transitions.js +632 -0
  427. package/dist/domains/comet-native/native-transitions.js.map +1 -0
  428. package/dist/domains/comet-native/native-types.d.ts +547 -0
  429. package/dist/domains/comet-native/native-types.d.ts.map +1 -0
  430. package/dist/domains/comet-native/native-types.js +8 -0
  431. package/dist/domains/comet-native/native-types.js.map +1 -0
  432. package/dist/domains/comet-native/native-verification-evidence.d.ts +86 -0
  433. package/dist/domains/comet-native/native-verification-evidence.d.ts.map +1 -0
  434. package/dist/domains/comet-native/native-verification-evidence.js +480 -0
  435. package/dist/domains/comet-native/native-verification-evidence.js.map +1 -0
  436. package/dist/domains/comet-native/native-verification-runtime.d.ts +58 -0
  437. package/dist/domains/comet-native/native-verification-runtime.d.ts.map +1 -0
  438. package/dist/domains/comet-native/native-verification-runtime.js +321 -0
  439. package/dist/domains/comet-native/native-verification-runtime.js.map +1 -0
  440. package/dist/domains/comet-native/native-verification-scope.d.ts +117 -0
  441. package/dist/domains/comet-native/native-verification-scope.d.ts.map +1 -0
  442. package/dist/domains/comet-native/native-verification-scope.js +1040 -0
  443. package/dist/domains/comet-native/native-verification-scope.js.map +1 -0
  444. package/dist/domains/comet-native/native-workspace.d.ts +46 -0
  445. package/dist/domains/comet-native/native-workspace.d.ts.map +1 -0
  446. package/dist/domains/comet-native/native-workspace.js +276 -0
  447. package/dist/domains/comet-native/native-workspace.js.map +1 -0
  448. package/dist/domains/dashboard/collector.d.ts.map +1 -1
  449. package/dist/domains/dashboard/collector.js +9 -1
  450. package/dist/domains/dashboard/collector.js.map +1 -1
  451. package/dist/domains/dashboard/native-adapter.d.ts +157 -0
  452. package/dist/domains/dashboard/native-adapter.d.ts.map +1 -0
  453. package/dist/domains/dashboard/native-adapter.js +302 -0
  454. package/dist/domains/dashboard/native-adapter.js.map +1 -0
  455. package/dist/domains/dashboard/native-collector.d.ts +6 -0
  456. package/dist/domains/dashboard/native-collector.d.ts.map +1 -0
  457. package/dist/domains/dashboard/native-collector.js +285 -0
  458. package/dist/domains/dashboard/native-collector.js.map +1 -0
  459. package/dist/domains/dashboard/types.d.ts +5 -0
  460. package/dist/domains/dashboard/types.d.ts.map +1 -1
  461. package/dist/domains/dashboard/web/assets/{arc-TGVUG2WN.js → arc-CxdiLJ50.js} +1 -1
  462. package/dist/domains/dashboard/web/assets/{architectureDiagram-3BPJPVTR-ASHmiHoP.js → architectureDiagram-3BPJPVTR-D5YCQu4e.js} +1 -1
  463. package/dist/domains/dashboard/web/assets/{blockDiagram-GPEHLZMM-CwASxBKe.js → blockDiagram-GPEHLZMM-8NfdCOQ8.js} +1 -1
  464. package/dist/domains/dashboard/web/assets/{c4Diagram-AAUBKEIU-BU8z_WNk.js → c4Diagram-AAUBKEIU-B3cFnNT7.js} +1 -1
  465. package/dist/domains/dashboard/web/assets/channel-B6AFly29.js +1 -0
  466. package/dist/domains/dashboard/web/assets/{chunk-2J33WTMH-CBGlUx4_.js → chunk-2J33WTMH-CBNfW-Dr.js} +1 -1
  467. package/dist/domains/dashboard/web/assets/{chunk-4BX2VUAB-CS-iGcFz.js → chunk-4BX2VUAB-vWyemRBr.js} +1 -1
  468. package/dist/domains/dashboard/web/assets/{chunk-55IACEB6-BUtCVJat.js → chunk-55IACEB6-H6haOo2C.js} +1 -1
  469. package/dist/domains/dashboard/web/assets/{chunk-727SXJPM-C94tj_pf.js → chunk-727SXJPM-D02UjGND.js} +1 -1
  470. package/dist/domains/dashboard/web/assets/{chunk-AQP2D5EJ-BFOKcpdG.js → chunk-AQP2D5EJ-wKsbOw_T.js} +1 -1
  471. package/dist/domains/dashboard/web/assets/{chunk-FMBD7UC4-Dmx8B-st.js → chunk-FMBD7UC4-eYFEZimP.js} +1 -1
  472. package/dist/domains/dashboard/web/assets/{chunk-ND2GUHAM-DYV00CNn.js → chunk-ND2GUHAM-fMaIDDI2.js} +1 -1
  473. package/dist/domains/dashboard/web/assets/{chunk-QZHKN3VN-DMJJyQnw.js → chunk-QZHKN3VN-C9rhF6Hm.js} +1 -1
  474. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-BcnrxOTt.js +1 -0
  475. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-BcnrxOTt.js +1 -0
  476. package/dist/domains/dashboard/web/assets/{cose-bilkent-S5V4N54A-P4nE2rea.js → cose-bilkent-S5V4N54A-CbaShPub.js} +1 -1
  477. package/dist/domains/dashboard/web/assets/{cynefin-VYW2F7L2-C-R1HXDv.js → cynefin-VYW2F7L2-DN4emAQv.js} +1 -1
  478. package/dist/domains/dashboard/web/assets/{dagre-BM42HDAG-BH8d-C9z.js → dagre-BM42HDAG-BpSzbk_V.js} +1 -1
  479. package/dist/domains/dashboard/web/assets/demo-BuVau32v.js +25 -0
  480. package/dist/domains/dashboard/web/assets/{diagram-2AECGRRQ-DpXTgQIH.js → diagram-2AECGRRQ-CfXwGGpQ.js} +1 -1
  481. package/dist/domains/dashboard/web/assets/{diagram-5GNKFQAL-DSiFJzSw.js → diagram-5GNKFQAL-DMp0Zmot.js} +1 -1
  482. package/dist/domains/dashboard/web/assets/{diagram-KO2AKTUF-DULMkben.js → diagram-KO2AKTUF-C7ZvofsM.js} +1 -1
  483. package/dist/domains/dashboard/web/assets/{diagram-LMA3HP47-Pi8m_NO9.js → diagram-LMA3HP47-BjmxFnap.js} +1 -1
  484. package/dist/domains/dashboard/web/assets/{diagram-OG6HWLK6-BSe6bCWm.js → diagram-OG6HWLK6-DFBG1Iqy.js} +1 -1
  485. package/dist/domains/dashboard/web/assets/{erDiagram-TEJ5UH35-zb-FEcbq.js → erDiagram-TEJ5UH35-MpNT7dzt.js} +1 -1
  486. package/dist/domains/dashboard/web/assets/{flowDiagram-I6XJVG4X-Dr-Gk0z2.js → flowDiagram-I6XJVG4X-_1wAR6c1.js} +1 -1
  487. package/dist/domains/dashboard/web/assets/{ganttDiagram-6RSMTGT7-qs6Zb2A6.js → ganttDiagram-6RSMTGT7-DJKjDeWl.js} +1 -1
  488. package/dist/domains/dashboard/web/assets/{gitGraphDiagram-PVQCEYII-BQ314orT.js → gitGraphDiagram-PVQCEYII-BL7yUEn-.js} +1 -1
  489. package/dist/domains/dashboard/web/assets/index-CjE9mHGb.js +24 -0
  490. package/dist/domains/dashboard/web/assets/index-D-AGxvI4.css +1 -0
  491. package/dist/domains/dashboard/web/assets/{infoDiagram-5YYISTIA-O0bQp98A.js → infoDiagram-5YYISTIA-Bt5fqrOd.js} +1 -1
  492. package/dist/domains/dashboard/web/assets/{ishikawaDiagram-YF4QCWOH-BPC7wbKh.js → ishikawaDiagram-YF4QCWOH-COCMcjBM.js} +1 -1
  493. package/dist/domains/dashboard/web/assets/{journeyDiagram-JHISSGLW-ohViOd4b.js → journeyDiagram-JHISSGLW-DGcpcWny.js} +1 -1
  494. package/dist/domains/dashboard/web/assets/{kanban-definition-UN3LZRKU-CHleNdbG.js → kanban-definition-UN3LZRKU-QSBNsWMP.js} +1 -1
  495. package/dist/domains/dashboard/web/assets/{linear-CyqiW--Q.js → linear-9uyeeBZf.js} +1 -1
  496. package/dist/domains/dashboard/web/assets/{mermaid.core-qS9XvtaK.js → mermaid.core-CkNdB471.js} +4 -4
  497. package/dist/domains/dashboard/web/assets/{mindmap-definition-RKZ34NQL-oaGkqO9l.js → mindmap-definition-RKZ34NQL-CiNxI0gP.js} +1 -1
  498. package/dist/domains/dashboard/web/assets/{pieDiagram-4H26LBE5-CPcB-AFh.js → pieDiagram-4H26LBE5-BLJ6QnRO.js} +1 -1
  499. package/dist/domains/dashboard/web/assets/{quadrantDiagram-W4KKPZXB-LFy52Qtj.js → quadrantDiagram-W4KKPZXB-CflW-eFH.js} +1 -1
  500. package/dist/domains/dashboard/web/assets/{requirementDiagram-4Y6WPE33-BdjeaYP_.js → requirementDiagram-4Y6WPE33-B9HLmRWH.js} +1 -1
  501. package/dist/domains/dashboard/web/assets/{sankeyDiagram-5OEKKPKP-DDJ4styL.js → sankeyDiagram-5OEKKPKP-6xnco5k5.js} +1 -1
  502. package/dist/domains/dashboard/web/assets/{sequenceDiagram-3UESZ5HK-BL5bFNoz.js → sequenceDiagram-3UESZ5HK-Dp1rujNZ.js} +1 -1
  503. package/dist/domains/dashboard/web/assets/{stateDiagram-AJRCARHV-BNUfikui.js → stateDiagram-AJRCARHV-C1Xc90ek.js} +1 -1
  504. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-p-qmzXyE.js +1 -0
  505. package/dist/domains/dashboard/web/assets/{timeline-definition-PNZ67QCA--ps2uu6L.js → timeline-definition-PNZ67QCA-g9s-m5Z4.js} +1 -1
  506. package/dist/domains/dashboard/web/assets/{vennDiagram-CIIHVFJN-C2q8q26c.js → vennDiagram-CIIHVFJN-rkEyhyCc.js} +1 -1
  507. package/dist/domains/dashboard/web/assets/{wardleyDiagram-YWT4CUSO-BUH9gXqd.js → wardleyDiagram-YWT4CUSO-CJLrWGXc.js} +1 -1
  508. package/dist/domains/dashboard/web/assets/{xychartDiagram-2RQKCTM6-B-DielEy.js → xychartDiagram-2RQKCTM6-BxJvPNqo.js} +1 -1
  509. package/dist/domains/dashboard/web/index.html +2 -2
  510. package/dist/domains/engine/storage-layout.d.ts +14 -0
  511. package/dist/domains/engine/storage-layout.d.ts.map +1 -0
  512. package/dist/domains/engine/storage-layout.js +32 -0
  513. package/dist/domains/engine/storage-layout.js.map +1 -0
  514. package/dist/domains/engine/storage-run.d.ts +9 -0
  515. package/dist/domains/engine/storage-run.d.ts.map +1 -0
  516. package/dist/domains/engine/storage-run.js +116 -0
  517. package/dist/domains/engine/storage-run.js.map +1 -0
  518. package/dist/domains/factory/package.d.ts.map +1 -1
  519. package/dist/domains/factory/package.js +5 -3
  520. package/dist/domains/factory/package.js.map +1 -1
  521. package/dist/domains/integrations/openspec.d.ts.map +1 -1
  522. package/dist/domains/integrations/openspec.js +8 -6
  523. package/dist/domains/integrations/openspec.js.map +1 -1
  524. package/dist/domains/skill/platform-inspect.d.ts +6 -2
  525. package/dist/domains/skill/platform-inspect.d.ts.map +1 -1
  526. package/dist/domains/skill/platform-inspect.js +52 -8
  527. package/dist/domains/skill/platform-inspect.js.map +1 -1
  528. package/dist/domains/skill/platform-install.d.ts +18 -7
  529. package/dist/domains/skill/platform-install.d.ts.map +1 -1
  530. package/dist/domains/skill/platform-install.js +338 -71
  531. package/dist/domains/skill/platform-install.js.map +1 -1
  532. package/dist/domains/skill/project-instructions.d.ts.map +1 -1
  533. package/dist/domains/skill/project-instructions.js +12 -6
  534. package/dist/domains/skill/project-instructions.js.map +1 -1
  535. package/dist/domains/skill/uninstall.d.ts.map +1 -1
  536. package/dist/domains/skill/uninstall.js +15 -3
  537. package/dist/domains/skill/uninstall.js.map +1 -1
  538. package/dist/domains/workflow-contract/builtins.d.ts +6 -0
  539. package/dist/domains/workflow-contract/builtins.d.ts.map +1 -1
  540. package/dist/domains/workflow-contract/builtins.js +137 -0
  541. package/dist/domains/workflow-contract/builtins.js.map +1 -1
  542. package/dist/domains/workflow-contract/index.d.ts +3 -1
  543. package/dist/domains/workflow-contract/index.d.ts.map +1 -1
  544. package/dist/domains/workflow-contract/index.js +2 -1
  545. package/dist/domains/workflow-contract/index.js.map +1 -1
  546. package/dist/domains/workflow-contract/normalize.d.ts.map +1 -1
  547. package/dist/domains/workflow-contract/normalize.js +28 -10
  548. package/dist/domains/workflow-contract/normalize.js.map +1 -1
  549. package/dist/domains/workflow-contract/project-config.d.ts +7 -0
  550. package/dist/domains/workflow-contract/project-config.d.ts.map +1 -0
  551. package/dist/domains/workflow-contract/project-config.js +110 -0
  552. package/dist/domains/workflow-contract/project-config.js.map +1 -0
  553. package/dist/domains/workflow-contract/types.d.ts +4 -2
  554. package/dist/domains/workflow-contract/types.d.ts.map +1 -1
  555. package/dist/domains/workflow-contract/validation.d.ts.map +1 -1
  556. package/dist/domains/workflow-contract/validation.js +14 -5
  557. package/dist/domains/workflow-contract/validation.js.map +1 -1
  558. package/dist/platform/install/detect.d.ts +3 -1
  559. package/dist/platform/install/detect.d.ts.map +1 -1
  560. package/dist/platform/install/detect.js +4 -1
  561. package/dist/platform/install/detect.js.map +1 -1
  562. package/dist/platform/install/project-registry.js +2 -2
  563. package/dist/platform/install/project-registry.js.map +1 -1
  564. package/dist/platform/paths/repository-layout.d.ts +16 -0
  565. package/dist/platform/paths/repository-layout.d.ts.map +1 -1
  566. package/dist/platform/paths/repository-layout.js.map +1 -1
  567. package/eval/local/README.md +50 -0
  568. package/eval/local/scripts/compare_baselines.py +127 -1
  569. package/eval/local/scripts/regression_check.py +3 -4
  570. package/eval/local/tasks/comet-native-clarification/environment/Dockerfile +27 -0
  571. package/eval/local/tasks/comet-native-clarification/environment/test_wordcount.py +25 -0
  572. package/eval/local/tasks/comet-native-clarification/environment/wordcount.py +36 -0
  573. package/eval/local/tasks/comet-native-clarification/instruction.md +7 -0
  574. package/eval/local/tasks/comet-native-clarification/task.toml +40 -0
  575. package/eval/local/tasks/comet-native-clarification/validation/test_native_clarification.py +193 -0
  576. package/eval/local/tasks/comet-native-clarification-modes/environment/Dockerfile +27 -0
  577. package/eval/local/tasks/comet-native-clarification-modes/environment/test_wordcount.py +25 -0
  578. package/eval/local/tasks/comet-native-clarification-modes/environment/wordcount.py +36 -0
  579. package/eval/local/tasks/comet-native-clarification-modes/instruction.md +13 -0
  580. package/eval/local/tasks/comet-native-clarification-modes/task.toml +39 -0
  581. package/eval/local/tasks/comet-native-clarification-modes/validation/test_native_clarification_modes.py +235 -0
  582. package/eval/local/tasks/comet-native-interrupted-transition/environment/.comet/config.yaml +6 -0
  583. package/eval/local/tasks/comet-native-interrupted-transition/environment/Dockerfile +28 -0
  584. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/brief.md +17 -0
  585. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/comet-state.yaml +12 -0
  586. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/runtime/transition.json +69 -0
  587. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/specs/character-counting/spec.md +3 -0
  588. package/eval/local/tasks/comet-native-interrupted-transition/environment/test_wordcount.py +20 -0
  589. package/eval/local/tasks/comet-native-interrupted-transition/environment/wordcount.py +27 -0
  590. package/eval/local/tasks/comet-native-interrupted-transition/instruction.md +7 -0
  591. package/eval/local/tasks/comet-native-interrupted-transition/task.toml +35 -0
  592. package/eval/local/tasks/comet-native-interrupted-transition/validation/test_native_interrupted_transition.py +63 -0
  593. package/eval/local/tasks/comet-native-repository-fact/environment/Dockerfile +26 -0
  594. package/eval/local/tasks/comet-native-repository-fact/environment/PRODUCT_RULES.md +3 -0
  595. package/eval/local/tasks/comet-native-repository-fact/environment/test_wordcount.py +20 -0
  596. package/eval/local/tasks/comet-native-repository-fact/environment/wordcount.py +27 -0
  597. package/eval/local/tasks/comet-native-repository-fact/instruction.md +7 -0
  598. package/eval/local/tasks/comet-native-repository-fact/task.toml +35 -0
  599. package/eval/local/tasks/comet-native-repository-fact/validation/test_native_repository_fact.py +53 -0
  600. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/Dockerfile +27 -0
  601. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/test_wordcount.py +27 -0
  602. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/wordcount.py +36 -0
  603. package/eval/local/tasks/comet-native-wave-b-decision-resume/instruction.md +9 -0
  604. package/eval/local/tasks/comet-native-wave-b-decision-resume/task.toml +40 -0
  605. package/eval/local/tasks/comet-native-wave-b-decision-resume/validation/test_native_wave_b_decision_resume.py +208 -0
  606. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/Dockerfile +27 -0
  607. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/test_wordcount.py +27 -0
  608. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/wordcount.py +36 -0
  609. package/eval/local/tasks/comet-native-wave-c-verification-integrity/instruction.md +11 -0
  610. package/eval/local/tasks/comet-native-wave-c-verification-integrity/task.toml +36 -0
  611. package/eval/local/tasks/comet-native-wave-c-verification-integrity/validation/test_native_wave_c_verification_integrity.py +344 -0
  612. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/Dockerfile +27 -0
  613. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/test_wordcount.py +27 -0
  614. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/wordcount.py +36 -0
  615. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/instruction.md +11 -0
  616. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/task.toml +37 -0
  617. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/validation/test_native_wave_d_stagnation_stop.py +284 -0
  618. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/.include-trusted-native-runtime +1 -0
  619. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/Dockerfile +27 -0
  620. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/test_wordcount.py +27 -0
  621. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/wordcount.py +36 -0
  622. package/eval/local/tasks/comet-native-wave-e-parallel-safety/instruction.md +9 -0
  623. package/eval/local/tasks/comet-native-wave-e-parallel-safety/task.toml +37 -0
  624. package/eval/local/tasks/comet-native-wave-e-parallel-safety/validation/test_native_wave_e_parallel_safety.py +309 -0
  625. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/.include-current-comet-cli +1 -0
  626. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/Dockerfile +31 -0
  627. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/current-comet-package.json +18 -0
  628. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/current-comet.sh +14 -0
  629. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/test_wordcount.py +27 -0
  630. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/wordcount.py +36 -0
  631. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/instruction.md +7 -0
  632. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/task.toml +36 -0
  633. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/validation/test_native_wave_f_dashboard_readonly.py +469 -0
  634. package/eval/local/tasks/comet-native-workflow/environment/Dockerfile +27 -0
  635. package/eval/local/tasks/comet-native-workflow/environment/test_wordcount.py +25 -0
  636. package/eval/local/tasks/comet-native-workflow/environment/wordcount.py +36 -0
  637. package/eval/local/tasks/comet-native-workflow/instruction.md +14 -0
  638. package/eval/local/tasks/comet-native-workflow/task.toml +36 -0
  639. package/eval/local/tasks/comet-native-workflow/validation/test_native_workflow.py +149 -0
  640. package/eval/local/tasks/index.yaml +61 -0
  641. package/eval/local/tests/conftest.py +407 -22
  642. package/eval/local/tests/scaffold/test_aligned_comparison.py +1012 -0
  643. package/eval/local/tests/scaffold/test_conftest_helpers.py +187 -7
  644. package/eval/local/tests/scaffold/test_logging.py +135 -1
  645. package/eval/local/tests/scaffold/test_manifests.py +2 -0
  646. package/eval/local/tests/scaffold/test_native_aligned_eval.py +346 -0
  647. package/eval/local/tests/scaffold/test_native_wave_evaluations.py +1889 -0
  648. package/eval/local/tests/scaffold/test_profiles.py +33 -0
  649. package/eval/local/tests/scaffold/test_sample_quality.py +57 -0
  650. package/eval/local/tests/scaffold/test_tasks.py +377 -1
  651. package/eval/local/tests/scaffold/test_treatments.py +59 -13
  652. package/eval/local/tests/scaffold/test_utils.py +277 -4
  653. package/eval/local/tests/tasks/__init__.py +1 -0
  654. package/eval/local/tests/tasks/test_tasks.py +104 -78
  655. package/eval/local/tests/tasks/test_validation_scripts.py +37 -0
  656. package/eval/local/treatments/comet/comet_native_phase1.yaml +66 -0
  657. package/eval/scaffold/python/aligned_comparison.py +1631 -0
  658. package/eval/scaffold/python/generic_llm_judge.py +3 -1
  659. package/eval/scaffold/python/llm_judge.py +0 -3
  660. package/eval/scaffold/python/logging.py +115 -16
  661. package/eval/scaffold/python/manifests.py +2 -0
  662. package/eval/scaffold/python/native_eval.py +138 -0
  663. package/eval/scaffold/python/pass_at_k.py +0 -1
  664. package/eval/scaffold/python/report_outputs.py +226 -44
  665. package/eval/scaffold/python/sample_quality.py +45 -2
  666. package/eval/scaffold/python/tasks.py +11 -0
  667. package/eval/scaffold/python/utils.py +108 -20
  668. package/eval/scaffold/python/validation/__init__.py +15 -5
  669. package/eval/scaffold/python/validation/comet_workflow.py +10 -5
  670. package/eval/scaffold/python/validation/generic_rubric.py +1 -2
  671. package/eval/scaffold/python/validation/native_wave.py +2154 -0
  672. package/eval/scaffold/python/validation/native_workflow.py +252 -0
  673. package/eval/scaffold/python/validation/rubric.py +0 -2
  674. package/eval/scaffold/shell/completion-point.sh +18 -0
  675. package/eval/scaffold/shell/decision-point.sh +35 -0
  676. package/eval/scaffold/shell/docker.sh +150 -9
  677. package/eval/scaffold/shell/run-claude-loop.sh +57 -27
  678. package/package.json +19 -5
  679. package/dist/domains/dashboard/web/assets/channel-kp6Ng2JJ.js +0 -1
  680. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-yBDjgMY_.js +0 -1
  681. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-yBDjgMY_.js +0 -1
  682. package/dist/domains/dashboard/web/assets/demo-DQyfozbi.js +0 -1
  683. package/dist/domains/dashboard/web/assets/index-BLAfkNTu.css +0 -1
  684. package/dist/domains/dashboard/web/assets/index-DtLUOcAW.js +0 -24
  685. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-DGrsmWts.js +0 -1
  686. package/eval/.env.example +0 -52
  687. package/eval/langsmith/.env.example +0 -16
@@ -0,0 +1,20 @@
1
+ import subprocess
2
+ import sys
3
+
4
+
5
+ def run_cli(*args: str, input_text: str) -> str:
6
+ return subprocess.run(
7
+ [sys.executable, "wordcount.py", *args],
8
+ input=input_text,
9
+ capture_output=True,
10
+ text=True,
11
+ check=True,
12
+ ).stdout
13
+
14
+
15
+ def test_count_words():
16
+ assert "Words: 3" in run_cli(input_text="hello world foo")
17
+
18
+
19
+ def test_count_lines():
20
+ assert "Lines: 3" in run_cli("--lines", input_text="hello\nworld\nfoo")
@@ -0,0 +1,27 @@
1
+ """Simple word count CLI tool."""
2
+
3
+ import argparse
4
+ import sys
5
+
6
+
7
+ def count_words(text: str) -> int:
8
+ return len(text.split())
9
+
10
+
11
+ def count_lines(text: str) -> int:
12
+ return len(text.splitlines())
13
+
14
+
15
+ def main():
16
+ parser = argparse.ArgumentParser(description="Count words and lines in text")
17
+ parser.add_argument("file", nargs="?", help="Input file (reads stdin if omitted)")
18
+ parser.add_argument("--lines", action="store_true", help="Also count lines")
19
+ args = parser.parse_args()
20
+ text = open(args.file).read() if args.file else sys.stdin.read()
21
+ print(f"Words: {count_words(text)}")
22
+ if args.lines:
23
+ print(f"Lines: {count_lines(text)}")
24
+
25
+
26
+ if __name__ == "__main__":
27
+ main()
@@ -0,0 +1,7 @@
1
+ You are working on a Python project named `wordcount-cli`.
2
+
3
+ Begin by invoking the `/comet-native` Skill. Initialize Native under `docs/comet/`, create a change, and add a `--paragraphs` flag that prints `Paragraphs: N` while preserving existing word and line counts.
4
+
5
+ The exact paragraph-boundary rule is already documented somewhere in this repository. Investigate the repository and use that fact; do not ask the user to repeat repository facts or choose an implementation method. Write a detailed brief and a complete `paragraph-counting` target specification, implement focused tests, verify, and archive with implicit Shape approval.
6
+
7
+ Use only the Comet Native Skill and bundled runtime. Do not create OpenSpec, Classic, `.comet`, or external workflow artifacts.
@@ -0,0 +1,35 @@
1
+ [metadata]
2
+ name = "comet-native-repository-fact"
3
+ description = "Test that Native investigates a repository fact instead of asking the user"
4
+ difficulty = "hard"
5
+ category = "comet-native"
6
+ tags = ["comet-native", "repository-fact", "autonomy", "full-cycle"]
7
+ default_treatments = ["COMET_NATIVE_PHASE1"]
8
+
9
+ [template]
10
+ required = []
11
+
12
+ [environment]
13
+ description = "Python word-count workspace whose paragraph rule is documented in the repository."
14
+ dockerfile = "environment/Dockerfile"
15
+ timeout_sec = 900
16
+
17
+ [validation]
18
+ test_scripts = "test_native_repository_fact.py"
19
+ target_artifacts = ["docs/comet/archive", "docs/comet/specs/paragraph-counting/spec.md"]
20
+ timeout = 120
21
+
22
+ [evaluation]
23
+ profile = "generic"
24
+ required_skills = ["comet-native"]
25
+ expected_artifacts = [".comet/config.yaml", "docs/comet/archive", "docs/comet/specs/paragraph-counting/spec.md"]
26
+ require_skill_invocation = true
27
+ rubric_criteria = [
28
+ "Reads PRODUCT_RULES.md and does not ask the user to restate repository facts",
29
+ "Records the documented whitespace-only paragraph boundary without explicit user confirmation",
30
+ "Completes the self-contained Native workflow and archives real verification evidence",
31
+ ]
32
+
33
+ [interaction]
34
+ mode = "none"
35
+ max_turns = 1
@@ -0,0 +1,53 @@
1
+ """Validate repository-fact discovery and implicit Native completion."""
2
+
3
+ import json
4
+ import os
5
+ import subprocess
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ import yaml
10
+
11
+
12
+ WORKSPACE = Path("/workspace")
13
+ RESULTS_FILE = os.environ.get("BENCH_TEST_RESULTS", "_test_results.json")
14
+
15
+
16
+ def check_behavior():
17
+ subprocess.run([sys.executable, "-m", "pytest", "-q"], cwd=WORKSPACE, check=True)
18
+ result = subprocess.run(
19
+ [sys.executable, "wordcount.py", "--paragraphs"],
20
+ cwd=WORKSPACE,
21
+ input="First block\ncontinues\n\n \nSecond block",
22
+ capture_output=True,
23
+ text=True,
24
+ check=True,
25
+ )
26
+ assert "Paragraphs: 2" in result.stdout
27
+
28
+
29
+ def check_native():
30
+ archives = sorted((WORKSPACE / "docs/comet/archive").glob("*-*"))
31
+ assert archives
32
+ state = yaml.safe_load((archives[-1] / "comet-state.yaml").read_text(encoding="utf-8"))
33
+ assert state["approval"] == "implicit"
34
+ brief = (archives[-1] / "brief.md").read_text(encoding="utf-8").lower()
35
+ assert "whitespace" in brief or "blank line" in brief
36
+ assert (WORKSPACE / "docs/comet/specs/paragraph-counting/spec.md").is_file()
37
+
38
+
39
+ def main():
40
+ failed = []
41
+ for name, check in (("paragraph_behavior", check_behavior), ("native_artifacts", check_native)):
42
+ try:
43
+ check()
44
+ except Exception as error:
45
+ failed.append(f"{name}: {error}")
46
+ output = {"passed": [] if failed else ["paragraph_behavior", "native_artifacts"], "failed": failed}
47
+ (WORKSPACE / RESULTS_FILE).write_text(json.dumps(output, indent=2), encoding="utf-8")
48
+ print(json.dumps(output))
49
+ return 1 if failed else 0
50
+
51
+
52
+ if __name__ == "__main__":
53
+ raise SystemExit(main())
@@ -0,0 +1,27 @@
1
+ FROM python:3.12-slim
2
+
3
+ WORKDIR /workspace
4
+
5
+ RUN apt-get update && apt-get install -y --no-install-recommends \
6
+ git nodejs npm ca-certificates && \
7
+ rm -rf /var/lib/apt/lists/*
8
+
9
+ RUN npm config set registry https://registry.npmmirror.com && \
10
+ npm install -g @anthropic-ai/claude-code@latest && \
11
+ npm config delete registry
12
+
13
+ RUN pip install --no-cache-dir pyyaml pytest
14
+
15
+ COPY wordcount.py /workspace/wordcount.py
16
+ COPY test_wordcount.py /workspace/test_wordcount.py
17
+
18
+ RUN useradd --create-home --shell /bin/bash agent && \
19
+ chown -R agent:agent /workspace
20
+ USER agent
21
+ ENV HOME=/home/agent
22
+ ENV PYTHONPATH=/workspace
23
+ RUN git config --global user.email "agent@eval.local" && \
24
+ git config --global user.name "Comet Native Eval Agent" && \
25
+ git config --global init.defaultBranch master
26
+
27
+ CMD ["bash"]
@@ -0,0 +1,27 @@
1
+ """Baseline tests for the word-count CLI."""
2
+
3
+ import subprocess
4
+ import sys
5
+ from pathlib import Path
6
+
7
+
8
+ def run_cli(*args: str, input_text: str) -> str:
9
+ result = subprocess.run(
10
+ [sys.executable, "wordcount.py", *args],
11
+ input=input_text,
12
+ capture_output=True,
13
+ text=True,
14
+ check=True,
15
+ cwd=Path(__file__).parent,
16
+ )
17
+ return result.stdout
18
+
19
+
20
+ def test_count_words():
21
+ assert "Words: 3" in run_cli(input_text="hello world foo")
22
+
23
+
24
+ def test_count_lines():
25
+ output = run_cli("--lines", input_text="hello\nworld\nfoo")
26
+ assert "Words: 3" in output
27
+ assert "Lines: 3" in output
@@ -0,0 +1,36 @@
1
+ """Simple word count CLI tool."""
2
+
3
+ import argparse
4
+ import sys
5
+
6
+
7
+ def count_words(text: str) -> int:
8
+ """Count words in text."""
9
+ return len(text.split())
10
+
11
+
12
+ def count_lines(text: str) -> int:
13
+ """Count lines in text."""
14
+ return len(text.splitlines())
15
+
16
+
17
+ def main():
18
+ parser = argparse.ArgumentParser(description="Count words and lines in text")
19
+ parser.add_argument("file", nargs="?", help="Input file (reads stdin if omitted)")
20
+ parser.add_argument("--lines", action="store_true", help="Also count lines")
21
+ parser.add_argument("--words", action="store_true", default=True, help="Count words (default)")
22
+ args = parser.parse_args()
23
+
24
+ if args.file:
25
+ with open(args.file) as source:
26
+ text = source.read()
27
+ else:
28
+ text = sys.stdin.read()
29
+
30
+ print(f"Words: {count_words(text)}")
31
+ if args.lines:
32
+ print(f"Lines: {count_lines(text)}")
33
+
34
+
35
+ if __name__ == "__main__":
36
+ main()
@@ -0,0 +1,9 @@
1
+ You are working on a Python project named `wordcount-cli`.
2
+
3
+ Begin by invoking the `/comet-native` Skill. Initialize Native under `docs/comet/`, create one change named `add-unique-counting`, and add a `--unique-words` flag that prints `Unique words: N` while preserving existing word and line behavior. Here, unique means the number of distinct normalized word values, not the number of words that occur exactly once.
4
+
5
+ Follow Native's Shape requirements before Build. Do not ask for repository facts or implementation choices.
6
+
7
+ If the user supplies a product decision, record every part of that answer in both the brief and the complete target specification for capability `unique-word-counting`, use Native's explicit confirmation path, and transition to Build. Then end that turn with exactly `COMET_NATIVE_COLD_RESUME_READY` without implementing the feature. The harness will start a new session containing only a continuation request. In that fresh session, re-invoke `/comet-native` before doing any work, then recover the same change from Native state and artifacts on disk. Before any implementation or transition, redirect stdout directly from the named runtime status command to `.cache/comet-native-eval/resume-status.json` exactly once; this is an immutable cold-resume snapshot, so never overwrite or recreate it later, including after Archive. Then implement focused tests and verify. Before invoking either Archive command, create `.cache/comet-native-eval/`. The first Archive dry-run invocation must itself redirect stdout to `.cache/comet-native-eval/archive-preview.json`; a dry-run displayed only in the terminal is invalid and must not be committed. The saved object must be the runtime's complete top-level JSON envelope retaining `command`, `exitCode`, and `data`, not only the preflight data object. Read the preflight hash from that envelope's `data.preflightHash`. The first commit invocation with `--expect-preflight` must itself redirect stdout to `.cache/comet-native-eval/archive-commit.json`. Do not rely on terminal output as saved evidence and do not reconstruct either file after Archive. Before reporting completion, verify all three files exist and contain the runtime's exact complete JSON envelopes.
8
+
9
+ Do not fabricate, paraphrase, or hand-author runtime JSON evidence. Use only the Comet Native Skill and its bundled runtime; do not create OpenSpec, Classic, `.comet`, or external workflow artifacts.
@@ -0,0 +1,40 @@
1
+ [metadata]
2
+ name = "comet-native-wave-b-decision-resume"
3
+ description = "Test one hidden product decision and a context-cleared Native resume from disk"
4
+ difficulty = "hard"
5
+ category = "comet-native"
6
+ tags = ["comet-native", "decision", "cold-resume", "multi-turn", "wave-b"]
7
+ default_treatments = ["COMET_NATIVE_PHASE1"]
8
+
9
+ [template]
10
+ required = []
11
+
12
+ [environment]
13
+ description = "Python word-count workspace with only the self-contained Comet Native Skill available."
14
+ dockerfile = "environment/Dockerfile"
15
+ timeout_sec = 900
16
+
17
+ [validation]
18
+ test_scripts = "test_native_wave_b_decision_resume.py"
19
+ target_artifacts = [".cache/comet-native-eval/resume-status.json", ".cache/comet-native-eval/archive-preview.json", ".cache/comet-native-eval/archive-commit.json", "docs/comet/archive", "docs/comet/specs/unique-word-counting/spec.md"]
20
+ timeout = 120
21
+
22
+ [evaluation]
23
+ profile = "generic"
24
+ required_skills = ["comet-native"]
25
+ expected_artifacts = [".cache/comet-native-eval/resume-status.json", ".cache/comet-native-eval/archive-preview.json", ".cache/comet-native-eval/archive-commit.json", "docs/comet/archive", "docs/comet/specs/unique-word-counting/spec.md"]
26
+ require_skill_invocation = true
27
+ rubric_criteria = [
28
+ "Surfaces exactly one user-visible token-normalization decision before Build",
29
+ "Records the deterministic answer in the brief and complete target specification",
30
+ "Resumes the same change from disk after context is cleared instead of relying on chat memory",
31
+ "Implements, verifies, and commits the exact ready Archive preflight with real evidence",
32
+ ]
33
+
34
+ [interaction]
35
+ mode = "auto_user"
36
+ max_turns = 4
37
+ decision_patterns = ["normalization", "punctuation", "apostrophe", "unique word"]
38
+ decision_reply = "Treat words case-insensitively, strip surrounding punctuation, and preserve internal apostrophes."
39
+ continue_prompt = "This is a context-cleared continuation. First invoke `/comet-native` so its recovery contract is loaded. After the Skill loads, the first Bash command, before any Read, Edit, test, or transition, must create .cache/comet-native-eval/ and invoke the bundled runtime command `status add-unique-counting --json`, redirecting its stdout directly to .cache/comet-native-eval/resume-status.json. Confirm that exact envelope names add-unique-counting in Build, and write it exactly once. That file is the immutable cold-resume snapshot: never overwrite or recreate it later, including after Archive. Then re-read the confirmed Native artifacts from disk and continue the same change through Verify and Archive. The first archive dry-run command must include --dry-run --json and redirect stdout directly to .cache/comet-native-eval/archive-preview.json; read data.preflightHash from that exact envelope. The first commit command must include --expect-preflight with that hash and --json, and redirect stdout directly to .cache/comet-native-eval/archive-commit.json. Do not reconstruct either archive envelope after Archive. Verify all three runtime envelopes exist before reporting completion."
40
+ fresh_resume_marker = "COMET_NATIVE_COLD_RESUME_READY"
@@ -0,0 +1,208 @@
1
+ """Validate a confirmed hidden decision and disk-backed Native resume."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import re
7
+ from pathlib import Path
8
+
9
+ import yaml
10
+
11
+ from scaffold.python.validation.native_wave import (
12
+ active_changes,
13
+ archive_changes,
14
+ check_archive_transaction,
15
+ check_cli_feature,
16
+ check_native_isolation,
17
+ check_runtime_envelopes,
18
+ failed,
19
+ parse_runtime_envelope,
20
+ passed,
21
+ write_results,
22
+ )
23
+
24
+
25
+ WORKSPACE = Path("/workspace")
26
+ EVIDENCE = Path(".cache/comet-native-eval")
27
+
28
+
29
+ def _interaction() -> dict:
30
+ path = WORKSPACE / "_test_context.json"
31
+ if not path.is_file():
32
+ return {}
33
+ return json.loads(path.read_text(encoding="utf-8")).get("interaction") or {}
34
+
35
+
36
+ def check_decision_and_resume() -> dict[str, str]:
37
+ check = "decision_and_resume"
38
+ active = active_changes(WORKSPACE)
39
+ archives = archive_changes(WORKSPACE)
40
+ if active:
41
+ return failed(check, f"Expected no active change after Archive, found {len(active)}")
42
+ if len(archives) != 1:
43
+ return failed(check, f"Expected exactly one archive, found {len(archives)}")
44
+
45
+ archived = archives[0]
46
+ state_file = archived / "comet-state.yaml"
47
+ if not state_file.is_file():
48
+ return failed(check, "Archived comet-state.yaml is missing")
49
+ try:
50
+ state = yaml.safe_load(state_file.read_text(encoding="utf-8")) or {}
51
+ except (OSError, yaml.YAMLError) as error:
52
+ return failed(check, f"Archived comet-state.yaml is invalid: {error}")
53
+ expected_state = {
54
+ "phase": "archive",
55
+ "approval": "confirmed",
56
+ "archived": True,
57
+ "verification_result": "pass",
58
+ }
59
+ mismatches = {
60
+ key: (expected, state.get(key))
61
+ for key, expected in expected_state.items()
62
+ if state.get(key) != expected
63
+ }
64
+ if mismatches:
65
+ return failed(check, f"Confirmed terminal state is incomplete: {mismatches}")
66
+
67
+ canonical = WORKSPACE / "docs/comet/specs/unique-word-counting/spec.md"
68
+ decision_files = [
69
+ archived / "brief.md",
70
+ archived / "specs/unique-word-counting/spec.md",
71
+ canonical,
72
+ ]
73
+ for path in decision_files:
74
+ if not path.is_file():
75
+ return failed(check, f"Decision artifact is missing: {path}")
76
+ text = path.read_text(encoding="utf-8").lower()
77
+ case_rule = (
78
+ "case-insensitive" in text
79
+ or "lowercase" in text
80
+ or "case folding" in text
81
+ or "case-fold" in text
82
+ or "str.lower" in text
83
+ )
84
+ punctuation_rule = (
85
+ "surrounding punctuation" in text
86
+ or "leading and trailing punctuation" in text
87
+ or re.search(
88
+ r"(?:strip|remove)[^.\n]{0,80}punctuation[^.\n]{0,80}"
89
+ r"(?:start|beginning|leading)[^.\n]{0,40}(?:end|trailing)",
90
+ text,
91
+ )
92
+ is not None
93
+ )
94
+ apostrophe_rule = (
95
+ "internal apostroph" in text
96
+ or re.search(r"apostroph(?:e|es)\s+inside", text) is not None
97
+ or re.search(
98
+ r"(?:preserve|keep)[^.\n]{0,120}apostroph(?:e|es)"
99
+ r"[^.\n]{0,80}(?:inside|within)",
100
+ text,
101
+ )
102
+ is not None
103
+ or (
104
+ re.search(r"internal\s+punctuation[^.\n]{0,60}(?:preserv|kept|intact)", text)
105
+ is not None
106
+ and re.search(
107
+ r"apostroph(?:e|es)[^.\n]{0,80}(?:not\s+removed|preserv|kept|intact)",
108
+ text,
109
+ )
110
+ is not None
111
+ )
112
+ )
113
+ if not (case_rule and punctuation_rule and apostrophe_rule):
114
+ return failed(check, f"Confirmed normalization decision is incomplete in {path.name}")
115
+
116
+ try:
117
+ resume = parse_runtime_envelope(
118
+ WORKSPACE / EVIDENCE / "resume-status.json",
119
+ command="status",
120
+ exit_code=0,
121
+ )
122
+ except ValueError as error:
123
+ return failed(check, f"Resume status is not an exact Native envelope: {error}")
124
+ if (
125
+ resume["data"].get("name") != "add-unique-counting"
126
+ or resume["data"].get("phase") != "build"
127
+ ):
128
+ return failed(
129
+ check,
130
+ "Cold resume did not recover add-unique-counting in the exact Build phase",
131
+ )
132
+
133
+ interaction = _interaction()
134
+ if interaction.get("mode") != "auto_user":
135
+ return failed(check, "Auto-user interaction metadata is missing")
136
+ if interaction.get("decision_points") != 1 or interaction.get("deterministic_replies") != 1:
137
+ return failed(check, "Expected exactly one deterministic decision reply")
138
+ if interaction.get("fresh_resume_boundaries") != 1:
139
+ return failed(check, "Expected exactly one new-session cold-resume boundary")
140
+ turns = interaction.get("actual_turns")
141
+ maximum = interaction.get("max_turns")
142
+ if not isinstance(turns, int) or not isinstance(maximum, int) or not (2 <= turns <= maximum):
143
+ return failed(check, "Cold-resume interaction turn count is invalid")
144
+
145
+ try:
146
+ preview = parse_runtime_envelope(
147
+ WORKSPACE / EVIDENCE / "archive-preview.json",
148
+ command="archive --dry-run",
149
+ exit_code=0,
150
+ )
151
+ commit = parse_runtime_envelope(
152
+ WORKSPACE / EVIDENCE / "archive-commit.json",
153
+ command="archive",
154
+ exit_code=0,
155
+ )
156
+ except (OSError, ValueError, json.JSONDecodeError) as error:
157
+ return failed(check, f"Invalid Archive protocol evidence: {error}")
158
+ preview_data = preview.get("data") if isinstance(preview, dict) else None
159
+ commit_data = commit.get("data") if isinstance(commit, dict) else None
160
+ if (
161
+ preview.get("command") != "archive --dry-run"
162
+ or preview.get("exitCode") != 0
163
+ or not isinstance(preview_data, dict)
164
+ or preview_data.get("ready") is not True
165
+ or preview_data.get("evidenceFreshness") not in {"complete", "partial"}
166
+ or preview_data.get("findingCodes") != []
167
+ or not re.fullmatch(r"[a-f0-9]{64}", str(preview_data.get("preflightHash", "")))
168
+ or commit.get("command") != "archive"
169
+ or commit.get("exitCode") != 0
170
+ or not isinstance(commit_data, dict)
171
+ or commit_data.get("preflightHash") != preview_data.get("preflightHash")
172
+ ):
173
+ return failed(check, "Archive did not commit the exact ready Native preflight")
174
+ transaction = check_archive_transaction(
175
+ WORKSPACE,
176
+ commit_data,
177
+ "add-unique-counting",
178
+ preview_data["preflightHash"],
179
+ )
180
+ if transaction["status"] != "passed":
181
+ return failed(check, transaction.get("reason", "Archive transaction is invalid"))
182
+ return passed(check)
183
+
184
+
185
+ def main() -> int:
186
+ results = [
187
+ check_cli_feature(
188
+ WORKSPACE,
189
+ "--unique-words",
190
+ "Hello, hello HELLO! can't can't.",
191
+ "Unique words: 2",
192
+ "unique",
193
+ ),
194
+ check_runtime_envelopes(
195
+ [
196
+ WORKSPACE / EVIDENCE / "resume-status.json",
197
+ WORKSPACE / EVIDENCE / "archive-preview.json",
198
+ WORKSPACE / EVIDENCE / "archive-commit.json",
199
+ ]
200
+ ),
201
+ check_decision_and_resume(),
202
+ check_native_isolation(WORKSPACE),
203
+ ]
204
+ return write_results(results, WORKSPACE)
205
+
206
+
207
+ if __name__ == "__main__":
208
+ raise SystemExit(main())
@@ -0,0 +1,27 @@
1
+ FROM python:3.12-slim
2
+
3
+ WORKDIR /workspace
4
+
5
+ RUN apt-get update && apt-get install -y --no-install-recommends \
6
+ git nodejs npm ca-certificates && \
7
+ rm -rf /var/lib/apt/lists/*
8
+
9
+ RUN npm config set registry https://registry.npmmirror.com && \
10
+ npm install -g @anthropic-ai/claude-code@latest && \
11
+ npm config delete registry
12
+
13
+ RUN pip install --no-cache-dir pyyaml pytest
14
+
15
+ COPY wordcount.py /workspace/wordcount.py
16
+ COPY test_wordcount.py /workspace/test_wordcount.py
17
+
18
+ RUN useradd --create-home --shell /bin/bash agent && \
19
+ chown -R agent:agent /workspace
20
+ USER agent
21
+ ENV HOME=/home/agent
22
+ ENV PYTHONPATH=/workspace
23
+ RUN git config --global user.email "agent@eval.local" && \
24
+ git config --global user.name "Comet Native Eval Agent" && \
25
+ git config --global init.defaultBranch master
26
+
27
+ CMD ["bash"]
@@ -0,0 +1,27 @@
1
+ """Baseline tests for the word-count CLI."""
2
+
3
+ import subprocess
4
+ import sys
5
+ from pathlib import Path
6
+
7
+
8
+ def run_cli(*args: str, input_text: str) -> str:
9
+ result = subprocess.run(
10
+ [sys.executable, "wordcount.py", *args],
11
+ input=input_text,
12
+ capture_output=True,
13
+ text=True,
14
+ check=True,
15
+ cwd=Path(__file__).parent,
16
+ )
17
+ return result.stdout
18
+
19
+
20
+ def test_count_words():
21
+ assert "Words: 3" in run_cli(input_text="hello world foo")
22
+
23
+
24
+ def test_count_lines():
25
+ output = run_cli("--lines", input_text="hello\nworld\nfoo")
26
+ assert "Words: 3" in output
27
+ assert "Lines: 3" in output
@@ -0,0 +1,36 @@
1
+ """Simple word count CLI tool."""
2
+
3
+ import argparse
4
+ import sys
5
+
6
+
7
+ def count_words(text: str) -> int:
8
+ """Count words in text."""
9
+ return len(text.split())
10
+
11
+
12
+ def count_lines(text: str) -> int:
13
+ """Count lines in text."""
14
+ return len(text.splitlines())
15
+
16
+
17
+ def main():
18
+ parser = argparse.ArgumentParser(description="Count words and lines in text")
19
+ parser.add_argument("file", nargs="?", help="Input file (reads stdin if omitted)")
20
+ parser.add_argument("--lines", action="store_true", help="Also count lines")
21
+ parser.add_argument("--words", action="store_true", default=True, help="Count words (default)")
22
+ args = parser.parse_args()
23
+
24
+ if args.file:
25
+ with open(args.file) as source:
26
+ text = source.read()
27
+ else:
28
+ text = sys.stdin.read()
29
+
30
+ print(f"Words: {count_words(text)}")
31
+ if args.lines:
32
+ print(f"Lines: {count_lines(text)}")
33
+
34
+
35
+ if __name__ == "__main__":
36
+ main()
@@ -0,0 +1,11 @@
1
+ You are working on a Python project named `wordcount-cli`.
2
+
3
+ Begin by invoking the `/comet-native` Skill. Initialize Native under `docs/comet/`, create `add-longest-word`, and add a `--longest-word` flag that prints `Longest word: VALUE`. For empty input print `Longest word:` with no value. Preserve the existing counters, add focused tests, and author a complete target specification for capability `longest-word` with at least two identifiable acceptance criteria.
4
+
5
+ Exercise Native verification integrity rather than jumping straight to Archive:
6
+
7
+ 1. After implementing the feature, leave one unrelated project file outside the declared implementation artifacts. Capture the exact blocked Build `next` envelope (including its prepared partial-scope hash) as `.cache/comet-native-eval/partial-scope.json`. Use that exact hash and Native's explicit confirmed partial-scope path, then run every acceptance check. Advance through Verify with an acceptance-linked report and save the exact Archive dry-run envelope as `.cache/comet-native-eval/partial-archive-preview.json`. It must be fresh `partial` evidence accepted by the explicit allowance, not hand-written partial evidence.
8
+ 2. Change a declared implementation artifact after verification. Save the exact Native status envelope showing stale evidence as `.cache/comet-native-eval/stale-status.json`. Save the exact blocked Archive dry-run as `.cache/comet-native-eval/stale-archive-preview.json`, then call Archive with `--expect-preflight` using that preview hash and save the exact exit-73 envelope as `.cache/comet-native-eval/stale-archive-commit.json`. Use Native's evidence-retreat path to return to Build.
9
+ 3. Remove the unrelated file, capture a complete implementation scope, rerun all project tests and CLI acceptance checks, and advance through Verify with fresh evidence for every acceptance identifier. Save the exact ready Archive dry-run as `.cache/comet-native-eval/final-archive-preview.json`. Commit Archive with `--expect-preflight` using that exact preview hash and save its exact successful envelope as `.cache/comet-native-eval/archive-commit.json`.
10
+
11
+ The archived immutable verification envelope and `verification.md` must preserve concrete evidence for every acceptance identifier. Do not fabricate, paraphrase, merge, or hand-author any runtime JSON snapshot. Use only the Comet Native Skill and bundled runtime; do not create OpenSpec, Classic, `.comet`, or external workflow artifacts.
@@ -0,0 +1,36 @@
1
+ [metadata]
2
+ name = "comet-native-wave-c-verification-integrity"
3
+ description = "Test confirmed partial scope, stale evidence retreat, and complete two-step Native Archive"
4
+ difficulty = "hard"
5
+ category = "comet-native"
6
+ tags = ["comet-native", "verification", "freshness", "acceptance-trace", "wave-c"]
7
+ default_treatments = ["COMET_NATIVE_PHASE1"]
8
+
9
+ [template]
10
+ required = []
11
+
12
+ [environment]
13
+ description = "Python word-count workspace for exercising Native verification freshness and acceptance traces."
14
+ dockerfile = "environment/Dockerfile"
15
+ timeout_sec = 900
16
+
17
+ [validation]
18
+ test_scripts = "test_native_wave_c_verification_integrity.py"
19
+ target_artifacts = [".cache/comet-native-eval/partial-scope.json", ".cache/comet-native-eval/partial-archive-preview.json", ".cache/comet-native-eval/stale-status.json", ".cache/comet-native-eval/stale-archive-preview.json", ".cache/comet-native-eval/stale-archive-commit.json", ".cache/comet-native-eval/final-archive-preview.json", ".cache/comet-native-eval/archive-commit.json", "docs/comet/archive", "docs/comet/specs/longest-word/spec.md"]
20
+ timeout = 120
21
+
22
+ [evaluation]
23
+ profile = "generic"
24
+ required_skills = ["comet-native"]
25
+ expected_artifacts = [".cache/comet-native-eval/partial-scope.json", ".cache/comet-native-eval/partial-archive-preview.json", ".cache/comet-native-eval/stale-status.json", ".cache/comet-native-eval/stale-archive-preview.json", ".cache/comet-native-eval/stale-archive-commit.json", ".cache/comet-native-eval/final-archive-preview.json", ".cache/comet-native-eval/archive-commit.json", "docs/comet/archive", "docs/comet/specs/longest-word/spec.md"]
26
+ require_skill_invocation = true
27
+ rubric_criteria = [
28
+ "Requires an exact user-confirmed allowance before accepting a partial implementation scope",
29
+ "Detects post-verification implementation drift and retreats stale evidence back to Build",
30
+ "Links every acceptance criterion to concrete immutable evidence before Archive",
31
+ "Uses dry-run plus the exact preflight hash and archives only complete fresh final evidence",
32
+ ]
33
+
34
+ [interaction]
35
+ mode = "none"
36
+ max_turns = 1