@paths.design/caws-cli 10.2.0 → 11.0.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 (421) hide show
  1. package/README.md +125 -374
  2. package/dist/index.js +43 -785
  3. package/dist/shell/binding/resolve-binding.d.ts +4 -0
  4. package/dist/shell/binding/resolve-binding.d.ts.map +1 -0
  5. package/dist/shell/binding/resolve-binding.js +228 -0
  6. package/dist/shell/binding/resolve-binding.js.map +1 -0
  7. package/dist/shell/binding/types.d.ts +42 -0
  8. package/dist/shell/binding/types.d.ts.map +1 -0
  9. package/dist/shell/binding/types.js +21 -0
  10. package/dist/shell/binding/types.js.map +1 -0
  11. package/dist/shell/commands/claim.d.ts +14 -0
  12. package/dist/shell/commands/claim.d.ts.map +1 -0
  13. package/dist/shell/commands/claim.js +197 -0
  14. package/dist/shell/commands/claim.js.map +1 -0
  15. package/dist/shell/commands/doctor.d.ts +13 -0
  16. package/dist/shell/commands/doctor.d.ts.map +1 -0
  17. package/dist/shell/commands/doctor.js +97 -0
  18. package/dist/shell/commands/doctor.js.map +1 -0
  19. package/dist/shell/commands/evidence.d.ts +28 -0
  20. package/dist/shell/commands/evidence.d.ts.map +1 -0
  21. package/dist/shell/commands/evidence.js +166 -0
  22. package/dist/shell/commands/evidence.js.map +1 -0
  23. package/dist/shell/commands/gates.d.ts +19 -0
  24. package/dist/shell/commands/gates.d.ts.map +1 -0
  25. package/dist/shell/commands/gates.js +181 -0
  26. package/dist/shell/commands/gates.js.map +1 -0
  27. package/dist/shell/commands/init.d.ts +8 -0
  28. package/dist/shell/commands/init.d.ts.map +1 -0
  29. package/dist/shell/commands/init.js +64 -0
  30. package/dist/shell/commands/init.js.map +1 -0
  31. package/dist/shell/commands/scope.d.ts +11 -0
  32. package/dist/shell/commands/scope.d.ts.map +1 -0
  33. package/dist/shell/commands/scope.js +92 -0
  34. package/dist/shell/commands/scope.js.map +1 -0
  35. package/dist/shell/commands/status.d.ts +15 -0
  36. package/dist/shell/commands/status.d.ts.map +1 -0
  37. package/dist/shell/commands/status.js +106 -0
  38. package/dist/shell/commands/status.js.map +1 -0
  39. package/dist/shell/commands/waiver.d.ts +38 -0
  40. package/dist/shell/commands/waiver.d.ts.map +1 -0
  41. package/dist/shell/commands/waiver.js +240 -0
  42. package/dist/shell/commands/waiver.js.map +1 -0
  43. package/dist/shell/gates/disposition.d.ts +23 -0
  44. package/dist/shell/gates/disposition.d.ts.map +1 -0
  45. package/dist/shell/gates/disposition.js +87 -0
  46. package/dist/shell/gates/disposition.js.map +1 -0
  47. package/dist/shell/gates/gate-result-contract.d.ts +39 -0
  48. package/dist/shell/gates/gate-result-contract.d.ts.map +1 -0
  49. package/dist/shell/gates/gate-result-contract.js +150 -0
  50. package/dist/shell/gates/gate-result-contract.js.map +1 -0
  51. package/dist/shell/gates/quality-gates-adapter.d.ts +55 -0
  52. package/dist/shell/gates/quality-gates-adapter.d.ts.map +1 -0
  53. package/dist/shell/gates/quality-gates-adapter.js +161 -0
  54. package/dist/shell/gates/quality-gates-adapter.js.map +1 -0
  55. package/dist/shell/gates/waiver-filter.d.ts +58 -0
  56. package/dist/shell/gates/waiver-filter.d.ts.map +1 -0
  57. package/dist/shell/gates/waiver-filter.js +119 -0
  58. package/dist/shell/gates/waiver-filter.js.map +1 -0
  59. package/dist/shell/index.d.ts +50 -0
  60. package/dist/shell/index.d.ts.map +1 -0
  61. package/dist/shell/index.js +73 -0
  62. package/dist/shell/index.js.map +1 -0
  63. package/dist/shell/register.d.ts +11 -0
  64. package/dist/shell/register.d.ts.map +1 -0
  65. package/dist/shell/register.js +274 -0
  66. package/dist/shell/register.js.map +1 -0
  67. package/dist/shell/render/claim.d.ts +22 -0
  68. package/dist/shell/render/claim.d.ts.map +1 -0
  69. package/dist/shell/render/claim.js +75 -0
  70. package/dist/shell/render/claim.js.map +1 -0
  71. package/dist/shell/render/decision.d.ts +15 -0
  72. package/dist/shell/render/decision.d.ts.map +1 -0
  73. package/dist/shell/render/decision.js +66 -0
  74. package/dist/shell/render/decision.js.map +1 -0
  75. package/dist/shell/render/diagnostic.d.ts +19 -0
  76. package/dist/shell/render/diagnostic.d.ts.map +1 -0
  77. package/dist/shell/render/diagnostic.js +76 -0
  78. package/dist/shell/render/diagnostic.js.map +1 -0
  79. package/dist/shell/render/finding.d.ts +15 -0
  80. package/dist/shell/render/finding.d.ts.map +1 -0
  81. package/dist/shell/render/finding.js +57 -0
  82. package/dist/shell/render/finding.js.map +1 -0
  83. package/dist/shell/render/gates.d.ts +3 -0
  84. package/dist/shell/render/gates.d.ts.map +1 -0
  85. package/dist/shell/render/gates.js +56 -0
  86. package/dist/shell/render/gates.js.map +1 -0
  87. package/dist/shell/render/init.d.ts +11 -0
  88. package/dist/shell/render/init.d.ts.map +1 -0
  89. package/dist/shell/render/init.js +32 -0
  90. package/dist/shell/render/init.js.map +1 -0
  91. package/dist/shell/render/status.d.ts +26 -0
  92. package/dist/shell/render/status.d.ts.map +1 -0
  93. package/dist/shell/render/status.js +143 -0
  94. package/dist/shell/render/status.js.map +1 -0
  95. package/dist/shell/render/waiver.d.ts +21 -0
  96. package/dist/shell/render/waiver.d.ts.map +1 -0
  97. package/dist/shell/render/waiver.js +94 -0
  98. package/dist/shell/render/waiver.js.map +1 -0
  99. package/dist/shell/rules.d.ts +37 -0
  100. package/dist/shell/rules.d.ts.map +1 -0
  101. package/dist/shell/rules.js +51 -0
  102. package/dist/shell/rules.js.map +1 -0
  103. package/dist/shell/session/actor.d.ts +14 -0
  104. package/dist/shell/session/actor.d.ts.map +1 -0
  105. package/dist/shell/session/actor.js +34 -0
  106. package/dist/shell/session/actor.js.map +1 -0
  107. package/dist/shell/session/resolve-session.d.ts +5 -0
  108. package/dist/shell/session/resolve-session.d.ts.map +1 -0
  109. package/dist/shell/session/resolve-session.js +239 -0
  110. package/dist/shell/session/resolve-session.js.map +1 -0
  111. package/dist/shell/session/types.d.ts +56 -0
  112. package/dist/shell/session/types.d.ts.map +1 -0
  113. package/dist/shell/session/types.js +15 -0
  114. package/dist/shell/session/types.js.map +1 -0
  115. package/dist/store/agents-store.d.ts +3 -0
  116. package/dist/store/agents-store.d.ts.map +1 -0
  117. package/dist/store/agents-store.js +63 -0
  118. package/dist/store/agents-store.js.map +1 -0
  119. package/dist/store/apply-patch.d.ts +16 -0
  120. package/dist/store/apply-patch.d.ts.map +1 -0
  121. package/dist/store/apply-patch.js +191 -0
  122. package/dist/store/apply-patch.js.map +1 -0
  123. package/dist/store/atomic-write.d.ts +16 -0
  124. package/dist/store/atomic-write.d.ts.map +1 -0
  125. package/dist/store/atomic-write.js +132 -0
  126. package/dist/store/atomic-write.js.map +1 -0
  127. package/dist/store/doctor-snapshot.d.ts +20 -0
  128. package/dist/store/doctor-snapshot.d.ts.map +1 -0
  129. package/dist/store/doctor-snapshot.js +176 -0
  130. package/dist/store/doctor-snapshot.js.map +1 -0
  131. package/dist/store/events-store.d.ts +33 -0
  132. package/dist/store/events-store.d.ts.map +1 -0
  133. package/dist/store/events-store.js +297 -0
  134. package/dist/store/events-store.js.map +1 -0
  135. package/dist/store/index.d.ts +21 -0
  136. package/dist/store/index.d.ts.map +1 -0
  137. package/dist/store/index.js +47 -0
  138. package/dist/store/index.js.map +1 -0
  139. package/dist/store/init-store.d.ts +21 -0
  140. package/dist/store/init-store.d.ts.map +1 -0
  141. package/dist/store/init-store.js +295 -0
  142. package/dist/store/init-store.js.map +1 -0
  143. package/dist/store/json-store.d.ts +3 -0
  144. package/dist/store/json-store.d.ts.map +1 -0
  145. package/dist/store/json-store.js +65 -0
  146. package/dist/store/json-store.js.map +1 -0
  147. package/dist/store/policy-store.d.ts +3 -0
  148. package/dist/store/policy-store.d.ts.map +1 -0
  149. package/dist/store/policy-store.js +65 -0
  150. package/dist/store/policy-store.js.map +1 -0
  151. package/dist/store/repo-root.d.ts +46 -0
  152. package/dist/store/repo-root.d.ts.map +1 -0
  153. package/dist/store/repo-root.js +145 -0
  154. package/dist/store/repo-root.js.map +1 -0
  155. package/dist/store/rules.d.ts +53 -0
  156. package/dist/store/rules.d.ts.map +1 -0
  157. package/dist/store/rules.js +78 -0
  158. package/dist/store/rules.js.map +1 -0
  159. package/dist/store/specs-store.d.ts +3 -0
  160. package/dist/store/specs-store.d.ts.map +1 -0
  161. package/dist/store/specs-store.js +131 -0
  162. package/dist/store/specs-store.js.map +1 -0
  163. package/dist/store/types.d.ts +84 -0
  164. package/dist/store/types.d.ts.map +1 -0
  165. package/dist/store/types.js +14 -0
  166. package/dist/store/types.js.map +1 -0
  167. package/dist/store/waivers-store.d.ts +25 -0
  168. package/dist/store/waivers-store.d.ts.map +1 -0
  169. package/dist/store/waivers-store.js +232 -0
  170. package/dist/store/waivers-store.js.map +1 -0
  171. package/dist/store/worktrees-store.d.ts +3 -0
  172. package/dist/store/worktrees-store.d.ts.map +1 -0
  173. package/dist/store/worktrees-store.js +62 -0
  174. package/dist/store/worktrees-store.js.map +1 -0
  175. package/dist/store/yaml-store.d.ts +9 -0
  176. package/dist/store/yaml-store.d.ts.map +1 -0
  177. package/dist/store/yaml-store.js +121 -0
  178. package/dist/store/yaml-store.js.map +1 -0
  179. package/package.json +15 -13
  180. package/dist/budget-derivation.js +0 -751
  181. package/dist/cicd-optimizer.js +0 -504
  182. package/dist/commands/agents.js +0 -124
  183. package/dist/commands/archive.js +0 -500
  184. package/dist/commands/burnup.js +0 -198
  185. package/dist/commands/diagnose.js +0 -525
  186. package/dist/commands/evaluate.js +0 -314
  187. package/dist/commands/gates.js +0 -149
  188. package/dist/commands/init.js +0 -857
  189. package/dist/commands/iterate.js +0 -417
  190. package/dist/commands/mode.js +0 -269
  191. package/dist/commands/parallel.js +0 -242
  192. package/dist/commands/plan.js +0 -438
  193. package/dist/commands/provenance.js +0 -1143
  194. package/dist/commands/quality-monitor.js +0 -284
  195. package/dist/commands/scope.js +0 -264
  196. package/dist/commands/session.js +0 -312
  197. package/dist/commands/sidecar.js +0 -74
  198. package/dist/commands/specs.js +0 -1656
  199. package/dist/commands/status.js +0 -1172
  200. package/dist/commands/templates.js +0 -237
  201. package/dist/commands/tool.js +0 -136
  202. package/dist/commands/tutorial.js +0 -480
  203. package/dist/commands/validate.js +0 -357
  204. package/dist/commands/verify-acs.js +0 -443
  205. package/dist/commands/waivers.js +0 -599
  206. package/dist/commands/workflow.js +0 -243
  207. package/dist/commands/worktree.js +0 -502
  208. package/dist/config/lite-scope.js +0 -158
  209. package/dist/config/modes.js +0 -347
  210. package/dist/constants/spec-types.js +0 -65
  211. package/dist/gates/budget-limit.js +0 -121
  212. package/dist/gates/feedback.js +0 -260
  213. package/dist/gates/format.js +0 -179
  214. package/dist/gates/god-object.js +0 -117
  215. package/dist/gates/pipeline.js +0 -167
  216. package/dist/gates/scope-boundary.js +0 -112
  217. package/dist/gates/spec-completeness.js +0 -109
  218. package/dist/gates/todo-detection.js +0 -205
  219. package/dist/generators/jest-config-generator.js +0 -242
  220. package/dist/generators/working-spec.js +0 -237
  221. package/dist/minimal-cli.js +0 -88
  222. package/dist/parallel/parallel-manager.js +0 -433
  223. package/dist/policy/PolicyManager.js +0 -470
  224. package/dist/scaffold/claude-hooks.js +0 -443
  225. package/dist/scaffold/cursor-hooks.js +0 -177
  226. package/dist/scaffold/git-hooks.js +0 -928
  227. package/dist/scaffold/index.js +0 -794
  228. package/dist/session/session-manager.js +0 -653
  229. package/dist/sidecars/index.js +0 -33
  230. package/dist/sidecars/listeners.js +0 -40
  231. package/dist/sidecars/provenance-summary.js +0 -238
  232. package/dist/sidecars/quality-gaps.js +0 -258
  233. package/dist/sidecars/schema.js +0 -149
  234. package/dist/sidecars/spec-drift.js +0 -151
  235. package/dist/sidecars/waiver-draft.js +0 -176
  236. package/dist/spec/SpecFileManager.js +0 -419
  237. package/dist/templates/.caws/schemas/policy.schema.json +0 -117
  238. package/dist/templates/.caws/schemas/scope.schema.json +0 -52
  239. package/dist/templates/.caws/schemas/waivers.schema.json +0 -106
  240. package/dist/templates/.caws/schemas/working-spec.schema.json +0 -340
  241. package/dist/templates/.caws/schemas/worktrees.schema.json +0 -38
  242. package/dist/templates/.caws/templates/working-spec.template.yml +0 -80
  243. package/dist/templates/.caws/tools/README.md +0 -18
  244. package/dist/templates/.caws/tools/scope-guard.js +0 -203
  245. package/dist/templates/.caws/tools-allow.json +0 -331
  246. package/dist/templates/.caws/waivers.yml +0 -19
  247. package/dist/templates/.claude/README.md +0 -190
  248. package/dist/templates/.claude/hooks/audit.sh +0 -121
  249. package/dist/templates/.claude/hooks/block-dangerous.sh +0 -203
  250. package/dist/templates/.claude/hooks/classify_command.py +0 -592
  251. package/dist/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  252. package/dist/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  253. package/dist/templates/.claude/hooks/naming-check.sh +0 -100
  254. package/dist/templates/.claude/hooks/protected-paths.sh +0 -39
  255. package/dist/templates/.claude/hooks/quality-check.sh +0 -81
  256. package/dist/templates/.claude/hooks/scan-secrets.sh +0 -85
  257. package/dist/templates/.claude/hooks/scope-guard.sh +0 -381
  258. package/dist/templates/.claude/hooks/session-caws-status.sh +0 -117
  259. package/dist/templates/.claude/hooks/session-log.sh +0 -634
  260. package/dist/templates/.claude/hooks/simplification-guard.sh +0 -92
  261. package/dist/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  262. package/dist/templates/.claude/hooks/test_classify_command.py +0 -370
  263. package/dist/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  264. package/dist/templates/.claude/hooks/validate-spec.sh +0 -76
  265. package/dist/templates/.claude/hooks/worktree-guard.sh +0 -220
  266. package/dist/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  267. package/dist/templates/.claude/rules/git-safety.md +0 -26
  268. package/dist/templates/.claude/rules/worktree-isolation.md +0 -101
  269. package/dist/templates/.claude/settings.json +0 -141
  270. package/dist/templates/.cursor/README.md +0 -299
  271. package/dist/templates/.cursor/hooks/audit.sh +0 -55
  272. package/dist/templates/.cursor/hooks/block-dangerous.sh +0 -84
  273. package/dist/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  274. package/dist/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  275. package/dist/templates/.cursor/hooks/format.sh +0 -38
  276. package/dist/templates/.cursor/hooks/naming-check.sh +0 -64
  277. package/dist/templates/.cursor/hooks/scan-secrets.sh +0 -51
  278. package/dist/templates/.cursor/hooks/scope-guard.sh +0 -52
  279. package/dist/templates/.cursor/hooks/session-log.sh +0 -924
  280. package/dist/templates/.cursor/hooks/validate-spec.sh +0 -83
  281. package/dist/templates/.cursor/hooks.json +0 -76
  282. package/dist/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  283. package/dist/templates/.cursor/rules/01-working-style.mdc +0 -50
  284. package/dist/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  285. package/dist/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  286. package/dist/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  287. package/dist/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  288. package/dist/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  289. package/dist/templates/.cursor/rules/07-process-ops.mdc +0 -20
  290. package/dist/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  291. package/dist/templates/.cursor/rules/09-docstrings.mdc +0 -89
  292. package/dist/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  293. package/dist/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  294. package/dist/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  295. package/dist/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  296. package/dist/templates/.cursor/rules/README.md +0 -148
  297. package/dist/templates/.github/copilot-instructions.md +0 -82
  298. package/dist/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  299. package/dist/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  300. package/dist/templates/.junie/guidelines.md +0 -73
  301. package/dist/templates/.vscode/launch.json +0 -17
  302. package/dist/templates/.vscode/settings.json +0 -95
  303. package/dist/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  304. package/dist/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  305. package/dist/templates/CLAUDE.md +0 -196
  306. package/dist/templates/COMMIT_CONVENTIONS.md +0 -86
  307. package/dist/templates/OIDC_SETUP.md +0 -300
  308. package/dist/templates/agents.md +0 -171
  309. package/dist/templates/codemod/README.md +0 -1
  310. package/dist/templates/codemod/test.js +0 -93
  311. package/dist/templates/docs/README.md +0 -151
  312. package/dist/templates/scripts/new_feature.sh +0 -80
  313. package/dist/templates/scripts/quality-gates/check-god-objects.js +0 -146
  314. package/dist/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  315. package/dist/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
  316. package/dist/test-analysis.js +0 -786
  317. package/dist/tool-interface.js +0 -314
  318. package/dist/tool-loader.js +0 -303
  319. package/dist/tool-validator.js +0 -393
  320. package/dist/utils/agent-display.js +0 -210
  321. package/dist/utils/agent-session.js +0 -344
  322. package/dist/utils/async-utils.js +0 -188
  323. package/dist/utils/command-wrapper.js +0 -200
  324. package/dist/utils/event-log.js +0 -584
  325. package/dist/utils/event-renderer.js +0 -521
  326. package/dist/utils/finalization.js +0 -230
  327. package/dist/utils/git-lock.js +0 -119
  328. package/dist/utils/gitignore-updater.js +0 -158
  329. package/dist/utils/ide-detection.js +0 -133
  330. package/dist/utils/lifecycle-events.js +0 -94
  331. package/dist/utils/project-analysis.js +0 -367
  332. package/dist/utils/promise-utils.js +0 -72
  333. package/dist/utils/quality-gates-errors.js +0 -520
  334. package/dist/utils/quality-gates-utils.js +0 -387
  335. package/dist/utils/schema-validator.js +0 -50
  336. package/dist/utils/spec-resolver.js +0 -711
  337. package/dist/utils/typescript-detector.js +0 -369
  338. package/dist/utils/working-state.js +0 -530
  339. package/dist/utils/yaml-validation.js +0 -156
  340. package/dist/validation/spec-validation.js +0 -924
  341. package/dist/waivers-manager.js +0 -732
  342. package/dist/worktree/worktree-manager.js +0 -1735
  343. package/templates/.caws/schemas/policy.schema.json +0 -117
  344. package/templates/.caws/schemas/scope.schema.json +0 -52
  345. package/templates/.caws/schemas/waivers.schema.json +0 -106
  346. package/templates/.caws/schemas/working-spec.schema.json +0 -340
  347. package/templates/.caws/schemas/worktrees.schema.json +0 -38
  348. package/templates/.caws/templates/working-spec.template.yml +0 -80
  349. package/templates/.caws/tools/README.md +0 -18
  350. package/templates/.caws/tools/scope-guard.js +0 -203
  351. package/templates/.caws/tools-allow.json +0 -331
  352. package/templates/.caws/waivers.yml +0 -19
  353. package/templates/.claude/README.md +0 -190
  354. package/templates/.claude/hooks/audit.sh +0 -121
  355. package/templates/.claude/hooks/block-dangerous.sh +0 -203
  356. package/templates/.claude/hooks/classify_command.py +0 -592
  357. package/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  358. package/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  359. package/templates/.claude/hooks/naming-check.sh +0 -100
  360. package/templates/.claude/hooks/protected-paths.sh +0 -39
  361. package/templates/.claude/hooks/quality-check.sh +0 -81
  362. package/templates/.claude/hooks/scan-secrets.sh +0 -85
  363. package/templates/.claude/hooks/scope-guard.sh +0 -381
  364. package/templates/.claude/hooks/session-caws-status.sh +0 -117
  365. package/templates/.claude/hooks/session-log.sh +0 -634
  366. package/templates/.claude/hooks/simplification-guard.sh +0 -92
  367. package/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  368. package/templates/.claude/hooks/test_classify_command.py +0 -370
  369. package/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  370. package/templates/.claude/hooks/validate-spec.sh +0 -76
  371. package/templates/.claude/hooks/worktree-guard.sh +0 -220
  372. package/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  373. package/templates/.claude/rules/git-safety.md +0 -26
  374. package/templates/.claude/rules/worktree-isolation.md +0 -101
  375. package/templates/.claude/settings.json +0 -141
  376. package/templates/.cursor/README.md +0 -299
  377. package/templates/.cursor/hooks/audit.sh +0 -55
  378. package/templates/.cursor/hooks/block-dangerous.sh +0 -84
  379. package/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  380. package/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  381. package/templates/.cursor/hooks/format.sh +0 -38
  382. package/templates/.cursor/hooks/naming-check.sh +0 -64
  383. package/templates/.cursor/hooks/scan-secrets.sh +0 -51
  384. package/templates/.cursor/hooks/scope-guard.sh +0 -52
  385. package/templates/.cursor/hooks/session-log.sh +0 -924
  386. package/templates/.cursor/hooks/validate-spec.sh +0 -83
  387. package/templates/.cursor/hooks.json +0 -76
  388. package/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  389. package/templates/.cursor/rules/01-working-style.mdc +0 -50
  390. package/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  391. package/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  392. package/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  393. package/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  394. package/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  395. package/templates/.cursor/rules/07-process-ops.mdc +0 -20
  396. package/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  397. package/templates/.cursor/rules/09-docstrings.mdc +0 -89
  398. package/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  399. package/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  400. package/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  401. package/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  402. package/templates/.cursor/rules/README.md +0 -148
  403. package/templates/.github/copilot-instructions.md +0 -82
  404. package/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  405. package/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  406. package/templates/.junie/guidelines.md +0 -73
  407. package/templates/.vscode/launch.json +0 -17
  408. package/templates/.vscode/settings.json +0 -95
  409. package/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  410. package/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  411. package/templates/CLAUDE.md +0 -196
  412. package/templates/COMMIT_CONVENTIONS.md +0 -86
  413. package/templates/OIDC_SETUP.md +0 -300
  414. package/templates/agents.md +0 -171
  415. package/templates/codemod/README.md +0 -1
  416. package/templates/codemod/test.js +0 -93
  417. package/templates/docs/README.md +0 -151
  418. package/templates/scripts/new_feature.sh +0 -80
  419. package/templates/scripts/quality-gates/check-god-objects.js +0 -146
  420. package/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  421. package/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
@@ -1,480 +0,0 @@
1
- /**
2
- * @fileoverview CAWS Tutorial Command
3
- * Interactive guided learning for AI agents and developers
4
- * @author @darianrosebrook
5
- */
6
-
7
- const chalk = require('chalk');
8
- const { safeAsync, outputResult } = require('../error-handler');
9
-
10
- /**
11
- * Tutorial steps for different user types
12
- */
13
- const TUTORIALS = {
14
- agent: {
15
- name: 'AI Agent Onboarding',
16
- description: 'Complete guide for AI agents working with CAWS',
17
- icon: '',
18
- steps: [
19
- {
20
- id: 'welcome',
21
- title: 'Welcome to CAWS',
22
- content: `
23
- Welcome to CAWS (Coding Agent Workflow System)!
24
-
25
- CAWS helps AI agents and developers collaborate effectively by providing:
26
- - Structured specifications and requirements
27
- - Automated validation and quality gates
28
- - Progress tracking and status monitoring
29
- - Change management and archival
30
- - Multi-tier complexity modes
31
-
32
- This tutorial will guide you through the essential CAWS workflow.
33
- `,
34
- action: 'Press Enter to continue...',
35
- },
36
- {
37
- id: 'first-steps',
38
- title: 'Your First Steps',
39
- content: `
40
- Every CAWS session should start with validation:
41
-
42
- 1. Always validate first: \`caws validate\`
43
- 2. Check current status: \`caws status --visual\`
44
- 3. Get guidance: \`caws iterate --current-state "Starting implementation"\`
45
-
46
- These commands ensure you're working with validated specifications and understand the current project state.
47
- `,
48
- action: 'Try: caws validate',
49
- verify: 'validation',
50
- },
51
- {
52
- id: 'modes',
53
- title: 'Understanding Modes',
54
- content: `
55
- CAWS adapts to your project needs with three complexity tiers:
56
-
57
- **Simple Mode** (70% coverage, 30% mutation)
58
- - Perfect for small projects and prototyping
59
- - Minimal commands and features
60
- - Quick setup and iteration
61
-
62
- **Standard Mode** (80% coverage, 50% mutation)
63
- - Balanced approach for most projects
64
- - Quality gates and provenance tracking
65
- - Change management and archival
66
-
67
- **Enterprise Mode** (90% coverage, 70% mutation)
68
- - Full compliance and audit trails
69
- - Advanced monitoring and reporting
70
- - Maximum quality assurance
71
-
72
- Check your current mode: \`caws mode current\`
73
- Switch modes: \`caws mode set --interactive\`
74
- `,
75
- action: 'Try: caws mode current',
76
- verify: 'mode_check',
77
- },
78
- {
79
- id: 'specs-system',
80
- title: 'Multi-Spec Organization',
81
- content: `
82
- CAWS uses a multi-spec system for better organization:
83
-
84
- **Individual spec files** instead of monolithic specs
85
- **Type-based organization** (feature, fix, refactor, etc.)
86
- **Visual progress tracking** across all specs
87
- **Concurrent development** support
88
-
89
- Commands:
90
- - \`caws specs list\` - View all specs
91
- - \`caws specs create <id>\` - Create new spec
92
- - \`caws specs show <id>\` - View spec details
93
- - \`caws specs update <id>\` - Update spec status
94
-
95
- Each spec contains:
96
- - Acceptance criteria with progress tracking
97
- - Risk tier and complexity mode
98
- - Contract definitions and validation
99
- `,
100
- action: 'Try: caws specs list',
101
- verify: 'specs_list',
102
- },
103
- {
104
- id: 'workflow',
105
- title: 'Development Workflow',
106
- content: `
107
- Follow this proven TDD workflow:
108
-
109
- 1. **Plan**: Create/update specs with acceptance criteria
110
- 2. **Validate**: Ensure specs are valid and complete
111
- 3. **Test First**: Write failing tests for each criterion
112
- 4. **Implement**: Make tests pass incrementally
113
- 5. **Track Progress**: Update acceptance criteria status
114
- 6. **Quality Gates**: Run validation and quality checks
115
- 7. **Archive**: Complete and archive finished work
116
-
117
- Key commands:
118
- - \`caws validate --spec-id FEAT-001\` - Validate current work
119
- - \`caws status --spec-id FEAT-001\` - Check progress
120
- - \`caws evaluate --spec-id FEAT-001\` - Quality/readiness scoring
121
- - \`caws burnup --spec-id FEAT-001\` - Budget burn-up report
122
- - \`caws archive <change-id>\` - Complete work
123
- `,
124
- action: 'Try: caws status --visual',
125
- verify: 'status_check',
126
- },
127
- {
128
- id: 'quality-gates',
129
- title: 'Quality Assurance',
130
- content: `
131
- CAWS enforces quality through multiple gates:
132
-
133
- **Validation Gates**
134
- - Spec format and completeness
135
- - Contract compliance
136
- - Risk tier requirements
137
-
138
- **Testing Gates**
139
- - Test coverage thresholds
140
- - Mutation testing scores
141
- - Integration test passing
142
-
143
- **Progress Gates**
144
- - Acceptance criteria completion
145
- - Spec status validation
146
- - Change budget compliance
147
-
148
- **Quick Checks**
149
- - \`caws validate\` - Spec validation
150
- - \`caws diagnose\` - Health checks (if in standard/enterprise mode)
151
- - \`caws evaluate\` - Quality evaluation
152
- `,
153
- action: 'Try: caws validate',
154
- verify: 'quality_check',
155
- },
156
- {
157
- id: 'common-patterns',
158
- title: 'Common Patterns & Best Practices',
159
- content: `
160
- **Avoid These**:
161
- - Don't start implementation before validation
162
- - Don't create duplicate files (enhanced-*, new-*)
163
- - Don't exceed change budgets
164
- - Don't skip quality gates
165
-
166
- **Do These**:
167
- - Always validate first: \`caws validate\`
168
- - Use multi-spec system for organization
169
- - Write tests before implementation (TDD)
170
- - Update progress: \`caws progress update\`
171
- - Archive completed work: \`caws archive\`
172
-
173
- **Get Help**:
174
- - \`caws --help\` - All commands
175
- - \`caws workflow guidance\` - Workflow-specific help
176
- - \`docs/agents/full-guide.md\` - Complete documentation
177
- `,
178
- action: 'Try: caws --help',
179
- verify: 'help_check',
180
- },
181
- {
182
- id: 'completion',
183
- title: 'Tutorial Complete!',
184
- content: `
185
- Congratulations! You've completed the CAWS agent tutorial.
186
-
187
- **Key Takeaways**:
188
- - CAWS provides structure and validation for AI-human collaboration
189
- - Start every session with validation and status checks
190
- - Use the multi-spec system for better organization
191
- - Follow TDD practices with comprehensive testing
192
- - Respect quality gates and change budgets
193
- - Archive completed work for clean project history
194
-
195
- **Next Steps**:
196
- 1. Explore the multi-spec system: \`caws specs create my-feature\`
197
- 2. Practice the workflow with a small feature
198
- 3. Use mode switching to match your project needs
199
- 4. Read the full documentation for advanced features
200
-
201
- Remember: CAWS exists to make AI-human collaboration reliable and high-quality. Follow the rules, validate often, and deliver excellent results!
202
-
203
- Pro tip: Use \`caws status --visual\` regularly to stay oriented
204
- `,
205
- action: 'Tutorial complete! Try: caws specs create my-feature',
206
- },
207
- ],
208
- },
209
-
210
- developer: {
211
- name: 'Developer Quick Start',
212
- description: 'Fast track for developers new to CAWS',
213
- icon: '',
214
- steps: [
215
- {
216
- id: 'welcome-dev',
217
- title: 'Welcome Developer!',
218
- content: `
219
- Welcome to CAWS! This quick start will get you up and running fast.
220
-
221
- CAWS helps development teams by providing:
222
- - Clear specification management
223
- - Structured change workflows
224
- - Progress visibility for stakeholders
225
- - Quality gates and validation
226
- - Better AI-human collaboration
227
-
228
- Let's get you started!
229
- `,
230
- action: 'Press Enter to continue...',
231
- },
232
- {
233
- id: 'setup',
234
- title: 'Project Setup',
235
- content: `
236
- First, ensure CAWS is properly initialized:
237
-
238
- 1. Initialize CAWS: \`caws init .\`
239
- 2. Create a feature spec: \`caws specs create FEAT-001 --type feature --title "My Feature"\`
240
- 3. Set up git hooks: \`caws hooks install\`
241
- 4. Initialize provenance: \`caws provenance init\`
242
-
243
- For existing projects, use: \`caws scaffold\`
244
-
245
- All commands support \`--spec-id\` to target a specific feature spec:
246
- - \`caws validate --spec-id FEAT-001\`
247
- - \`caws status --spec-id FEAT-001\`
248
- - \`caws evaluate --spec-id FEAT-001\`
249
- `,
250
- action: 'Try: caws specs list',
251
- verify: 'mode_setup',
252
- },
253
- {
254
- id: 'create-spec',
255
- title: 'Create Your First Spec',
256
- content: `
257
- Create a spec for your feature or fix:
258
-
259
- \`caws specs create user-login --type feature --title "User Login System"\`
260
-
261
- This creates:
262
- - A new spec file in \`.caws/specs/user-login.yaml\`
263
- - Basic structure with acceptance criteria template
264
- - Automatic registration in the specs registry
265
-
266
- View all specs: \`caws specs list\`
267
- View spec details: \`caws specs show user-login\`
268
- `,
269
- action: 'Try: caws specs list',
270
- verify: 'first_spec',
271
- },
272
- {
273
- id: 'define-criteria',
274
- title: 'Define Acceptance Criteria',
275
- content: `
276
- Edit your spec file to add acceptance criteria:
277
-
278
- \`\`\`yaml
279
- # .caws/specs/user-login.yaml
280
- acceptance_criteria:
281
- - id: A1
282
- title: User can login with valid credentials
283
- description: Users should be able to authenticate using email/password
284
- completed: false
285
- - id: A2
286
- title: Invalid credentials show error
287
- description: Invalid login attempts should display appropriate error messages
288
- completed: false
289
- \`\`\`
290
-
291
- Each criterion should be:
292
- - Testable and verifiable
293
- - Specific and measurable
294
- - Focused on user value
295
- `,
296
- action: 'Edit your spec file and add acceptance criteria',
297
- verify: 'criteria_defined',
298
- },
299
- {
300
- id: 'workflow',
301
- title: 'Development Workflow',
302
- content: `
303
- Follow this workflow for each acceptance criterion:
304
-
305
- 1. **Write failing tests first** (TDD approach)
306
- 2. **Implement the minimum** to make tests pass
307
- 3. **Update progress**: \`caws progress update --criterion-id A1 --status completed\`
308
- 4. **Validate**: \`caws validate\`
309
- 5. **Run quality gates** (if in standard/enterprise mode)
310
-
311
- Repeat for each criterion until the spec is complete.
312
-
313
- Track progress: \`caws status --visual\`
314
- Get guidance: \`caws iterate --current-state "Working on A1"\`
315
- `,
316
- action: 'Try: caws progress update --criterion-id A1 --status in_progress',
317
- verify: 'workflow_started',
318
- },
319
- {
320
- id: 'completion',
321
- title: 'Complete and Archive',
322
- content: `
323
- When all acceptance criteria are completed:
324
-
325
- 1. **Final validation**: \`caws validate\`
326
- 2. **Quality checks**: \`caws diagnose\` (if enabled)
327
- 3. **Archive the work**: \`caws archive user-login\`
328
-
329
- This:
330
- - Validates all criteria are met
331
- - Moves completed work to archive
332
- - Updates provenance chain
333
- - Provides completion summary
334
-
335
- View archived work: Check \`.caws/archive/\` directory
336
- `,
337
- action: 'Complete your spec and try: caws archive <spec-id>',
338
- verify: 'archival_complete',
339
- },
340
- ],
341
- },
342
- };
343
-
344
- /**
345
- * Display tutorial step
346
- * @param {Object} step - Tutorial step
347
- * @param {number} stepNumber - Step number (1-based)
348
- * @param {number} totalSteps - Total number of steps
349
- */
350
- function displayTutorialStep(step, stepNumber, totalSteps) {
351
- console.log(chalk.bold.cyan(`\nStep ${stepNumber}/${totalSteps}: ${step.title}`));
352
- console.log(chalk.cyan('='.repeat(60)));
353
-
354
- // Display content with proper formatting
355
- const lines = step.content.trim().split('\n');
356
- lines.forEach((line) => {
357
- if (
358
- line.startsWith('-') ||
359
- line.startsWith('') ||
360
- line.startsWith('') ||
361
- line.startsWith('') ||
362
- line.startsWith('')
363
- ) {
364
- console.log(chalk.gray(line));
365
- } else if (line.includes('`')) {
366
- console.log(chalk.cyan(line));
367
- } else {
368
- console.log(line);
369
- }
370
- });
371
-
372
- if (step.action) {
373
- console.log(chalk.yellow(`\n${step.action}`));
374
- }
375
-
376
- console.log('');
377
- }
378
-
379
- /**
380
- * Interactive tutorial session
381
- * @param {string} tutorialType - Type of tutorial (agent, developer)
382
- * @returns {Promise<void>}
383
- */
384
- async function runInteractiveTutorial(tutorialType) {
385
- const tutorial = TUTORIALS[tutorialType];
386
- if (!tutorial) {
387
- throw new Error(
388
- `Unknown tutorial type: ${tutorialType}. Available: ${Object.keys(TUTORIALS).join(', ')}`
389
- );
390
- }
391
-
392
- const readline = require('readline');
393
- const rl = readline.createInterface({
394
- input: process.stdin,
395
- output: process.stdout,
396
- });
397
-
398
- console.log(chalk.bold.green(`\nStarting ${tutorial.icon} ${tutorial.name}`));
399
- console.log(chalk.green(tutorial.description));
400
- console.log(chalk.gray(`Total steps: ${tutorial.steps.length}\n`));
401
-
402
- for (let i = 0; i < tutorial.steps.length; i++) {
403
- const step = tutorial.steps[i];
404
- const stepNumber = i + 1;
405
-
406
- displayTutorialStep(step, stepNumber, tutorial.steps.length);
407
-
408
- // Wait for user input (except for the last step)
409
- if (i < tutorial.steps.length - 1) {
410
- await new Promise((resolve) => {
411
- console.log(chalk.blue('Press Enter to continue...'));
412
- rl.on('line', () => {
413
- resolve();
414
- });
415
- });
416
- }
417
- }
418
-
419
- rl.close();
420
-
421
- // Final message
422
- console.log(chalk.bold.green(`\n${tutorial.icon} ${tutorial.name} Complete!`));
423
- console.log(chalk.green('You can always run this tutorial again with:'));
424
- console.log(chalk.cyan(`caws tutorial ${tutorialType}`));
425
- console.log('');
426
- }
427
-
428
- /**
429
- * Tutorial command handler
430
- * @param {string} tutorialType - Type of tutorial to run
431
- * @param {Object} options - Command options
432
- */
433
- async function tutorialCommand(tutorialType, _options = {}) {
434
- return safeAsync(
435
- async () => {
436
- if (!tutorialType) {
437
- // Show available tutorials
438
- console.log(chalk.bold.cyan('\nAvailable CAWS Tutorials'));
439
- console.log(chalk.cyan('==================================================\n'));
440
-
441
- Object.entries(TUTORIALS).forEach(([type, tutorial]) => {
442
- console.log(`${tutorial.icon} ${chalk.green(type.padEnd(12))} - ${tutorial.description}`);
443
- });
444
-
445
- console.log(chalk.gray('\nUsage: caws tutorial <type>'));
446
- console.log(chalk.gray('Example: caws tutorial agent'));
447
-
448
- return outputResult({
449
- command: 'tutorial',
450
- action: 'list',
451
- available: Object.keys(TUTORIALS),
452
- });
453
- }
454
-
455
- if (!TUTORIALS[tutorialType]) {
456
- throw new Error(
457
- `Unknown tutorial: ${tutorialType}. Available: ${Object.keys(TUTORIALS).join(', ')}`
458
- );
459
- }
460
-
461
- // Run the interactive tutorial
462
- await runInteractiveTutorial(tutorialType);
463
-
464
- return outputResult({
465
- command: 'tutorial',
466
- tutorial: tutorialType,
467
- steps: TUTORIALS[tutorialType].steps.length,
468
- completed: true,
469
- });
470
- },
471
- `tutorial ${tutorialType}`,
472
- true
473
- );
474
- }
475
-
476
- module.exports = {
477
- tutorialCommand,
478
- TUTORIALS,
479
- runInteractiveTutorial,
480
- };