@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.
- package/README.md +125 -374
- package/dist/index.js +43 -756
- package/dist/shell/binding/resolve-binding.d.ts +4 -0
- package/dist/shell/binding/resolve-binding.d.ts.map +1 -0
- package/dist/shell/binding/resolve-binding.js +228 -0
- package/dist/shell/binding/resolve-binding.js.map +1 -0
- package/dist/shell/binding/types.d.ts +42 -0
- package/dist/shell/binding/types.d.ts.map +1 -0
- package/dist/shell/binding/types.js +21 -0
- package/dist/shell/binding/types.js.map +1 -0
- package/dist/shell/commands/claim.d.ts +14 -0
- package/dist/shell/commands/claim.d.ts.map +1 -0
- package/dist/shell/commands/claim.js +197 -0
- package/dist/shell/commands/claim.js.map +1 -0
- package/dist/shell/commands/doctor.d.ts +13 -0
- package/dist/shell/commands/doctor.d.ts.map +1 -0
- package/dist/shell/commands/doctor.js +97 -0
- package/dist/shell/commands/doctor.js.map +1 -0
- package/dist/shell/commands/evidence.d.ts +28 -0
- package/dist/shell/commands/evidence.d.ts.map +1 -0
- package/dist/shell/commands/evidence.js +166 -0
- package/dist/shell/commands/evidence.js.map +1 -0
- package/dist/shell/commands/gates.d.ts +19 -0
- package/dist/shell/commands/gates.d.ts.map +1 -0
- package/dist/shell/commands/gates.js +181 -0
- package/dist/shell/commands/gates.js.map +1 -0
- package/dist/shell/commands/init.d.ts +8 -0
- package/dist/shell/commands/init.d.ts.map +1 -0
- package/dist/shell/commands/init.js +64 -0
- package/dist/shell/commands/init.js.map +1 -0
- package/dist/shell/commands/scope.d.ts +11 -0
- package/dist/shell/commands/scope.d.ts.map +1 -0
- package/dist/shell/commands/scope.js +92 -0
- package/dist/shell/commands/scope.js.map +1 -0
- package/dist/shell/commands/status.d.ts +15 -0
- package/dist/shell/commands/status.d.ts.map +1 -0
- package/dist/shell/commands/status.js +106 -0
- package/dist/shell/commands/status.js.map +1 -0
- package/dist/shell/commands/waiver.d.ts +38 -0
- package/dist/shell/commands/waiver.d.ts.map +1 -0
- package/dist/shell/commands/waiver.js +240 -0
- package/dist/shell/commands/waiver.js.map +1 -0
- package/dist/shell/gates/disposition.d.ts +23 -0
- package/dist/shell/gates/disposition.d.ts.map +1 -0
- package/dist/shell/gates/disposition.js +87 -0
- package/dist/shell/gates/disposition.js.map +1 -0
- package/dist/shell/gates/gate-result-contract.d.ts +39 -0
- package/dist/shell/gates/gate-result-contract.d.ts.map +1 -0
- package/dist/shell/gates/gate-result-contract.js +150 -0
- package/dist/shell/gates/gate-result-contract.js.map +1 -0
- package/dist/shell/gates/quality-gates-adapter.d.ts +55 -0
- package/dist/shell/gates/quality-gates-adapter.d.ts.map +1 -0
- package/dist/shell/gates/quality-gates-adapter.js +161 -0
- package/dist/shell/gates/quality-gates-adapter.js.map +1 -0
- package/dist/shell/gates/waiver-filter.d.ts +58 -0
- package/dist/shell/gates/waiver-filter.d.ts.map +1 -0
- package/dist/shell/gates/waiver-filter.js +119 -0
- package/dist/shell/gates/waiver-filter.js.map +1 -0
- package/dist/shell/index.d.ts +50 -0
- package/dist/shell/index.d.ts.map +1 -0
- package/dist/shell/index.js +73 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/shell/register.d.ts +11 -0
- package/dist/shell/register.d.ts.map +1 -0
- package/dist/shell/register.js +274 -0
- package/dist/shell/register.js.map +1 -0
- package/dist/shell/render/claim.d.ts +22 -0
- package/dist/shell/render/claim.d.ts.map +1 -0
- package/dist/shell/render/claim.js +75 -0
- package/dist/shell/render/claim.js.map +1 -0
- package/dist/shell/render/decision.d.ts +15 -0
- package/dist/shell/render/decision.d.ts.map +1 -0
- package/dist/shell/render/decision.js +66 -0
- package/dist/shell/render/decision.js.map +1 -0
- package/dist/shell/render/diagnostic.d.ts +19 -0
- package/dist/shell/render/diagnostic.d.ts.map +1 -0
- package/dist/shell/render/diagnostic.js +76 -0
- package/dist/shell/render/diagnostic.js.map +1 -0
- package/dist/shell/render/finding.d.ts +15 -0
- package/dist/shell/render/finding.d.ts.map +1 -0
- package/dist/shell/render/finding.js +57 -0
- package/dist/shell/render/finding.js.map +1 -0
- package/dist/shell/render/gates.d.ts +3 -0
- package/dist/shell/render/gates.d.ts.map +1 -0
- package/dist/shell/render/gates.js +56 -0
- package/dist/shell/render/gates.js.map +1 -0
- package/dist/shell/render/init.d.ts +11 -0
- package/dist/shell/render/init.d.ts.map +1 -0
- package/dist/shell/render/init.js +32 -0
- package/dist/shell/render/init.js.map +1 -0
- package/dist/shell/render/status.d.ts +26 -0
- package/dist/shell/render/status.d.ts.map +1 -0
- package/dist/shell/render/status.js +143 -0
- package/dist/shell/render/status.js.map +1 -0
- package/dist/shell/render/waiver.d.ts +21 -0
- package/dist/shell/render/waiver.d.ts.map +1 -0
- package/dist/shell/render/waiver.js +94 -0
- package/dist/shell/render/waiver.js.map +1 -0
- package/dist/shell/rules.d.ts +37 -0
- package/dist/shell/rules.d.ts.map +1 -0
- package/dist/shell/rules.js +51 -0
- package/dist/shell/rules.js.map +1 -0
- package/dist/shell/session/actor.d.ts +14 -0
- package/dist/shell/session/actor.d.ts.map +1 -0
- package/dist/shell/session/actor.js +34 -0
- package/dist/shell/session/actor.js.map +1 -0
- package/dist/shell/session/resolve-session.d.ts +5 -0
- package/dist/shell/session/resolve-session.d.ts.map +1 -0
- package/dist/shell/session/resolve-session.js +239 -0
- package/dist/shell/session/resolve-session.js.map +1 -0
- package/dist/shell/session/types.d.ts +56 -0
- package/dist/shell/session/types.d.ts.map +1 -0
- package/dist/shell/session/types.js +15 -0
- package/dist/shell/session/types.js.map +1 -0
- package/dist/store/agents-store.d.ts +3 -0
- package/dist/store/agents-store.d.ts.map +1 -0
- package/dist/store/agents-store.js +63 -0
- package/dist/store/agents-store.js.map +1 -0
- package/dist/store/apply-patch.d.ts +16 -0
- package/dist/store/apply-patch.d.ts.map +1 -0
- package/dist/store/apply-patch.js +191 -0
- package/dist/store/apply-patch.js.map +1 -0
- package/dist/store/atomic-write.d.ts +16 -0
- package/dist/store/atomic-write.d.ts.map +1 -0
- package/dist/store/atomic-write.js +132 -0
- package/dist/store/atomic-write.js.map +1 -0
- package/dist/store/doctor-snapshot.d.ts +20 -0
- package/dist/store/doctor-snapshot.d.ts.map +1 -0
- package/dist/store/doctor-snapshot.js +176 -0
- package/dist/store/doctor-snapshot.js.map +1 -0
- package/dist/store/events-store.d.ts +33 -0
- package/dist/store/events-store.d.ts.map +1 -0
- package/dist/store/events-store.js +297 -0
- package/dist/store/events-store.js.map +1 -0
- package/dist/store/index.d.ts +21 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +47 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/init-store.d.ts +21 -0
- package/dist/store/init-store.d.ts.map +1 -0
- package/dist/store/init-store.js +295 -0
- package/dist/store/init-store.js.map +1 -0
- package/dist/store/json-store.d.ts +3 -0
- package/dist/store/json-store.d.ts.map +1 -0
- package/dist/store/json-store.js +65 -0
- package/dist/store/json-store.js.map +1 -0
- package/dist/store/policy-store.d.ts +3 -0
- package/dist/store/policy-store.d.ts.map +1 -0
- package/dist/store/policy-store.js +65 -0
- package/dist/store/policy-store.js.map +1 -0
- package/dist/store/repo-root.d.ts +46 -0
- package/dist/store/repo-root.d.ts.map +1 -0
- package/dist/store/repo-root.js +145 -0
- package/dist/store/repo-root.js.map +1 -0
- package/dist/store/rules.d.ts +53 -0
- package/dist/store/rules.d.ts.map +1 -0
- package/dist/store/rules.js +78 -0
- package/dist/store/rules.js.map +1 -0
- package/dist/store/specs-store.d.ts +3 -0
- package/dist/store/specs-store.d.ts.map +1 -0
- package/dist/store/specs-store.js +131 -0
- package/dist/store/specs-store.js.map +1 -0
- package/dist/store/types.d.ts +84 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +14 -0
- package/dist/store/types.js.map +1 -0
- package/dist/store/waivers-store.d.ts +25 -0
- package/dist/store/waivers-store.d.ts.map +1 -0
- package/dist/store/waivers-store.js +232 -0
- package/dist/store/waivers-store.js.map +1 -0
- package/dist/store/worktrees-store.d.ts +3 -0
- package/dist/store/worktrees-store.d.ts.map +1 -0
- package/dist/store/worktrees-store.js +62 -0
- package/dist/store/worktrees-store.js.map +1 -0
- package/dist/store/yaml-store.d.ts +9 -0
- package/dist/store/yaml-store.d.ts.map +1 -0
- package/dist/store/yaml-store.js +121 -0
- package/dist/store/yaml-store.js.map +1 -0
- package/package.json +15 -13
- package/dist/budget-derivation.js +0 -751
- package/dist/cicd-optimizer.js +0 -504
- package/dist/commands/archive.js +0 -500
- package/dist/commands/burnup.js +0 -198
- package/dist/commands/diagnose.js +0 -525
- package/dist/commands/evaluate.js +0 -314
- package/dist/commands/gates.js +0 -149
- package/dist/commands/init.js +0 -857
- package/dist/commands/iterate.js +0 -417
- package/dist/commands/mode.js +0 -269
- package/dist/commands/parallel.js +0 -242
- package/dist/commands/plan.js +0 -438
- package/dist/commands/provenance.js +0 -1143
- package/dist/commands/quality-monitor.js +0 -284
- package/dist/commands/scope.js +0 -264
- package/dist/commands/session.js +0 -312
- package/dist/commands/sidecar.js +0 -74
- package/dist/commands/specs.js +0 -1448
- package/dist/commands/status.js +0 -1151
- package/dist/commands/templates.js +0 -237
- package/dist/commands/tool.js +0 -136
- package/dist/commands/tutorial.js +0 -480
- package/dist/commands/validate.js +0 -357
- package/dist/commands/verify-acs.js +0 -443
- package/dist/commands/waivers.js +0 -599
- package/dist/commands/workflow.js +0 -243
- package/dist/commands/worktree.js +0 -386
- package/dist/config/lite-scope.js +0 -158
- package/dist/config/modes.js +0 -347
- package/dist/constants/spec-types.js +0 -65
- package/dist/gates/budget-limit.js +0 -121
- package/dist/gates/feedback.js +0 -260
- package/dist/gates/format.js +0 -179
- package/dist/gates/god-object.js +0 -117
- package/dist/gates/pipeline.js +0 -167
- package/dist/gates/scope-boundary.js +0 -93
- package/dist/gates/spec-completeness.js +0 -109
- package/dist/gates/todo-detection.js +0 -205
- package/dist/generators/jest-config-generator.js +0 -242
- package/dist/generators/working-spec.js +0 -237
- package/dist/minimal-cli.js +0 -88
- package/dist/parallel/parallel-manager.js +0 -433
- package/dist/policy/PolicyManager.js +0 -465
- package/dist/scaffold/claude-hooks.js +0 -443
- package/dist/scaffold/cursor-hooks.js +0 -177
- package/dist/scaffold/git-hooks.js +0 -928
- package/dist/scaffold/index.js +0 -794
- package/dist/session/session-manager.js +0 -653
- package/dist/sidecars/index.js +0 -33
- package/dist/sidecars/listeners.js +0 -40
- package/dist/sidecars/provenance-summary.js +0 -238
- package/dist/sidecars/quality-gaps.js +0 -258
- package/dist/sidecars/schema.js +0 -149
- package/dist/sidecars/spec-drift.js +0 -151
- package/dist/sidecars/waiver-draft.js +0 -176
- package/dist/spec/SpecFileManager.js +0 -419
- package/dist/templates/.caws/schemas/policy.schema.json +0 -112
- package/dist/templates/.caws/schemas/scope.schema.json +0 -52
- package/dist/templates/.caws/schemas/waivers.schema.json +0 -106
- package/dist/templates/.caws/schemas/working-spec.schema.json +0 -340
- package/dist/templates/.caws/schemas/worktrees.schema.json +0 -38
- package/dist/templates/.caws/templates/working-spec.template.yml +0 -80
- package/dist/templates/.caws/tools/README.md +0 -18
- package/dist/templates/.caws/tools/scope-guard.js +0 -203
- package/dist/templates/.caws/tools-allow.json +0 -331
- package/dist/templates/.caws/waivers.yml +0 -19
- package/dist/templates/.claude/README.md +0 -190
- package/dist/templates/.claude/hooks/audit.sh +0 -121
- package/dist/templates/.claude/hooks/block-dangerous.sh +0 -203
- package/dist/templates/.claude/hooks/classify_command.py +0 -592
- package/dist/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
- package/dist/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
- package/dist/templates/.claude/hooks/naming-check.sh +0 -100
- package/dist/templates/.claude/hooks/protected-paths.sh +0 -39
- package/dist/templates/.claude/hooks/quality-check.sh +0 -81
- package/dist/templates/.claude/hooks/scan-secrets.sh +0 -85
- package/dist/templates/.claude/hooks/scope-guard.sh +0 -381
- package/dist/templates/.claude/hooks/session-caws-status.sh +0 -117
- package/dist/templates/.claude/hooks/session-log.sh +0 -634
- package/dist/templates/.claude/hooks/simplification-guard.sh +0 -92
- package/dist/templates/.claude/hooks/stop-worktree-check.sh +0 -46
- package/dist/templates/.claude/hooks/test_classify_command.py +0 -370
- package/dist/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
- package/dist/templates/.claude/hooks/validate-spec.sh +0 -76
- package/dist/templates/.claude/hooks/worktree-guard.sh +0 -220
- package/dist/templates/.claude/hooks/worktree-write-guard.sh +0 -190
- package/dist/templates/.claude/rules/git-safety.md +0 -26
- package/dist/templates/.claude/rules/worktree-isolation.md +0 -83
- package/dist/templates/.claude/settings.json +0 -141
- package/dist/templates/.cursor/README.md +0 -299
- package/dist/templates/.cursor/hooks/audit.sh +0 -55
- package/dist/templates/.cursor/hooks/block-dangerous.sh +0 -84
- package/dist/templates/.cursor/hooks/caws-quality-check.sh +0 -52
- package/dist/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
- package/dist/templates/.cursor/hooks/format.sh +0 -38
- package/dist/templates/.cursor/hooks/naming-check.sh +0 -64
- package/dist/templates/.cursor/hooks/scan-secrets.sh +0 -51
- package/dist/templates/.cursor/hooks/scope-guard.sh +0 -52
- package/dist/templates/.cursor/hooks/session-log.sh +0 -924
- package/dist/templates/.cursor/hooks/validate-spec.sh +0 -83
- package/dist/templates/.cursor/hooks.json +0 -76
- package/dist/templates/.cursor/rules/00-claims-verification.mdc +0 -144
- package/dist/templates/.cursor/rules/01-working-style.mdc +0 -50
- package/dist/templates/.cursor/rules/02-quality-gates.mdc +0 -368
- package/dist/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
- package/dist/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
- package/dist/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
- package/dist/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
- package/dist/templates/.cursor/rules/07-process-ops.mdc +0 -20
- package/dist/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
- package/dist/templates/.cursor/rules/09-docstrings.mdc +0 -89
- package/dist/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
- package/dist/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
- package/dist/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
- package/dist/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
- package/dist/templates/.cursor/rules/README.md +0 -148
- package/dist/templates/.github/copilot-instructions.md +0 -82
- package/dist/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
- package/dist/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
- package/dist/templates/.junie/guidelines.md +0 -73
- package/dist/templates/.vscode/launch.json +0 -17
- package/dist/templates/.vscode/settings.json +0 -95
- package/dist/templates/.windsurf/rules/caws-quality-standards.md +0 -54
- package/dist/templates/.windsurf/workflows/caws-guided-development.md +0 -92
- package/dist/templates/CLAUDE.md +0 -174
- package/dist/templates/COMMIT_CONVENTIONS.md +0 -86
- package/dist/templates/OIDC_SETUP.md +0 -300
- package/dist/templates/agents.md +0 -145
- package/dist/templates/codemod/README.md +0 -1
- package/dist/templates/codemod/test.js +0 -93
- package/dist/templates/docs/README.md +0 -151
- package/dist/templates/scripts/new_feature.sh +0 -80
- package/dist/templates/scripts/quality-gates/check-god-objects.js +0 -146
- package/dist/templates/scripts/quality-gates/run-quality-gates.js +0 -50
- package/dist/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
- package/dist/test-analysis.js +0 -786
- package/dist/tool-interface.js +0 -314
- package/dist/tool-loader.js +0 -303
- package/dist/tool-validator.js +0 -393
- package/dist/utils/agent-session.js +0 -202
- package/dist/utils/async-utils.js +0 -188
- package/dist/utils/command-wrapper.js +0 -200
- package/dist/utils/event-log.js +0 -584
- package/dist/utils/event-renderer.js +0 -521
- package/dist/utils/finalization.js +0 -230
- package/dist/utils/git-lock.js +0 -119
- package/dist/utils/gitignore-updater.js +0 -158
- package/dist/utils/ide-detection.js +0 -133
- package/dist/utils/lifecycle-events.js +0 -94
- package/dist/utils/project-analysis.js +0 -367
- package/dist/utils/promise-utils.js +0 -72
- package/dist/utils/quality-gates-errors.js +0 -520
- package/dist/utils/quality-gates-utils.js +0 -387
- package/dist/utils/schema-validator.js +0 -50
- package/dist/utils/spec-resolver.js +0 -711
- package/dist/utils/typescript-detector.js +0 -369
- package/dist/utils/working-state.js +0 -530
- package/dist/utils/yaml-validation.js +0 -156
- package/dist/validation/spec-validation.js +0 -921
- package/dist/waivers-manager.js +0 -732
- package/dist/worktree/worktree-manager.js +0 -1374
- package/templates/.caws/schemas/policy.schema.json +0 -112
- package/templates/.caws/schemas/scope.schema.json +0 -52
- package/templates/.caws/schemas/waivers.schema.json +0 -106
- package/templates/.caws/schemas/working-spec.schema.json +0 -340
- package/templates/.caws/schemas/worktrees.schema.json +0 -38
- package/templates/.caws/templates/working-spec.template.yml +0 -80
- package/templates/.caws/tools/README.md +0 -18
- package/templates/.caws/tools/scope-guard.js +0 -203
- package/templates/.caws/tools-allow.json +0 -331
- package/templates/.caws/waivers.yml +0 -19
- package/templates/.claude/README.md +0 -190
- package/templates/.claude/hooks/audit.sh +0 -121
- package/templates/.claude/hooks/block-dangerous.sh +0 -203
- package/templates/.claude/hooks/classify_command.py +0 -592
- package/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
- package/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
- package/templates/.claude/hooks/naming-check.sh +0 -100
- package/templates/.claude/hooks/protected-paths.sh +0 -39
- package/templates/.claude/hooks/quality-check.sh +0 -81
- package/templates/.claude/hooks/scan-secrets.sh +0 -85
- package/templates/.claude/hooks/scope-guard.sh +0 -381
- package/templates/.claude/hooks/session-caws-status.sh +0 -117
- package/templates/.claude/hooks/session-log.sh +0 -634
- package/templates/.claude/hooks/simplification-guard.sh +0 -92
- package/templates/.claude/hooks/stop-worktree-check.sh +0 -46
- package/templates/.claude/hooks/test_classify_command.py +0 -370
- package/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
- package/templates/.claude/hooks/validate-spec.sh +0 -76
- package/templates/.claude/hooks/worktree-guard.sh +0 -220
- package/templates/.claude/hooks/worktree-write-guard.sh +0 -190
- package/templates/.claude/rules/git-safety.md +0 -26
- package/templates/.claude/rules/worktree-isolation.md +0 -83
- package/templates/.claude/settings.json +0 -141
- package/templates/.cursor/README.md +0 -299
- package/templates/.cursor/hooks/audit.sh +0 -55
- package/templates/.cursor/hooks/block-dangerous.sh +0 -84
- package/templates/.cursor/hooks/caws-quality-check.sh +0 -52
- package/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
- package/templates/.cursor/hooks/format.sh +0 -38
- package/templates/.cursor/hooks/naming-check.sh +0 -64
- package/templates/.cursor/hooks/scan-secrets.sh +0 -51
- package/templates/.cursor/hooks/scope-guard.sh +0 -52
- package/templates/.cursor/hooks/session-log.sh +0 -924
- package/templates/.cursor/hooks/validate-spec.sh +0 -83
- package/templates/.cursor/hooks.json +0 -76
- package/templates/.cursor/rules/00-claims-verification.mdc +0 -144
- package/templates/.cursor/rules/01-working-style.mdc +0 -50
- package/templates/.cursor/rules/02-quality-gates.mdc +0 -368
- package/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
- package/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
- package/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
- package/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
- package/templates/.cursor/rules/07-process-ops.mdc +0 -20
- package/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
- package/templates/.cursor/rules/09-docstrings.mdc +0 -89
- package/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
- package/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
- package/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
- package/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
- package/templates/.cursor/rules/README.md +0 -148
- package/templates/.github/copilot-instructions.md +0 -82
- package/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
- package/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
- package/templates/.junie/guidelines.md +0 -73
- package/templates/.vscode/launch.json +0 -17
- package/templates/.vscode/settings.json +0 -95
- package/templates/.windsurf/rules/caws-quality-standards.md +0 -54
- package/templates/.windsurf/workflows/caws-guided-development.md +0 -92
- package/templates/CLAUDE.md +0 -174
- package/templates/COMMIT_CONVENTIONS.md +0 -86
- package/templates/OIDC_SETUP.md +0 -300
- package/templates/agents.md +0 -145
- package/templates/codemod/README.md +0 -1
- package/templates/codemod/test.js +0 -93
- package/templates/docs/README.md +0 -151
- package/templates/scripts/new_feature.sh +0 -80
- package/templates/scripts/quality-gates/check-god-objects.js +0 -146
- package/templates/scripts/quality-gates/run-quality-gates.js +0 -50
- package/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# CAWS Integration Instructions for GitHub Copilot
|
|
2
|
-
|
|
3
|
-
This project uses CAWS (Coding Agent Working Standard) for quality-assured AI-assisted development.
|
|
4
|
-
|
|
5
|
-
## CAWS Project Detection
|
|
6
|
-
|
|
7
|
-
Check if current project uses CAWS:
|
|
8
|
-
- Look for `.caws/working-spec.yaml` file
|
|
9
|
-
- Check for `caws` commands in package.json scripts
|
|
10
|
-
- Verify CAWS CLI availability: `caws --version`
|
|
11
|
-
|
|
12
|
-
## Working Specifications
|
|
13
|
-
|
|
14
|
-
Working specs define project requirements and constraints:
|
|
15
|
-
|
|
16
|
-
```yaml
|
|
17
|
-
id: PROJ-001
|
|
18
|
-
title: "Feature implementation"
|
|
19
|
-
risk_tier: 2 # 1=Critical, 2=Standard, 3=Low risk
|
|
20
|
-
mode: feature # feature|refactor|fix|chore
|
|
21
|
-
change_budget:
|
|
22
|
-
max_files: 25
|
|
23
|
-
max_loc: 1000
|
|
24
|
-
scope:
|
|
25
|
-
in: ["src/", "tests/"]
|
|
26
|
-
out: ["node_modules/", "dist/"]
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Always validate working specs: `caws validate`
|
|
30
|
-
|
|
31
|
-
## Quality Workflow
|
|
32
|
-
|
|
33
|
-
1. **Before implementation**: `caws iterate --current-state "describe what you're about to do"`
|
|
34
|
-
2. **During implementation**: `caws evaluate --quiet`
|
|
35
|
-
3. **Before commit**: `caws validate && caws evaluate`
|
|
36
|
-
|
|
37
|
-
## Quality Gates by Risk Tier
|
|
38
|
-
|
|
39
|
-
| Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
|
|
40
|
-
|------|---------------|----------------|----------------|
|
|
41
|
-
| Test coverage | 90%+ | 80%+ | 70%+ |
|
|
42
|
-
| Mutation score | 70%+ | 50%+ | 30%+ |
|
|
43
|
-
| Contracts | Required | Required | Optional |
|
|
44
|
-
| Manual review | Required | Optional | Optional |
|
|
45
|
-
|
|
46
|
-
## Key Rules
|
|
47
|
-
|
|
48
|
-
1. Stay within `scope.in` boundaries -- do not edit files in `scope.out`
|
|
49
|
-
2. Respect `change_budget.max_files` and `change_budget.max_loc` limits
|
|
50
|
-
3. No shadow files -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*` copies
|
|
51
|
-
4. Write tests before implementation when possible
|
|
52
|
-
5. Use conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`
|
|
53
|
-
|
|
54
|
-
## Waivers
|
|
55
|
-
|
|
56
|
-
If you need to bypass a quality gate, create a waiver:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
caws waivers create --reason emergency_hotfix --gates coverage_threshold
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Valid reasons: `emergency_hotfix`, `legacy_integration`, `experimental_feature`, `performance_critical`, `infrastructure_limitation`
|
|
63
|
-
|
|
64
|
-
## Common Patterns
|
|
65
|
-
|
|
66
|
-
### Feature Development
|
|
67
|
-
1. Validate working spec: `caws validate`
|
|
68
|
-
2. Get implementation guidance: `caws iterate`
|
|
69
|
-
3. Implement with quality checks: `caws evaluate --quiet`
|
|
70
|
-
4. Run full validation: `caws validate && npm test`
|
|
71
|
-
|
|
72
|
-
### Bug Fixes
|
|
73
|
-
1. Assess risk tier and impact
|
|
74
|
-
2. Write failing test that reproduces the bug
|
|
75
|
-
3. Implement minimal fix
|
|
76
|
-
4. Run quality validation: `caws validate`
|
|
77
|
-
|
|
78
|
-
## Troubleshooting
|
|
79
|
-
|
|
80
|
-
- **Working spec invalid**: Run `caws validate --suggestions`
|
|
81
|
-
- **Scope violations**: Update `.caws/working-spec.yaml` scope or create waiver
|
|
82
|
-
- **Quality gate failures**: Address root cause rather than creating waivers
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<component name="ProjectRunConfigurationManager">
|
|
2
|
-
<configuration default="false" name="CAWS: Evaluate Quality" type="NodeJSConfigurationType" factoryName="Node.js" path-to-js-file="$PROJECT_DIR$/packages/caws-cli/dist/index.js" working-dir="$PROJECT_DIR$" application-parameters="evaluate">
|
|
3
|
-
<method v="2" />
|
|
4
|
-
</configuration>
|
|
5
|
-
</component>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<component name="ProjectRunConfigurationManager">
|
|
2
|
-
<configuration default="false" name="CAWS: Validate" type="NodeJSConfigurationType" factoryName="Node.js" path-to-js-file="$PROJECT_DIR$/packages/caws-cli/dist/index.js" working-dir="$PROJECT_DIR$" application-parameters="validate .caws/working-spec.yaml">
|
|
3
|
-
<method v="2" />
|
|
4
|
-
</configuration>
|
|
5
|
-
</component>
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# Junie Guidelines - CAWS Project
|
|
2
|
-
|
|
3
|
-
This project uses CAWS (Coding Agent Working Standard) for quality-assured development.
|
|
4
|
-
|
|
5
|
-
## Working Spec
|
|
6
|
-
|
|
7
|
-
Before making changes, read `.caws/working-spec.yaml`. It defines:
|
|
8
|
-
|
|
9
|
-
- **Risk tier**: Quality requirements (T1: 90%+ coverage, T2: 80%+, T3: 70%+)
|
|
10
|
-
- **Scope**: `scope.in` lists files you may edit, `scope.out` is off-limits
|
|
11
|
-
- **Change budget**: Maximum files and lines of code per change
|
|
12
|
-
- **Acceptance criteria**: What "done" means for this task
|
|
13
|
-
|
|
14
|
-
## CAWS Commands
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
caws validate # Validate the working spec
|
|
18
|
-
caws iterate # Get implementation guidance
|
|
19
|
-
caws evaluate # Evaluate quality compliance
|
|
20
|
-
caws waivers create --reason ... # Create waiver for justified exceptions
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Key Rules
|
|
24
|
-
|
|
25
|
-
1. **Stay in scope** -- only edit files listed in `scope.in`
|
|
26
|
-
2. **Respect change budgets** -- stay within `max_files` and `max_loc`
|
|
27
|
-
3. **No shadow files** -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
|
|
28
|
-
4. **Tests first** -- write failing tests before implementation
|
|
29
|
-
5. **Deterministic code** -- inject time, random, and UUID generators for testability
|
|
30
|
-
6. **No fake implementations** -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
|
|
31
|
-
7. **Prove claims** -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence, not assertions.
|
|
32
|
-
8. **No marketing language in docs** -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade"
|
|
33
|
-
9. **Ask first for risky changes** -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion first
|
|
34
|
-
10. **Conventional commits** -- use `feat:`, `fix:`, `refactor:`, `docs:`, `chore:` prefixes
|
|
35
|
-
|
|
36
|
-
## Quality Gates
|
|
37
|
-
|
|
38
|
-
| Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
|
|
39
|
-
|------|---------------|----------------|----------------|
|
|
40
|
-
| Test coverage | 90%+ | 80%+ | 70%+ |
|
|
41
|
-
| Mutation score | 70%+ | 50%+ | 30%+ |
|
|
42
|
-
| Contracts | Required | Required | Optional |
|
|
43
|
-
| Manual review | Required | Optional | Optional |
|
|
44
|
-
|
|
45
|
-
## Code Style
|
|
46
|
-
|
|
47
|
-
- Prefer `const` over `let`
|
|
48
|
-
- Use guard clauses and early returns over deep nesting
|
|
49
|
-
- Single responsibility: one reason to change per module
|
|
50
|
-
- Depend on abstractions, not concretions
|
|
51
|
-
- Extension points over editing internals (open/closed principle)
|
|
52
|
-
- Max cyclomatic complexity per function: 10
|
|
53
|
-
- Max cognitive complexity: 15
|
|
54
|
-
- Max nesting depth: 4
|
|
55
|
-
- Max function length: 50 lines
|
|
56
|
-
- Max file length: 1000 lines
|
|
57
|
-
- Max parameters: 5
|
|
58
|
-
- No emojis in production code or logs
|
|
59
|
-
- Check if a server/process is already running before starting another
|
|
60
|
-
|
|
61
|
-
### Naming
|
|
62
|
-
|
|
63
|
-
Forbidden file name modifiers: enhanced, unified, better, new, next, final, copy, revamp, improved. Prefer in-place edits with a merge-then-delete strategy for refactors.
|
|
64
|
-
|
|
65
|
-
## Build & Test
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
npm install # Install dependencies
|
|
69
|
-
npm test # Run tests
|
|
70
|
-
npm run lint # Lint code
|
|
71
|
-
npm run typecheck # Type check (if TypeScript)
|
|
72
|
-
caws validate # Validate CAWS spec
|
|
73
|
-
```
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "0.2.0",
|
|
3
|
-
"configurations": [
|
|
4
|
-
{
|
|
5
|
-
"name": "Debug CAWS CLI",
|
|
6
|
-
"type": "node",
|
|
7
|
-
"request": "launch",
|
|
8
|
-
"program": "${workspaceFolder}/packages/caws-cli/src/index.js",
|
|
9
|
-
"args": ["validate", ".caws/working-spec.yaml"],
|
|
10
|
-
"env": {
|
|
11
|
-
"NODE_ENV": "development",
|
|
12
|
-
"CAWS_DEBUG": "true"
|
|
13
|
-
},
|
|
14
|
-
"console": "integratedTerminal"
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// CAWS VS Code Extension Settings
|
|
3
|
-
"caws.cli.path": "caws",
|
|
4
|
-
"caws.autoValidate": true,
|
|
5
|
-
"caws.showQualityStatus": true,
|
|
6
|
-
"caws.experimentalMode": false,
|
|
7
|
-
|
|
8
|
-
// General IDE settings that work well with CAWS
|
|
9
|
-
"editor.formatOnSave": true,
|
|
10
|
-
"editor.codeActionsOnSave": {
|
|
11
|
-
"source.fixAll.eslint": "explicit",
|
|
12
|
-
"source.organizeImports": "explicit"
|
|
13
|
-
},
|
|
14
|
-
|
|
15
|
-
// File associations for CAWS files
|
|
16
|
-
"files.associations": {
|
|
17
|
-
".caws/working-spec.yaml": "yaml",
|
|
18
|
-
".caws/waivers/*.yaml": "yaml",
|
|
19
|
-
"apps/tools/caws/*.js": "javascript"
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
// Exclude CAWS-generated files from search and navigation
|
|
23
|
-
"files.exclude": {
|
|
24
|
-
".caws/cache/": true,
|
|
25
|
-
".caws/state/": true,
|
|
26
|
-
".caws/waivers/review-*.md": true
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
// Search excludes for CAWS artifacts
|
|
30
|
-
"search.exclude": {
|
|
31
|
-
".caws/cache/**": true,
|
|
32
|
-
".caws/state/**": true,
|
|
33
|
-
"packages/*/dist/**": true,
|
|
34
|
-
"packages/*/node_modules/**": true
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
// CAWS-aware task definitions
|
|
38
|
-
"tasks": {
|
|
39
|
-
"version": "2.0.0",
|
|
40
|
-
"tasks": [
|
|
41
|
-
{
|
|
42
|
-
"label": "CAWS: Validate",
|
|
43
|
-
"type": "shell",
|
|
44
|
-
"command": "caws",
|
|
45
|
-
"args": ["validate"],
|
|
46
|
-
"group": {
|
|
47
|
-
"kind": "build",
|
|
48
|
-
"isDefault": true
|
|
49
|
-
},
|
|
50
|
-
"presentation": {
|
|
51
|
-
"echo": true,
|
|
52
|
-
"reveal": "always",
|
|
53
|
-
"focus": false,
|
|
54
|
-
"panel": "shared"
|
|
55
|
-
},
|
|
56
|
-
"problemMatcher": []
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"label": "CAWS: Evaluate Quality",
|
|
60
|
-
"type": "shell",
|
|
61
|
-
"command": "caws",
|
|
62
|
-
"args": ["evaluate"],
|
|
63
|
-
"group": "test",
|
|
64
|
-
"presentation": {
|
|
65
|
-
"echo": true,
|
|
66
|
-
"reveal": "always",
|
|
67
|
-
"focus": false,
|
|
68
|
-
"panel": "shared"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"label": "CAWS: Create Waiver",
|
|
73
|
-
"type": "shell",
|
|
74
|
-
"command": "caws",
|
|
75
|
-
"args": ["waivers", "create"],
|
|
76
|
-
"group": "build"
|
|
77
|
-
}
|
|
78
|
-
]
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
// Recommended extensions for CAWS development
|
|
82
|
-
"recommendations": [
|
|
83
|
-
"ms-vscode.vscode-json",
|
|
84
|
-
"redhat.vscode-yaml",
|
|
85
|
-
"ms-vscode.vscode-typescript-next",
|
|
86
|
-
"esbenp.prettier-vscode",
|
|
87
|
-
"dbaeumer.vscode-eslint"
|
|
88
|
-
],
|
|
89
|
-
|
|
90
|
-
// Workspace-specific settings
|
|
91
|
-
"yaml.schemas": {
|
|
92
|
-
"./.caws/schema/working-spec.schema.json": ".caws/working-spec.yaml",
|
|
93
|
-
"./.caws/schema/waiver.schema.json": ".caws/waivers/*.yaml"
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# CAWS Quality Standards
|
|
2
|
-
|
|
3
|
-
This project uses CAWS (Coding Agent Working Standard) for quality-assured development.
|
|
4
|
-
|
|
5
|
-
## Working Spec
|
|
6
|
-
|
|
7
|
-
Always check `.caws/working-spec.yaml` before making changes. It defines:
|
|
8
|
-
|
|
9
|
-
- **Risk tier**: T1 (critical, 90%+ coverage), T2 (standard, 80%+), T3 (low risk, 70%+)
|
|
10
|
-
- **Scope boundaries**: `scope.in` (allowed files), `scope.out` (off-limits)
|
|
11
|
-
- **Change budget**: `max_files` and `max_loc` limits per change
|
|
12
|
-
- **Acceptance criteria**: Definition of done
|
|
13
|
-
|
|
14
|
-
## Key Rules
|
|
15
|
-
|
|
16
|
-
1. Stay within scope boundaries defined in the working spec
|
|
17
|
-
2. Respect change budgets -- split large changes into smaller PRs
|
|
18
|
-
3. No shadow files: never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
|
|
19
|
-
4. Write tests before implementation when possible
|
|
20
|
-
5. Deterministic code -- inject time, random, and UUID generators for testability
|
|
21
|
-
6. No fake implementations -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
|
|
22
|
-
7. Prove claims -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence, not assertions.
|
|
23
|
-
8. No marketing language in docs -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade"
|
|
24
|
-
9. Ask first for risky changes -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion first
|
|
25
|
-
10. Use conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`
|
|
26
|
-
11. Run `caws validate` before committing
|
|
27
|
-
|
|
28
|
-
## Quality Commands
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
caws validate # Validate working spec
|
|
32
|
-
caws iterate # Get implementation guidance
|
|
33
|
-
caws evaluate # Evaluate quality compliance
|
|
34
|
-
caws waivers create --reason ... # Create waiver for justified exceptions
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Code Style
|
|
38
|
-
|
|
39
|
-
- Prefer `const` over `let`
|
|
40
|
-
- Use guard clauses and early returns over deep nesting
|
|
41
|
-
- Single responsibility: one reason to change per module
|
|
42
|
-
- Depend on abstractions, not concretions
|
|
43
|
-
- Extension points over editing internals (open/closed principle)
|
|
44
|
-
- Max cyclomatic complexity per function: 10
|
|
45
|
-
- Max nesting depth: 4
|
|
46
|
-
- Max function length: 50 lines
|
|
47
|
-
- Max file length: 1000 lines
|
|
48
|
-
- Max parameters: 5
|
|
49
|
-
- No emojis in production code or logs
|
|
50
|
-
- Check if a server/process is already running before starting another
|
|
51
|
-
|
|
52
|
-
## Naming
|
|
53
|
-
|
|
54
|
-
Forbidden file name modifiers: enhanced, unified, better, new, next, final, copy, revamp, improved. Use in-place edits with merge-then-delete strategy for refactors.
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# /caws-guided-development
|
|
2
|
-
|
|
3
|
-
## CAWS-Guided Feature Development Workflow
|
|
4
|
-
|
|
5
|
-
**Purpose**: Guide agents through feature development with CAWS quality assurance
|
|
6
|
-
|
|
7
|
-
**Tags**: development, quality, caws, feature
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
### 1. Initialize CAWS Working Spec
|
|
12
|
-
```
|
|
13
|
-
# Create comprehensive working specification
|
|
14
|
-
caws init feature-name --interactive
|
|
15
|
-
|
|
16
|
-
# Define acceptance criteria, scope, and risk assessment
|
|
17
|
-
# Working spec: .caws/working-spec.yaml
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### 2. Plan Implementation Strategy
|
|
21
|
-
```
|
|
22
|
-
# Get CAWS guidance for implementation approach
|
|
23
|
-
caws iterate --current-state "Planning phase complete, need implementation strategy"
|
|
24
|
-
|
|
25
|
-
# CAWS will suggest:
|
|
26
|
-
# - Implementation steps
|
|
27
|
-
# - Quality gates to consider
|
|
28
|
-
# - Risk mitigation strategies
|
|
29
|
-
# - Testing approach
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 3. Implement Core Functionality
|
|
33
|
-
```
|
|
34
|
-
# Start coding with CAWS quality monitoring
|
|
35
|
-
# Real-time feedback via CAWS tools
|
|
36
|
-
|
|
37
|
-
# Regular quality checks
|
|
38
|
-
caws evaluate --quiet
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### 4. Quality Assurance Integration
|
|
42
|
-
```
|
|
43
|
-
# Run comprehensive quality gates
|
|
44
|
-
caws validate
|
|
45
|
-
|
|
46
|
-
# Address any failing gates
|
|
47
|
-
# Create waivers if justified
|
|
48
|
-
caws waivers create --reason emergency_hotfix --gates coverage_threshold
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### 5. Testing & Validation
|
|
52
|
-
```
|
|
53
|
-
# Unit tests
|
|
54
|
-
npm run test:unit
|
|
55
|
-
|
|
56
|
-
# Integration tests
|
|
57
|
-
npm run test:integration
|
|
58
|
-
|
|
59
|
-
# Contract tests
|
|
60
|
-
npm run test:contract
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 6. Final Quality Review
|
|
64
|
-
```
|
|
65
|
-
# Complete CAWS evaluation
|
|
66
|
-
caws evaluate
|
|
67
|
-
|
|
68
|
-
# Generate provenance report
|
|
69
|
-
caws provenance generate
|
|
70
|
-
|
|
71
|
-
# Ready for integration
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
**Quality Gates**:
|
|
77
|
-
- ✅ Working spec validation
|
|
78
|
-
- ✅ Code quality standards
|
|
79
|
-
- ✅ Test coverage requirements
|
|
80
|
-
- ✅ Security scanning
|
|
81
|
-
- ✅ Performance budgets
|
|
82
|
-
|
|
83
|
-
**Success Criteria**:
|
|
84
|
-
- All CAWS quality gates pass
|
|
85
|
-
- Acceptance criteria met
|
|
86
|
-
- No critical security issues
|
|
87
|
-
- Performance requirements satisfied
|
|
88
|
-
|
|
89
|
-
**Call Other Workflows**:
|
|
90
|
-
- `/caws-testing-workflow` - Comprehensive testing
|
|
91
|
-
- `/caws-security-review` - Security validation
|
|
92
|
-
- `/caws-deployment-checklist` - Deployment preparation
|
package/templates/CLAUDE.md
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This project uses CAWS (Coding Agent Working Standard) for quality-assured AI-assisted development.
|
|
4
|
-
|
|
5
|
-
## Build & Test
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Install dependencies
|
|
9
|
-
npm install
|
|
10
|
-
|
|
11
|
-
# Run tests
|
|
12
|
-
npm test
|
|
13
|
-
|
|
14
|
-
# Lint
|
|
15
|
-
npm run lint
|
|
16
|
-
|
|
17
|
-
# Type check (if TypeScript)
|
|
18
|
-
npm run typecheck
|
|
19
|
-
|
|
20
|
-
# Run all quality gates
|
|
21
|
-
caws validate
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## CAWS Workflow
|
|
25
|
-
|
|
26
|
-
Before writing code, check the canonical spec for the current feature:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
# Create a feature spec for isolated work
|
|
30
|
-
caws specs create FEAT-001 --type feature --title "description"
|
|
31
|
-
|
|
32
|
-
# If you're in a CAWS worktree, the created spec should record it:
|
|
33
|
-
# worktree: <worktree-name>
|
|
34
|
-
|
|
35
|
-
# Validate the feature spec
|
|
36
|
-
caws validate --spec-id FEAT-001
|
|
37
|
-
|
|
38
|
-
# Run quality gates v2 pipeline
|
|
39
|
-
caws gates run
|
|
40
|
-
|
|
41
|
-
# Get iteration guidance
|
|
42
|
-
caws iterate --current-state "describe what you're about to do"
|
|
43
|
-
|
|
44
|
-
# After implementation, evaluate quality
|
|
45
|
-
caws evaluate
|
|
46
|
-
|
|
47
|
-
# Verify acceptance criteria have evidence
|
|
48
|
-
caws verify-acs --spec-id FEAT-001
|
|
49
|
-
|
|
50
|
-
# Check budget burn-up
|
|
51
|
-
caws burnup --spec-id FEAT-001
|
|
52
|
-
|
|
53
|
-
# Check status for the same feature
|
|
54
|
-
caws status --spec-id FEAT-001
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Advisory Sidecars
|
|
58
|
-
|
|
59
|
-
Sidecar commands are diagnostic analysis tools. They don't enforce anything -- they help you understand what's happening and what to do next.
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
caws sidecar drift # Compare spec intent vs current implementation
|
|
63
|
-
caws sidecar gaps # Diagnose quality gaps blocking gate passage
|
|
64
|
-
caws sidecar waiver-draft # Generate pre-filled waiver template for a failing gate
|
|
65
|
-
caws sidecar provenance # Summarize work history for merge readiness review
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Working Spec
|
|
69
|
-
|
|
70
|
-
Canonical feature specs live at `.caws/specs/<ID>.yaml` (create with `caws specs create <id> --type feature --title "description"`). `.caws/working-spec.yaml` is a compatibility mirror for older tooling and legacy single-spec flows. The active spec defines:
|
|
71
|
-
|
|
72
|
-
- **Risk tier**: Quality requirements (T1: critical, T2: standard, T3: low risk)
|
|
73
|
-
- **Mode**: The type of change (`feature`, `refactor`, `fix`, `doc`, `chore`) -- required
|
|
74
|
-
- **Worktree**: The owning CAWS worktree name for this spec (`worktree`) -- recommended for all isolated work
|
|
75
|
-
- **Blast radius**: Which modules are affected (`blast_radius.modules`) -- required
|
|
76
|
-
- **Operational rollback SLO**: Time target for rollback (e.g. `"30m"`) -- required
|
|
77
|
-
- **Scope**: Which files you can edit (`scope.in`) and which are off-limits (`scope.out`)
|
|
78
|
-
- **Change budget**: Max files and lines of code per change (see note below)
|
|
79
|
-
- **Acceptance criteria**: What "done" means -- IDs must match `^A\d+$` (e.g. `A1`, `A12`)
|
|
80
|
-
|
|
81
|
-
Always stay within scope boundaries and change budgets.
|
|
82
|
-
|
|
83
|
-
Recommended operating rule: one active feature spec, one active worktree. If a task has a worktree, record that ownership in the spec YAML with `worktree: <name>`.
|
|
84
|
-
|
|
85
|
-
### Scope and Worktree Binding
|
|
86
|
-
|
|
87
|
-
The scope guard enforces file edit boundaries based on your spec's `scope.in` and `scope.out` patterns. **How it enforces depends on whether your worktree is bound to a spec:**
|
|
88
|
-
|
|
89
|
-
- **Authoritative mode** (worktree bound to a spec): Only your spec's scope patterns are checked. Other agents' specs cannot block your edits. This is the correct state.
|
|
90
|
-
- **Union mode** (no binding): The guard checks ALL active specs. Any `scope.out` from any spec can block you, even unrelated ones. This is the common source of "why is spec X blocking me?" confusion.
|
|
91
|
-
|
|
92
|
-
**The mutual binding** requires both sides:
|
|
93
|
-
1. The worktree registry (`.caws/worktrees.json`) must have `specId` pointing to your spec
|
|
94
|
-
2. Your spec (`.caws/specs/<id>.yaml`) must have `worktree: <name>` pointing to your worktree
|
|
95
|
-
|
|
96
|
-
If either side is missing, the guard falls back to union mode.
|
|
97
|
-
|
|
98
|
-
**Quick commands:**
|
|
99
|
-
```bash
|
|
100
|
-
# See your effective scope and binding health
|
|
101
|
-
caws scope show
|
|
102
|
-
|
|
103
|
-
# Fix a broken binding
|
|
104
|
-
caws worktree bind <spec-id>
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
**Recovery checklist** (when the scope guard blocks you unexpectedly):
|
|
108
|
-
1. Run `caws scope show` — check if you're in authoritative or union mode
|
|
109
|
-
2. If union mode: bind your spec with `caws worktree bind <spec-id>`
|
|
110
|
-
3. If authoritative but still blocked: the file is genuinely outside your spec's scope. Update your spec's `scope.in` if the file should be in scope, or request a waiver
|
|
111
|
-
4. Do NOT modify another spec's `scope.out` to unblock yourself — that defeats the isolation
|
|
112
|
-
|
|
113
|
-
> **Budget note**: `change_budget:` in a spec is informational documentation only. CAWS
|
|
114
|
-
> derives the enforced budget from `policy.yaml` keyed on `risk_tier`. The field in the
|
|
115
|
-
> spec is not used by `caws validate` for enforcement.
|
|
116
|
-
|
|
117
|
-
### Quality Gates
|
|
118
|
-
|
|
119
|
-
Quality requirements are tiered:
|
|
120
|
-
|
|
121
|
-
| Gate | T1 (Critical) | T2 (Standard) | T3 (Low Risk) |
|
|
122
|
-
|------|---------------|----------------|----------------|
|
|
123
|
-
| Test coverage | 90%+ | 80%+ | 70%+ |
|
|
124
|
-
| Mutation score | 70%+ | 50%+ | 30%+ |
|
|
125
|
-
| Contracts | Required | Required | Optional |
|
|
126
|
-
| Manual review | Required | Optional | Optional |
|
|
127
|
-
|
|
128
|
-
### Key Rules
|
|
129
|
-
|
|
130
|
-
1. **Stay in scope** -- only edit files listed in `scope.in`, never touch `scope.out`
|
|
131
|
-
2. **Respect change budgets** -- stay within `max_files` and `max_loc` limits
|
|
132
|
-
3. **No shadow files** -- edit in place, never create `*-enhanced.*`, `*-new.*`, `*-v2.*`, `*-final.*` copies
|
|
133
|
-
4. **Tests first** -- write failing tests before implementation
|
|
134
|
-
5. **Deterministic code** -- inject time, random, and UUID generators for testability
|
|
135
|
-
6. **No fake implementations** -- no placeholder stubs, no `TODO` in committed code, no in-memory arrays pretending to be persistence, no hardcoded mock responses
|
|
136
|
-
7. **Prove claims** -- never assert "production-ready", "complete", or "battle-tested" without passing all quality gates. Provide evidence, not assertions.
|
|
137
|
-
8. **No marketing language in docs** -- avoid "revolutionary", "cutting-edge", "state-of-the-art", "enterprise-grade"
|
|
138
|
-
9. **Ask first for risky changes** -- changes touching >10 files, >300 LOC, crossing package boundaries, or affecting security/infrastructure require discussion first
|
|
139
|
-
10. **Conventional commits** -- use `feat:`, `fix:`, `refactor:`, `docs:`, `chore:` prefixes
|
|
140
|
-
|
|
141
|
-
### Waivers
|
|
142
|
-
|
|
143
|
-
If you need to bypass a quality gate, create a waiver with justification:
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
caws waivers create --reason emergency_hotfix --gates coverage_threshold
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
Valid reasons: `emergency_hotfix`, `legacy_integration`, `experimental_feature`, `performance_critical`, `infrastructure_limitation`
|
|
150
|
-
|
|
151
|
-
## Project Structure
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
.caws/
|
|
155
|
-
working-spec.yaml # Compatibility mirror for legacy commands
|
|
156
|
-
specs/ # Canonical feature specs
|
|
157
|
-
policy.yaml # Quality policy overrides (optional)
|
|
158
|
-
waivers.yml # Active waivers
|
|
159
|
-
state/ # Runtime working state (auto-managed)
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
> **Working state**: `.caws/state/<spec-id>.json` tracks runtime progress -- current phase,
|
|
163
|
-
> validation/evaluation results, gate history, and files touched. This is maintained
|
|
164
|
-
> automatically by CAWS commands. Agents don't need to manage it directly.
|
|
165
|
-
|
|
166
|
-
## Hooks
|
|
167
|
-
|
|
168
|
-
This project has Claude Code hooks configured in `.claude/settings.json`:
|
|
169
|
-
|
|
170
|
-
- **PreToolUse**: Blocks dangerous commands, scans for secrets, enforces scope
|
|
171
|
-
- **PostToolUse**: Runs quality checks, validates spec, checks naming conventions
|
|
172
|
-
- **Session**: Audit logging for provenance tracking
|
|
173
|
-
|
|
174
|
-
See `.claude/README.md` for hook details.
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Commit Message Conventions
|
|
2
|
-
|
|
3
|
-
This repository uses [Conventional Commits](https://conventionalcommits.org/) for automated versioning and changelog generation.
|
|
4
|
-
|
|
5
|
-
## Format
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
<type>[optional scope]: <description>
|
|
9
|
-
|
|
10
|
-
[optional body]
|
|
11
|
-
|
|
12
|
-
[optional footer(s)]
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Types
|
|
16
|
-
|
|
17
|
-
- **feat**: A new feature
|
|
18
|
-
- **fix**: A bug fix
|
|
19
|
-
- **docs**: Documentation only changes
|
|
20
|
-
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
|
|
21
|
-
- **refactor**: A code change that neither fixes a bug nor adds a feature
|
|
22
|
-
- **perf**: A code change that improves performance
|
|
23
|
-
- **test**: Adding missing tests or correcting existing tests
|
|
24
|
-
- **build**: Changes that affect the build system or external dependencies
|
|
25
|
-
- **ci**: Changes to our CI configuration files and scripts
|
|
26
|
-
- **chore**: Other changes that don't modify src or test files
|
|
27
|
-
|
|
28
|
-
## Examples
|
|
29
|
-
|
|
30
|
-
### Feature
|
|
31
|
-
```
|
|
32
|
-
feat: add user authentication system
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Bug Fix
|
|
36
|
-
```
|
|
37
|
-
fix: resolve memory leak in data processing
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Documentation
|
|
41
|
-
```
|
|
42
|
-
docs: update API documentation for new endpoints
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Refactoring
|
|
46
|
-
```
|
|
47
|
-
refactor: extract user validation logic into separate module
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Breaking Change
|
|
51
|
-
```
|
|
52
|
-
feat!: change API response format for user data
|
|
53
|
-
|
|
54
|
-
BREAKING CHANGE: The user object now returns additional fields and the format has changed
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Scope
|
|
58
|
-
|
|
59
|
-
The scope should be the name of the package or module affected by the change:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
feat(auth): add OAuth2 authentication
|
|
63
|
-
fix(api): resolve endpoint timeout issue
|
|
64
|
-
docs(cli): update installation instructions
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Automated Publishing
|
|
68
|
-
|
|
69
|
-
Commits following these conventions will automatically:
|
|
70
|
-
|
|
71
|
-
1. **Trigger releases** when pushed to `main`
|
|
72
|
-
2. **Generate changelogs** based on commit messages
|
|
73
|
-
3. **Bump versions** according to semantic versioning:
|
|
74
|
-
- `fix:` → patch release (1.0.0 → 1.0.1)
|
|
75
|
-
- `feat:` → minor release (1.0.0 → 1.1.0)
|
|
76
|
-
- `feat!:` → major release (1.0.0 → 2.0.0)
|
|
77
|
-
|
|
78
|
-
## CI/CD Integration
|
|
79
|
-
|
|
80
|
-
The automated release process includes:
|
|
81
|
-
- ✅ Linting and testing
|
|
82
|
-
- ✅ Package building
|
|
83
|
-
- ✅ NPM publishing with OIDC authentication
|
|
84
|
-
- ✅ Changelog generation
|
|
85
|
-
- ✅ Git tag creation
|
|
86
|
-
- ✅ Release notes generation
|