@paths.design/caws-cli 10.1.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 (419) hide show
  1. package/README.md +125 -374
  2. package/dist/index.js +43 -756
  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/archive.js +0 -500
  183. package/dist/commands/burnup.js +0 -198
  184. package/dist/commands/diagnose.js +0 -525
  185. package/dist/commands/evaluate.js +0 -314
  186. package/dist/commands/gates.js +0 -149
  187. package/dist/commands/init.js +0 -857
  188. package/dist/commands/iterate.js +0 -417
  189. package/dist/commands/mode.js +0 -269
  190. package/dist/commands/parallel.js +0 -242
  191. package/dist/commands/plan.js +0 -438
  192. package/dist/commands/provenance.js +0 -1143
  193. package/dist/commands/quality-monitor.js +0 -284
  194. package/dist/commands/scope.js +0 -264
  195. package/dist/commands/session.js +0 -312
  196. package/dist/commands/sidecar.js +0 -74
  197. package/dist/commands/specs.js +0 -1448
  198. package/dist/commands/status.js +0 -1151
  199. package/dist/commands/templates.js +0 -237
  200. package/dist/commands/tool.js +0 -136
  201. package/dist/commands/tutorial.js +0 -480
  202. package/dist/commands/validate.js +0 -357
  203. package/dist/commands/verify-acs.js +0 -443
  204. package/dist/commands/waivers.js +0 -599
  205. package/dist/commands/workflow.js +0 -243
  206. package/dist/commands/worktree.js +0 -386
  207. package/dist/config/lite-scope.js +0 -158
  208. package/dist/config/modes.js +0 -347
  209. package/dist/constants/spec-types.js +0 -65
  210. package/dist/gates/budget-limit.js +0 -121
  211. package/dist/gates/feedback.js +0 -260
  212. package/dist/gates/format.js +0 -179
  213. package/dist/gates/god-object.js +0 -117
  214. package/dist/gates/pipeline.js +0 -167
  215. package/dist/gates/scope-boundary.js +0 -93
  216. package/dist/gates/spec-completeness.js +0 -109
  217. package/dist/gates/todo-detection.js +0 -205
  218. package/dist/generators/jest-config-generator.js +0 -242
  219. package/dist/generators/working-spec.js +0 -237
  220. package/dist/minimal-cli.js +0 -88
  221. package/dist/parallel/parallel-manager.js +0 -433
  222. package/dist/policy/PolicyManager.js +0 -465
  223. package/dist/scaffold/claude-hooks.js +0 -443
  224. package/dist/scaffold/cursor-hooks.js +0 -177
  225. package/dist/scaffold/git-hooks.js +0 -928
  226. package/dist/scaffold/index.js +0 -794
  227. package/dist/session/session-manager.js +0 -653
  228. package/dist/sidecars/index.js +0 -33
  229. package/dist/sidecars/listeners.js +0 -40
  230. package/dist/sidecars/provenance-summary.js +0 -238
  231. package/dist/sidecars/quality-gaps.js +0 -258
  232. package/dist/sidecars/schema.js +0 -149
  233. package/dist/sidecars/spec-drift.js +0 -151
  234. package/dist/sidecars/waiver-draft.js +0 -176
  235. package/dist/spec/SpecFileManager.js +0 -419
  236. package/dist/templates/.caws/schemas/policy.schema.json +0 -112
  237. package/dist/templates/.caws/schemas/scope.schema.json +0 -52
  238. package/dist/templates/.caws/schemas/waivers.schema.json +0 -106
  239. package/dist/templates/.caws/schemas/working-spec.schema.json +0 -340
  240. package/dist/templates/.caws/schemas/worktrees.schema.json +0 -38
  241. package/dist/templates/.caws/templates/working-spec.template.yml +0 -80
  242. package/dist/templates/.caws/tools/README.md +0 -18
  243. package/dist/templates/.caws/tools/scope-guard.js +0 -203
  244. package/dist/templates/.caws/tools-allow.json +0 -331
  245. package/dist/templates/.caws/waivers.yml +0 -19
  246. package/dist/templates/.claude/README.md +0 -190
  247. package/dist/templates/.claude/hooks/audit.sh +0 -121
  248. package/dist/templates/.claude/hooks/block-dangerous.sh +0 -203
  249. package/dist/templates/.claude/hooks/classify_command.py +0 -592
  250. package/dist/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  251. package/dist/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  252. package/dist/templates/.claude/hooks/naming-check.sh +0 -100
  253. package/dist/templates/.claude/hooks/protected-paths.sh +0 -39
  254. package/dist/templates/.claude/hooks/quality-check.sh +0 -81
  255. package/dist/templates/.claude/hooks/scan-secrets.sh +0 -85
  256. package/dist/templates/.claude/hooks/scope-guard.sh +0 -381
  257. package/dist/templates/.claude/hooks/session-caws-status.sh +0 -117
  258. package/dist/templates/.claude/hooks/session-log.sh +0 -634
  259. package/dist/templates/.claude/hooks/simplification-guard.sh +0 -92
  260. package/dist/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  261. package/dist/templates/.claude/hooks/test_classify_command.py +0 -370
  262. package/dist/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  263. package/dist/templates/.claude/hooks/validate-spec.sh +0 -76
  264. package/dist/templates/.claude/hooks/worktree-guard.sh +0 -220
  265. package/dist/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  266. package/dist/templates/.claude/rules/git-safety.md +0 -26
  267. package/dist/templates/.claude/rules/worktree-isolation.md +0 -83
  268. package/dist/templates/.claude/settings.json +0 -141
  269. package/dist/templates/.cursor/README.md +0 -299
  270. package/dist/templates/.cursor/hooks/audit.sh +0 -55
  271. package/dist/templates/.cursor/hooks/block-dangerous.sh +0 -84
  272. package/dist/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  273. package/dist/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  274. package/dist/templates/.cursor/hooks/format.sh +0 -38
  275. package/dist/templates/.cursor/hooks/naming-check.sh +0 -64
  276. package/dist/templates/.cursor/hooks/scan-secrets.sh +0 -51
  277. package/dist/templates/.cursor/hooks/scope-guard.sh +0 -52
  278. package/dist/templates/.cursor/hooks/session-log.sh +0 -924
  279. package/dist/templates/.cursor/hooks/validate-spec.sh +0 -83
  280. package/dist/templates/.cursor/hooks.json +0 -76
  281. package/dist/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  282. package/dist/templates/.cursor/rules/01-working-style.mdc +0 -50
  283. package/dist/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  284. package/dist/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  285. package/dist/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  286. package/dist/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  287. package/dist/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  288. package/dist/templates/.cursor/rules/07-process-ops.mdc +0 -20
  289. package/dist/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  290. package/dist/templates/.cursor/rules/09-docstrings.mdc +0 -89
  291. package/dist/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  292. package/dist/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  293. package/dist/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  294. package/dist/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  295. package/dist/templates/.cursor/rules/README.md +0 -148
  296. package/dist/templates/.github/copilot-instructions.md +0 -82
  297. package/dist/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  298. package/dist/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  299. package/dist/templates/.junie/guidelines.md +0 -73
  300. package/dist/templates/.vscode/launch.json +0 -17
  301. package/dist/templates/.vscode/settings.json +0 -95
  302. package/dist/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  303. package/dist/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  304. package/dist/templates/CLAUDE.md +0 -174
  305. package/dist/templates/COMMIT_CONVENTIONS.md +0 -86
  306. package/dist/templates/OIDC_SETUP.md +0 -300
  307. package/dist/templates/agents.md +0 -145
  308. package/dist/templates/codemod/README.md +0 -1
  309. package/dist/templates/codemod/test.js +0 -93
  310. package/dist/templates/docs/README.md +0 -151
  311. package/dist/templates/scripts/new_feature.sh +0 -80
  312. package/dist/templates/scripts/quality-gates/check-god-objects.js +0 -146
  313. package/dist/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  314. package/dist/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
  315. package/dist/test-analysis.js +0 -786
  316. package/dist/tool-interface.js +0 -314
  317. package/dist/tool-loader.js +0 -303
  318. package/dist/tool-validator.js +0 -393
  319. package/dist/utils/agent-session.js +0 -202
  320. package/dist/utils/async-utils.js +0 -188
  321. package/dist/utils/command-wrapper.js +0 -200
  322. package/dist/utils/event-log.js +0 -584
  323. package/dist/utils/event-renderer.js +0 -521
  324. package/dist/utils/finalization.js +0 -230
  325. package/dist/utils/git-lock.js +0 -119
  326. package/dist/utils/gitignore-updater.js +0 -158
  327. package/dist/utils/ide-detection.js +0 -133
  328. package/dist/utils/lifecycle-events.js +0 -94
  329. package/dist/utils/project-analysis.js +0 -367
  330. package/dist/utils/promise-utils.js +0 -72
  331. package/dist/utils/quality-gates-errors.js +0 -520
  332. package/dist/utils/quality-gates-utils.js +0 -387
  333. package/dist/utils/schema-validator.js +0 -50
  334. package/dist/utils/spec-resolver.js +0 -711
  335. package/dist/utils/typescript-detector.js +0 -369
  336. package/dist/utils/working-state.js +0 -530
  337. package/dist/utils/yaml-validation.js +0 -156
  338. package/dist/validation/spec-validation.js +0 -921
  339. package/dist/waivers-manager.js +0 -732
  340. package/dist/worktree/worktree-manager.js +0 -1374
  341. package/templates/.caws/schemas/policy.schema.json +0 -112
  342. package/templates/.caws/schemas/scope.schema.json +0 -52
  343. package/templates/.caws/schemas/waivers.schema.json +0 -106
  344. package/templates/.caws/schemas/working-spec.schema.json +0 -340
  345. package/templates/.caws/schemas/worktrees.schema.json +0 -38
  346. package/templates/.caws/templates/working-spec.template.yml +0 -80
  347. package/templates/.caws/tools/README.md +0 -18
  348. package/templates/.caws/tools/scope-guard.js +0 -203
  349. package/templates/.caws/tools-allow.json +0 -331
  350. package/templates/.caws/waivers.yml +0 -19
  351. package/templates/.claude/README.md +0 -190
  352. package/templates/.claude/hooks/audit.sh +0 -121
  353. package/templates/.claude/hooks/block-dangerous.sh +0 -203
  354. package/templates/.claude/hooks/classify_command.py +0 -592
  355. package/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  356. package/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  357. package/templates/.claude/hooks/naming-check.sh +0 -100
  358. package/templates/.claude/hooks/protected-paths.sh +0 -39
  359. package/templates/.claude/hooks/quality-check.sh +0 -81
  360. package/templates/.claude/hooks/scan-secrets.sh +0 -85
  361. package/templates/.claude/hooks/scope-guard.sh +0 -381
  362. package/templates/.claude/hooks/session-caws-status.sh +0 -117
  363. package/templates/.claude/hooks/session-log.sh +0 -634
  364. package/templates/.claude/hooks/simplification-guard.sh +0 -92
  365. package/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  366. package/templates/.claude/hooks/test_classify_command.py +0 -370
  367. package/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  368. package/templates/.claude/hooks/validate-spec.sh +0 -76
  369. package/templates/.claude/hooks/worktree-guard.sh +0 -220
  370. package/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  371. package/templates/.claude/rules/git-safety.md +0 -26
  372. package/templates/.claude/rules/worktree-isolation.md +0 -83
  373. package/templates/.claude/settings.json +0 -141
  374. package/templates/.cursor/README.md +0 -299
  375. package/templates/.cursor/hooks/audit.sh +0 -55
  376. package/templates/.cursor/hooks/block-dangerous.sh +0 -84
  377. package/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  378. package/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  379. package/templates/.cursor/hooks/format.sh +0 -38
  380. package/templates/.cursor/hooks/naming-check.sh +0 -64
  381. package/templates/.cursor/hooks/scan-secrets.sh +0 -51
  382. package/templates/.cursor/hooks/scope-guard.sh +0 -52
  383. package/templates/.cursor/hooks/session-log.sh +0 -924
  384. package/templates/.cursor/hooks/validate-spec.sh +0 -83
  385. package/templates/.cursor/hooks.json +0 -76
  386. package/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  387. package/templates/.cursor/rules/01-working-style.mdc +0 -50
  388. package/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  389. package/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  390. package/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  391. package/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  392. package/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  393. package/templates/.cursor/rules/07-process-ops.mdc +0 -20
  394. package/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  395. package/templates/.cursor/rules/09-docstrings.mdc +0 -89
  396. package/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  397. package/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  398. package/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  399. package/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  400. package/templates/.cursor/rules/README.md +0 -148
  401. package/templates/.github/copilot-instructions.md +0 -82
  402. package/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  403. package/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  404. package/templates/.junie/guidelines.md +0 -73
  405. package/templates/.vscode/launch.json +0 -17
  406. package/templates/.vscode/settings.json +0 -95
  407. package/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  408. package/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  409. package/templates/CLAUDE.md +0 -174
  410. package/templates/COMMIT_CONVENTIONS.md +0 -86
  411. package/templates/OIDC_SETUP.md +0 -300
  412. package/templates/agents.md +0 -145
  413. package/templates/codemod/README.md +0 -1
  414. package/templates/codemod/test.js +0 -93
  415. package/templates/docs/README.md +0 -151
  416. package/templates/scripts/new_feature.sh +0 -80
  417. package/templates/scripts/quality-gates/check-god-objects.js +0 -146
  418. package/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  419. 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
- };