@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,82 +0,0 @@
1
- # CAWS Integration Instructions for GitHub Copilot
2
-
3
- This project uses CAWS (Coding Agent Working Standard) for quality-assured AI-assisted development.
4
-
5
- ## CAWS Project Detection
6
-
7
- Check if current project uses CAWS:
8
- - Look for `.caws/working-spec.yaml` file
9
- - Check for `caws` commands in package.json scripts
10
- - Verify CAWS CLI availability: `caws --version`
11
-
12
- ## Working Specifications
13
-
14
- Working specs define project requirements and constraints:
15
-
16
- ```yaml
17
- id: PROJ-001
18
- title: "Feature implementation"
19
- risk_tier: 2 # 1=Critical, 2=Standard, 3=Low risk
20
- mode: feature # feature|refactor|fix|chore
21
- change_budget:
22
- max_files: 25
23
- max_loc: 1000
24
- scope:
25
- in: ["src/", "tests/"]
26
- out: ["node_modules/", "dist/"]
27
- ```
28
-
29
- Always validate working specs: `caws validate`
30
-
31
- ## Quality Workflow
32
-
33
- 1. **Before implementation**: `caws iterate --current-state "describe what you're about to do"`
34
- 2. **During implementation**: `caws evaluate --quiet`
35
- 3. **Before commit**: `caws validate && caws evaluate`
36
-
37
- ## Quality Gates by Risk Tier
38
-
39
- | Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
40
- |------|---------------|----------------|----------------|
41
- | Test coverage | 90%+ | 80%+ | 70%+ |
42
- | Mutation score | 70%+ | 50%+ | 30%+ |
43
- | Contracts | Required | Required | Optional |
44
- | Manual review | Required | Optional | Optional |
45
-
46
- ## Key Rules
47
-
48
- 1. Stay within `scope.in` boundaries -- do not edit files in `scope.out`
49
- 2. Respect `change_budget.max_files` and `change_budget.max_loc` limits
50
- 3. No shadow files -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*` copies
51
- 4. Write tests before implementation when possible
52
- 5. Use conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`
53
-
54
- ## Waivers
55
-
56
- If you need to bypass a quality gate, create a waiver:
57
-
58
- ```bash
59
- caws waivers create --reason emergency_hotfix --gates coverage_threshold
60
- ```
61
-
62
- Valid reasons: `emergency_hotfix`, `legacy_integration`, `experimental_feature`, `performance_critical`, `infrastructure_limitation`
63
-
64
- ## Common Patterns
65
-
66
- ### Feature Development
67
- 1. Validate working spec: `caws validate`
68
- 2. Get implementation guidance: `caws iterate`
69
- 3. Implement with quality checks: `caws evaluate --quiet`
70
- 4. Run full validation: `caws validate && npm test`
71
-
72
- ### Bug Fixes
73
- 1. Assess risk tier and impact
74
- 2. Write failing test that reproduces the bug
75
- 3. Implement minimal fix
76
- 4. Run quality validation: `caws validate`
77
-
78
- ## Troubleshooting
79
-
80
- - **Working spec invalid**: Run `caws validate --suggestions`
81
- - **Scope violations**: Update `.caws/working-spec.yaml` scope or create waiver
82
- - **Quality gate failures**: Address root cause rather than creating waivers
@@ -1,5 +0,0 @@
1
- <component name="ProjectRunConfigurationManager">
2
- <configuration default="false" name="CAWS: Evaluate Quality" type="NodeJSConfigurationType" factoryName="Node.js" path-to-js-file="$PROJECT_DIR$/packages/caws-cli/dist/index.js" working-dir="$PROJECT_DIR$" application-parameters="evaluate">
3
- <method v="2" />
4
- </configuration>
5
- </component>
@@ -1,5 +0,0 @@
1
- <component name="ProjectRunConfigurationManager">
2
- <configuration default="false" name="CAWS: Validate" type="NodeJSConfigurationType" factoryName="Node.js" path-to-js-file="$PROJECT_DIR$/packages/caws-cli/dist/index.js" working-dir="$PROJECT_DIR$" application-parameters="validate .caws/working-spec.yaml">
3
- <method v="2" />
4
- </configuration>
5
- </component>
@@ -1,73 +0,0 @@
1
- # Junie Guidelines - CAWS Project
2
-
3
- This project uses CAWS (Coding Agent Working Standard) for quality-assured development.
4
-
5
- ## Working Spec
6
-
7
- Before making changes, read `.caws/working-spec.yaml`. It defines:
8
-
9
- - **Risk tier**: Quality requirements (T1: 90%+ coverage, T2: 80%+, T3: 70%+)
10
- - **Scope**: `scope.in` lists files you may edit, `scope.out` is off-limits
11
- - **Change budget**: Maximum files and lines of code per change
12
- - **Acceptance criteria**: What "done" means for this task
13
-
14
- ## CAWS Commands
15
-
16
- ```bash
17
- caws validate # Validate the working spec
18
- caws iterate # Get implementation guidance
19
- caws evaluate # Evaluate quality compliance
20
- caws waivers create --reason ... # Create waiver for justified exceptions
21
- ```
22
-
23
- ## Key Rules
24
-
25
- 1. **Stay in scope** -- only edit files listed in `scope.in`
26
- 2. **Respect change budgets** -- stay within `max_files` and `max_loc`
27
- 3. **No shadow files** -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
28
- 4. **Tests first** -- write failing tests before implementation
29
- 5. **Deterministic code** -- inject time, random, and UUID generators for testability
30
- 6. **No fake implementations** -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
31
- 7. **Prove claims** -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence, not assertions.
32
- 8. **No marketing language in docs** -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade"
33
- 9. **Ask first for risky changes** -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion first
34
- 10. **Conventional commits** -- use `feat:`, `fix:`, `refactor:`, `docs:`, `chore:` prefixes
35
-
36
- ## Quality Gates
37
-
38
- | Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
39
- |------|---------------|----------------|----------------|
40
- | Test coverage | 90%+ | 80%+ | 70%+ |
41
- | Mutation score | 70%+ | 50%+ | 30%+ |
42
- | Contracts | Required | Required | Optional |
43
- | Manual review | Required | Optional | Optional |
44
-
45
- ## Code Style
46
-
47
- - Prefer `const` over `let`
48
- - Use guard clauses and early returns over deep nesting
49
- - Single responsibility: one reason to change per module
50
- - Depend on abstractions, not concretions
51
- - Extension points over editing internals (open/closed principle)
52
- - Max cyclomatic complexity per function: 10
53
- - Max cognitive complexity: 15
54
- - Max nesting depth: 4
55
- - Max function length: 50 lines
56
- - Max file length: 1000 lines
57
- - Max parameters: 5
58
- - No emojis in production code or logs
59
- - Check if a server/process is already running before starting another
60
-
61
- ### Naming
62
-
63
- Forbidden file name modifiers: enhanced, unified, better, new, next, final, copy, revamp, improved. Prefer in-place edits with a merge-then-delete strategy for refactors.
64
-
65
- ## Build & Test
66
-
67
- ```bash
68
- npm install # Install dependencies
69
- npm test # Run tests
70
- npm run lint # Lint code
71
- npm run typecheck # Type check (if TypeScript)
72
- caws validate # Validate CAWS spec
73
- ```
@@ -1,17 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "name": "Debug CAWS CLI",
6
- "type": "node",
7
- "request": "launch",
8
- "program": "${workspaceFolder}/packages/caws-cli/src/index.js",
9
- "args": ["validate", ".caws/working-spec.yaml"],
10
- "env": {
11
- "NODE_ENV": "development",
12
- "CAWS_DEBUG": "true"
13
- },
14
- "console": "integratedTerminal"
15
- }
16
- ]
17
- }
@@ -1,95 +0,0 @@
1
- {
2
- // CAWS VS Code Extension Settings
3
- "caws.cli.path": "caws",
4
- "caws.autoValidate": true,
5
- "caws.showQualityStatus": true,
6
- "caws.experimentalMode": false,
7
-
8
- // General IDE settings that work well with CAWS
9
- "editor.formatOnSave": true,
10
- "editor.codeActionsOnSave": {
11
- "source.fixAll.eslint": "explicit",
12
- "source.organizeImports": "explicit"
13
- },
14
-
15
- // File associations for CAWS files
16
- "files.associations": {
17
- ".caws/working-spec.yaml": "yaml",
18
- ".caws/waivers/*.yaml": "yaml",
19
- "apps/tools/caws/*.js": "javascript"
20
- },
21
-
22
- // Exclude CAWS-generated files from search and navigation
23
- "files.exclude": {
24
- ".caws/cache/": true,
25
- ".caws/state/": true,
26
- ".caws/waivers/review-*.md": true
27
- },
28
-
29
- // Search excludes for CAWS artifacts
30
- "search.exclude": {
31
- ".caws/cache/**": true,
32
- ".caws/state/**": true,
33
- "packages/*/dist/**": true,
34
- "packages/*/node_modules/**": true
35
- },
36
-
37
- // CAWS-aware task definitions
38
- "tasks": {
39
- "version": "2.0.0",
40
- "tasks": [
41
- {
42
- "label": "CAWS: Validate",
43
- "type": "shell",
44
- "command": "caws",
45
- "args": ["validate"],
46
- "group": {
47
- "kind": "build",
48
- "isDefault": true
49
- },
50
- "presentation": {
51
- "echo": true,
52
- "reveal": "always",
53
- "focus": false,
54
- "panel": "shared"
55
- },
56
- "problemMatcher": []
57
- },
58
- {
59
- "label": "CAWS: Evaluate Quality",
60
- "type": "shell",
61
- "command": "caws",
62
- "args": ["evaluate"],
63
- "group": "test",
64
- "presentation": {
65
- "echo": true,
66
- "reveal": "always",
67
- "focus": false,
68
- "panel": "shared"
69
- }
70
- },
71
- {
72
- "label": "CAWS: Create Waiver",
73
- "type": "shell",
74
- "command": "caws",
75
- "args": ["waivers", "create"],
76
- "group": "build"
77
- }
78
- ]
79
- },
80
-
81
- // Recommended extensions for CAWS development
82
- "recommendations": [
83
- "ms-vscode.vscode-json",
84
- "redhat.vscode-yaml",
85
- "ms-vscode.vscode-typescript-next",
86
- "esbenp.prettier-vscode",
87
- "dbaeumer.vscode-eslint"
88
- ],
89
-
90
- // Workspace-specific settings
91
- "yaml.schemas": {
92
- "./.caws/schema/working-spec.schema.json": ".caws/working-spec.yaml",
93
- "./.caws/schema/waiver.schema.json": ".caws/waivers/*.yaml"
94
- }
95
- }
@@ -1,54 +0,0 @@
1
- # CAWS Quality Standards
2
-
3
- This project uses CAWS (Coding Agent Working Standard) for quality-assured development.
4
-
5
- ## Working Spec
6
-
7
- Always check `.caws/working-spec.yaml` before making changes. It defines:
8
-
9
- - **Risk tier**: T1 (critical, 90%+ coverage), T2 (standard, 80%+), T3 (low risk, 70%+)
10
- - **Scope boundaries**: `scope.in` (allowed files), `scope.out` (off-limits)
11
- - **Change budget**: `max_files` and `max_loc` limits per change
12
- - **Acceptance criteria**: Definition of done
13
-
14
- ## Key Rules
15
-
16
- 1. Stay within scope boundaries defined in the working spec
17
- 2. Respect change budgets -- split large changes into smaller PRs
18
- 3. No shadow files: never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
19
- 4. Write tests before implementation when possible
20
- 5. Deterministic code -- inject time, random, and UUID generators for testability
21
- 6. No fake implementations -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
22
- 7. Prove claims -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence, not assertions.
23
- 8. No marketing language in docs -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade"
24
- 9. Ask first for risky changes -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion first
25
- 10. Use conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`
26
- 11. Run `caws validate` before committing
27
-
28
- ## Quality Commands
29
-
30
- ```bash
31
- caws validate # Validate working spec
32
- caws iterate # Get implementation guidance
33
- caws evaluate # Evaluate quality compliance
34
- caws waivers create --reason ... # Create waiver for justified exceptions
35
- ```
36
-
37
- ## Code Style
38
-
39
- - Prefer `const` over `let`
40
- - Use guard clauses and early returns over deep nesting
41
- - Single responsibility: one reason to change per module
42
- - Depend on abstractions, not concretions
43
- - Extension points over editing internals (open/closed principle)
44
- - Max cyclomatic complexity per function: 10
45
- - Max nesting depth: 4
46
- - Max function length: 50 lines
47
- - Max file length: 1000 lines
48
- - Max parameters: 5
49
- - No emojis in production code or logs
50
- - Check if a server/process is already running before starting another
51
-
52
- ## Naming
53
-
54
- Forbidden file name modifiers: enhanced, unified, better, new, next, final, copy, revamp, improved. Use in-place edits with merge-then-delete strategy for refactors.
@@ -1,92 +0,0 @@
1
- # /caws-guided-development
2
-
3
- ## CAWS-Guided Feature Development Workflow
4
-
5
- **Purpose**: Guide agents through feature development with CAWS quality assurance
6
-
7
- **Tags**: development, quality, caws, feature
8
-
9
- ---
10
-
11
- ### 1. Initialize CAWS Working Spec
12
- ```
13
- # Create comprehensive working specification
14
- caws init feature-name --interactive
15
-
16
- # Define acceptance criteria, scope, and risk assessment
17
- # Working spec: .caws/working-spec.yaml
18
- ```
19
-
20
- ### 2. Plan Implementation Strategy
21
- ```
22
- # Get CAWS guidance for implementation approach
23
- caws iterate --current-state "Planning phase complete, need implementation strategy"
24
-
25
- # CAWS will suggest:
26
- # - Implementation steps
27
- # - Quality gates to consider
28
- # - Risk mitigation strategies
29
- # - Testing approach
30
- ```
31
-
32
- ### 3. Implement Core Functionality
33
- ```
34
- # Start coding with CAWS quality monitoring
35
- # Real-time feedback via CAWS tools
36
-
37
- # Regular quality checks
38
- caws evaluate --quiet
39
- ```
40
-
41
- ### 4. Quality Assurance Integration
42
- ```
43
- # Run comprehensive quality gates
44
- caws validate
45
-
46
- # Address any failing gates
47
- # Create waivers if justified
48
- caws waivers create --reason emergency_hotfix --gates coverage_threshold
49
- ```
50
-
51
- ### 5. Testing & Validation
52
- ```
53
- # Unit tests
54
- npm run test:unit
55
-
56
- # Integration tests
57
- npm run test:integration
58
-
59
- # Contract tests
60
- npm run test:contract
61
- ```
62
-
63
- ### 6. Final Quality Review
64
- ```
65
- # Complete CAWS evaluation
66
- caws evaluate
67
-
68
- # Generate provenance report
69
- caws provenance generate
70
-
71
- # Ready for integration
72
- ```
73
-
74
- ---
75
-
76
- **Quality Gates**:
77
- - ✅ Working spec validation
78
- - ✅ Code quality standards
79
- - ✅ Test coverage requirements
80
- - ✅ Security scanning
81
- - ✅ Performance budgets
82
-
83
- **Success Criteria**:
84
- - All CAWS quality gates pass
85
- - Acceptance criteria met
86
- - No critical security issues
87
- - Performance requirements satisfied
88
-
89
- **Call Other Workflows**:
90
- - `/caws-testing-workflow` - Comprehensive testing
91
- - `/caws-security-review` - Security validation
92
- - `/caws-deployment-checklist` - Deployment preparation
@@ -1,196 +0,0 @@
1
- # CLAUDE.md
2
-
3
- This project uses CAWS (Coding Agent Working Standard) for quality-assured AI-assisted development.
4
-
5
- ## Build & Test
6
-
7
- ```bash
8
- # Install dependencies
9
- npm install
10
-
11
- # Run tests
12
- npm test
13
-
14
- # Lint
15
- npm run lint
16
-
17
- # Type check (if TypeScript)
18
- npm run typecheck
19
-
20
- # Run all quality gates
21
- caws validate
22
- ```
23
-
24
- ## CAWS Workflow
25
-
26
- Before writing code, check the canonical spec for the current feature:
27
-
28
- ```bash
29
- # Create a feature spec for isolated work
30
- caws specs create FEAT-001 --type feature --title "description"
31
-
32
- # If you're in a CAWS worktree, the created spec should record it:
33
- # worktree: <worktree-name>
34
-
35
- # Validate the feature spec
36
- caws validate --spec-id FEAT-001
37
-
38
- # Run quality gates v2 pipeline
39
- caws gates run
40
-
41
- # Get iteration guidance
42
- caws iterate --current-state "describe what you're about to do"
43
-
44
- # After implementation, evaluate quality
45
- caws evaluate
46
-
47
- # Verify acceptance criteria have evidence
48
- caws verify-acs --spec-id FEAT-001
49
-
50
- # Check budget burn-up
51
- caws burnup --spec-id FEAT-001
52
-
53
- # Check status for the same feature
54
- caws status --spec-id FEAT-001
55
- ```
56
-
57
- ### Advisory Sidecars
58
-
59
- Sidecar commands are diagnostic analysis tools. They don't enforce anything -- they help you understand what's happening and what to do next.
60
-
61
- ```bash
62
- caws sidecar drift # Compare spec intent vs current implementation
63
- caws sidecar gaps # Diagnose quality gaps blocking gate passage
64
- caws sidecar waiver-draft # Generate pre-filled waiver template for a failing gate
65
- caws sidecar provenance # Summarize work history for merge readiness review
66
- ```
67
-
68
- ### Working Spec
69
-
70
- Canonical feature specs live at `.caws/specs/<ID>.yaml` (create with `caws specs create <id> --type feature --title "description"`). `.caws/working-spec.yaml` is a compatibility mirror for older tooling and legacy single-spec flows. The active spec defines:
71
-
72
- - **Risk tier**: Quality requirements (T1: critical, T2: standard, T3: low risk)
73
- - **Mode**: The type of change (`feature`, `refactor`, `fix`, `doc`, `chore`) -- required
74
- - **Worktree**: The owning CAWS worktree name for this spec (`worktree`) -- recommended for all isolated work
75
- - **Blast radius**: Which modules are affected (`blast_radius.modules`) -- required
76
- - **Operational rollback SLO**: Time target for rollback (e.g. `"30m"`) -- required
77
- - **Scope**: Which files you can edit (`scope.in`) and which are off-limits (`scope.out`)
78
- - **Change budget**: Max files and lines of code per change (see note below)
79
- - **Acceptance criteria**: What "done" means -- IDs must match `^A\d+$` (e.g. `A1`, `A12`)
80
-
81
- Always stay within scope boundaries and change budgets.
82
-
83
- Recommended operating rule: one active feature spec, one active worktree. If a task has a worktree, record that ownership in the spec YAML with `worktree: <name>`.
84
-
85
- ### Scope and Worktree Binding
86
-
87
- The scope guard enforces file edit boundaries based on your spec's `scope.in` and `scope.out` patterns. **How it enforces depends on whether your worktree is bound to a spec:**
88
-
89
- - **Authoritative mode** (worktree bound to a spec): Only your spec's scope patterns are checked. Other agents' specs cannot block your edits. This is the correct state.
90
- - **Union mode** (no binding): The guard checks ALL active specs. Any `scope.out` from any spec can block you, even unrelated ones. This is the common source of "why is spec X blocking me?" confusion.
91
-
92
- **The mutual binding** requires both sides:
93
- 1. The worktree registry (`.caws/worktrees.json`) must have `specId` pointing to your spec
94
- 2. Your spec (`.caws/specs/<id>.yaml`) must have `worktree: <name>` pointing to your worktree
95
-
96
- If either side is missing, the guard falls back to union mode.
97
-
98
- **Quick commands:**
99
- ```bash
100
- # See your effective scope and binding health
101
- caws scope show
102
-
103
- # Fix a broken binding
104
- caws worktree bind <spec-id>
105
-
106
- # Inspect the agent registry — who is currently working what
107
- caws agents list
108
-
109
- # Inspect a specific worktree's claim (read-only by default)
110
- caws worktree claim <name>
111
- ```
112
-
113
- **Recovery checklist** (when the scope guard blocks you unexpectedly):
114
- 1. Run `caws scope show` — check if you're in authoritative or union mode
115
- 2. If union mode: bind your spec with `caws worktree bind <spec-id>`
116
- 3. If authoritative but still blocked: the file is genuinely outside your spec's scope. Update your spec's `scope.in` if the file should be in scope, or request a waiver
117
- 4. Do NOT modify another spec's `scope.out` to unblock yourself — that defeats the isolation
118
-
119
- ### Agent Claims & Multi-Agent Coordination
120
-
121
- Each session gets registered in `.caws/agents.json` automatically (via the session-log hook and on every CAWS lifecycle CLI invocation). Worktree session ownership is tracked in `.caws/worktrees.json:owner` as a session id.
122
-
123
- `caws worktree bind`, `merge`, and `claim` will refuse to mutate a worktree owned by a different session id without explicit `--takeover`. The refusal prints a structured warning naming the claimer as `<sessionId>:<platform>`, the heartbeat age, and any matching `tmp/<sessionId>/` session-log path so you can read context before deciding.
124
-
125
- **Decision-gating uses session-id equality only.** TTL pruning of `agents.json` is registry hygiene; it does NOT authorize takeover. A stale heartbeat doesn't mean the prior session is dead — it may be paused.
126
-
127
- `--takeover` writes a durable `prior_owners` audit on the worktree entry (sessionId, platform, lastSeen-at-takeover, takenOver_at) so handoffs are traceable in `worktrees.json`, not just in agent memory.
128
-
129
- ### Spec lifecycle: archive
130
-
131
- Use `caws specs archive <id>` to move a closed spec to the canonical `.caws/specs/.archive/` directory. The directory is filesystem-authoritative — `caws specs list` reports any file under `.archive/` as `status: archived` regardless of the YAML literal. This means manually-moved legacy specs (no registry entry) are correctly classified.
132
-
133
- If you try to `caws specs create <id>` for an id that already exists in `.archive/`, the command refuses without `--force`. With `--force`, the archived YAML is removed and a fresh draft is created — useful for resurrecting an old id with new intent.
134
-
135
- > **Budget note**: `change_budget:` in a spec is informational documentation only. CAWS
136
- > derives the enforced budget from `policy.yaml` keyed on `risk_tier`. The field in the
137
- > spec is not used by `caws validate` for enforcement.
138
-
139
- ### Quality Gates
140
-
141
- Quality requirements are tiered:
142
-
143
- | Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
144
- |------|---------------|----------------|----------------|
145
- | Test coverage | 90%+ | 80%+ | 70%+ |
146
- | Mutation score | 70%+ | 50%+ | 30%+ |
147
- | Contracts | Required | Required | Optional |
148
- | Manual review | Required | Optional | Optional |
149
-
150
- ### Key Rules
151
-
152
- 1. **Stay in scope** -- only edit files listed in `scope.in`, never touch `scope.out`
153
- 2. **Respect change budgets** -- stay within `max_files` and `max_loc` limits
154
- 3. **No shadow files** -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
155
- 4. **Tests first** -- write failing tests before implementation
156
- 5. **Deterministic code** -- inject time, random, and UUID generators for testability
157
- 6. **No fake implementations** -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
158
- 7. **Prove claims** -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence, not assertions.
159
- 8. **No marketing language in docs** -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade"
160
- 9. **Ask first for risky changes** -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion first
161
- 10. **Conventional commits** -- use `feat:`, `fix:`, `refactor:`, `docs:`, `chore:` prefixes
162
-
163
- ### Waivers
164
-
165
- If you need to bypass a quality gate, create a waiver with justification:
166
-
167
- ```bash
168
- caws waivers create --reason emergency_hotfix --gates coverage_threshold
169
- ```
170
-
171
- Valid reasons: `emergency_hotfix`, `legacy_integration`, `experimental_feature`, `performance_critical`, `infrastructure_limitation`
172
-
173
- ## Project Structure
174
-
175
- ```
176
- .caws/
177
- working-spec.yaml # Compatibility mirror for legacy commands
178
- specs/ # Canonical feature specs
179
- policy.yaml # Quality policy overrides (optional)
180
- waivers.yml # Active waivers
181
- state/ # Runtime working state (auto-managed)
182
- ```
183
-
184
- > **Working state**: `.caws/state/<spec-id>.json` tracks runtime progress -- current phase,
185
- > validation/evaluation results, gate history, and files touched. This is maintained
186
- > automatically by CAWS commands. Agents don't need to manage it directly.
187
-
188
- ## Hooks
189
-
190
- This project has Claude Code hooks configured in `.claude/settings.json`:
191
-
192
- - **PreToolUse**: Blocks dangerous commands, scans for secrets, enforces scope
193
- - **PostToolUse**: Runs quality checks, validates spec, checks naming conventions
194
- - **Session**: Audit logging for provenance tracking
195
-
196
- See `.claude/README.md` for hook details.