@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,300 +0,0 @@
1
- # OIDC Trusted Publisher Setup
2
-
3
- This guide helps you set up OIDC (OpenID Connect) trusted publisher for automated publishing to package registries.
4
-
5
- ## Overview
6
-
7
- OIDC trusted publisher allows you to publish packages without storing long-lived tokens or passwords in your CI/CD environment. Instead, it uses short-lived tokens issued by the OIDC provider.
8
-
9
- ## Supported Registries
10
-
11
- - **npm**: npm Registry
12
- - **PyPI**: Python Package Index
13
- - **Maven Central**: Java packages
14
- - **NuGet**: .NET packages
15
-
16
- ## Setup Process
17
-
18
- ### 1. Configure OIDC Provider
19
-
20
- Most CI/CD platforms (GitHub Actions, GitLab CI, etc.) provide built-in OIDC support.
21
-
22
- **GitHub Actions Example:**
23
-
24
- ```yaml
25
- # .github/workflows/publish.yml
26
- name: Publish Package
27
-
28
- on:
29
- release:
30
- types: [published]
31
-
32
- jobs:
33
- publish:
34
- runs-on: ubuntu-latest
35
- permissions:
36
- contents: read
37
- id-token: write
38
- steps:
39
- - uses: actions/checkout@v4
40
- - name: Setup Node.js
41
- uses: actions/setup-node@v4
42
- with:
43
- node-version: '20'
44
- registry-url: 'https://registry.npmjs.org'
45
- - name: Install dependencies
46
- run: npm ci
47
- - name: Build package
48
- run: npm run build
49
- - name: Publish to npm
50
- run: npm publish
51
- env:
52
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
53
- ```
54
-
55
- ### 2. Registry Configuration
56
-
57
- #### npm Registry
58
-
59
- 1. **Create OIDC Integration**:
60
-
61
- ```bash
62
- # Using npm CLI
63
- npm profile enable-2fa auth-and-writes
64
- ```
65
-
66
- 2. **Configure Trusted Publisher**:
67
- - Go to npmjs.com → Account Settings → Access Tokens
68
- - Create "Automation" token
69
- - Configure OIDC integration
70
-
71
- 3. **Repository Settings**:
72
- ```json
73
- // package.json
74
- {
75
- "publishConfig": {
76
- "registry": "https://registry.npmjs.org/"
77
- }
78
- }
79
- ```
80
-
81
- #### PyPI (Python)
82
-
83
- 1. **Create API Token**:
84
-
85
- ```bash
86
- # Using twine
87
- twine upload --config-file ~/.pypirc dist/*
88
- ```
89
-
90
- 2. **OIDC Configuration**:
91
- ```yaml
92
- # .github/workflows/publish.yml
93
- - name: Publish to PyPI
94
- uses: pypa/gh-action-pypi-publish@release/v1
95
- with:
96
- password: ${{ secrets.PYPI_API_TOKEN }}
97
- ```
98
-
99
- ### 3. Security Best Practices
100
-
101
- #### Token Management
102
-
103
- - ✅ **Use short-lived tokens** (1-6 hours)
104
- - ✅ **Scope tokens to specific repositories**
105
- - ✅ **Rotate tokens regularly**
106
- - ❌ **Never store long-lived tokens in code**
107
- - ❌ **Never commit tokens to version control**
108
-
109
- #### Environment Variables
110
-
111
- ```bash
112
- # Good: Short-lived, scoped token
113
- NODE_AUTH_TOKEN=gho_shortlivedtoken123
114
-
115
- # Bad: Long-lived, broad token
116
- NPM_TOKEN=longlivedbroadtoken456
117
- ```
118
-
119
- #### Repository Secrets
120
-
121
- Store sensitive tokens in repository secrets:
122
-
123
- **GitHub**: Settings → Secrets and variables → Actions
124
- **GitLab**: Settings → CI/CD → Variables
125
- **Azure DevOps**: Pipelines → Library → Variable groups
126
-
127
- ### 4. Testing the Setup
128
-
129
- #### Local Testing
130
-
131
- ```bash
132
- # Test with dry run
133
- npm publish --dry-run
134
-
135
- # Test with local registry
136
- npm publish --registry http://localhost:4873
137
- ```
138
-
139
- #### CI/CD Testing
140
-
141
- ```yaml
142
- # Add to your workflow for testing
143
- - name: Test publish (dry run)
144
- run: npm publish --dry-run
145
- env:
146
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
147
- ```
148
-
149
- ### 5. Troubleshooting
150
-
151
- #### Common Issues
152
-
153
- **Token Expired**:
154
-
155
- ```
156
- npm ERR! code E401
157
- npm ERR! Unable to authenticate, need: Basic
158
- ```
159
-
160
- **Solution**: Check token expiration and refresh if needed.
161
-
162
- **Insufficient Permissions**:
163
-
164
- ```
165
- npm ERR! code E403
166
- npm ERR! Forbidden
167
- ```
168
-
169
- **Solution**: Verify token has publish permissions for the package.
170
-
171
- **OIDC Provider Issues**:
172
-
173
- ```
174
- Error: Failed to get OIDC token
175
- ```
176
-
177
- **Solution**: Check OIDC provider configuration and permissions.
178
-
179
- #### Debug Mode
180
-
181
- Enable debug logging:
182
-
183
- ```bash
184
- # npm
185
- npm config set loglevel verbose
186
-
187
- # Python
188
- export TWINE_VERBOSE=1
189
-
190
- # Maven
191
- mvn deploy -X
192
- ```
193
-
194
- ### 6. Migration from Legacy Tokens
195
-
196
- If you're migrating from username/password or long-lived tokens:
197
-
198
- 1. **Audit existing tokens**:
199
-
200
- ```bash
201
- # npm
202
- npm profile get
203
-
204
- # List all tokens
205
- npm token list
206
- ```
207
-
208
- 2. **Revoke old tokens**:
209
-
210
- ```bash
211
- npm token delete <token-id>
212
- ```
213
-
214
- 3. **Update CI/CD workflows**:
215
- - Replace `NPM_TOKEN` with `NODE_AUTH_TOKEN`
216
- - Add OIDC permissions
217
- - Test in staging environment
218
-
219
- ### 7. Monitoring and Alerts
220
-
221
- Set up monitoring for:
222
-
223
- - **Publish failures**: Alert on failed deployments
224
- - **Token expiration**: Proactive token renewal
225
- - **Security events**: Unusual publish patterns
226
- - **Registry status**: External service health
227
-
228
- #### Example Monitoring
229
-
230
- ```yaml
231
- # .github/workflows/monitor.yml
232
- name: Monitor Publishing
233
-
234
- on:
235
- workflow_run:
236
- workflows: ['Publish Package']
237
- types: [completed]
238
-
239
- jobs:
240
- monitor:
241
- runs-on: ubuntu-latest
242
- steps:
243
- - name: Check publish status
244
- if: ${{ github.event.workflow_run.conclusion == 'failure' }}
245
- run: |
246
- echo "Publish failed! Check logs."
247
- # Send alert to Slack/Teams/etc.
248
- ```
249
-
250
- ## CAWS Integration
251
-
252
- For CAWS projects, OIDC setup integrates with:
253
-
254
- - **Provenance tracking**: Automatic attestation of published packages
255
- - **Security scanning**: Validation of published artifacts
256
- - **Quality gates**: Ensure packages meet standards before publish
257
-
258
- ### CAWS-Specific Configuration
259
-
260
- ```yaml
261
- # .caws/working-spec.yaml
262
- non_functional:
263
- security:
264
- - 'oidc-authentication'
265
- - 'token-rotation'
266
- - 'publish-attestation'
267
- ```
268
-
269
- ### Automated Provenance
270
-
271
- CAWS automatically generates provenance information:
272
-
273
- ```bash
274
- # Generate SBOM and attestation
275
- caws attest --format=slsa
276
-
277
- # Validate before publish
278
- caws validate --security-scan
279
- ```
280
-
281
- ## Resources
282
-
283
- - [npm OIDC Documentation](https://docs.npmjs.com/about-access-tokens)
284
- - [GitHub Actions OIDC](https://docs.github.com/en/actions/deployment/security/hardening-your-deployments/about-security-hardening-with-openid-connect)
285
- - [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishing/)
286
- - [OIDC Specification](https://openid.net/connect/)
287
-
288
- ## Support
289
-
290
- For issues with OIDC setup:
291
-
292
- 1. Check the troubleshooting section above
293
- 2. Review registry-specific documentation
294
- 3. Open an issue in the CAWS repository
295
- 4. Contact your organization's security team
296
-
297
- ---
298
-
299
- **Note**: This guide provides general OIDC setup instructions. Always follow your organization's specific security policies and procedures.
300
-
@@ -1,145 +0,0 @@
1
- # AGENTS.md
2
-
3
- This project uses [CAWS](https://github.com/paths-design/caws) (Coding Agent Working Standard) for quality-assured AI-assisted development.
4
-
5
- ## Build & Test
6
-
7
- ```bash
8
- npm install # Install dependencies
9
- npm test # Run tests
10
- npm run lint # Lint code
11
- npm run typecheck # Type check (if TypeScript)
12
- caws validate # Validate the current CAWS spec
13
- ```
14
-
15
- ## Project Structure
16
-
17
- ```
18
- .caws/
19
- working-spec.yaml # Compatibility mirror for legacy paths
20
- specs/ # Canonical feature specs
21
- policy.yaml # Quality policy overrides (optional)
22
- waivers.yml # Active waivers (optional)
23
- ```
24
-
25
- ## CAWS Workflow
26
-
27
- 1. **Read the canonical spec**: Use `.caws/specs/<spec-id>.yaml` when feature specs exist
28
- 2. **Validate**: Run `caws validate --spec-id <spec-id>` for feature work
29
- 3. **Plan**: Run `caws iterate` for implementation guidance
30
- 4. **Implement**: Write tests first, then implementation. Stay within scope boundaries.
31
- 5. **Verify**: Run `caws evaluate` to check quality compliance
32
- 6. **Commit**: Use conventional commits (`feat:`, `fix:`, `refactor:`, `docs:`, `chore:`)
33
-
34
- For a new feature in a multi-agent project:
35
-
36
- ```bash
37
- caws specs create my-feature --type feature --title "My Feature"
38
- caws validate --spec-id my-feature
39
- ```
40
-
41
- ## Scope and Worktree Binding
42
-
43
- The scope guard enforces `scope.in` and `scope.out` from your spec. How it enforces depends on binding:
44
-
45
- - **Authoritative mode** (worktree bound to a spec): Only your spec's scope is checked. Other agents' specs cannot block you.
46
- - **Union mode** (no binding): ALL active specs are checked. Any `scope.out` from any spec can block you.
47
-
48
- ```bash
49
- # See your effective scope and binding health
50
- caws scope show
51
-
52
- # Fix a broken binding
53
- caws worktree bind <spec-id>
54
- ```
55
-
56
- **Recovery** (when blocked unexpectedly):
57
- 1. Run `caws scope show` to check mode and binding health
58
- 2. If union mode: `caws worktree bind <spec-id>`
59
- 3. If authoritative but blocked: update your spec's `scope.in`
60
- 4. Do NOT edit another spec's `scope.out` to unblock yourself
61
-
62
- ## Key Rules
63
-
64
- 1. **Stay in scope** -- only edit files listed in `scope.in`, never touch `scope.out`
65
- 2. **Respect change budgets** -- stay within `max_files` and `max_loc` limits
66
- 3. **No shadow files** -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
67
- 4. **Tests first** -- write failing tests before implementation
68
- 5. **Deterministic code** -- inject time, random, and UUID generators for testability
69
- 6. **No fake implementations** -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
70
- 7. **Prove claims** -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence (test results, coverage reports), not assertions.
71
- 8. **No marketing language in docs** -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade" in documentation and comments
72
- 9. **Ask first for risky changes** -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion before implementation
73
-
74
- ## Quality Gates
75
-
76
- Requirements are tiered based on the `risk_tier` in the active spec:
77
-
78
- | Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
79
- |------|---------------|----------------|----------------|
80
- | Test coverage | 90%+ | 80%+ | 70%+ |
81
- | Mutation score | 70%+ | 50%+ | 30%+ |
82
- | Contracts | Required | Required | Optional |
83
- | Manual review | Required | Optional | Optional |
84
-
85
- ## Code Style
86
-
87
- - Prefer `const` over `let`
88
- - Use guard clauses and early returns over deep nesting
89
- - Single responsibility: one reason to change per module
90
- - Depend on abstractions, not concretions
91
- - Extension points over editing internals (open/closed principle)
92
- - Max cyclomatic complexity per function: 10
93
- - Max nesting depth: 4
94
- - Max function length: 50 lines
95
- - Max file length: 1000 lines
96
- - Max parameters: 5
97
- - No emojis in production code or logs
98
- - Check if a server/process is already running before starting another
99
-
100
- ### Naming
101
-
102
- Forbidden file name modifiers: `enhanced`, `unified`, `better`, `new`, `next`, `final`, `copy`, `revamp`, `improved`. Use in-place edits with merge-then-delete strategy for refactors.
103
-
104
- ## Modes
105
-
106
- | Mode | Contracts | New Files | Key Artifacts |
107
- |------|-----------|-----------|---------------|
108
- | **feature** | Required first | Allowed in scope.in | Migration plan, feature flag, perf budget |
109
- | **refactor** | Must not change | Discouraged | Codemod script + semantic diff |
110
- | **fix** | Unchanged | Discouraged | Red test -> green; root cause note |
111
- | **doc** | N/A | Docs only | Updated README/usage snippets |
112
- | **chore** | N/A | Build/tools only | Version updates, dependency changes |
113
-
114
- ## Waivers
115
-
116
- If you need to bypass a quality gate, create a waiver with justification:
117
-
118
- ```bash
119
- caws waivers create --reason emergency_hotfix --gates coverage_threshold
120
- ```
121
-
122
- Valid reasons: `emergency_hotfix`, `legacy_integration`, `experimental_feature`, `performance_critical`, `infrastructure_limitation`
123
-
124
- ## Pre-Submit Checklist
125
-
126
- - [ ] Canonical spec exists and validates (`caws validate --spec-id <spec-id>` when applicable)
127
- - [ ] All tests pass (`npm test`)
128
- - [ ] Coverage meets tier requirements
129
- - [ ] Lints pass (`npm run lint`)
130
- - [ ] Types check (`npm run typecheck`)
131
- - [ ] No scope violations
132
- - [ ] Change budget not exceeded (`caws burnup --spec-id <spec-id>` shows budget consumption)
133
- - [ ] Acceptance criteria proven (`caws verify-acs --spec-id <spec-id>` checks evidence exists)
134
- - [ ] Conventional commit message
135
-
136
- ### Optional: Self-Diagnosis with Sidecars
137
-
138
- If a gate blocks you, use sidecar commands to understand why before retrying:
139
-
140
- ```bash
141
- caws sidecar gaps # What's missing? Which gates are failing and why?
142
- caws sidecar drift # Has implementation drifted from the spec intent?
143
- caws sidecar waiver-draft # Generate a pre-filled waiver if the gap is acceptable
144
- caws sidecar provenance # Summarize work history for merge readiness
145
- ```
@@ -1 +0,0 @@
1
- # Codemod Scripts
@@ -1,93 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Template Codemod for CAWS Framework
5
- * Automated code transformations for refactoring
6
- * @author CAWS Framework
7
- */
8
-
9
- const tsMorph = require('ts-morph');
10
-
11
- function applyCodemod(dryRun = true) {
12
- console.log('🔧 Applying codemod transformations...');
13
-
14
- const project = new tsMorph.Project();
15
-
16
- // Load all TypeScript source files
17
- const sourceFiles = project.addSourceFilesAtPaths('src/**/*.ts');
18
-
19
- if (sourceFiles.length === 0) {
20
- console.log('⚠️ No TypeScript source files found in src/ directory');
21
- return { filesProcessed: 0, changesApplied: 0 };
22
- }
23
-
24
- console.log(`📁 Processing ${sourceFiles.length} source files`);
25
- let totalChanges = 0;
26
-
27
- for (const sourceFile of sourceFiles) {
28
- const filePath = sourceFile.getFilePath();
29
- console.log(`Processing: ${filePath}`);
30
-
31
- let fileChanges = 0;
32
-
33
- // Example transformations - customize these for your specific needs:
34
-
35
- // 1. Add JSDoc to exported functions without documentation
36
- const exportedFunctions = sourceFile
37
- .getFunctions()
38
- .filter((func) => func.isExported && !func.getJsDocs().length);
39
-
40
- for (const func of exportedFunctions) {
41
- func.addJsDoc({
42
- description: `Handles ${func.getName()} operations`,
43
- tags: [
44
- { tagName: 'param', text: 'options - Configuration options' },
45
- { tagName: 'returns', text: 'Result of the operation' },
46
- ],
47
- });
48
- fileChanges++;
49
- }
50
-
51
- // 2. Add type annotations to untyped parameters (example)
52
- // const untypedParams = sourceFile.getDescendantsOfKind(tsMorph.SyntaxKind.Parameter)
53
- // .filter(param => !param.getTypeNode());
54
- // Add your transformation logic here...
55
-
56
- if (fileChanges > 0) {
57
- console.log(` ✅ Applied ${fileChanges} transformations`);
58
- totalChanges += fileChanges;
59
- }
60
- }
61
-
62
- console.log(`📊 Codemod complete: ${totalChanges} total transformations`);
63
-
64
- if (!dryRun) {
65
- console.log('💾 Saving changes...');
66
- project.saveSync();
67
- console.log('✅ All changes saved successfully');
68
- } else {
69
- console.log('🔍 Dry run - no files were modified');
70
- }
71
-
72
- return {
73
- filesProcessed: sourceFiles.length,
74
- changesApplied: totalChanges,
75
- };
76
- }
77
-
78
- // CLI interface
79
- if (require.main === module) {
80
- const args = process.argv.slice(2);
81
- const dryRun = !args.includes('--apply');
82
-
83
- try {
84
- const result = applyCodemod(dryRun);
85
- console.log('✅ Codemod execution completed');
86
- process.exit(0);
87
- } catch (error) {
88
- console.error('❌ Codemod execution failed:', error.message);
89
- process.exit(1);
90
- }
91
- }
92
-
93
- module.exports = { applyCodemod };
@@ -1,151 +0,0 @@
1
- # CAWS Project Documentation
2
-
3
- ## Overview
4
- This project is built with the **Coding Agent Workflow System (CAWS)** - an engineering-grade framework that ensures quality, reliability, and maintainability in AI-assisted development.
5
-
6
- ## Key Features
7
- - **Quality Gates**: Automated validation of scope, budget, and standards
8
- - **Comprehensive Testing**: Unit, contract, integration, and mutation testing
9
- - **Observability**: Structured logging, metrics, and tracing
10
- - **Rollback Ready**: Feature flags and migration support
11
- - **Provenance Tracking**: SBOM and SLSA attestation generation
12
-
13
- ## Getting Started
14
-
15
- ### 1. Project Setup
16
- The project is already scaffolded with CAWS. Review and customize:
17
- - `.caws/specs/<spec-id>.yaml` - Canonical feature specification and requirements
18
- - `.caws/working-spec.yaml` - Compatibility mirror for legacy paths
19
- - `.caws/policy.yaml` - Risk tier definitions
20
- - `.github/workflows/caws.yml` - CI/CD quality gates
21
-
22
- ### 2. Development Workflow
23
- 1. **Plan**: Update the active feature spec with requirements and scope
24
- 2. **Implement**: Follow agent conduct rules and mode constraints
25
- 3. **Verify**: Run tests and quality gates locally
26
- 4. **Document**: Update documentation and generate provenance
27
-
28
- ### 3. Quality Assurance
29
- - Run `npm run test` for all tests
30
- - Check trust score with CAWS tools
31
- - Validate against working specification
32
- - Ensure rollback capabilities
33
-
34
- ## Architecture
35
-
36
- ### Directory Structure
37
- ```
38
- src/ # Source code
39
- ├── core/ # Core business logic
40
- ├── api/ # API endpoints
41
- ├── models/ # Data models
42
- └── utils/ # Utilities
43
-
44
- tests/ # Test suites
45
- ├── unit/ # Unit tests
46
- ├── contract/ # Contract tests
47
- ├── integration/ # Integration tests
48
- └── e2e/ # End-to-end tests
49
-
50
- apps/tools/caws/ # CAWS utilities
51
- └── prompt-lint.js # Prompt validation
52
- └── attest.js # SBOM/attestation generation
53
- ```
54
-
55
- ### Key Patterns
56
- - **Dependency Injection**: For testability and determinism
57
- - **Interface Segregation**: Clean boundaries and contracts
58
- - **Observability**: Structured logging and metrics
59
- - **Property Testing**: Edge cases and invariants
60
-
61
- ## Development Guidelines
62
-
63
- ### Agent Conduct Rules
64
- 1. **Spec Adherence**: Stay within declared scope and mode
65
- 2. **Determinism**: Inject time, UUID, and random dependencies
66
- 3. **Comprehensive Testing**: Unit + property + integration tests
67
- 4. **Observability**: Log, metric, and trace key operations
68
- 5. **Rollback Ready**: Feature flags and migration support
69
-
70
- ### Code Quality
71
- - **Type Safety**: Full TypeScript coverage
72
- - **Test Coverage**: 80%+ branch coverage, 50%+ mutation score
73
- - **Performance**: API p95 < 250ms, accessibility compliance
74
- - **Security**: Input validation, rate limiting, secret scanning
75
-
76
- ## Deployment
77
-
78
- ### CI/CD Pipeline
79
- The project includes automated quality gates:
80
- - Static analysis and security scanning
81
- - Unit and integration testing
82
- - Performance and accessibility validation
83
- - Provenance and attestation generation
84
-
85
- ### Environment Setup
86
- 1. Configure environment variables
87
- 2. Set up monitoring and alerting
88
- 3. Establish rollback procedures
89
- 4. Document operational runbooks
90
-
91
- ## Monitoring & Observability
92
-
93
- ### Metrics
94
- - Request latency and throughput
95
- - Error rates and types
96
- - Resource utilization
97
- - Business metrics
98
-
99
- ### Logging
100
- - Structured logs with correlation IDs
101
- - Error tracking and alerting
102
- - Performance monitoring
103
- - Security event logging
104
-
105
- ### Tracing
106
- - Distributed request tracing
107
- - Performance profiling
108
- - Dependency analysis
109
- - Root cause identification
110
-
111
- ## Troubleshooting
112
-
113
- ### Common Issues
114
- 1. **Trust Score Low**: Check test coverage and quality gates
115
- 2. **Scope Violations**: Ensure changes align with the active spec
116
- 3. **Budget Exceeded**: Review change size and complexity
117
- 4. **Flaky Tests**: Use property testing and proper mocking
118
-
119
- ### Support
120
- - Check `agents.md` for comprehensive documentation
121
- - Review CI/CD logs for quality gate failures
122
- - Use CAWS tools for validation and debugging
123
- - Follow agent conduct rules for collaboration
124
-
125
- ## Contributing
126
-
127
- ### Development Process
128
- 1. Update the active feature specification
129
- 2. Create comprehensive tests
130
- 3. Implement with quality gates
131
- 4. Generate provenance artifacts
132
- 5. Document changes thoroughly
133
-
134
- ### Code Review
135
- - Review against the active feature spec
136
- - Check trust score and quality gates
137
- - Validate observability and rollback
138
- - Ensure documentation completeness
139
-
140
- ## Resources
141
-
142
- - **[CAWS Framework](agents.md)**: Complete system documentation
143
- - **[Canonical Specs](.caws/specs/)**: Project requirements
144
- - **[Quality Gates](.github/workflows/caws.yml)**: CI/CD pipeline
145
- - **[Tools](apps/tools/caws/)**: Development utilities
146
-
147
- ---
148
-
149
- **Maintainer**: @darianrosebrook
150
- **Framework**: CAWS v1.0
151
- **Updated**: $(date)