@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,578 +0,0 @@
1
- ---
2
- description: Language-agnostic engineering standards and universal code quality metrics
3
- globs:
4
- alwaysApply: true
5
- ---
6
-
7
- # Language-Agnostic Engineering Standards
8
-
9
- ## Core Principle
10
-
11
- **Engineering standards must apply universally across all programming languages.** Focus on architectural patterns, quality metrics, and maintainability principles that transcend specific language syntax.
12
-
13
- ## Universal Code Quality Metrics
14
-
15
- ### Complexity Standards
16
-
17
- **Cyclomatic Complexity:**
18
-
19
- - **Maximum per function**: 10
20
- - **Maximum per class/module**: 20
21
- - **Critical functions**: 5 (auth, billing, data processing)
22
-
23
- **Cognitive Complexity:**
24
-
25
- - **Maximum per function**: 15
26
- - **Maximum per class/module**: 30
27
- - **UI components**: 20 (higher due to rendering logic)
28
-
29
- **Nesting Depth:**
30
-
31
- - **Maximum nesting levels**: 4
32
- - **Preferred**: 2-3 levels with guard clauses
33
- - **Exception**: Complex algorithms with documented justification
34
-
35
- ### Maintainability Standards
36
-
37
- **Function Size:**
38
-
39
- - **Maximum lines per function**: 50
40
- - **Preferred**: 20-30 lines
41
- - **Exception**: Complex algorithms with documentation
42
-
43
- **File Size:**
44
-
45
- - **Maximum lines per file**: 1000
46
- - **Preferred**: 200-500 lines
47
- - **Exception**: Generated code or data files
48
-
49
- **Parameter Count:**
50
-
51
- - **Maximum parameters per function**: 5
52
- - **Preferred**: 2-3 parameters
53
- - **Exception**: Configuration objects or builder patterns
54
-
55
- **Class/Module Size:**
56
-
57
- - **Maximum methods per class**: 10
58
- - **Maximum fields per class**: 15
59
- - **Preferred**: 5-7 methods, 8-10 fields
60
-
61
- ## Universal Architectural Patterns
62
-
63
- ### Dependency Injection
64
-
65
- **All languages must support:**
66
-
67
- - Constructor injection for dependencies
68
- - Interface/contract-based design
69
- - Testable dependency substitution
70
- - Clear dependency graphs
71
-
72
- **Implementation Examples:**
73
-
74
- ```typescript
75
- // TypeScript/JavaScript
76
- class OrderService {
77
- constructor(
78
- private userRepo: UserRepository,
79
- private paymentService: PaymentService,
80
- private notificationService: NotificationService
81
- ) {}
82
- }
83
- ```
84
-
85
- ```rust
86
- // Rust
87
- struct OrderService {
88
- user_repo: Box<dyn UserRepository>,
89
- payment_service: Box<dyn PaymentService>,
90
- notification_service: Box<dyn NotificationService>,
91
- }
92
- ```
93
-
94
- ```python
95
- # Python
96
- class OrderService:
97
- def __init__(self, user_repo: UserRepository, payment_service: PaymentService):
98
- self.user_repo = user_repo
99
- self.payment_service = payment_service
100
- ```
101
-
102
- ### Error Handling Patterns
103
-
104
- **Universal Error Handling Requirements:**
105
-
106
- - Explicit error types (no generic exceptions)
107
- - Error context preservation
108
- - Graceful degradation capabilities
109
- - Comprehensive error logging
110
-
111
- **Implementation Examples:**
112
-
113
- ```typescript
114
- // TypeScript - Result pattern
115
- type Result<T, E> = { success: true; data: T } | { success: false; error: E };
116
-
117
- async function processOrder(order: Order): Promise<Result<OrderResult, OrderError>> {
118
- try {
119
- const result = await validateOrder(order);
120
- return { success: true, data: result };
121
- } catch (error) {
122
- return { success: false, error: new OrderError(error.message) };
123
- }
124
- }
125
- ```
126
-
127
- ```rust
128
- // Rust - Result type
129
- fn process_order(order: Order) -> Result<OrderResult, OrderError> {
130
- let validated = validate_order(&order)?;
131
- let result = calculate_total(&validated)?;
132
- Ok(result)
133
- }
134
- ```
135
-
136
- ```python
137
- # Python - Custom exceptions
138
- class OrderError(Exception):
139
- def __init__(self, message: str, context: dict = None):
140
- super().__init__(message)
141
- self.context = context or {}
142
-
143
- def process_order(order: Order) -> OrderResult:
144
- try:
145
- validated = validate_order(order)
146
- return calculate_total(validated)
147
- except ValidationError as e:
148
- raise OrderError(f"Order validation failed: {e}", {"order_id": order.id})
149
- ```
150
-
151
- ### Configuration Management
152
-
153
- **Universal Configuration Standards:**
154
-
155
- - Environment-based configuration
156
- - Type-safe configuration objects
157
- - Validation of configuration values
158
- - Secrets management integration
159
-
160
- **Implementation Examples:**
161
-
162
- ```typescript
163
- // TypeScript
164
- interface Config {
165
- database: {
166
- host: string;
167
- port: number;
168
- ssl: boolean;
169
- };
170
- api: {
171
- timeout: number;
172
- retries: number;
173
- };
174
- }
175
-
176
- const config: Config = {
177
- database: {
178
- host: process.env.DB_HOST || 'localhost',
179
- port: parseInt(process.env.DB_PORT || '5432'),
180
- ssl: process.env.DB_SSL === 'true',
181
- },
182
- api: {
183
- timeout: parseInt(process.env.API_TIMEOUT || '5000'),
184
- retries: parseInt(process.env.API_RETRIES || '3'),
185
- },
186
- };
187
- ```
188
-
189
- ```rust
190
- // Rust
191
- #[derive(Debug, Deserialize)]
192
- struct Config {
193
- database: DatabaseConfig,
194
- api: ApiConfig,
195
- }
196
-
197
- #[derive(Debug, Deserialize)]
198
- struct DatabaseConfig {
199
- host: String,
200
- port: u16,
201
- ssl: bool,
202
- }
203
-
204
- impl Config {
205
- fn from_env() -> Result<Self, ConfigError> {
206
- let host = env::var("DB_HOST").unwrap_or_else(|_| "localhost".to_string());
207
- let port = env::var("DB_PORT")
208
- .unwrap_or_else(|_| "5432".to_string())
209
- .parse()
210
- .map_err(|_| ConfigError::InvalidPort)?;
211
-
212
- Ok(Config {
213
- database: DatabaseConfig {
214
- host,
215
- port,
216
- ssl: env::var("DB_SSL").unwrap_or_else(|_| "false".to_string()) == "true",
217
- },
218
- api: ApiConfig::from_env()?,
219
- })
220
- }
221
- }
222
- ```
223
-
224
- ## Universal Testing Standards
225
-
226
- ### Test Structure Requirements
227
-
228
- **All languages must follow:**
229
-
230
- - Given-When-Then structure
231
- - Descriptive test names
232
- - Independent test execution
233
- - Proper setup/teardown
234
-
235
- **Implementation Examples:**
236
-
237
- ```typescript
238
- // TypeScript/JavaScript
239
- describe('OrderService', () => {
240
- describe('when processing a valid order', () => {
241
- it('should return order confirmation', async () => {
242
- // Given: Valid order data
243
- const order = createValidOrder();
244
-
245
- // When: Processing the order
246
- const result = await orderService.processOrder(order);
247
-
248
- // Then: Should return confirmation
249
- expect(result.success).toBe(true);
250
- expect(result.data.orderId).toBeDefined();
251
- });
252
- });
253
- });
254
- ```
255
-
256
- ```rust
257
- // Rust
258
- #[cfg(test)]
259
- mod tests {
260
- use super::*;
261
-
262
- #[tokio::test]
263
- async fn test_process_valid_order() {
264
- // Given: Valid order data
265
- let order = create_valid_order();
266
-
267
- // When: Processing the order
268
- let result = order_service.process_order(order).await;
269
-
270
- // Then: Should return confirmation
271
- assert!(result.is_ok());
272
- let order_result = result.unwrap();
273
- assert!(order_result.order_id.is_some());
274
- }
275
- }
276
- ```
277
-
278
- ```python
279
- # Python
280
- class TestOrderService:
281
- def test_process_valid_order_returns_confirmation(self):
282
- # Given: Valid order data
283
- order = self.create_valid_order()
284
-
285
- # When: Processing the order
286
- result = self.order_service.process_order(order)
287
-
288
- # Then: Should return confirmation
289
- assert result.success is True
290
- assert result.data.order_id is not None
291
- ```
292
-
293
- ### Test Data Management
294
-
295
- **Universal Requirements:**
296
-
297
- - Realistic test data factories
298
- - Deterministic test execution
299
- - Proper cleanup procedures
300
- - Isolated test environments
301
-
302
- ## Universal Documentation Standards
303
-
304
- ### API Documentation
305
-
306
- **All languages must provide:**
307
-
308
- - Function/method signatures with types
309
- - Parameter descriptions and constraints
310
- - Return value specifications
311
- - Error conditions and exceptions
312
- - Usage examples
313
-
314
- **Implementation Examples:**
315
-
316
- ````typescript
317
- /**
318
- * Processes a customer order and returns confirmation details.
319
- *
320
- * @param order - The order to process with validated items and payment info
321
- * @param options - Optional processing options for customization
322
- * @returns Promise resolving to order confirmation or rejection details
323
- * @throws ValidationError when order data is invalid
324
- * @throws PaymentError when payment processing fails
325
- * @throws InventoryError when items are unavailable
326
- *
327
- * @example
328
- * ```typescript
329
- * const order = { items: [...], payment: {...} };
330
- * const result = await processOrder(order);
331
- * console.log(`Order ${result.orderId} confirmed`);
332
- * ```
333
- */
334
- async function processOrder(order: Order, options?: ProcessingOptions): Promise<OrderResult> {
335
- // Implementation
336
- }
337
- ````
338
-
339
- ````rust
340
- /// Processes a customer order and returns confirmation details.
341
- ///
342
- /// # Arguments
343
- /// * `order` - The order to process with validated items and payment info
344
- /// * `options` - Optional processing options for customization
345
- ///
346
- /// # Returns
347
- /// Returns `Ok(OrderResult)` with confirmation details on success
348
- ///
349
- /// # Errors
350
- /// * `ValidationError` - When order data is invalid
351
- /// * `PaymentError` - When payment processing fails
352
- /// * `InventoryError` - When items are unavailable
353
- ///
354
- /// # Examples
355
- /// ```rust
356
- /// let order = Order { items: vec![...], payment: PaymentInfo {...} };
357
- /// let result = process_order(order).await?;
358
- /// println!("Order {} confirmed", result.order_id);
359
- /// ```
360
- pub async fn process_order(
361
- order: Order,
362
- options: Option<ProcessingOptions>
363
- ) -> Result<OrderResult, OrderError> {
364
- // Implementation
365
- }
366
- ````
367
-
368
- ```python
369
- def process_order(order: Order, options: Optional[ProcessingOptions] = None) -> OrderResult:
370
- """Process a customer order and return confirmation details.
371
-
372
- Args:
373
- order: The order to process with validated items and payment info
374
- options: Optional processing options for customization
375
-
376
- Returns:
377
- OrderResult with confirmation details
378
-
379
- Raises:
380
- ValidationError: When order data is invalid
381
- PaymentError: When payment processing fails
382
- InventoryError: When items are unavailable
383
-
384
- Example:
385
- >>> order = Order(items=[...], payment=PaymentInfo(...))
386
- >>> result = process_order(order)
387
- >>> print(f"Order {result.order_id} confirmed")
388
- """
389
- # Implementation
390
- ```
391
-
392
- ## Universal Security Standards
393
-
394
- ### Input Validation
395
-
396
- **All languages must implement:**
397
-
398
- - Schema-based validation
399
- - Type checking at boundaries
400
- - Sanitization of user input
401
- - Length and format constraints
402
-
403
- ### Authentication & Authorization
404
-
405
- **Universal Requirements:**
406
-
407
- - Token-based authentication
408
- - Role-based access control
409
- - Session management
410
- - Audit logging
411
-
412
- ### Data Protection
413
-
414
- **Universal Standards:**
415
-
416
- - Encryption at rest and in transit
417
- - Secure key management
418
- - Data anonymization capabilities
419
- - Privacy compliance measures
420
-
421
- ## Universal Performance Standards
422
-
423
- ### Response Time SLAs
424
-
425
- **Universal Performance Requirements:**
426
-
427
- - API endpoints: P95 < 250ms
428
- - Database queries: P95 < 100ms
429
- - File operations: P95 < 500ms
430
- - Complex computations: P95 < 2000ms
431
-
432
- ### Resource Management
433
-
434
- **Universal Resource Standards:**
435
-
436
- - Memory usage monitoring
437
- - CPU utilization limits
438
- - Connection pool management
439
- - Garbage collection optimization
440
-
441
- ## Universal Monitoring Standards
442
-
443
- ### Logging Requirements
444
-
445
- **All applications must provide:**
446
-
447
- - Structured logging (JSON format)
448
- - Log levels (ERROR, WARN, INFO, DEBUG)
449
- - Request correlation IDs
450
- - Performance metrics
451
-
452
- ### Metrics Collection
453
-
454
- **Universal Metrics:**
455
-
456
- - Request/response times
457
- - Error rates and types
458
- - Resource utilization
459
- - Business KPIs
460
-
461
- ### Health Checks
462
-
463
- **Universal Health Endpoints:**
464
-
465
- - Application health status
466
- - Dependency health checks
467
- - Resource availability
468
- - Business logic validation
469
-
470
- ## CAWS Integration
471
-
472
- ### Quality Gate Integration
473
-
474
- ```bash
475
- # Run complexity analysis
476
- caws quality-gates --check-complexity
477
-
478
- # Check architectural patterns
479
- caws quality-gates --check-architecture
480
-
481
- # Validate universal standards
482
- caws quality-gates --check-universal-standards
483
- ```
484
-
485
- ### Metrics Tracking
486
-
487
- ```bash
488
- # Metrics are tracked automatically via working state
489
- ```
490
-
491
- ### Progress Tracking
492
-
493
- ```bash
494
- # Verify acceptance criteria for complexity compliance
495
- caws verify-acs --spec-id <id>
496
- ```
497
-
498
- ## Enforcement Mechanisms
499
-
500
- ### Static Analysis Integration
501
-
502
- **Universal Static Analysis:**
503
-
504
- - Complexity analysis
505
- - Dependency analysis
506
- - Security vulnerability scanning
507
- - Code quality metrics
508
-
509
- ### CI/CD Integration
510
-
511
- **Universal CI/CD Requirements:**
512
-
513
- - Automated testing
514
- - Quality gate enforcement
515
- - Security scanning
516
- - Performance regression testing
517
-
518
- ### CAWS Quality Gates
519
-
520
- ```yaml
521
- # In .caws/working-spec.yaml
522
- quality_gates:
523
- complexity:
524
- max_cyclomatic: 10
525
- max_cognitive: 15
526
- max_nesting: 4
527
-
528
- maintainability:
529
- max_function_lines: 50
530
- max_file_lines: 1000
531
- max_parameters: 5
532
-
533
- architecture:
534
- dependency_injection: required
535
- error_handling: required
536
- configuration_management: required
537
- ```
538
-
539
- ## Quality Metrics Dashboard
540
-
541
- ### Universal Quality Score
542
-
543
- **Calculation Formula:**
544
-
545
- ```
546
- Quality Score = (
547
- Complexity Score * 0.2 +
548
- Test Coverage Score * 0.3 +
549
- Security Score * 0.2 +
550
- Performance Score * 0.15 +
551
- Documentation Score * 0.15
552
- ) * 100
553
- ```
554
-
555
- ### Trend Analysis
556
-
557
- **Track over time:**
558
-
559
- - Quality score trends
560
- - Complexity growth
561
- - Test coverage changes
562
- - Security vulnerability rates
563
- - Performance degradation
564
-
565
- ### CAWS Integration
566
-
567
- ```bash
568
- # Generate quality report
569
- caws quality-report --include-complexity --include-architecture
570
-
571
- # Track quality trends
572
- caws metrics trends --metric="quality_score" --period="30d"
573
-
574
- # Export quality metrics
575
- caws metrics export --format=json --include-universal-standards
576
- ```
577
-
578
- This rule ensures consistent engineering standards across all programming languages while respecting language-specific idioms and capabilities, fully integrated with CAWS quality gates and metrics tracking.
@@ -1,148 +0,0 @@
1
- # Cursor Rules for CAWS Projects
2
-
3
- This directory contains modular rule files that Cursor uses to guide development in CAWS projects.
4
-
5
- ## Rule Files
6
-
7
- ### Always Applied (Core Governance)
8
-
9
- - `00-claims-verification.mdc` - Production readiness claims require rigorous verification
10
- - `01-working-style.mdc` - Default agent behavior, edit style, and risk limits
11
- - `02-quality-gates.mdc` - Comprehensive testing standards and verification requirements
12
- - `03-infrastructure-standards.mdc` - Infrastructure, deployment, and operational standards
13
- - `03-naming-and-refactor.mdc` - Canonical naming enforcement and refactor strategies
14
- - `04-documentation-integrity.mdc` - Documentation must match implementation reality
15
- - `05-production-readiness-checklist.mdc` - Quick reference checklist for production readiness
16
- - `05-safe-defaults-guards.mdc` - Safe defaults, guard clauses, and early returns
17
- - `06-typescript-conventions.mdc` - TypeScript/JS conventions and best practices
18
- - `07-process-ops.mdc` - Process discipline and server management
19
- - `08-solid-and-architecture.mdc` - SOLID principles and architectural patterns
20
- - `09-docstrings.mdc` - Language-specific docstring formats, standards, and file headers
21
- - `10-documentation-quality-standards.mdc` - Engineering-grade documentation standards
22
- - `11-scope-management-waivers.mdc` - Scope management, change budgets, and emergency waiver procedures
23
- - `12-implementation-completeness.mdc` - Anti-fake implementation guardrails with sophisticated TODO detection
24
- - `13-language-agnostic-standards.mdc` - Universal engineering standards (conditional - applies to code files only)
25
-
26
- ## How MDC Works
27
-
28
- Each `.mdc` file has frontmatter that controls when it applies:
29
-
30
- ```yaml
31
- ---
32
- description: Brief description of the rule
33
- globs:
34
- alwaysApply: true
35
- ---
36
- ```
37
-
38
- - **alwaysApply: true** - Rule is always active
39
- - **globs: [...]** - Rule auto-attaches when editing matching files
40
-
41
- ## CAWS Quality Standards
42
-
43
- These rules enforce CAWS quality tiers:
44
-
45
- | Tier | Coverage | Mutation | Use Case |
46
- | --------- | -------- | -------- | --------------------------- |
47
- | 🔴 **T1** | 90%+ | 70%+ | Auth, billing, migrations |
48
- | 🟡 **T2** | 80%+ | 50%+ | Features, APIs, data writes |
49
- | 🟢 **T3** | 70%+ | 30%+ | UI, internal tools |
50
-
51
- ## Comprehensive Coverage Areas
52
-
53
- ### Core Engineering Standards
54
-
55
- - **Production Readiness**: Rigorous verification requirements with evidence-based claims and accountability measures
56
- - **Testing Standards**: Complete testing pyramid (unit/integration/E2E) with coverage thresholds and quality gates
57
- - **Infrastructure**: Database, API, security, monitoring, deployment, and operational standards
58
- - **Documentation**: Engineering-grade content with reality alignment verification and prohibited patterns
59
-
60
- ### Advanced Quality Controls
61
-
62
- - **Scope Management**: Change budget enforcement with emergency waiver procedures and critical fix protocols
63
- - **Implementation Completeness**: Anti-fake implementation guardrails with sophisticated TODO detection
64
- - **Language-Agnostic Standards**: Universal patterns across all programming languages with complexity metrics
65
- - **Duplication Prevention**: Canonical naming enforcement and refactor strategies (merge-then-delete)
66
-
67
- ### Development Workflow Standards
68
-
69
- - **Working Style**: Risk-based edit principles with targeted edit plans for complex changes
70
- - **Quality Gates**: Execution discipline, commit hygiene, and automated enforcement
71
- - **Safe Defaults**: Guard clauses, early returns, and defensive programming patterns
72
- - **Process Operations**: Server management, hung command handling, and development discipline
73
-
74
- ### Code Quality & Architecture
75
-
76
- - **SOLID Principles**: Single responsibility, open-closed, Liskov substitution, interface segregation, dependency inversion
77
- - **TypeScript Conventions**: Alias imports, const preferences, and type system management
78
- - **Documentation Standards**: Language-specific docstring formats and comprehensive API documentation
79
- - **Authorship & Attribution**: File headers, authorship tracking, and contribution standards
80
-
81
- ### Risk-Based Enforcement
82
-
83
- - **Tier 1 (Critical Systems)**: 90%+ coverage, 95%+ branch, 70%+ mutation, manual review required
84
- - **Tier 2 (Standard Features)**: 80%+ coverage, 90%+ branch, 50%+ mutation, optional review
85
- - **Tier 3 (Low Risk)**: 70%+ coverage, 80%+ branch, 30%+ mutation, optional review
86
-
87
- ### Integration with Existing Tooling
88
-
89
- - **TODO Analysis**: Sophisticated detection with confidence scoring and context-aware analysis
90
- - **CAWS Workflow**: Seamless integration with CAWS validation, testing, and quality gates
91
- - **Automated Detection**: Ripgrep patterns for banned naming, incomplete implementations, and quality violations
92
-
93
- ## Key Features
94
-
95
- ### Sophisticated TODO Detection
96
-
97
- - **Context-aware analysis** with confidence scoring (0.0-1.0)
98
- - **Language-specific patterns** for 13+ languages including Rust, Python, JavaScript, TypeScript
99
- - **Code stub detection** beyond just comments (detects `pass`, `...`, `NotImplementedError`, etc.)
100
- - **Dependency resolution** for staged files with blocking analysis
101
- - **Sophisticated exclusion patterns** to prevent false positives
102
-
103
- ### Risk-Based Quality Gates
104
-
105
- - **Tier 1 (Critical)**: Auth, billing, migrations - 90%+ coverage, 70%+ mutation, manual review
106
- - **Tier 2 (Standard)**: Features, APIs, data writes - 80%+ coverage, 50%+ mutation, optional review
107
- - **Tier 3 (Low Risk)**: UI, internal tools - 70%+ coverage, 30%+ mutation, optional review
108
-
109
- ### Emergency Procedures
110
-
111
- - **Scope Management**: Change budget enforcement with automatic detection
112
- - **Waiver System**: Structured procedures for critical fixes outside scope
113
- - **Critical Fix Protocols**: Emergency override conditions with proper documentation
114
-
115
- ### Anti-Pattern Prevention
116
-
117
- - **Banned Naming**: Prevents `enhanced-*`, `new-*`, `final-*` duplicate patterns
118
- - **Implementation Completeness**: Detects fake persistence, stub APIs, placeholder business logic
119
- - **Documentation Reality**: Ensures documented features actually work
120
-
121
- ## Usage
122
-
123
- Cursor automatically loads these rules from `.cursor/rules/`. View active rules in Cursor's sidebar.
124
-
125
- To disable a rule temporarily: Cursor Settings → Rules → Toggle specific rule
126
-
127
- ## Integration with CAWS Workflow
128
-
129
- These rules complement CAWS tools and existing project tooling:
130
-
131
- - **Validation**: `caws validate` checks rule compliance and working spec validity
132
- - **Testing**: Rules guide comprehensive testing requirements with coverage thresholds
133
- - **Quality Gates**: Automated enforcement of standards with risk-based tiers
134
- - **Documentation**: Ensures docs match implementation reality with engineering-grade standards
135
- - **TODO Analysis**: Sophisticated hidden TODO detection with confidence scoring
136
- - **Scope Management**: Change budget enforcement with emergency waiver procedures
137
- - **Implementation Completeness**: Anti-fake implementation guardrails with stub detection
138
-
139
- ## Continuous Improvement
140
-
141
- Rules are regularly updated based on:
142
-
143
- - Industry best practices
144
- - CAWS user feedback
145
- - Production incident analysis
146
- - Security research and compliance updates
147
-
148
- For questions about these rules, see the main CAWS documentation or contact the CAWS team.