@paths.design/caws-cli 10.2.0 → 11.1.0

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 (493) hide show
  1. package/README.md +125 -374
  2. package/dist/index.js +45 -787
  3. package/dist/init/harness-detect.d.ts +18 -0
  4. package/dist/init/harness-detect.d.ts.map +1 -0
  5. package/dist/init/harness-detect.js +90 -0
  6. package/dist/init/harness-detect.js.map +1 -0
  7. package/dist/init/hook-install.d.ts +53 -0
  8. package/dist/init/hook-install.d.ts.map +1 -0
  9. package/dist/init/hook-install.js +421 -0
  10. package/dist/init/hook-install.js.map +1 -0
  11. package/dist/init/hook-packs/manifest-claude-code.d.ts +4 -0
  12. package/dist/init/hook-packs/manifest-claude-code.d.ts.map +1 -0
  13. package/dist/init/hook-packs/manifest-claude-code.js +190 -0
  14. package/dist/init/hook-packs/manifest-claude-code.js.map +1 -0
  15. package/dist/init/hook-packs/register.d.ts +19 -0
  16. package/dist/init/hook-packs/register.d.ts.map +1 -0
  17. package/dist/init/hook-packs/register.js +37 -0
  18. package/dist/init/hook-packs/register.js.map +1 -0
  19. package/dist/init/hook-packs/types.d.ts +123 -0
  20. package/dist/init/hook-packs/types.d.ts.map +1 -0
  21. package/dist/init/hook-packs/types.js +29 -0
  22. package/dist/init/hook-packs/types.js.map +1 -0
  23. package/dist/shell/binding/resolve-binding.d.ts +4 -0
  24. package/dist/shell/binding/resolve-binding.d.ts.map +1 -0
  25. package/dist/shell/binding/resolve-binding.js +228 -0
  26. package/dist/shell/binding/resolve-binding.js.map +1 -0
  27. package/dist/shell/binding/types.d.ts +42 -0
  28. package/dist/shell/binding/types.d.ts.map +1 -0
  29. package/dist/shell/binding/types.js +21 -0
  30. package/dist/shell/binding/types.js.map +1 -0
  31. package/dist/shell/commands/claim.d.ts +14 -0
  32. package/dist/shell/commands/claim.d.ts.map +1 -0
  33. package/dist/shell/commands/claim.js +197 -0
  34. package/dist/shell/commands/claim.js.map +1 -0
  35. package/dist/shell/commands/doctor.d.ts +13 -0
  36. package/dist/shell/commands/doctor.d.ts.map +1 -0
  37. package/dist/shell/commands/doctor.js +97 -0
  38. package/dist/shell/commands/doctor.js.map +1 -0
  39. package/dist/shell/commands/evidence.d.ts +28 -0
  40. package/dist/shell/commands/evidence.d.ts.map +1 -0
  41. package/dist/shell/commands/evidence.js +166 -0
  42. package/dist/shell/commands/evidence.js.map +1 -0
  43. package/dist/shell/commands/gates.d.ts +19 -0
  44. package/dist/shell/commands/gates.d.ts.map +1 -0
  45. package/dist/shell/commands/gates.js +208 -0
  46. package/dist/shell/commands/gates.js.map +1 -0
  47. package/dist/shell/commands/init.d.ts +17 -0
  48. package/dist/shell/commands/init.d.ts.map +1 -0
  49. package/dist/shell/commands/init.js +168 -0
  50. package/dist/shell/commands/init.js.map +1 -0
  51. package/dist/shell/commands/scope.d.ts +11 -0
  52. package/dist/shell/commands/scope.d.ts.map +1 -0
  53. package/dist/shell/commands/scope.js +92 -0
  54. package/dist/shell/commands/scope.js.map +1 -0
  55. package/dist/shell/commands/specs.d.ts +41 -0
  56. package/dist/shell/commands/specs.d.ts.map +1 -0
  57. package/dist/shell/commands/specs.js +264 -0
  58. package/dist/shell/commands/specs.js.map +1 -0
  59. package/dist/shell/commands/status.d.ts +15 -0
  60. package/dist/shell/commands/status.d.ts.map +1 -0
  61. package/dist/shell/commands/status.js +106 -0
  62. package/dist/shell/commands/status.js.map +1 -0
  63. package/dist/shell/commands/waiver.d.ts +38 -0
  64. package/dist/shell/commands/waiver.d.ts.map +1 -0
  65. package/dist/shell/commands/waiver.js +240 -0
  66. package/dist/shell/commands/waiver.js.map +1 -0
  67. package/dist/shell/commands/worktree.d.ts +38 -0
  68. package/dist/shell/commands/worktree.d.ts.map +1 -0
  69. package/dist/shell/commands/worktree.js +286 -0
  70. package/dist/shell/commands/worktree.js.map +1 -0
  71. package/dist/shell/gates/disposition.d.ts +23 -0
  72. package/dist/shell/gates/disposition.d.ts.map +1 -0
  73. package/dist/shell/gates/disposition.js +117 -0
  74. package/dist/shell/gates/disposition.js.map +1 -0
  75. package/dist/shell/gates/gate-result-contract.d.ts +39 -0
  76. package/dist/shell/gates/gate-result-contract.d.ts.map +1 -0
  77. package/dist/shell/gates/gate-result-contract.js +150 -0
  78. package/dist/shell/gates/gate-result-contract.js.map +1 -0
  79. package/dist/shell/gates/local-evaluators/budget-limit.d.ts +24 -0
  80. package/dist/shell/gates/local-evaluators/budget-limit.d.ts.map +1 -0
  81. package/dist/shell/gates/local-evaluators/budget-limit.js +67 -0
  82. package/dist/shell/gates/local-evaluators/budget-limit.js.map +1 -0
  83. package/dist/shell/gates/local-evaluators/diff-helpers.d.ts +25 -0
  84. package/dist/shell/gates/local-evaluators/diff-helpers.d.ts.map +1 -0
  85. package/dist/shell/gates/local-evaluators/diff-helpers.js +74 -0
  86. package/dist/shell/gates/local-evaluators/diff-helpers.js.map +1 -0
  87. package/dist/shell/gates/local-evaluators/index.d.ts +28 -0
  88. package/dist/shell/gates/local-evaluators/index.d.ts.map +1 -0
  89. package/dist/shell/gates/local-evaluators/index.js +67 -0
  90. package/dist/shell/gates/local-evaluators/index.js.map +1 -0
  91. package/dist/shell/gates/local-evaluators/scope-boundary.d.ts +23 -0
  92. package/dist/shell/gates/local-evaluators/scope-boundary.d.ts.map +1 -0
  93. package/dist/shell/gates/local-evaluators/scope-boundary.js +67 -0
  94. package/dist/shell/gates/local-evaluators/scope-boundary.js.map +1 -0
  95. package/dist/shell/gates/local-evaluators/spec-completeness.d.ts +12 -0
  96. package/dist/shell/gates/local-evaluators/spec-completeness.d.ts.map +1 -0
  97. package/dist/shell/gates/local-evaluators/spec-completeness.js +73 -0
  98. package/dist/shell/gates/local-evaluators/spec-completeness.js.map +1 -0
  99. package/dist/shell/gates/quality-gates-adapter.d.ts +55 -0
  100. package/dist/shell/gates/quality-gates-adapter.d.ts.map +1 -0
  101. package/dist/shell/gates/quality-gates-adapter.js +161 -0
  102. package/dist/shell/gates/quality-gates-adapter.js.map +1 -0
  103. package/dist/shell/gates/waiver-filter.d.ts +58 -0
  104. package/dist/shell/gates/waiver-filter.d.ts.map +1 -0
  105. package/dist/shell/gates/waiver-filter.js +119 -0
  106. package/dist/shell/gates/waiver-filter.js.map +1 -0
  107. package/dist/shell/index.d.ts +54 -0
  108. package/dist/shell/index.d.ts.map +1 -0
  109. package/dist/shell/index.js +85 -0
  110. package/dist/shell/index.js.map +1 -0
  111. package/dist/shell/register.d.ts +11 -0
  112. package/dist/shell/register.d.ts.map +1 -0
  113. package/dist/shell/register.js +464 -0
  114. package/dist/shell/register.js.map +1 -0
  115. package/dist/shell/render/claim.d.ts +22 -0
  116. package/dist/shell/render/claim.d.ts.map +1 -0
  117. package/dist/shell/render/claim.js +75 -0
  118. package/dist/shell/render/claim.js.map +1 -0
  119. package/dist/shell/render/decision.d.ts +15 -0
  120. package/dist/shell/render/decision.d.ts.map +1 -0
  121. package/dist/shell/render/decision.js +66 -0
  122. package/dist/shell/render/decision.js.map +1 -0
  123. package/dist/shell/render/diagnostic.d.ts +19 -0
  124. package/dist/shell/render/diagnostic.d.ts.map +1 -0
  125. package/dist/shell/render/diagnostic.js +76 -0
  126. package/dist/shell/render/diagnostic.js.map +1 -0
  127. package/dist/shell/render/finding.d.ts +15 -0
  128. package/dist/shell/render/finding.d.ts.map +1 -0
  129. package/dist/shell/render/finding.js +57 -0
  130. package/dist/shell/render/finding.js.map +1 -0
  131. package/dist/shell/render/gates.d.ts +3 -0
  132. package/dist/shell/render/gates.d.ts.map +1 -0
  133. package/dist/shell/render/gates.js +56 -0
  134. package/dist/shell/render/gates.js.map +1 -0
  135. package/dist/shell/render/init-hook-pack.d.ts +16 -0
  136. package/dist/shell/render/init-hook-pack.d.ts.map +1 -0
  137. package/dist/shell/render/init-hook-pack.js +206 -0
  138. package/dist/shell/render/init-hook-pack.js.map +1 -0
  139. package/dist/shell/render/init.d.ts +11 -0
  140. package/dist/shell/render/init.d.ts.map +1 -0
  141. package/dist/shell/render/init.js +32 -0
  142. package/dist/shell/render/init.js.map +1 -0
  143. package/dist/shell/render/status.d.ts +26 -0
  144. package/dist/shell/render/status.d.ts.map +1 -0
  145. package/dist/shell/render/status.js +143 -0
  146. package/dist/shell/render/status.js.map +1 -0
  147. package/dist/shell/render/waiver.d.ts +21 -0
  148. package/dist/shell/render/waiver.d.ts.map +1 -0
  149. package/dist/shell/render/waiver.js +94 -0
  150. package/dist/shell/render/waiver.js.map +1 -0
  151. package/dist/shell/rules.d.ts +37 -0
  152. package/dist/shell/rules.d.ts.map +1 -0
  153. package/dist/shell/rules.js +51 -0
  154. package/dist/shell/rules.js.map +1 -0
  155. package/dist/shell/session/actor.d.ts +14 -0
  156. package/dist/shell/session/actor.d.ts.map +1 -0
  157. package/dist/shell/session/actor.js +34 -0
  158. package/dist/shell/session/actor.js.map +1 -0
  159. package/dist/shell/session/resolve-session.d.ts +5 -0
  160. package/dist/shell/session/resolve-session.d.ts.map +1 -0
  161. package/dist/shell/session/resolve-session.js +239 -0
  162. package/dist/shell/session/resolve-session.js.map +1 -0
  163. package/dist/shell/session/types.d.ts +56 -0
  164. package/dist/shell/session/types.d.ts.map +1 -0
  165. package/dist/shell/session/types.js +15 -0
  166. package/dist/shell/session/types.js.map +1 -0
  167. package/dist/store/agents-store.d.ts +3 -0
  168. package/dist/store/agents-store.d.ts.map +1 -0
  169. package/dist/store/agents-store.js +63 -0
  170. package/dist/store/agents-store.js.map +1 -0
  171. package/dist/store/apply-patch.d.ts +16 -0
  172. package/dist/store/apply-patch.d.ts.map +1 -0
  173. package/dist/store/apply-patch.js +191 -0
  174. package/dist/store/apply-patch.js.map +1 -0
  175. package/dist/store/atomic-write.d.ts +34 -0
  176. package/dist/store/atomic-write.d.ts.map +1 -0
  177. package/dist/store/atomic-write.js +174 -0
  178. package/dist/store/atomic-write.js.map +1 -0
  179. package/dist/store/doctor-snapshot.d.ts +20 -0
  180. package/dist/store/doctor-snapshot.d.ts.map +1 -0
  181. package/dist/store/doctor-snapshot.js +176 -0
  182. package/dist/store/doctor-snapshot.js.map +1 -0
  183. package/dist/store/events-store.d.ts +33 -0
  184. package/dist/store/events-store.d.ts.map +1 -0
  185. package/dist/store/events-store.js +297 -0
  186. package/dist/store/events-store.js.map +1 -0
  187. package/dist/store/index.d.ts +21 -0
  188. package/dist/store/index.d.ts.map +1 -0
  189. package/dist/store/index.js +47 -0
  190. package/dist/store/index.js.map +1 -0
  191. package/dist/store/init-store.d.ts +21 -0
  192. package/dist/store/init-store.d.ts.map +1 -0
  193. package/dist/store/init-store.js +295 -0
  194. package/dist/store/init-store.js.map +1 -0
  195. package/dist/store/json-store.d.ts +3 -0
  196. package/dist/store/json-store.d.ts.map +1 -0
  197. package/dist/store/json-store.js +65 -0
  198. package/dist/store/json-store.js.map +1 -0
  199. package/dist/store/lifecycle-lock.d.ts +34 -0
  200. package/dist/store/lifecycle-lock.d.ts.map +1 -0
  201. package/dist/store/lifecycle-lock.js +168 -0
  202. package/dist/store/lifecycle-lock.js.map +1 -0
  203. package/dist/store/lifecycle-transaction.d.ts +79 -0
  204. package/dist/store/lifecycle-transaction.d.ts.map +1 -0
  205. package/dist/store/lifecycle-transaction.js +319 -0
  206. package/dist/store/lifecycle-transaction.js.map +1 -0
  207. package/dist/store/policy-store.d.ts +3 -0
  208. package/dist/store/policy-store.d.ts.map +1 -0
  209. package/dist/store/policy-store.js +65 -0
  210. package/dist/store/policy-store.js.map +1 -0
  211. package/dist/store/repo-root.d.ts +46 -0
  212. package/dist/store/repo-root.d.ts.map +1 -0
  213. package/dist/store/repo-root.js +145 -0
  214. package/dist/store/repo-root.js.map +1 -0
  215. package/dist/store/rules.d.ts +69 -0
  216. package/dist/store/rules.d.ts.map +1 -0
  217. package/dist/store/rules.js +95 -0
  218. package/dist/store/rules.js.map +1 -0
  219. package/dist/store/specs-store.d.ts +3 -0
  220. package/dist/store/specs-store.d.ts.map +1 -0
  221. package/dist/store/specs-store.js +131 -0
  222. package/dist/store/specs-store.js.map +1 -0
  223. package/dist/store/specs-writer.d.ts +61 -0
  224. package/dist/store/specs-writer.d.ts.map +1 -0
  225. package/dist/store/specs-writer.js +506 -0
  226. package/dist/store/specs-writer.js.map +1 -0
  227. package/dist/store/types.d.ts +84 -0
  228. package/dist/store/types.d.ts.map +1 -0
  229. package/dist/store/types.js +14 -0
  230. package/dist/store/types.js.map +1 -0
  231. package/dist/store/waivers-store.d.ts +25 -0
  232. package/dist/store/waivers-store.d.ts.map +1 -0
  233. package/dist/store/waivers-store.js +232 -0
  234. package/dist/store/waivers-store.js.map +1 -0
  235. package/dist/store/worktrees-store.d.ts +3 -0
  236. package/dist/store/worktrees-store.d.ts.map +1 -0
  237. package/dist/store/worktrees-store.js +62 -0
  238. package/dist/store/worktrees-store.js.map +1 -0
  239. package/dist/store/worktrees-writer.d.ts +77 -0
  240. package/dist/store/worktrees-writer.d.ts.map +1 -0
  241. package/dist/store/worktrees-writer.js +674 -0
  242. package/dist/store/worktrees-writer.js.map +1 -0
  243. package/dist/store/yaml-patch.d.ts +7 -0
  244. package/dist/store/yaml-patch.d.ts.map +1 -0
  245. package/dist/store/yaml-patch.js +250 -0
  246. package/dist/store/yaml-patch.js.map +1 -0
  247. package/dist/store/yaml-store.d.ts +9 -0
  248. package/dist/store/yaml-store.d.ts.map +1 -0
  249. package/dist/store/yaml-store.js +121 -0
  250. package/dist/store/yaml-store.js.map +1 -0
  251. package/package.json +15 -13
  252. package/dist/budget-derivation.js +0 -751
  253. package/dist/cicd-optimizer.js +0 -504
  254. package/dist/commands/agents.js +0 -124
  255. package/dist/commands/archive.js +0 -500
  256. package/dist/commands/burnup.js +0 -198
  257. package/dist/commands/diagnose.js +0 -525
  258. package/dist/commands/evaluate.js +0 -314
  259. package/dist/commands/gates.js +0 -149
  260. package/dist/commands/init.js +0 -857
  261. package/dist/commands/iterate.js +0 -417
  262. package/dist/commands/mode.js +0 -269
  263. package/dist/commands/parallel.js +0 -242
  264. package/dist/commands/plan.js +0 -438
  265. package/dist/commands/provenance.js +0 -1143
  266. package/dist/commands/quality-monitor.js +0 -284
  267. package/dist/commands/scope.js +0 -264
  268. package/dist/commands/session.js +0 -312
  269. package/dist/commands/sidecar.js +0 -74
  270. package/dist/commands/specs.js +0 -1656
  271. package/dist/commands/status.js +0 -1172
  272. package/dist/commands/templates.js +0 -237
  273. package/dist/commands/tool.js +0 -136
  274. package/dist/commands/tutorial.js +0 -480
  275. package/dist/commands/validate.js +0 -357
  276. package/dist/commands/verify-acs.js +0 -443
  277. package/dist/commands/waivers.js +0 -599
  278. package/dist/commands/workflow.js +0 -243
  279. package/dist/commands/worktree.js +0 -502
  280. package/dist/config/lite-scope.js +0 -158
  281. package/dist/config/modes.js +0 -347
  282. package/dist/constants/spec-types.js +0 -65
  283. package/dist/gates/budget-limit.js +0 -121
  284. package/dist/gates/feedback.js +0 -260
  285. package/dist/gates/format.js +0 -179
  286. package/dist/gates/god-object.js +0 -117
  287. package/dist/gates/pipeline.js +0 -167
  288. package/dist/gates/scope-boundary.js +0 -112
  289. package/dist/gates/spec-completeness.js +0 -109
  290. package/dist/gates/todo-detection.js +0 -205
  291. package/dist/generators/jest-config-generator.js +0 -242
  292. package/dist/generators/working-spec.js +0 -237
  293. package/dist/minimal-cli.js +0 -88
  294. package/dist/parallel/parallel-manager.js +0 -433
  295. package/dist/policy/PolicyManager.js +0 -470
  296. package/dist/scaffold/claude-hooks.js +0 -443
  297. package/dist/scaffold/cursor-hooks.js +0 -177
  298. package/dist/scaffold/git-hooks.js +0 -928
  299. package/dist/scaffold/index.js +0 -794
  300. package/dist/session/session-manager.js +0 -653
  301. package/dist/sidecars/index.js +0 -33
  302. package/dist/sidecars/listeners.js +0 -40
  303. package/dist/sidecars/provenance-summary.js +0 -238
  304. package/dist/sidecars/quality-gaps.js +0 -258
  305. package/dist/sidecars/schema.js +0 -149
  306. package/dist/sidecars/spec-drift.js +0 -151
  307. package/dist/sidecars/waiver-draft.js +0 -176
  308. package/dist/spec/SpecFileManager.js +0 -419
  309. package/dist/templates/.caws/schemas/policy.schema.json +0 -117
  310. package/dist/templates/.caws/schemas/scope.schema.json +0 -52
  311. package/dist/templates/.caws/schemas/waivers.schema.json +0 -106
  312. package/dist/templates/.caws/schemas/working-spec.schema.json +0 -340
  313. package/dist/templates/.caws/schemas/worktrees.schema.json +0 -38
  314. package/dist/templates/.caws/templates/working-spec.template.yml +0 -80
  315. package/dist/templates/.caws/tools/README.md +0 -18
  316. package/dist/templates/.caws/tools/scope-guard.js +0 -203
  317. package/dist/templates/.caws/tools-allow.json +0 -331
  318. package/dist/templates/.caws/waivers.yml +0 -19
  319. package/dist/templates/.claude/README.md +0 -190
  320. package/dist/templates/.claude/hooks/audit.sh +0 -121
  321. package/dist/templates/.claude/hooks/block-dangerous.sh +0 -203
  322. package/dist/templates/.claude/hooks/classify_command.py +0 -592
  323. package/dist/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  324. package/dist/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  325. package/dist/templates/.claude/hooks/naming-check.sh +0 -100
  326. package/dist/templates/.claude/hooks/protected-paths.sh +0 -39
  327. package/dist/templates/.claude/hooks/quality-check.sh +0 -81
  328. package/dist/templates/.claude/hooks/scan-secrets.sh +0 -85
  329. package/dist/templates/.claude/hooks/scope-guard.sh +0 -381
  330. package/dist/templates/.claude/hooks/session-caws-status.sh +0 -117
  331. package/dist/templates/.claude/hooks/session-log.sh +0 -634
  332. package/dist/templates/.claude/hooks/simplification-guard.sh +0 -92
  333. package/dist/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  334. package/dist/templates/.claude/hooks/test_classify_command.py +0 -370
  335. package/dist/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  336. package/dist/templates/.claude/hooks/validate-spec.sh +0 -76
  337. package/dist/templates/.claude/hooks/worktree-guard.sh +0 -220
  338. package/dist/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  339. package/dist/templates/.claude/rules/git-safety.md +0 -26
  340. package/dist/templates/.claude/rules/worktree-isolation.md +0 -101
  341. package/dist/templates/.claude/settings.json +0 -141
  342. package/dist/templates/.cursor/README.md +0 -299
  343. package/dist/templates/.cursor/hooks/audit.sh +0 -55
  344. package/dist/templates/.cursor/hooks/block-dangerous.sh +0 -84
  345. package/dist/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  346. package/dist/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  347. package/dist/templates/.cursor/hooks/format.sh +0 -38
  348. package/dist/templates/.cursor/hooks/naming-check.sh +0 -64
  349. package/dist/templates/.cursor/hooks/scan-secrets.sh +0 -51
  350. package/dist/templates/.cursor/hooks/scope-guard.sh +0 -52
  351. package/dist/templates/.cursor/hooks/session-log.sh +0 -924
  352. package/dist/templates/.cursor/hooks/validate-spec.sh +0 -83
  353. package/dist/templates/.cursor/hooks.json +0 -76
  354. package/dist/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  355. package/dist/templates/.cursor/rules/01-working-style.mdc +0 -50
  356. package/dist/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  357. package/dist/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  358. package/dist/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  359. package/dist/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  360. package/dist/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  361. package/dist/templates/.cursor/rules/07-process-ops.mdc +0 -20
  362. package/dist/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  363. package/dist/templates/.cursor/rules/09-docstrings.mdc +0 -89
  364. package/dist/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  365. package/dist/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  366. package/dist/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  367. package/dist/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  368. package/dist/templates/.cursor/rules/README.md +0 -148
  369. package/dist/templates/.github/copilot-instructions.md +0 -82
  370. package/dist/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  371. package/dist/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  372. package/dist/templates/.junie/guidelines.md +0 -73
  373. package/dist/templates/.vscode/launch.json +0 -17
  374. package/dist/templates/.vscode/settings.json +0 -95
  375. package/dist/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  376. package/dist/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  377. package/dist/templates/CLAUDE.md +0 -196
  378. package/dist/templates/COMMIT_CONVENTIONS.md +0 -86
  379. package/dist/templates/OIDC_SETUP.md +0 -300
  380. package/dist/templates/agents.md +0 -171
  381. package/dist/templates/codemod/README.md +0 -1
  382. package/dist/templates/codemod/test.js +0 -93
  383. package/dist/templates/docs/README.md +0 -151
  384. package/dist/templates/scripts/new_feature.sh +0 -80
  385. package/dist/templates/scripts/quality-gates/check-god-objects.js +0 -146
  386. package/dist/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  387. package/dist/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
  388. package/dist/test-analysis.js +0 -786
  389. package/dist/tool-interface.js +0 -314
  390. package/dist/tool-loader.js +0 -303
  391. package/dist/tool-validator.js +0 -393
  392. package/dist/utils/agent-display.js +0 -210
  393. package/dist/utils/agent-session.js +0 -344
  394. package/dist/utils/async-utils.js +0 -188
  395. package/dist/utils/command-wrapper.js +0 -200
  396. package/dist/utils/event-log.js +0 -584
  397. package/dist/utils/event-renderer.js +0 -521
  398. package/dist/utils/finalization.js +0 -230
  399. package/dist/utils/git-lock.js +0 -119
  400. package/dist/utils/gitignore-updater.js +0 -158
  401. package/dist/utils/ide-detection.js +0 -133
  402. package/dist/utils/lifecycle-events.js +0 -94
  403. package/dist/utils/project-analysis.js +0 -367
  404. package/dist/utils/promise-utils.js +0 -72
  405. package/dist/utils/quality-gates-errors.js +0 -520
  406. package/dist/utils/quality-gates-utils.js +0 -387
  407. package/dist/utils/schema-validator.js +0 -50
  408. package/dist/utils/spec-resolver.js +0 -711
  409. package/dist/utils/typescript-detector.js +0 -369
  410. package/dist/utils/working-state.js +0 -530
  411. package/dist/utils/yaml-validation.js +0 -156
  412. package/dist/validation/spec-validation.js +0 -924
  413. package/dist/waivers-manager.js +0 -732
  414. package/dist/worktree/worktree-manager.js +0 -1735
  415. package/templates/.caws/schemas/policy.schema.json +0 -117
  416. package/templates/.caws/schemas/scope.schema.json +0 -52
  417. package/templates/.caws/schemas/waivers.schema.json +0 -106
  418. package/templates/.caws/schemas/working-spec.schema.json +0 -340
  419. package/templates/.caws/schemas/worktrees.schema.json +0 -38
  420. package/templates/.caws/templates/working-spec.template.yml +0 -80
  421. package/templates/.caws/tools/README.md +0 -18
  422. package/templates/.caws/tools/scope-guard.js +0 -203
  423. package/templates/.caws/tools-allow.json +0 -331
  424. package/templates/.caws/waivers.yml +0 -19
  425. package/templates/.claude/README.md +0 -190
  426. package/templates/.claude/hooks/audit.sh +0 -121
  427. package/templates/.claude/hooks/block-dangerous.sh +0 -203
  428. package/templates/.claude/hooks/classify_command.py +0 -592
  429. package/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  430. package/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  431. package/templates/.claude/hooks/naming-check.sh +0 -100
  432. package/templates/.claude/hooks/protected-paths.sh +0 -39
  433. package/templates/.claude/hooks/quality-check.sh +0 -81
  434. package/templates/.claude/hooks/scan-secrets.sh +0 -85
  435. package/templates/.claude/hooks/scope-guard.sh +0 -381
  436. package/templates/.claude/hooks/session-caws-status.sh +0 -117
  437. package/templates/.claude/hooks/session-log.sh +0 -634
  438. package/templates/.claude/hooks/simplification-guard.sh +0 -92
  439. package/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  440. package/templates/.claude/hooks/test_classify_command.py +0 -370
  441. package/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  442. package/templates/.claude/hooks/validate-spec.sh +0 -76
  443. package/templates/.claude/hooks/worktree-guard.sh +0 -220
  444. package/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  445. package/templates/.claude/rules/git-safety.md +0 -26
  446. package/templates/.claude/rules/worktree-isolation.md +0 -101
  447. package/templates/.claude/settings.json +0 -141
  448. package/templates/.cursor/README.md +0 -299
  449. package/templates/.cursor/hooks/audit.sh +0 -55
  450. package/templates/.cursor/hooks/block-dangerous.sh +0 -84
  451. package/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  452. package/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  453. package/templates/.cursor/hooks/format.sh +0 -38
  454. package/templates/.cursor/hooks/naming-check.sh +0 -64
  455. package/templates/.cursor/hooks/scan-secrets.sh +0 -51
  456. package/templates/.cursor/hooks/scope-guard.sh +0 -52
  457. package/templates/.cursor/hooks/session-log.sh +0 -924
  458. package/templates/.cursor/hooks/validate-spec.sh +0 -83
  459. package/templates/.cursor/hooks.json +0 -76
  460. package/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  461. package/templates/.cursor/rules/01-working-style.mdc +0 -50
  462. package/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  463. package/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  464. package/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  465. package/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  466. package/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  467. package/templates/.cursor/rules/07-process-ops.mdc +0 -20
  468. package/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  469. package/templates/.cursor/rules/09-docstrings.mdc +0 -89
  470. package/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  471. package/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  472. package/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  473. package/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  474. package/templates/.cursor/rules/README.md +0 -148
  475. package/templates/.github/copilot-instructions.md +0 -82
  476. package/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  477. package/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  478. package/templates/.junie/guidelines.md +0 -73
  479. package/templates/.vscode/launch.json +0 -17
  480. package/templates/.vscode/settings.json +0 -95
  481. package/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  482. package/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  483. package/templates/CLAUDE.md +0 -196
  484. package/templates/COMMIT_CONVENTIONS.md +0 -86
  485. package/templates/OIDC_SETUP.md +0 -300
  486. package/templates/agents.md +0 -171
  487. package/templates/codemod/README.md +0 -1
  488. package/templates/codemod/test.js +0 -93
  489. package/templates/docs/README.md +0 -151
  490. package/templates/scripts/new_feature.sh +0 -80
  491. package/templates/scripts/quality-gates/check-god-objects.js +0 -146
  492. package/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  493. package/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
@@ -1,312 +0,0 @@
1
- /**
2
- * @fileoverview CAWS Session CLI Command
3
- * Manages session lifecycle and capsule persistence for multi-agent coordination.
4
- * @author @darianrosebrook
5
- */
6
-
7
- const chalk = require('chalk');
8
- const {
9
- startSession,
10
- checkpointSession,
11
- endSession,
12
- listSessions,
13
- showSession,
14
- getBriefing,
15
- } = require('../session/session-manager');
16
-
17
- /**
18
- * Handle session subcommands
19
- * @param {string} subcommand - Subcommand name
20
- * @param {Object} options - Command options
21
- */
22
- async function sessionCommand(subcommand, options = {}) {
23
- try {
24
- switch (subcommand) {
25
- case 'start':
26
- return handleStart(options);
27
- case 'checkpoint':
28
- return handleCheckpoint(options);
29
- case 'end':
30
- return handleEnd(options);
31
- case 'list':
32
- return handleList(options);
33
- case 'show':
34
- return handleShow(options);
35
- case 'briefing':
36
- return handleBriefing();
37
- default:
38
- console.error(chalk.red(`Unknown session subcommand: ${subcommand}`));
39
- console.log(chalk.blue('Available: start, checkpoint, end, list, show, briefing'));
40
- process.exit(1);
41
- }
42
- } catch (error) {
43
- console.error(chalk.red(error.message));
44
- process.exit(1);
45
- }
46
- }
47
-
48
- function handleStart(options) {
49
- const { role, specId, scope, intent } = options;
50
-
51
- let allowedGlobs = [];
52
- let forbiddenGlobs = [];
53
- if (scope) {
54
- allowedGlobs = scope.split(',').map((s) => s.trim());
55
- }
56
-
57
- console.log(chalk.cyan('Starting CAWS session...'));
58
-
59
- const capsule = startSession({
60
- role,
61
- specId,
62
- allowedGlobs,
63
- forbiddenGlobs,
64
- intent,
65
- });
66
-
67
- console.log(chalk.green('Session started'));
68
- console.log(chalk.gray(` ID: ${capsule.session_id}`));
69
- console.log(chalk.gray(` Role: ${capsule.role}`));
70
- console.log(chalk.gray(` Baseline: ${capsule.base_state.branch} @ ${capsule.base_state.head_rev}`));
71
- if (capsule.spec_id) console.log(chalk.gray(` Spec: ${capsule.spec_id}`));
72
- if (capsule.base_state.workspace_fingerprint.dirty) {
73
- console.log(
74
- chalk.yellow(
75
- ` Warning: Dirty tree: ${capsule.base_state.workspace_fingerprint.paths_touched.length} file(s) uncommitted`
76
- )
77
- );
78
- }
79
- if (capsule.work_summary.intent) {
80
- console.log(chalk.gray(` Intent: ${capsule.work_summary.intent}`));
81
- }
82
- }
83
-
84
- function handleCheckpoint(options) {
85
- const { sessionId, intent } = options;
86
-
87
- // Parse JSON fields if provided
88
- let testsRun = [];
89
- let knownIssues = [];
90
- let pathsTouched = [];
91
-
92
- if (options.tests) {
93
- try {
94
- testsRun = JSON.parse(options.tests);
95
- } catch {
96
- console.error(chalk.red('--tests must be valid JSON array'));
97
- process.exit(1);
98
- }
99
- }
100
-
101
- if (options.issues) {
102
- try {
103
- knownIssues = JSON.parse(options.issues);
104
- } catch {
105
- console.error(chalk.red('--issues must be valid JSON array'));
106
- process.exit(1);
107
- }
108
- }
109
-
110
- if (options.paths) {
111
- pathsTouched = options.paths.split(',').map((p) => p.trim());
112
- }
113
-
114
- const capsule = checkpointSession({
115
- sessionId,
116
- intent,
117
- pathsTouched: pathsTouched.length > 0 ? pathsTouched : undefined,
118
- testsRun: testsRun.length > 0 ? testsRun : undefined,
119
- knownIssues: knownIssues.length > 0 ? knownIssues : undefined,
120
- });
121
-
122
- console.log(chalk.green('Checkpoint recorded'));
123
- console.log(chalk.gray(` Session: ${capsule.session_id}`));
124
- console.log(chalk.gray(` Commits: ${capsule.work_summary.commits.length}`));
125
- console.log(chalk.gray(` Files: ${capsule.work_summary.paths_touched.length}`));
126
- console.log(chalk.gray(` Tests: ${capsule.verification.tests_run.length} recorded`));
127
- }
128
-
129
- function handleEnd(options) {
130
- const { sessionId } = options;
131
-
132
- let nextActions = [];
133
- let riskNotes = [];
134
-
135
- if (options.nextActions) {
136
- nextActions = options.nextActions.split('|').map((a) => a.trim());
137
- }
138
- if (options.riskNotes) {
139
- riskNotes = options.riskNotes.split('|').map((r) => r.trim());
140
- }
141
-
142
- const capsule = endSession({
143
- sessionId,
144
- nextActions: nextActions.length > 0 ? nextActions : undefined,
145
- riskNotes: riskNotes.length > 0 ? riskNotes : undefined,
146
- });
147
-
148
- console.log(chalk.green('Session ended'));
149
- console.log(chalk.gray(` ID: ${capsule.session_id}`));
150
- console.log(chalk.gray(` Duration: ${formatDuration(capsule.started_at, capsule.ended_at)}`));
151
- console.log(chalk.gray(` Commits: ${capsule.work_summary.commits.length}`));
152
- console.log(chalk.gray(` Files: ${capsule.work_summary.paths_touched.length}`));
153
-
154
- if (capsule.handoff.next_actions.length > 0) {
155
- console.log(chalk.cyan('\n Handoff:'));
156
- for (const action of capsule.handoff.next_actions) {
157
- console.log(chalk.gray(` - ${action}`));
158
- }
159
- }
160
-
161
- if (capsule.known_issues.length > 0) {
162
- console.log(chalk.yellow('\n Known issues:'));
163
- for (const issue of capsule.known_issues) {
164
- console.log(chalk.gray(` [${issue.type}] ${issue.description}`));
165
- }
166
- }
167
- }
168
-
169
- function handleList(options) {
170
- const entries = listSessions({
171
- status: options.status,
172
- limit: options.limit ? parseInt(options.limit, 10) : undefined,
173
- });
174
-
175
- if (entries.length === 0) {
176
- console.log(chalk.gray('No sessions found.'));
177
- console.log(chalk.blue('Start one with: caws session start'));
178
- return;
179
- }
180
-
181
- console.log(chalk.bold.cyan('CAWS Sessions'));
182
- console.log(chalk.cyan('='.repeat(90)));
183
- console.log(
184
- chalk.bold(
185
- 'Status'.padEnd(12) +
186
- 'Role'.padEnd(12) +
187
- 'Branch'.padEnd(16) +
188
- 'Rev'.padEnd(10) +
189
- 'Spec'.padEnd(14) +
190
- 'Started'
191
- )
192
- );
193
- console.log(chalk.gray('-'.repeat(90)));
194
-
195
- for (const entry of entries) {
196
- const statusColor =
197
- entry.status === 'active' ? chalk.green : chalk.gray;
198
-
199
- const started = new Date(entry.started_at).toLocaleString();
200
-
201
- console.log(
202
- statusColor(entry.status.padEnd(12)) +
203
- (entry.role || 'worker').padEnd(12) +
204
- (entry.branch || '-').padEnd(16) +
205
- (entry.head_rev || '-').padEnd(10) +
206
- (entry.spec_id || '-').padEnd(14) +
207
- started
208
- );
209
- }
210
- console.log('');
211
- }
212
-
213
- function handleShow(options) {
214
- const sessionId = options.id || 'latest';
215
- const capsule = showSession(sessionId);
216
-
217
- if (options.json) {
218
- console.log(JSON.stringify(capsule, null, 2));
219
- return;
220
- }
221
-
222
- console.log(chalk.bold.cyan(`Session: ${capsule.session_id}`));
223
- console.log(chalk.cyan('='.repeat(70)));
224
-
225
- // Identity
226
- console.log(chalk.bold('\nIdentity'));
227
- console.log(chalk.gray(` Project: ${capsule.project}`));
228
- console.log(chalk.gray(` Skein: ${capsule.skein_id}`));
229
- console.log(chalk.gray(` Role: ${capsule.role}`));
230
- if (capsule.spec_id) console.log(chalk.gray(` Spec: ${capsule.spec_id}`));
231
-
232
- // Base state
233
- console.log(chalk.bold('\nBaseline'));
234
- console.log(chalk.gray(` Rev: ${capsule.base_state.head_rev}`));
235
- console.log(chalk.gray(` Branch: ${capsule.base_state.branch}`));
236
- console.log(
237
- chalk.gray(
238
- ` Dirty: ${capsule.base_state.workspace_fingerprint.dirty ? 'yes' : 'no'} (${capsule.base_state.workspace_fingerprint.paths_touched.length} files)`
239
- )
240
- );
241
-
242
- // Work summary
243
- console.log(chalk.bold('\nWork Summary'));
244
- if (capsule.work_summary.intent) {
245
- console.log(chalk.gray(` Intent: ${capsule.work_summary.intent}`));
246
- }
247
- console.log(chalk.gray(` Files: ${capsule.work_summary.paths_touched.length}`));
248
- console.log(chalk.gray(` Commits: ${capsule.work_summary.commits.length}`));
249
- if (capsule.work_summary.commits.length > 0) {
250
- for (const c of capsule.work_summary.commits) {
251
- console.log(chalk.gray(` ${c.rev} @ ${c.checkpoint_at}`));
252
- }
253
- }
254
-
255
- // Verification
256
- if (capsule.verification.tests_run.length > 0) {
257
- console.log(chalk.bold('\nVerification'));
258
- for (const t of capsule.verification.tests_run) {
259
- const icon = t.status === 'pass' ? '[PASS]' : '[FAIL]';
260
- console.log(chalk.gray(` ${icon} ${t.name}: ${t.status}`));
261
- }
262
- }
263
-
264
- // Known issues
265
- if (capsule.known_issues.length > 0) {
266
- console.log(chalk.bold('\nKnown Issues'));
267
- for (const issue of capsule.known_issues) {
268
- console.log(chalk.yellow(` [${issue.type}] ${issue.description}`));
269
- }
270
- }
271
-
272
- // Handoff
273
- if (capsule.handoff.next_actions.length > 0 || capsule.handoff.risk_notes.length > 0) {
274
- console.log(chalk.bold('\nHandoff'));
275
- for (const action of capsule.handoff.next_actions) {
276
- console.log(chalk.cyan(` - ${action}`));
277
- }
278
- for (const note of capsule.handoff.risk_notes) {
279
- console.log(chalk.yellow(` Warning: ${note}`));
280
- }
281
- }
282
-
283
- // Timing
284
- console.log(chalk.bold('\nTiming'));
285
- console.log(chalk.gray(` Started: ${capsule.started_at}`));
286
- if (capsule.ended_at) {
287
- console.log(chalk.gray(` Ended: ${capsule.ended_at}`));
288
- console.log(chalk.gray(` Duration: ${formatDuration(capsule.started_at, capsule.ended_at)}`));
289
- } else {
290
- console.log(chalk.green(' Status: ACTIVE'));
291
- }
292
-
293
- console.log('');
294
- }
295
-
296
- function handleBriefing() {
297
- console.log(getBriefing());
298
- }
299
-
300
- /**
301
- * Format duration between two ISO timestamps
302
- */
303
- function formatDuration(start, end) {
304
- const ms = new Date(end) - new Date(start);
305
- const minutes = Math.floor(ms / 60000);
306
- const hours = Math.floor(minutes / 60);
307
- const mins = minutes % 60;
308
- if (hours > 0) return `${hours}h ${mins}m`;
309
- return `${mins}m`;
310
- }
311
-
312
- module.exports = { sessionCommand };
@@ -1,74 +0,0 @@
1
- /**
2
- * @fileoverview CAWS Sidecar Command
3
- * CLI interface for bounded governance sidecars — advisory analysis modules
4
- * that consume working state and produce structured recommendations.
5
- * @author @darianrosebrook
6
- */
7
-
8
- const chalk = require('chalk');
9
- const { resolveSpec } = require('../utils/spec-resolver');
10
- // EVLOG-002 Phase 2 read flip: sidecars read state from the event log via the
11
- // pure renderer. loadStateFromEvents matches loadState's null contract exactly,
12
- // so the existing "state may be null — sidecars handle that" behavior stays.
13
- const { loadStateFromEvents } = require('../utils/event-renderer');
14
- const { commandWrapper } = require('../utils/command-wrapper');
15
- const { SIDECARS, formatSidecarText } = require('../sidecars');
16
-
17
- /**
18
- * Run a sidecar analysis.
19
- * @param {string} subcommand - Sidecar name (drift, gaps, waiver-draft, provenance)
20
- * @param {Object} options - Command options
21
- * @param {string} [options.specId] - Target spec ID
22
- * @param {boolean} [options.json] - Output as JSON
23
- * @param {string} [options.gate] - Gate name filter (waiver-draft only)
24
- */
25
- async function sidecarCommand(subcommand, options = {}) {
26
- return commandWrapper(
27
- async () => {
28
- const sidecar = SIDECARS[subcommand];
29
- if (!sidecar) {
30
- const available = Object.keys(SIDECARS).join(', ');
31
- console.error(chalk.red(`Unknown sidecar: ${subcommand}`));
32
- console.error(chalk.yellow(`Available: ${available}`));
33
- process.exit(1);
34
- }
35
-
36
- // Resolve spec
37
- let spec = null;
38
- try {
39
- const resolved = await resolveSpec({
40
- specId: options.specId,
41
- warnLegacy: false,
42
- quiet: Boolean(options.json),
43
- });
44
- spec = resolved.spec;
45
- } catch (err) {
46
- console.error(chalk.red(`Could not resolve spec: ${err.message}`));
47
- console.error(chalk.yellow('Use --spec-id <id> to target a specific spec.'));
48
- process.exit(1);
49
- }
50
-
51
- // Load working state (may be null — sidecars handle that; EVLOG-002: from event log)
52
- const state = loadStateFromEvents(spec.id);
53
-
54
- // Build sidecar-specific options
55
- const sidecarOptions = {};
56
- if (options.gate) sidecarOptions.gateName = options.gate;
57
-
58
- // Run sidecar
59
- const result = sidecar.fn(state, spec, sidecarOptions);
60
-
61
- // Output
62
- if (options.json) {
63
- console.log(JSON.stringify(result, null, 2));
64
- } else {
65
- console.log(formatSidecarText(result));
66
- }
67
-
68
- return result;
69
- },
70
- { commandName: `sidecar ${subcommand}` }
71
- );
72
- }
73
-
74
- module.exports = { sidecarCommand };