plumbbob 0.9.2 → 0.9.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 (279) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +15 -13
  3. package/dist/cli-core.js +298 -24
  4. package/dist/lib/check.js +46 -13
  5. package/dist/lib/intent.js +1 -1
  6. package/dist/lib/latch.js +3 -3
  7. package/dist/lib/reentry.js +70 -0
  8. package/dist/verbs/agent.js +5 -4
  9. package/dist/verbs/check.js +6 -2
  10. package/dist/verbs/doctor.js +4 -4
  11. package/dist/verbs/finish.js +1 -1
  12. package/dist/verbs/recover.js +297 -0
  13. package/dist/verbs/revert.js +2 -2
  14. package/dist/verbs/spike.js +8 -2
  15. package/hooks/post-edit.sh +4 -4
  16. package/hooks/pre-bash-commit.sh +3 -3
  17. package/node_modules/checkride/.claude-plugin/plugin.json +11 -0
  18. package/node_modules/checkride/CHANGELOG.md +1003 -0
  19. package/node_modules/checkride/LICENSE +201 -21
  20. package/node_modules/checkride/README.md +171 -30
  21. package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.d.ts +15 -0
  22. package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.d.ts.map +1 -0
  23. package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.js +17 -0
  24. package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.js.map +1 -0
  25. package/node_modules/checkride/dist/adapters.d.ts +18 -6
  26. package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
  27. package/node_modules/checkride/dist/adapters.js +42 -23
  28. package/node_modules/checkride/dist/adapters.js.map +1 -1
  29. package/node_modules/checkride/dist/agent-setup/claude.d.ts +88 -0
  30. package/node_modules/checkride/dist/agent-setup/claude.d.ts.map +1 -0
  31. package/node_modules/checkride/dist/agent-setup/claude.js +305 -0
  32. package/node_modules/checkride/dist/agent-setup/claude.js.map +1 -0
  33. package/node_modules/checkride/dist/agent-setup/command.d.ts +43 -0
  34. package/node_modules/checkride/dist/agent-setup/command.d.ts.map +1 -0
  35. package/node_modules/checkride/dist/agent-setup/command.js +77 -0
  36. package/node_modules/checkride/dist/agent-setup/command.js.map +1 -0
  37. package/node_modules/checkride/dist/agent-setup/cursor.d.ts +61 -0
  38. package/node_modules/checkride/dist/agent-setup/cursor.d.ts.map +1 -0
  39. package/node_modules/checkride/dist/agent-setup/cursor.js +189 -0
  40. package/node_modules/checkride/dist/agent-setup/cursor.js.map +1 -0
  41. package/node_modules/checkride/dist/agent-setup/files.d.ts +50 -0
  42. package/node_modules/checkride/dist/agent-setup/files.d.ts.map +1 -0
  43. package/node_modules/checkride/dist/agent-setup/files.js +80 -0
  44. package/node_modules/checkride/dist/agent-setup/files.js.map +1 -0
  45. package/node_modules/checkride/dist/agent-setup/harness.d.ts +101 -0
  46. package/node_modules/checkride/dist/agent-setup/harness.d.ts.map +1 -0
  47. package/node_modules/checkride/dist/agent-setup/harness.js +84 -0
  48. package/node_modules/checkride/dist/agent-setup/harness.js.map +1 -0
  49. package/node_modules/checkride/dist/agent-setup/hook.d.ts +45 -52
  50. package/node_modules/checkride/dist/agent-setup/hook.d.ts.map +1 -1
  51. package/node_modules/checkride/dist/agent-setup/hook.js +64 -95
  52. package/node_modules/checkride/dist/agent-setup/hook.js.map +1 -1
  53. package/node_modules/checkride/dist/agent-setup/index.d.ts +10 -4
  54. package/node_modules/checkride/dist/agent-setup/index.d.ts.map +1 -1
  55. package/node_modules/checkride/dist/agent-setup/index.js +9 -4
  56. package/node_modules/checkride/dist/agent-setup/index.js.map +1 -1
  57. package/node_modules/checkride/dist/agent-setup/scripts.d.ts +58 -0
  58. package/node_modules/checkride/dist/agent-setup/scripts.d.ts.map +1 -0
  59. package/node_modules/checkride/dist/agent-setup/scripts.js +299 -0
  60. package/node_modules/checkride/dist/agent-setup/scripts.js.map +1 -0
  61. package/node_modules/checkride/dist/agent-setup/skills.d.ts +31 -0
  62. package/node_modules/checkride/dist/agent-setup/skills.d.ts.map +1 -0
  63. package/node_modules/checkride/dist/agent-setup/skills.js +56 -0
  64. package/node_modules/checkride/dist/agent-setup/skills.js.map +1 -0
  65. package/node_modules/checkride/dist/artifacts/configured.d.ts +30 -0
  66. package/node_modules/checkride/dist/artifacts/configured.d.ts.map +1 -0
  67. package/node_modules/checkride/dist/artifacts/configured.js +45 -0
  68. package/node_modules/checkride/dist/artifacts/configured.js.map +1 -0
  69. package/node_modules/checkride/dist/artifacts/format.d.ts +33 -0
  70. package/node_modules/checkride/dist/artifacts/format.d.ts.map +1 -0
  71. package/node_modules/checkride/dist/artifacts/format.js +56 -0
  72. package/node_modules/checkride/dist/artifacts/format.js.map +1 -0
  73. package/node_modules/checkride/dist/artifacts/freshness.d.ts +32 -0
  74. package/node_modules/checkride/dist/artifacts/freshness.d.ts.map +1 -0
  75. package/node_modules/checkride/dist/artifacts/freshness.js +37 -0
  76. package/node_modules/checkride/dist/artifacts/freshness.js.map +1 -0
  77. package/node_modules/checkride/dist/artifacts/index.d.ts +22 -0
  78. package/node_modules/checkride/dist/artifacts/index.d.ts.map +1 -0
  79. package/node_modules/checkride/dist/artifacts/index.js +19 -0
  80. package/node_modules/checkride/dist/artifacts/index.js.map +1 -0
  81. package/node_modules/checkride/dist/artifacts/json.d.ts +31 -0
  82. package/node_modules/checkride/dist/artifacts/json.d.ts.map +1 -0
  83. package/node_modules/checkride/dist/artifacts/json.js +47 -0
  84. package/node_modules/checkride/dist/artifacts/json.js.map +1 -0
  85. package/node_modules/checkride/dist/artifacts/raw.d.ts +60 -0
  86. package/node_modules/checkride/dist/artifacts/raw.d.ts.map +1 -0
  87. package/node_modules/checkride/dist/artifacts/raw.js +91 -0
  88. package/node_modules/checkride/dist/artifacts/raw.js.map +1 -0
  89. package/node_modules/checkride/dist/artifacts/summary.d.ts +69 -0
  90. package/node_modules/checkride/dist/artifacts/summary.d.ts.map +1 -0
  91. package/node_modules/checkride/dist/artifacts/summary.js +108 -0
  92. package/node_modules/checkride/dist/artifacts/summary.js.map +1 -0
  93. package/node_modules/checkride/dist/atomic.d.ts +16 -1
  94. package/node_modules/checkride/dist/atomic.d.ts.map +1 -1
  95. package/node_modules/checkride/dist/atomic.js +25 -3
  96. package/node_modules/checkride/dist/atomic.js.map +1 -1
  97. package/node_modules/checkride/dist/baseline/fallow.d.ts +9 -5
  98. package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -1
  99. package/node_modules/checkride/dist/baseline/fallow.js +161 -58
  100. package/node_modules/checkride/dist/baseline/fallow.js.map +1 -1
  101. package/node_modules/checkride/dist/baseline/fingerprint.d.ts +7 -7
  102. package/node_modules/checkride/dist/baseline/fingerprint.d.ts.map +1 -1
  103. package/node_modules/checkride/dist/baseline/fingerprint.js +16 -19
  104. package/node_modules/checkride/dist/baseline/fingerprint.js.map +1 -1
  105. package/node_modules/checkride/dist/baseline/index.d.ts +4 -4
  106. package/node_modules/checkride/dist/baseline/index.d.ts.map +1 -1
  107. package/node_modules/checkride/dist/baseline/index.js +4 -4
  108. package/node_modules/checkride/dist/baseline/index.js.map +1 -1
  109. package/node_modules/checkride/dist/baseline/store.d.ts +12 -4
  110. package/node_modules/checkride/dist/baseline/store.d.ts.map +1 -1
  111. package/node_modules/checkride/dist/baseline/store.js +16 -9
  112. package/node_modules/checkride/dist/baseline/store.js.map +1 -1
  113. package/node_modules/checkride/dist/baseline-command.d.ts +5 -5
  114. package/node_modules/checkride/dist/baseline-command.js +7 -7
  115. package/node_modules/checkride/dist/baseline-command.js.map +1 -1
  116. package/node_modules/checkride/dist/cli.d.ts +17 -4
  117. package/node_modules/checkride/dist/cli.d.ts.map +1 -1
  118. package/node_modules/checkride/dist/cli.js +259 -18
  119. package/node_modules/checkride/dist/cli.js.map +1 -1
  120. package/node_modules/checkride/dist/config.d.ts +84 -8
  121. package/node_modules/checkride/dist/config.d.ts.map +1 -1
  122. package/node_modules/checkride/dist/config.js +122 -18
  123. package/node_modules/checkride/dist/config.js.map +1 -1
  124. package/node_modules/checkride/dist/digest/digest.d.ts +5 -5
  125. package/node_modules/checkride/dist/digest/digest.js +5 -5
  126. package/node_modules/checkride/dist/digest/index.d.ts +2 -2
  127. package/node_modules/checkride/dist/digest/index.js +2 -2
  128. package/node_modules/checkride/dist/doctor.d.ts +25 -6
  129. package/node_modules/checkride/dist/doctor.d.ts.map +1 -1
  130. package/node_modules/checkride/dist/doctor.js +193 -27
  131. package/node_modules/checkride/dist/doctor.js.map +1 -1
  132. package/node_modules/checkride/dist/gate.d.ts +135 -0
  133. package/node_modules/checkride/dist/gate.d.ts.map +1 -0
  134. package/node_modules/checkride/dist/gate.js +490 -0
  135. package/node_modules/checkride/dist/gate.js.map +1 -0
  136. package/node_modules/checkride/dist/init.d.ts +72 -12
  137. package/node_modules/checkride/dist/init.d.ts.map +1 -1
  138. package/node_modules/checkride/dist/init.js +324 -81
  139. package/node_modules/checkride/dist/init.js.map +1 -1
  140. package/node_modules/checkride/dist/json.d.ts +21 -0
  141. package/node_modules/checkride/dist/json.d.ts.map +1 -0
  142. package/node_modules/checkride/dist/json.js +21 -0
  143. package/node_modules/checkride/dist/json.js.map +1 -0
  144. package/node_modules/checkride/dist/links.d.ts +31 -5
  145. package/node_modules/checkride/dist/links.d.ts.map +1 -1
  146. package/node_modules/checkride/dist/links.js +141 -32
  147. package/node_modules/checkride/dist/links.js.map +1 -1
  148. package/node_modules/checkride/dist/node-pin.d.ts +129 -0
  149. package/node_modules/checkride/dist/node-pin.d.ts.map +1 -0
  150. package/node_modules/checkride/dist/node-pin.js +211 -0
  151. package/node_modules/checkride/dist/node-pin.js.map +1 -0
  152. package/node_modules/checkride/dist/orchestrator.d.ts +40 -10
  153. package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
  154. package/node_modules/checkride/dist/orchestrator.js +196 -102
  155. package/node_modules/checkride/dist/orchestrator.js.map +1 -1
  156. package/node_modules/checkride/dist/pack.d.ts +8 -9
  157. package/node_modules/checkride/dist/pack.d.ts.map +1 -1
  158. package/node_modules/checkride/dist/pack.js +53 -17
  159. package/node_modules/checkride/dist/pack.js.map +1 -1
  160. package/node_modules/checkride/dist/pm/detect.d.ts +6 -1
  161. package/node_modules/checkride/dist/pm/detect.d.ts.map +1 -1
  162. package/node_modules/checkride/dist/pm/detect.js +6 -1
  163. package/node_modules/checkride/dist/pm/detect.js.map +1 -1
  164. package/node_modules/checkride/dist/pm/index.d.ts +6 -2
  165. package/node_modules/checkride/dist/pm/index.d.ts.map +1 -1
  166. package/node_modules/checkride/dist/pm/index.js +6 -2
  167. package/node_modules/checkride/dist/pm/index.js.map +1 -1
  168. package/node_modules/checkride/dist/pm/launch.d.ts +51 -0
  169. package/node_modules/checkride/dist/pm/launch.d.ts.map +1 -0
  170. package/node_modules/checkride/dist/pm/launch.js +92 -0
  171. package/node_modules/checkride/dist/pm/launch.js.map +1 -0
  172. package/node_modules/checkride/dist/pm/tools.d.ts +73 -0
  173. package/node_modules/checkride/dist/pm/tools.d.ts.map +1 -0
  174. package/node_modules/checkride/dist/pm/tools.js +124 -0
  175. package/node_modules/checkride/dist/pm/tools.js.map +1 -0
  176. package/node_modules/checkride/dist/pm/translate.d.ts +35 -9
  177. package/node_modules/checkride/dist/pm/translate.d.ts.map +1 -1
  178. package/node_modules/checkride/dist/pm/translate.js +78 -18
  179. package/node_modules/checkride/dist/pm/translate.js.map +1 -1
  180. package/node_modules/checkride/dist/proc.d.ts +30 -0
  181. package/node_modules/checkride/dist/proc.d.ts.map +1 -0
  182. package/node_modules/checkride/dist/proc.js +42 -0
  183. package/node_modules/checkride/dist/proc.js.map +1 -0
  184. package/node_modules/checkride/dist/qa/cli.d.ts +20 -0
  185. package/node_modules/checkride/dist/qa/cli.d.ts.map +1 -0
  186. package/node_modules/checkride/dist/qa/cli.js +24 -0
  187. package/node_modules/checkride/dist/qa/cli.js.map +1 -0
  188. package/node_modules/checkride/dist/qa/dead.d.ts +39 -0
  189. package/node_modules/checkride/dist/qa/dead.d.ts.map +1 -0
  190. package/node_modules/checkride/dist/qa/dead.js +88 -0
  191. package/node_modules/checkride/dist/qa/dead.js.map +1 -0
  192. package/node_modules/checkride/dist/qa/dupes.d.ts +45 -0
  193. package/node_modules/checkride/dist/qa/dupes.d.ts.map +1 -0
  194. package/node_modules/checkride/dist/qa/dupes.js +62 -0
  195. package/node_modules/checkride/dist/qa/dupes.js.map +1 -0
  196. package/node_modules/checkride/dist/qa/health.d.ts +85 -0
  197. package/node_modules/checkride/dist/qa/health.d.ts.map +1 -0
  198. package/node_modules/checkride/dist/qa/health.js +109 -0
  199. package/node_modules/checkride/dist/qa/health.js.map +1 -0
  200. package/node_modules/checkride/dist/qa/index.d.ts +23 -0
  201. package/node_modules/checkride/dist/qa/index.d.ts.map +1 -0
  202. package/node_modules/checkride/dist/qa/index.js +22 -0
  203. package/node_modules/checkride/dist/qa/index.js.map +1 -0
  204. package/node_modules/checkride/dist/qa/mutation.d.ts +80 -0
  205. package/node_modules/checkride/dist/qa/mutation.d.ts.map +1 -0
  206. package/node_modules/checkride/dist/qa/mutation.js +195 -0
  207. package/node_modules/checkride/dist/qa/mutation.js.map +1 -0
  208. package/node_modules/checkride/dist/qa/qa.d.ts +71 -0
  209. package/node_modules/checkride/dist/qa/qa.d.ts.map +1 -0
  210. package/node_modules/checkride/dist/qa/qa.js +158 -0
  211. package/node_modules/checkride/dist/qa/qa.js.map +1 -0
  212. package/node_modules/checkride/dist/qa/read.d.ts +40 -0
  213. package/node_modules/checkride/dist/qa/read.d.ts.map +1 -0
  214. package/node_modules/checkride/dist/qa/read.js +47 -0
  215. package/node_modules/checkride/dist/qa/read.js.map +1 -0
  216. package/node_modules/checkride/dist/qa/render.d.ts +26 -0
  217. package/node_modules/checkride/dist/qa/render.d.ts.map +1 -0
  218. package/node_modules/checkride/dist/qa/render.js +310 -0
  219. package/node_modules/checkride/dist/qa/render.js.map +1 -0
  220. package/node_modules/checkride/dist/security.d.ts +45 -0
  221. package/node_modules/checkride/dist/security.d.ts.map +1 -0
  222. package/node_modules/checkride/dist/security.js +86 -0
  223. package/node_modules/checkride/dist/security.js.map +1 -0
  224. package/node_modules/checkride/dist/smoke.d.ts +5 -5
  225. package/node_modules/checkride/dist/smoke.js +5 -5
  226. package/node_modules/checkride/dist/snippets.d.ts +26 -29
  227. package/node_modules/checkride/dist/snippets.d.ts.map +1 -1
  228. package/node_modules/checkride/dist/snippets.js +26 -30
  229. package/node_modules/checkride/dist/snippets.js.map +1 -1
  230. package/node_modules/checkride/dist/tool-json.d.ts +33 -0
  231. package/node_modules/checkride/dist/tool-json.d.ts.map +1 -0
  232. package/node_modules/checkride/dist/tool-json.js +58 -0
  233. package/node_modules/checkride/dist/tool-json.js.map +1 -0
  234. package/node_modules/checkride/dist/triage/cli.d.ts +21 -0
  235. package/node_modules/checkride/dist/triage/cli.d.ts.map +1 -0
  236. package/node_modules/checkride/dist/triage/cli.js +26 -0
  237. package/node_modules/checkride/dist/triage/cli.js.map +1 -0
  238. package/node_modules/checkride/dist/triage/doctor-fold.d.ts +51 -0
  239. package/node_modules/checkride/dist/triage/doctor-fold.d.ts.map +1 -0
  240. package/node_modules/checkride/dist/triage/doctor-fold.js +88 -0
  241. package/node_modules/checkride/dist/triage/doctor-fold.js.map +1 -0
  242. package/node_modules/checkride/dist/triage/env.d.ts +54 -0
  243. package/node_modules/checkride/dist/triage/env.d.ts.map +1 -0
  244. package/node_modules/checkride/dist/triage/env.js +81 -0
  245. package/node_modules/checkride/dist/triage/env.js.map +1 -0
  246. package/node_modules/checkride/dist/triage/gate.d.ts +61 -0
  247. package/node_modules/checkride/dist/triage/gate.d.ts.map +1 -0
  248. package/node_modules/checkride/dist/triage/gate.js +121 -0
  249. package/node_modules/checkride/dist/triage/gate.js.map +1 -0
  250. package/node_modules/checkride/dist/triage/index.d.ts +22 -0
  251. package/node_modules/checkride/dist/triage/index.d.ts.map +1 -0
  252. package/node_modules/checkride/dist/triage/index.js +20 -0
  253. package/node_modules/checkride/dist/triage/index.js.map +1 -0
  254. package/node_modules/checkride/dist/triage/render.d.ts +19 -0
  255. package/node_modules/checkride/dist/triage/render.d.ts.map +1 -0
  256. package/node_modules/checkride/dist/triage/render.js +419 -0
  257. package/node_modules/checkride/dist/triage/render.js.map +1 -0
  258. package/node_modules/checkride/dist/triage/triage.d.ts +83 -0
  259. package/node_modules/checkride/dist/triage/triage.d.ts.map +1 -0
  260. package/node_modules/checkride/dist/triage/triage.js +131 -0
  261. package/node_modules/checkride/dist/triage/triage.js.map +1 -0
  262. package/node_modules/checkride/package.json +17 -15
  263. package/node_modules/checkride/schema/checkride.config.schema.json +62 -5
  264. package/node_modules/checkride/schema/checkride.summary.schema.json +1 -1
  265. package/node_modules/checkride/skills/check/SKILL.md +257 -0
  266. package/node_modules/checkride/skills/qa/SKILL.md +231 -0
  267. package/node_modules/checkride/templates/shared/cspell.json +1 -0
  268. package/node_modules/checkride/templates/shared/oxlintrc.json +1 -1
  269. package/package.json +2 -2
  270. package/skills/build/SKILL.md +23 -19
  271. package/skills/finish/SKILL.md +3 -1
  272. package/skills/harvest/SKILL.md +2 -1
  273. package/skills/plan/SKILL.md +8 -7
  274. package/skills/recover/SKILL.md +28 -0
  275. package/skills/refine/SKILL.md +5 -4
  276. package/skills/spike/SKILL.md +1 -1
  277. package/skills/step/SKILL.md +4 -4
  278. package/skills/verify/SKILL.md +19 -14
  279. package/templates/intent.md +8 -7
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,oFAAoF;AACpF,eAAO,MAAM,aAAa,4BAA4B,CAAC;AAEvD,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iFAAiF;IACjF,EAAE,EAAE,OAAO,CAAC;IACZ,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAOF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAezD;AAED,4FAA4F;AAC5F,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,OAAO,GACb,kBAAkB,CAUpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,QAAQ,CAOhG;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AASD,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,oFAAoF;AACpF,eAAO,MAAM,aAAa,4BAA4B,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iFAAiF;IACjF,EAAE,EAAE,OAAO,CAAC;IACZ,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAgBzD;AAED,4FAA4F;AAC5F,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,OAAO,GACb,kBAAkB,CAUpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,QAAQ,CAOhG;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AASD,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEhE"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * The baseline artifact: its on-disk shape and the pure read / write / apply /
3
- * ratchet operations a baseline-aware run (step 6) is built from.
3
+ * ratchet operations a baseline-aware run is built from.
4
4
  *
5
5
  * This file imports nothing from the orchestrator on purpose: the `baseline`
6
- * command (command.ts) bridges to the run pipeline, but a *run* only needs to
6
+ * command (`../baseline-command.ts`) bridges to the run pipeline, but a *run* only needs to
7
7
  * mask and ratchet an already-captured baseline, so the orchestrator can depend
8
8
  * on these helpers without a load-order cycle. Keeping the file I/O and the
9
9
  * set algebra here (not in the orchestrator) also preserves the orchestrator's
@@ -12,19 +12,24 @@
12
12
  import { existsSync, readFileSync } from 'node:fs';
13
13
  import { join } from 'node:path';
14
14
  import { writeFileAtomic } from '../atomic.js';
15
+ import { isRecord } from '../json.js';
15
16
  /** The committed baseline artifact, at repo root beside `checkride.config.json`. */
16
17
  export const BASELINE_FILE = 'checkride.baseline.json';
17
- /** Schema version of the baseline file; independent of the summary schema (D8). */
18
+ /** Schema version of the baseline file; independent of the summary schema. */
18
19
  export const BASELINE_SCHEMA_VERSION = 1;
19
- /** Narrow to a plain object so fields can be read without an unsafe assertion. */
20
- function isRecord(value) {
21
- return typeof value === 'object' && value !== null;
22
- }
23
20
  /**
24
21
  * Read `checkride.baseline.json` from `cwd`; `null` when absent or unusable. The
25
22
  * baseline is a committed file a run reads on every invocation, so a malformed
26
23
  * one is coerced into a clean shape (or dropped) rather than thrown — a corrupt
27
24
  * baseline must never break `checkride`.
25
+ *
26
+ * A file from a *newer* schema is dropped rather than read optimistically. The
27
+ * fields it does not have yet are the ones that would say which findings are
28
+ * masked and why, so guessing means either masking findings it never
29
+ * grandfathered or claiming ones it did. Dropping it fails closed: the run
30
+ * reports the diagnostics that are actually there — more red than the author
31
+ * intended, never a green that was not earned. Same direction as
32
+ * {@link applyBaseline}'s refusal to mask an unparseable run.
28
33
  */
29
34
  export function loadBaseline(cwd) {
30
35
  const path = join(cwd, BASELINE_FILE);
@@ -34,12 +39,14 @@ export function loadBaseline(cwd) {
34
39
  const parsed = JSON.parse(readFileSync(path, 'utf8'));
35
40
  if (!isRecord(parsed) || !isRecord(parsed['slots']))
36
41
  return null;
42
+ const version = parsed['schema_version'];
43
+ if (typeof version === 'number' && version > BASELINE_SCHEMA_VERSION)
44
+ return null;
37
45
  const slots = {};
38
46
  for (const [slot, keys] of Object.entries(parsed['slots'])) {
39
47
  if (Array.isArray(keys))
40
48
  slots[slot] = keys.filter((k) => typeof k === 'string');
41
49
  }
42
- const version = parsed['schema_version'];
43
50
  return { schema_version: typeof version === 'number' ? version : BASELINE_SCHEMA_VERSION, slots };
44
51
  }
45
52
  catch {
@@ -82,7 +89,7 @@ export function applyBaseline(current, baselinedKeys, rawOk) {
82
89
  * are the run's failures, not new debt, so only a `checkride baseline` capture
83
90
  * ever adds keys. Callers gate this on a full run (no `--only`/`--skip`/
84
91
  * `--changed`, no early `--bail` break) so a partial run can't prune keys it
85
- * simply didn't observe (a1).
92
+ * simply didn't observe.
86
93
  */
87
94
  export function ratchet(baseline, observed) {
88
95
  const slots = {};
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * The `checkride baseline` command (baseline part 2).
2
+ * The `checkride baseline` command.
3
3
  *
4
4
  * Runs the normal pipeline, fingerprints every fingerprintable slot's raw output
5
- * (step 4's per-adapter extractors), and writes the result to
5
+ * via the per-adapter extractors, and writes the result to
6
6
  * `checkride.baseline.json` at repo root — beside `checkride.config.json`,
7
- * committed, NOT under the gitignored `.check/` (D9). The file grandfathers a
8
- * legacy repo's existing diagnostics so a later baseline-aware run (step 6) can
9
- * subtract them and fail only on genuinely new findings.
7
+ * committed, NOT under the gitignored `.check/`. The file grandfathers a
8
+ * repo's existing diagnostics so a baseline-aware run can subtract them and
9
+ * fail only on genuinely new findings.
10
10
  *
11
11
  * Only slots whose adapter has an extractor participate: a supported-but-clean
12
12
  * slot records an empty array (it opted in and had nothing to grandfather),
@@ -1,12 +1,12 @@
1
1
  /**
2
- * The `checkride baseline` command (baseline part 2).
2
+ * The `checkride baseline` command.
3
3
  *
4
4
  * Runs the normal pipeline, fingerprints every fingerprintable slot's raw output
5
- * (step 4's per-adapter extractors), and writes the result to
5
+ * via the per-adapter extractors, and writes the result to
6
6
  * `checkride.baseline.json` at repo root — beside `checkride.config.json`,
7
- * committed, NOT under the gitignored `.check/` (D9). The file grandfathers a
8
- * legacy repo's existing diagnostics so a later baseline-aware run (step 6) can
9
- * subtract them and fail only on genuinely new findings.
7
+ * committed, NOT under the gitignored `.check/`. The file grandfathers a
8
+ * repo's existing diagnostics so a baseline-aware run can subtract them and
9
+ * fail only on genuinely new findings.
10
10
  *
11
11
  * Only slots whose adapter has an extractor participate: a supported-but-clean
12
12
  * slot records an empty array (it opted in and had nothing to grandfather),
@@ -26,9 +26,9 @@ export async function runBaseline(options) {
26
26
  const cwd = options.cwd ?? process.cwd();
27
27
  const stderr = options.stderr ?? process.stderr;
28
28
  // json:false so the run reports progress on stderr and nothing on stdout; the
29
- // baseline artifact is the file, so stdout stays clean (C5). baseline:null so a
29
+ // baseline artifact is the file, so stdout stays clean. baseline:null so a
30
30
  // re-capture records the raw current diagnostics — never masked or pruned by an
31
- // existing baseline the run would otherwise pick up (step 6).
31
+ // existing baseline the run would otherwise pick up.
32
32
  const runOptions = {
33
33
  cwd,
34
34
  json: false,
@@ -1 +1 @@
1
- {"version":3,"file":"baseline-command.js","sourceRoot":"","sources":["../src/baseline-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseline-command.js","sourceRoot":"","sources":["../src/baseline-command.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,17 @@
2
2
  /**
3
3
  * CLI entry — arg parsing and command dispatch (the package `bin`).
4
4
  *
5
- * Commands: default `run`, plus `init`, `doctor`, and `fix`. The command is the
6
- * first non-flag token; everything after it is parsed against that command's
7
- * options. The module is import-safe: it only executes when invoked directly,
8
- * so tests can import {@link runCli} without triggering a process exit.
5
+ * Commands: default `run`, plus `init`, `doctor`, `fix`, `baseline`,
6
+ * `agent-setup`, `gate`, `triage` and `qa`. The command is the first non-flag
7
+ * token; everything after it is parsed against that command's options. The
8
+ * module is import-safe: it only executes when invoked directly, so tests can
9
+ * import {@link runCli} without triggering a process exit.
9
10
  *
10
11
  * Exit codes: 0 pass, 1 check/verification failure, 2 orchestrator/usage error.
12
+ * `gate` is the documented exception — it speaks a harness's hook protocol
13
+ * rather than checkride's own split (see `./gate.ts`).
11
14
  */
15
+ import { type HooksOptions } from './agent-setup/index.js';
12
16
  import type { InitOptions } from './init.js';
13
17
  import type { Out, RunFlags } from './orchestrator.js';
14
18
  /** Injected process surface, so {@link runCli} is testable. */
@@ -24,6 +28,15 @@ export declare function parseCliArgs(argv: string[]): {
24
28
  };
25
29
  /** Parse `init` arguments into init options. */
26
30
  export declare function parseInitArgs(argv: string[]): Partial<InitOptions>;
31
+ /**
32
+ * Parse `hooks <add|remove> [a,b]` into options.
33
+ *
34
+ * The hook names are a positional rather than a flag: the command exists to do
35
+ * one thing to a named set, and `checkride hooks remove protect` reads the way
36
+ * the user thinks about it. An unknown action or name is a usage error naming
37
+ * the valid set, the same rule `--hook` follows.
38
+ */
39
+ export declare function parseHooksArgs(argv: string[]): HooksOptions;
27
40
  /** Dispatch a CLI invocation; returns the process exit code. */
28
41
  export declare function runCli(argv: string[], deps: CliDeps): Promise<number>;
29
42
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAqB,WAAW,EAAS,MAAM,WAAW,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGvD,+DAA+D;AAC/D,MAAM,MAAM,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC;AAwJhE,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAmBjF;AAQD,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBlE;AA2CD,gEAAgE;AAChE,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC3E"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAA6B,KAAK,YAAY,EAAY,MAAM,wBAAwB,CAAC;AAIhG,OAAO,KAAK,EAAqB,WAAW,EAAS,MAAM,WAAW,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKvD,+DAA+D;AAC/D,MAAM,MAAM,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC;AAuQhE,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAmBjF;AAgDD,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BlE;AA+CD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAiB3D;AAwCD,gEAAgE;AAChE,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC3E"}
@@ -2,20 +2,27 @@
2
2
  /**
3
3
  * CLI entry — arg parsing and command dispatch (the package `bin`).
4
4
  *
5
- * Commands: default `run`, plus `init`, `doctor`, and `fix`. The command is the
6
- * first non-flag token; everything after it is parsed against that command's
7
- * options. The module is import-safe: it only executes when invoked directly,
8
- * so tests can import {@link runCli} without triggering a process exit.
5
+ * Commands: default `run`, plus `init`, `doctor`, `fix`, `baseline`,
6
+ * `agent-setup`, `gate`, `triage` and `qa`. The command is the first non-flag
7
+ * token; everything after it is parsed against that command's options. The
8
+ * module is import-safe: it only executes when invoked directly, so tests can
9
+ * import {@link runCli} without triggering a process exit.
9
10
  *
10
11
  * Exit codes: 0 pass, 1 check/verification failure, 2 orchestrator/usage error.
12
+ * `gate` is the documented exception — it speaks a harness's hook protocol
13
+ * rather than checkride's own split (see `./gate.ts`).
11
14
  */
12
15
  import { readFileSync, realpathSync } from 'node:fs';
13
16
  import { parseArgs } from 'node:util';
14
17
  import { fileURLToPath } from 'node:url';
18
+ import { HOOK_NAMES, runHooks } from './agent-setup/index.js';
15
19
  import { runBaseline } from './baseline-command.js';
16
20
  import { runDoctor } from './doctor.js';
21
+ import { HARNESS_NAMES, runGate } from './gate.js';
17
22
  import { runAgentSetup, runInit } from './init.js';
18
23
  import { killLiveChecks, runChecks, runFix } from './orchestrator.js';
24
+ import { qaExtract, renderQa } from './qa/index.js';
25
+ import { realEnv, renderTriage, triage } from './triage/index.js';
19
26
  const RUN_OPTIONS = {
20
27
  bail: { type: 'boolean', default: false },
21
28
  json: { type: 'boolean', default: false },
@@ -37,24 +44,46 @@ const INIT_OPTIONS = {
37
44
  'dry-run': { type: 'boolean', default: false },
38
45
  add: { type: 'string' },
39
46
  baseline: { type: 'boolean', default: false },
47
+ hook: { type: 'string' },
40
48
  'no-hook': { type: 'boolean', default: false },
49
+ 'remove-hook': { type: 'string' },
50
+ harness: { type: 'string' },
41
51
  force: { type: 'boolean', default: false },
42
52
  };
53
+ const HOOKS_OPTIONS = {
54
+ 'dry-run': { type: 'boolean', default: false },
55
+ harness: { type: 'string' },
56
+ };
57
+ const GATE_OPTIONS = {
58
+ 'if-dirty': { type: 'boolean', default: false },
59
+ harness: { type: 'string' },
60
+ };
43
61
  const HELP_TEXT = `checkride — an agent harness for TypeScript repositories
44
62
 
45
63
  Usage: checkride [command] [options]
46
64
 
47
65
  Commands:
48
66
  (default) Run the checks. Exit 0 pass / 1 fail / 2 error.
49
- init Set up a project (new or existing — auto-detected). Writes a
50
- Claude Code Stop hook (--no-hook to skip). New mode refuses to
67
+ init Set up a project (new or existing — auto-detected). Writes the
68
+ agent stop-gate hooks (--no-hook to skip). New mode refuses to
51
69
  overwrite existing files (--force to override). Existing mode:
52
70
  --baseline grandfathers current debt.
53
71
  doctor Verify the environment and every slot's status (read-only).
54
72
  fix Run every active adapter's fix command.
55
73
  baseline Record current diagnostics as a committed baseline.
56
- agent-setup Add the AGENTS.md stanza + Claude Code Stop hook to an
57
- existing repo (--no-hook to skip the hook).
74
+ agent-setup Add the AGENTS.md stanza + agent hooks to an existing repo
75
+ (--hook <a,b> to select; --no-hook to skip them all;
76
+ --remove-hook <a,b> to tear installed ones back out;
77
+ --harness <a,b> to pick the harnesses; --force to refresh a
78
+ stanza carrying local edits).
79
+ hooks Install or remove agent hooks on their own, without touching
80
+ AGENTS.md: \`hooks add [a,b]\`, \`hooks remove <a,b>\`.
81
+ gate Run the check script as a stop gate and answer in a harness's
82
+ hook protocol. Invoked by the generated hook scripts.
83
+ triage Triage a red gate: run it, then read .check/ as a bounded
84
+ report. Takes an optional repo path.
85
+ qa Read the quality artifacts (mutation, dead, dupes, health)
86
+ a previous run left. Takes an optional repo path.
58
87
 
59
88
  Run options:
60
89
  --only <a,b> Run only these slots
@@ -80,6 +109,8 @@ Usage: checkride init [options]
80
109
  New project (no package.json): scaffolds a full project. Refuses to overwrite
81
110
  existing files unless --force.
82
111
  Existing project: adopts detectable slots; --baseline grandfathers current debt.
112
+ Either mode refuses (exit 2) rather than overwrite an AGENTS.md stanza that has
113
+ been edited since checkride wrote it.
83
114
 
84
115
  Options:
85
116
  --shape <s> Project shape: flat | monorepo | hybrid (new mode; default flat)
@@ -89,15 +120,82 @@ Options:
89
120
  --author <a> Package author (new mode)
90
121
  --add <a,b> Scaffold blessed configs for empty slots (existing mode)
91
122
  --baseline Grandfather currently-failing slots into a baseline (existing mode)
92
- --force Overwrite existing files instead of refusing (new mode)
93
- --no-hook Skip writing the Claude Code Stop hook
123
+ --force Overwrite instead of refusing: existing files (new mode), or
124
+ an AGENTS.md stanza carrying local edits (existing mode)
125
+ --hook <a,b> Write only these hooks (${HOOK_NAMES.join(' | ')}; default all)
126
+ --no-hook Skip writing the agent hooks entirely
127
+ --remove-hook <a,b> Remove these already-installed hooks (config entry +
128
+ generated script). Combine with --no-hook to remove without
129
+ refreshing the others. Cannot name a hook --hook also names.
130
+ --harness <a,b> Write hooks for these harnesses (${HARNESS_NAMES.join(' | ')};
131
+ default: claude, plus cursor when .cursor/ exists)
94
132
  --dry-run Plan only; write nothing
95
133
  -h, --help Show this help
96
134
 
135
+ Docs: https://github.com/robmclarty/checkride#readme
136
+ `;
137
+ const GATE_HELP_TEXT = `checkride gate — run the check script as an agent stop gate
138
+
139
+ Usage: checkride gate [options]
140
+
141
+ Runs \`<pm> run check --strict --digest\` and reports the verdict in the calling
142
+ harness's stop-hook protocol. The generated hook scripts invoke this; you rarely
143
+ run it by hand.
144
+
145
+ Options:
146
+ --harness <h> Protocol to answer in (${HARNESS_NAMES.join(' | ')}; default claude)
147
+ --if-dirty Skip the run when .check/.dirty is absent (no edits this turn)
148
+ -h, --help Show this help
149
+
150
+ Config:
151
+ A \`gate\` key in checkride.config.json narrows what the stop hook runs
152
+ (\`only\`, \`skip\`, \`changed\`) when the full check is too slow to pay for on
153
+ every turn. Every verdict then says so — a narrowed green is never reported
154
+ as a full one.
155
+
156
+ Environment:
157
+ CHECKRIDE_NODE_BIN A bin directory to put in front of the check run's PATH,
158
+ or \`off\` to disable checkride's Node-pin alignment.
159
+
160
+ Three verdicts: green, red, and "could not run" — the last for a package manager
161
+ that refused to start the check script (an engines.node pin the hook's Node does
162
+ not satisfy, most often). It blocks like a red, but nothing ran and no artifact
163
+ describes the turn, so it names the cause instead of naming a file.
164
+
165
+ Exit codes differ by harness, because the harnesses differ: claude blocks on
166
+ exit 2 and reads stderr; cursor reads {"followup_message": …} on stdout and
167
+ treats any non-zero exit as a broken hook, so it always exits 0.
168
+
169
+ Docs: https://github.com/robmclarty/checkride#readme
170
+ `;
171
+ const HOOKS_HELP_TEXT = `checkride hooks — install or remove agent hooks, and nothing else
172
+
173
+ Usage: checkride hooks add [a,b] [options]
174
+ checkride hooks remove <a,b> [options]
175
+
176
+ Writes or tears out the harness config entries and the generated scripts for the
177
+ named hooks (${HOOK_NAMES.join(' | ')}). It never reads or writes AGENTS.md, so no
178
+ state of that file can block it and no run of it can change that file — which is
179
+ what separates it from \`agent-setup\`, where the hooks ride along with the stanza,
180
+ the check alias, and the Cursor skills.
181
+
182
+ \`add\` defaults to every hook. \`remove\` requires an explicit list, so a bare
183
+ command cannot silently tear out the gate.
184
+
185
+ Options:
186
+ --harness <a,b> Act on these harnesses (${HARNESS_NAMES.join(' | ')};
187
+ default: claude, plus cursor when .cursor/ exists)
188
+ --dry-run Report what would change without writing
189
+ -h, --help Show this help
190
+
97
191
  Docs: https://github.com/robmclarty/checkride#readme
98
192
  `;
99
193
  /** Per-command `--help` text, falling back to the global help. */
100
- const COMMAND_HELP = { init: INIT_HELP_TEXT };
194
+ const COMMAND_HELP = {
195
+ init: INIT_HELP_TEXT,
196
+ gate: GATE_HELP_TEXT,
197
+ hooks: HOOKS_HELP_TEXT,
198
+ };
101
199
  function commandHelp(command) {
102
200
  return COMMAND_HELP[command] ?? HELP_TEXT;
103
201
  }
@@ -127,10 +225,26 @@ function readVersion() {
127
225
  return '0.0.0';
128
226
  }
129
227
  }
130
- function parseList(value) {
131
- if (!value)
228
+ /**
229
+ * Parse a comma-separated list flag. Absent (`undefined`) is `null`, so the
230
+ * caller applies its own default.
231
+ *
232
+ * A flag that was *passed* but names nothing after trimming is a usage error,
233
+ * never an empty list. `--only ,` used to parse to `[]`, which is truthy, so
234
+ * `selectChecks` filtered every check out and `validateSelection` found no
235
+ * unknown name to complain about: the run exited 0 having verified nothing —
236
+ * exactly the vacuous green that validation exists to prevent. The two empty
237
+ * spellings also disagreed (`--only ''` ran *everything*, `--only ,` ran
238
+ * nothing); both are now exit 2.
239
+ */
240
+ function parseList(value, flag) {
241
+ if (value === undefined)
132
242
  return null;
133
- return value.split(',').map((s) => s.trim()).filter(Boolean);
243
+ const names = value.split(',').map((s) => s.trim()).filter(Boolean);
244
+ if (names.length === 0) {
245
+ throw new Error(`--${flag} was passed with no names (got ${JSON.stringify(value)})`);
246
+ }
247
+ return names;
134
248
  }
135
249
  /**
136
250
  * Parse `--concurrency <n>` into a positive integer, or `undefined` when the flag
@@ -168,9 +282,9 @@ export function parseCliArgs(argv) {
168
282
  changed: values.changed,
169
283
  digest: values.digest,
170
284
  strict: values.strict,
171
- only: parseList(values.only),
172
- skip: parseList(values.skip),
173
- include: parseList(values.include),
285
+ only: parseList(values.only, 'only'),
286
+ skip: parseList(values.skip, 'skip'),
287
+ include: parseList(values.include, 'include'),
174
288
  // Omitted when absent, so the orchestrator's auto default applies (exact
175
289
  // optional types: an explicit `undefined` is not the same as absent).
176
290
  ...(concurrency !== undefined ? { concurrency } : {}),
@@ -184,6 +298,46 @@ function asShape(value) {
184
298
  return value;
185
299
  throw new Error(`invalid --shape '${value}' (expected flat | monorepo | hybrid)`);
186
300
  }
301
+ /**
302
+ * Parse `--hook <a,b>` / `--remove-hook <a,b>` against the hook registry; an
303
+ * unknown name is a usage error naming the valid set. `flag` is the one being
304
+ * parsed, so the error points at the flag the user actually typed.
305
+ */
306
+ function asHooks(value, flag = 'hook') {
307
+ const names = parseList(value, flag);
308
+ if (!names)
309
+ return undefined;
310
+ return names.map((name) => {
311
+ const hit = HOOK_NAMES.find((h) => h === name);
312
+ if (hit === undefined) {
313
+ throw new Error(`invalid --${flag} '${name}' (expected ${HOOK_NAMES.join(' | ')})`);
314
+ }
315
+ return hit;
316
+ });
317
+ }
318
+ /** Parse `--harness <a,b>` against the harness registry; an unknown name is a usage error. */
319
+ function asHarnesses(value) {
320
+ const names = parseList(value, 'harness');
321
+ if (!names)
322
+ return undefined;
323
+ return names.map((name) => {
324
+ const hit = HARNESS_NAMES.find((h) => h === name);
325
+ if (hit === undefined) {
326
+ throw new Error(`invalid --harness '${name}' (expected ${HARNESS_NAMES.join(' | ')})`);
327
+ }
328
+ return hit;
329
+ });
330
+ }
331
+ /** Parse the single-valued `--harness <h>` on `gate`. */
332
+ function asHarness(value) {
333
+ const names = asHarnesses(value);
334
+ if (!names)
335
+ return undefined;
336
+ if (names.length !== 1) {
337
+ throw new Error(`invalid --harness '${value}' (gate answers one harness at a time)`);
338
+ }
339
+ return names[0];
340
+ }
187
341
  /** Parse `init` arguments into init options. */
188
342
  export function parseInitArgs(argv) {
189
343
  const { rest } = detectCommand(argv);
@@ -206,9 +360,25 @@ export function parseInitArgs(argv) {
206
360
  opts.baseline = true;
207
361
  if (values['no-hook'])
208
362
  opts.hook = false;
363
+ const hooks = asHooks(values.hook);
364
+ if (hooks)
365
+ opts.hooks = hooks;
366
+ const removeHooks = asHooks(values['remove-hook'], 'remove-hook');
367
+ if (removeHooks) {
368
+ // Writing and removing the same hook has no coherent reading, and silently
369
+ // picking one would leave the user's repo in the state they did not ask for.
370
+ const both = removeHooks.filter((h) => hooks?.includes(h));
371
+ if (both.length > 0) {
372
+ throw new Error(`'${both.join(', ')}' named by both --hook and --remove-hook`);
373
+ }
374
+ opts.removeHooks = removeHooks;
375
+ }
376
+ const harnesses = asHarnesses(values.harness);
377
+ if (harnesses)
378
+ opts.harnesses = harnesses;
209
379
  if (values.force)
210
380
  opts.force = true;
211
- const add = parseList(values.add);
381
+ const add = parseList(values.add, 'add');
212
382
  if (add)
213
383
  opts.add = add;
214
384
  return opts;
@@ -245,11 +415,78 @@ async function dispatchAgentSetup(argv, deps) {
245
415
  const opts = { cwd: deps.cwd, stdout: deps.stdout };
246
416
  if (parsed.hook !== undefined)
247
417
  opts.hook = parsed.hook;
418
+ if (parsed.hooks)
419
+ opts.hooks = parsed.hooks;
420
+ if (parsed.removeHooks)
421
+ opts.removeHooks = parsed.removeHooks;
422
+ if (parsed.harnesses)
423
+ opts.harnesses = parsed.harnesses;
248
424
  if (parsed.dryRun)
249
425
  opts.dryRun = true;
426
+ if (parsed.force)
427
+ opts.force = true;
250
428
  const result = await runAgentSetup(opts);
251
429
  return result.exitCode;
252
430
  }
431
+ /**
432
+ * Parse `hooks <add|remove> [a,b]` into options.
433
+ *
434
+ * The hook names are a positional rather than a flag: the command exists to do
435
+ * one thing to a named set, and `checkride hooks remove protect` reads the way
436
+ * the user thinks about it. An unknown action or name is a usage error naming
437
+ * the valid set, the same rule `--hook` follows.
438
+ */
439
+ export function parseHooksArgs(argv) {
440
+ const { rest } = detectCommand(argv);
441
+ const { values, positionals } = parseArgs({ args: rest, allowPositionals: true, options: HOOKS_OPTIONS });
442
+ const [action, ...names] = positionals;
443
+ if (action !== 'add' && action !== 'remove') {
444
+ throw new Error(`hooks: expected 'add' or 'remove'${action === undefined ? '' : `, got '${action}'`}`);
445
+ }
446
+ // Only parse a list that is actually there: an empty one is not a malformed
447
+ // `--hook`, it is "no names given", which `runHooks` answers per action.
448
+ const hooks = names.length > 0 ? asHooks(names.join(','), 'hook') : undefined;
449
+ const harnesses = asHarnesses(values.harness);
450
+ return {
451
+ action,
452
+ ...(hooks ? { hooks } : {}),
453
+ ...(harnesses ? { harnesses } : {}),
454
+ ...(values['dry-run'] ? { dryRun: true } : {}),
455
+ };
456
+ }
457
+ async function dispatchHooks(argv, deps) {
458
+ const result = await runHooks({ ...parseHooksArgs(argv), cwd: deps.cwd, stdout: deps.stdout });
459
+ return result.exitCode;
460
+ }
461
+ async function dispatchGate(argv, deps) {
462
+ const { rest } = detectCommand(argv);
463
+ const { values } = parseArgs({ args: rest, allowPositionals: true, options: GATE_OPTIONS });
464
+ const harness = asHarness(values.harness);
465
+ const result = await runGate({
466
+ cwd: deps.cwd,
467
+ ifDirty: values['if-dirty'],
468
+ stdout: deps.stdout,
469
+ stderr: deps.stderr,
470
+ ...(harness ? { harness } : {}),
471
+ });
472
+ return result.exitCode;
473
+ }
474
+ /** The optional repo-path positional the reader commands take. */
475
+ function readerCwd(argv, deps) {
476
+ const { rest } = detectCommand(argv);
477
+ const { positionals } = parseArgs({ args: rest, allowPositionals: true, options: {} });
478
+ return positionals[0] ?? deps.cwd;
479
+ }
480
+ async function dispatchTriage(argv, deps) {
481
+ const report = await triage(readerCwd(argv, deps), realEnv);
482
+ deps.stdout.write(`${renderTriage(report)}\n`);
483
+ return 0;
484
+ }
485
+ async function dispatchQa(argv, deps) {
486
+ const report = await qaExtract(readerCwd(argv, deps));
487
+ deps.stdout.write(`${renderQa(report)}\n`);
488
+ return 0;
489
+ }
253
490
  /** Dispatch a CLI invocation; returns the process exit code. */
254
491
  export async function runCli(argv, deps) {
255
492
  const { command } = detectCommand(argv);
@@ -268,6 +505,10 @@ export async function runCli(argv, deps) {
268
505
  fix: dispatchFix,
269
506
  baseline: dispatchBaseline,
270
507
  'agent-setup': dispatchAgentSetup,
508
+ hooks: dispatchHooks,
509
+ gate: dispatchGate,
510
+ triage: dispatchTriage,
511
+ qa: dispatchQa,
271
512
  };
272
513
  const handler = dispatch[command];
273
514
  if (!handler) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}