devflow-kit 0.9.0 → 1.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/CHANGELOG.md +167 -29
- package/LICENSE +1 -1
- package/README.md +179 -310
- package/dist/cli.js +3 -1
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.js +311 -576
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +351 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +162 -0
- package/dist/utils/cli.d.ts +5 -0
- package/dist/utils/cli.js +14 -0
- package/dist/utils/installer.d.ts +41 -0
- package/dist/utils/installer.js +177 -0
- package/dist/utils/paths.d.ts +10 -0
- package/dist/utils/paths.js +23 -3
- package/dist/utils/post-install.d.ts +68 -0
- package/dist/utils/post-install.js +427 -0
- package/dist/utils/safe-delete-install.d.ts +22 -0
- package/dist/utils/safe-delete-install.js +156 -0
- package/dist/utils/safe-delete.d.ts +12 -0
- package/dist/utils/safe-delete.js +83 -0
- package/package.json +18 -8
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-audit-claude/README.md +46 -0
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
- package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
- package/plugins/devflow-code-review/README.md +73 -0
- package/plugins/devflow-code-review/agents/git.md +272 -0
- package/plugins/devflow-code-review/agents/reviewer.md +119 -0
- package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
- package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
- package/plugins/devflow-code-review/commands/code-review.md +141 -0
- package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
- package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
- package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
- package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
- package/plugins/devflow-core-skills/README.md +50 -0
- package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
- package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
- package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
- package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
- package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
- package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
- package/plugins/devflow-debug/README.md +65 -0
- package/plugins/devflow-debug/agents/git.md +272 -0
- package/plugins/devflow-debug/commands/debug-teams.md +231 -0
- package/plugins/devflow-debug/commands/debug.md +160 -0
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
- package/plugins/devflow-implement/README.md +71 -0
- package/plugins/devflow-implement/agents/coder.md +122 -0
- package/plugins/devflow-implement/agents/git.md +272 -0
- package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
- package/plugins/devflow-implement/agents/shepherd.md +94 -0
- package/plugins/devflow-implement/agents/simplifier.md +62 -0
- package/plugins/devflow-implement/agents/skimmer.md +88 -0
- package/plugins/devflow-implement/agents/synthesizer.md +204 -0
- package/plugins/devflow-implement/agents/validator.md +86 -0
- package/plugins/devflow-implement/commands/implement-teams.md +608 -0
- package/plugins/devflow-implement/commands/implement.md +426 -0
- package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
- package/plugins/devflow-resolve/README.md +65 -0
- package/plugins/devflow-resolve/agents/git.md +272 -0
- package/plugins/devflow-resolve/agents/resolver.md +131 -0
- package/plugins/devflow-resolve/agents/simplifier.md +62 -0
- package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
- package/plugins/devflow-resolve/commands/resolve.md +237 -0
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-self-review/README.md +38 -0
- package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
- package/plugins/devflow-self-review/agents/simplifier.md +62 -0
- package/plugins/devflow-self-review/agents/validator.md +86 -0
- package/plugins/devflow-self-review/commands/self-review.md +126 -0
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
- package/plugins/devflow-specify/README.md +46 -0
- package/plugins/devflow-specify/agents/skimmer.md +88 -0
- package/plugins/devflow-specify/agents/synthesizer.md +204 -0
- package/plugins/devflow-specify/commands/specify-teams.md +314 -0
- package/plugins/devflow-specify/commands/specify.md +179 -0
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
- package/scripts/hooks/background-memory-update.sh +167 -0
- package/scripts/hooks/pre-compact-memory.sh +81 -0
- package/scripts/hooks/session-start-memory.sh +84 -0
- package/scripts/hooks/stop-update-memory.sh +81 -0
- package/shared/agents/coder.md +122 -0
- package/shared/agents/git.md +272 -0
- package/shared/agents/resolver.md +131 -0
- package/shared/agents/reviewer.md +119 -0
- package/shared/agents/scrutinizer.md +80 -0
- package/shared/agents/shepherd.md +94 -0
- package/shared/agents/simplifier.md +62 -0
- package/shared/agents/skimmer.md +88 -0
- package/shared/agents/synthesizer.md +204 -0
- package/shared/agents/validator.md +86 -0
- package/shared/skills/accessibility/SKILL.md +229 -0
- package/shared/skills/accessibility/references/detection.md +171 -0
- package/shared/skills/accessibility/references/patterns.md +670 -0
- package/shared/skills/accessibility/references/violations.md +419 -0
- package/shared/skills/agent-teams/SKILL.md +124 -0
- package/shared/skills/agent-teams/references/cleanup.md +104 -0
- package/shared/skills/agent-teams/references/communication.md +122 -0
- package/shared/skills/agent-teams/references/team-patterns.md +217 -0
- package/shared/skills/architecture-patterns/SKILL.md +153 -0
- package/shared/skills/architecture-patterns/references/detection.md +337 -0
- package/shared/skills/architecture-patterns/references/patterns.md +873 -0
- package/shared/skills/architecture-patterns/references/violations.md +575 -0
- package/shared/skills/complexity-patterns/SKILL.md +143 -0
- package/shared/skills/complexity-patterns/references/detection.md +264 -0
- package/shared/skills/complexity-patterns/references/patterns.md +487 -0
- package/shared/skills/complexity-patterns/references/violations.md +361 -0
- package/shared/skills/consistency-patterns/SKILL.md +140 -0
- package/shared/skills/consistency-patterns/references/detection.md +207 -0
- package/shared/skills/consistency-patterns/references/patterns.md +202 -0
- package/shared/skills/consistency-patterns/references/violations.md +213 -0
- package/shared/skills/core-patterns/SKILL.md +162 -0
- package/shared/skills/core-patterns/references/checklist.md +276 -0
- package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/shared/skills/core-patterns/references/detection.md +303 -0
- package/shared/skills/core-patterns/references/patterns.md +576 -0
- package/shared/skills/core-patterns/references/violations.md +369 -0
- package/shared/skills/database-patterns/SKILL.md +134 -0
- package/shared/skills/database-patterns/references/detection.md +208 -0
- package/shared/skills/database-patterns/references/patterns.md +394 -0
- package/shared/skills/database-patterns/references/violations.md +332 -0
- package/shared/skills/dependencies-patterns/SKILL.md +141 -0
- package/shared/skills/dependencies-patterns/references/detection.md +181 -0
- package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
- package/shared/skills/dependencies-patterns/references/violations.md +247 -0
- package/shared/skills/docs-framework/SKILL.md +134 -0
- package/shared/skills/docs-framework/references/patterns.md +346 -0
- package/shared/skills/docs-framework/references/violations.md +221 -0
- package/shared/skills/documentation-patterns/SKILL.md +125 -0
- package/shared/skills/documentation-patterns/references/detection.md +190 -0
- package/shared/skills/documentation-patterns/references/patterns.md +189 -0
- package/shared/skills/documentation-patterns/references/violations.md +163 -0
- package/shared/skills/frontend-design/SKILL.md +254 -0
- package/shared/skills/frontend-design/references/detection.md +184 -0
- package/shared/skills/frontend-design/references/patterns.md +511 -0
- package/shared/skills/frontend-design/references/violations.md +453 -0
- package/shared/skills/git-safety/SKILL.md +122 -0
- package/shared/skills/git-safety/references/detection.md +290 -0
- package/shared/skills/git-safety/references/patterns.md +289 -0
- package/shared/skills/git-safety/references/violations.md +18 -0
- package/shared/skills/git-workflow/SKILL.md +158 -0
- package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
- package/shared/skills/git-workflow/references/commit-violations.md +77 -0
- package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
- package/shared/skills/git-workflow/references/pr-violations.md +96 -0
- package/shared/skills/github-patterns/SKILL.md +153 -0
- package/shared/skills/github-patterns/references/patterns.md +572 -0
- package/shared/skills/github-patterns/references/violations.md +298 -0
- package/shared/skills/implementation-patterns/SKILL.md +162 -0
- package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
- package/shared/skills/implementation-patterns/references/violations.md +483 -0
- package/shared/skills/input-validation/SKILL.md +148 -0
- package/shared/skills/input-validation/references/detection.md +283 -0
- package/shared/skills/input-validation/references/patterns.md +361 -0
- package/shared/skills/input-validation/references/violations.md +224 -0
- package/shared/skills/performance-patterns/SKILL.md +154 -0
- package/shared/skills/performance-patterns/references/detection.md +351 -0
- package/shared/skills/performance-patterns/references/patterns.md +503 -0
- package/shared/skills/performance-patterns/references/violations.md +354 -0
- package/shared/skills/react/SKILL.md +276 -0
- package/shared/skills/react/references/patterns.md +1331 -0
- package/shared/skills/react/references/violations.md +565 -0
- package/shared/skills/regression-patterns/SKILL.md +146 -0
- package/shared/skills/regression-patterns/references/detection.md +237 -0
- package/shared/skills/regression-patterns/references/patterns.md +226 -0
- package/shared/skills/regression-patterns/references/violations.md +225 -0
- package/shared/skills/review-methodology/SKILL.md +119 -0
- package/shared/skills/review-methodology/references/patterns.md +186 -0
- package/shared/skills/review-methodology/references/report-template.md +142 -0
- package/shared/skills/review-methodology/references/violations.md +125 -0
- package/shared/skills/security-patterns/SKILL.md +156 -0
- package/shared/skills/security-patterns/references/detection.md +287 -0
- package/shared/skills/security-patterns/references/patterns.md +507 -0
- package/shared/skills/security-patterns/references/violations.md +237 -0
- package/shared/skills/self-review/SKILL.md +149 -0
- package/shared/skills/self-review/references/patterns.md +405 -0
- package/shared/skills/self-review/references/report-template.md +253 -0
- package/shared/skills/self-review/references/violations.md +308 -0
- package/shared/skills/test-patterns/SKILL.md +183 -0
- package/shared/skills/test-patterns/references/detection.md +149 -0
- package/shared/skills/test-patterns/references/patterns.md +220 -0
- package/shared/skills/test-patterns/references/report-template.md +108 -0
- package/shared/skills/test-patterns/references/violations.md +221 -0
- package/shared/skills/typescript/SKILL.md +176 -0
- package/shared/skills/typescript/references/patterns.md +1105 -0
- package/shared/skills/typescript/references/violations.md +433 -0
- package/src/templates/claudeignore.template +188 -0
- package/src/templates/managed-settings.json +146 -0
- package/src/templates/settings.json +59 -0
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/src/claude/CLAUDE.md +0 -400
- package/src/claude/agents/devflow/audit-architecture.md +0 -132
- package/src/claude/agents/devflow/audit-complexity.md +0 -132
- package/src/claude/agents/devflow/audit-database.md +0 -132
- package/src/claude/agents/devflow/audit-dependencies.md +0 -132
- package/src/claude/agents/devflow/audit-documentation.md +0 -132
- package/src/claude/agents/devflow/audit-performance.md +0 -256
- package/src/claude/agents/devflow/audit-security.md +0 -259
- package/src/claude/agents/devflow/audit-tests.md +0 -132
- package/src/claude/agents/devflow/audit-typescript.md +0 -132
- package/src/claude/agents/devflow/brainstorm.md +0 -279
- package/src/claude/agents/devflow/catch-up.md +0 -345
- package/src/claude/agents/devflow/code-review.md +0 -307
- package/src/claude/agents/devflow/commit.md +0 -380
- package/src/claude/agents/devflow/debug.md +0 -476
- package/src/claude/agents/devflow/design.md +0 -491
- package/src/claude/agents/devflow/get-issue.md +0 -286
- package/src/claude/agents/devflow/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -493
- package/src/claude/agents/devflow/release.md +0 -1137
- package/src/claude/agents/devflow/tech-debt.md +0 -338
- package/src/claude/commands/devflow/brainstorm.md +0 -68
- package/src/claude/commands/devflow/breakdown.md +0 -125
- package/src/claude/commands/devflow/catch-up.md +0 -29
- package/src/claude/commands/devflow/code-review.md +0 -237
- package/src/claude/commands/devflow/commit.md +0 -17
- package/src/claude/commands/devflow/debug.md +0 -56
- package/src/claude/commands/devflow/design.md +0 -82
- package/src/claude/commands/devflow/devlog.md +0 -408
- package/src/claude/commands/devflow/get-issue.md +0 -16
- package/src/claude/commands/devflow/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -20
- package/src/claude/commands/devflow/release.md +0 -251
- package/src/claude/commands/devflow/resolve-comments.md +0 -583
- package/src/claude/scripts/statusline.sh +0 -47
- package/src/claude/settings.json +0 -6
- package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
- package/src/claude/skills/devflow/debug/SKILL.md +0 -119
- package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
- package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
- package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
- package/src/claude/skills/devflow/research/SKILL.md +0 -138
- package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# Complexity Violation Examples
|
|
2
|
+
|
|
3
|
+
Extended examples of complexity issues to detect during code review.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Deep Nesting Violations
|
|
8
|
+
|
|
9
|
+
### Multi-level Conditional Nesting
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// VIOLATION: 5+ levels of nesting
|
|
13
|
+
function processOrder(order: Order) {
|
|
14
|
+
if (order) {
|
|
15
|
+
if (order.items) {
|
|
16
|
+
for (const item of order.items) {
|
|
17
|
+
if (item.quantity > 0) {
|
|
18
|
+
if (item.product) {
|
|
19
|
+
if (item.product.inStock) {
|
|
20
|
+
// Finally the actual logic...
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Nested Try-Catch Blocks
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
// VIOLATION: Exception handling adds nesting
|
|
34
|
+
async function fetchAndProcess(url: string) {
|
|
35
|
+
try {
|
|
36
|
+
const response = await fetch(url);
|
|
37
|
+
if (response.ok) {
|
|
38
|
+
try {
|
|
39
|
+
const data = await response.json();
|
|
40
|
+
if (data.items) {
|
|
41
|
+
for (const item of data.items) {
|
|
42
|
+
try {
|
|
43
|
+
await processItem(item);
|
|
44
|
+
} catch (itemError) {
|
|
45
|
+
// Nested error handling
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
} catch (parseError) {
|
|
50
|
+
// More nesting
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
} catch (fetchError) {
|
|
54
|
+
// Top-level catch
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Long Function Violations
|
|
62
|
+
|
|
63
|
+
### Monolithic Handler
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
// VIOLATION: Function does too many things (150+ lines typical)
|
|
67
|
+
function handleCheckout(cart: Cart, user: User) {
|
|
68
|
+
// Lines 1-30: Validate cart
|
|
69
|
+
// Lines 31-50: Check inventory
|
|
70
|
+
// Lines 51-80: Calculate pricing
|
|
71
|
+
// Lines 81-100: Apply discounts
|
|
72
|
+
// Lines 101-120: Process payment
|
|
73
|
+
// Lines 121-140: Update inventory
|
|
74
|
+
// Lines 141-150: Send notifications
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### God Function Pattern
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
// VIOLATION: Single function handles entire feature
|
|
82
|
+
async function userRegistrationFlow(formData: FormData) {
|
|
83
|
+
// Validation
|
|
84
|
+
// Sanitization
|
|
85
|
+
// Duplicate check
|
|
86
|
+
// Password hashing
|
|
87
|
+
// Database insert
|
|
88
|
+
// Email verification
|
|
89
|
+
// Welcome email
|
|
90
|
+
// Analytics tracking
|
|
91
|
+
// Session creation
|
|
92
|
+
// Redirect logic
|
|
93
|
+
// ... 200+ lines
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## High Cyclomatic Complexity Violations
|
|
100
|
+
|
|
101
|
+
### Decision Tree Anti-Pattern
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// VIOLATION: Too many decision paths (cyclomatic complexity > 10)
|
|
105
|
+
function categorize(item: Item): string {
|
|
106
|
+
if (item.type === 'A') {
|
|
107
|
+
if (item.size > 10) {
|
|
108
|
+
if (item.color === 'red') return 'A-large-red';
|
|
109
|
+
else if (item.color === 'blue') return 'A-large-blue';
|
|
110
|
+
else return 'A-large-other';
|
|
111
|
+
} else {
|
|
112
|
+
if (item.color === 'red') return 'A-small-red';
|
|
113
|
+
else if (item.color === 'blue') return 'A-small-blue';
|
|
114
|
+
else return 'A-small-other';
|
|
115
|
+
}
|
|
116
|
+
} else if (item.type === 'B') {
|
|
117
|
+
if (item.size > 10) {
|
|
118
|
+
if (item.color === 'red') return 'B-large-red';
|
|
119
|
+
// ... another tree of conditions
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Pattern continues for types C, D, E...
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Switch Statement Explosion
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
// VIOLATION: Giant switch with embedded logic
|
|
130
|
+
function handleEvent(event: Event) {
|
|
131
|
+
switch (event.type) {
|
|
132
|
+
case 'USER_CREATED':
|
|
133
|
+
// 20 lines of logic
|
|
134
|
+
break;
|
|
135
|
+
case 'USER_UPDATED':
|
|
136
|
+
// 25 lines of logic
|
|
137
|
+
break;
|
|
138
|
+
case 'USER_DELETED':
|
|
139
|
+
// 15 lines of logic
|
|
140
|
+
break;
|
|
141
|
+
// 20 more cases, each with substantial logic
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Magic Number/String Violations
|
|
149
|
+
|
|
150
|
+
### Unexplained Literals
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// VIOLATION: Numbers without context
|
|
154
|
+
if (status === 3) {
|
|
155
|
+
setTimeout(callback, 86400000);
|
|
156
|
+
retry(5);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// VIOLATION: String literals scattered in code
|
|
160
|
+
if (user.role === 'admin' || user.role === 'superuser') {
|
|
161
|
+
if (document.status === 'pending_review') {
|
|
162
|
+
// ...
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Hardcoded Configuration
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
// VIOLATION: Magic values in business logic
|
|
171
|
+
function calculateShipping(weight: number, distance: number) {
|
|
172
|
+
if (weight > 50) return 29.99;
|
|
173
|
+
if (distance > 500) return 19.99;
|
|
174
|
+
if (weight * distance > 10000) return 24.99;
|
|
175
|
+
return 9.99;
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Complex Expression Violations
|
|
182
|
+
|
|
183
|
+
### Chained Operations
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
// VIOLATION: Hard to parse mentally
|
|
187
|
+
const result = data.filter(x => x.active && x.type === 'premium')
|
|
188
|
+
.map(x => ({ ...x, score: x.points * (x.bonus ? 1.5 : 1) / x.level }))
|
|
189
|
+
.sort((a, b) => b.score - a.score)[0]?.score || 0;
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Dense Ternary Chains
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// VIOLATION: Nested ternaries
|
|
196
|
+
const status = isAdmin ? 'admin' : isModerator ? 'moderator' : isVerified ? 'verified' : isPending ? 'pending' : 'guest';
|
|
197
|
+
|
|
198
|
+
const price = quantity > 100 ? basePrice * 0.8 : quantity > 50 ? basePrice * 0.9 : quantity > 10 ? basePrice * 0.95 : basePrice;
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Unclear Naming Violations
|
|
204
|
+
|
|
205
|
+
### Cryptic Variable Names
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
// VIOLATION: Single-letter or abbreviated names
|
|
209
|
+
const d = new Date();
|
|
210
|
+
const t = d.getTime();
|
|
211
|
+
const r = items.filter(i => i.t > t - 86400000);
|
|
212
|
+
const x = r.reduce((a, b) => a + b.p, 0);
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Misleading Names
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
// VIOLATION: Names don't match behavior
|
|
219
|
+
function getData() {
|
|
220
|
+
// Actually deletes data before returning
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
const userList = fetchUser(); // Returns single user, not list
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Code Duplication Violations
|
|
229
|
+
|
|
230
|
+
### Repeated Validation Logic
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
// VIOLATION: Same logic repeated
|
|
234
|
+
function validateEmail(email: string) {
|
|
235
|
+
if (!email) return { valid: false, error: 'Required' };
|
|
236
|
+
if (!email.includes('@')) return { valid: false, error: 'Invalid format' };
|
|
237
|
+
return { valid: true, error: null };
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
function validateUsername(username: string) {
|
|
241
|
+
if (!username) return { valid: false, error: 'Required' };
|
|
242
|
+
if (username.length < 3) return { valid: false, error: 'Too short' };
|
|
243
|
+
return { valid: true, error: null };
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// Similar pattern in 10+ more places
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Copy-Paste API Handlers
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
// VIOLATION: Nearly identical handlers
|
|
253
|
+
app.get('/users/:id', async (req, res) => {
|
|
254
|
+
try {
|
|
255
|
+
const user = await db.users.findById(req.params.id);
|
|
256
|
+
if (!user) return res.status(404).json({ error: 'Not found' });
|
|
257
|
+
res.json(user);
|
|
258
|
+
} catch (error) {
|
|
259
|
+
res.status(500).json({ error: 'Internal error' });
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
app.get('/orders/:id', async (req, res) => {
|
|
264
|
+
try {
|
|
265
|
+
const order = await db.orders.findById(req.params.id);
|
|
266
|
+
if (!order) return res.status(404).json({ error: 'Not found' });
|
|
267
|
+
res.json(order);
|
|
268
|
+
} catch (error) {
|
|
269
|
+
res.status(500).json({ error: 'Internal error' });
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
// Repeated for every resource...
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## Long Parameter List Violations
|
|
278
|
+
|
|
279
|
+
### Function Signature Overload
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
// VIOLATION: Too many parameters
|
|
283
|
+
function createUser(
|
|
284
|
+
name: string,
|
|
285
|
+
email: string,
|
|
286
|
+
password: string,
|
|
287
|
+
role: string,
|
|
288
|
+
department: string,
|
|
289
|
+
manager: string,
|
|
290
|
+
startDate: Date,
|
|
291
|
+
salary: number,
|
|
292
|
+
benefits: string[]
|
|
293
|
+
) {
|
|
294
|
+
// ...
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Boolean Parameter Explosion
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
// VIOLATION: Multiple booleans (unclear at call site)
|
|
302
|
+
function formatDocument(
|
|
303
|
+
doc: Document,
|
|
304
|
+
includeHeader: boolean,
|
|
305
|
+
includeFooter: boolean,
|
|
306
|
+
useColor: boolean,
|
|
307
|
+
landscape: boolean,
|
|
308
|
+
doubleSided: boolean
|
|
309
|
+
) {
|
|
310
|
+
// ...
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Call site is cryptic:
|
|
314
|
+
formatDocument(doc, true, false, true, false, true);
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Boolean Complexity Violations
|
|
320
|
+
|
|
321
|
+
### Complex Boolean Expressions
|
|
322
|
+
|
|
323
|
+
```typescript
|
|
324
|
+
// VIOLATION: Hard to understand
|
|
325
|
+
if (user.active && !user.deleted && (user.role === 'admin' || user.role === 'moderator') && user.verified && (!user.suspended || user.suspendedUntil < Date.now())) {
|
|
326
|
+
// ...
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Negation Overuse
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
// VIOLATION: Double/triple negatives
|
|
334
|
+
if (!user.isNotActive && !items.isEmpty()) {
|
|
335
|
+
// ...
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
if (!(a && !b) || !(!c || d)) {
|
|
339
|
+
// ...
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Shotgun Surgery Indicators
|
|
346
|
+
|
|
347
|
+
### Change Requires Many Files
|
|
348
|
+
|
|
349
|
+
```typescript
|
|
350
|
+
// VIOLATION: To add a new user type, you must modify:
|
|
351
|
+
// - UserType enum
|
|
352
|
+
// - UserFactory
|
|
353
|
+
// - UserValidator
|
|
354
|
+
// - UserSerializer
|
|
355
|
+
// - UserRepository
|
|
356
|
+
// - UserController
|
|
357
|
+
// - user.routes.ts
|
|
358
|
+
// - 5 more files...
|
|
359
|
+
|
|
360
|
+
// Each file has a switch or if-else chain checking user type
|
|
361
|
+
```
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: consistency-patterns
|
|
3
|
+
description: Consistency analysis patterns for code review. Detects naming convention violations, pattern deviations, unnecessary simplification, and feature truncation in diffs. Loaded by Reviewer agent when focus=consistency.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Consistency Patterns
|
|
9
|
+
|
|
10
|
+
Domain expertise for code consistency and unnecessary simplification detection. Use alongside `review-methodology` for complete consistency reviews.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **MATCH EXISTING PATTERNS OR JUSTIFY DEVIATION**
|
|
15
|
+
>
|
|
16
|
+
> New code should look like existing code. If the codebase uses camelCase, use camelCase.
|
|
17
|
+
> If errors return Result types, return Result types. Consistency trumps personal preference.
|
|
18
|
+
> Deviation requires explicit justification and team agreement. One codebase, one style.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Consistency Categories
|
|
23
|
+
|
|
24
|
+
### 1. Unnecessary Simplification
|
|
25
|
+
|
|
26
|
+
Content truncation, stripped configuration, removed error context.
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
// VIOLATION: Oversimplified error messages
|
|
30
|
+
const errorMessages = {
|
|
31
|
+
INVALID_EMAIL: 'Invalid email', // Was: detailed format guidance
|
|
32
|
+
USER_NOT_FOUND: 'Not found', // Was: helpful next steps
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// CORRECT: Preserve helpful context
|
|
36
|
+
const errorMessages = {
|
|
37
|
+
INVALID_EMAIL: 'Please enter a valid email address in the format user@domain.com',
|
|
38
|
+
USER_NOT_FOUND: 'We could not find an account with that email. Please check or create a new account.',
|
|
39
|
+
};
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 2. Pattern Violations
|
|
43
|
+
|
|
44
|
+
Naming conventions, error handling styles, import/export organization.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
// EXISTING PATTERN: Result types
|
|
48
|
+
function existingFunction(): Result<User, Error> {
|
|
49
|
+
if (!valid) return Err(new ValidationError('...'));
|
|
50
|
+
return Ok(user);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// VIOLATION: Throws instead of Result
|
|
54
|
+
function newFunction(): User {
|
|
55
|
+
if (!valid) throw new Error('...'); // Different pattern!
|
|
56
|
+
return user;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// CORRECT: Match existing
|
|
60
|
+
function newFunction(): Result<User, Error> {
|
|
61
|
+
if (!valid) return Err(new ValidationError('...'));
|
|
62
|
+
return Ok(user);
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 3. Feature Regression
|
|
67
|
+
|
|
68
|
+
Removed CLI options, changed return types, removed event emissions.
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// VIOLATION: Removed event emissions break listeners
|
|
72
|
+
class OrderService {
|
|
73
|
+
async createOrder(data: OrderData) {
|
|
74
|
+
const order = await this.repository.create(data);
|
|
75
|
+
return order; // Events removed - listeners won't fire!
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// CORRECT: Preserve all event emissions
|
|
80
|
+
class OrderService {
|
|
81
|
+
async createOrder(data: OrderData) {
|
|
82
|
+
const order = await this.repository.create(data);
|
|
83
|
+
this.events.emit('order.created', order);
|
|
84
|
+
this.events.emit('inventory.reserve', order.items);
|
|
85
|
+
return order;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 4. Style Inconsistency
|
|
91
|
+
|
|
92
|
+
Brace style, quote style, trailing commas, naming conventions.
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// EXISTING: camelCase for functions
|
|
96
|
+
function getUserById(id: string) { }
|
|
97
|
+
function createOrder(data: OrderData) { }
|
|
98
|
+
|
|
99
|
+
// VIOLATION: Different naming style
|
|
100
|
+
function Process_Payment(amount: number) { } // snake_case
|
|
101
|
+
|
|
102
|
+
// CORRECT: Match existing
|
|
103
|
+
function processPayment(amount: number) { }
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Extended References
|
|
109
|
+
|
|
110
|
+
For extended examples and detection commands, see:
|
|
111
|
+
|
|
112
|
+
- `references/violations.md` - Extended violation examples by category
|
|
113
|
+
- `references/patterns.md` - Extended correct pattern examples
|
|
114
|
+
- `references/detection.md` - Bash commands for detecting issues
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Severity Guidelines
|
|
119
|
+
|
|
120
|
+
| Severity | Description | Examples |
|
|
121
|
+
|----------|-------------|----------|
|
|
122
|
+
| **CRITICAL** | Breaking changes or significant content loss | API return types changed, CLI options removed, events removed |
|
|
123
|
+
| **HIGH** | Inconsistency requiring attention | Error handling pattern mismatch, naming violations, export pattern change |
|
|
124
|
+
| **MEDIUM** | Style inconsistency | Import organization, brace/quote style, formatting differences |
|
|
125
|
+
| **LOW** | Minor observations | Personal preference territory, linter should catch |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Consistency Checklist
|
|
130
|
+
|
|
131
|
+
Before approving changes, verify:
|
|
132
|
+
|
|
133
|
+
- [ ] Naming matches existing patterns (camelCase, PascalCase, etc.)
|
|
134
|
+
- [ ] Error handling matches existing approach (throw vs Result)
|
|
135
|
+
- [ ] Import organization matches existing files
|
|
136
|
+
- [ ] Export style matches existing modules
|
|
137
|
+
- [ ] No user-facing content was unnecessarily shortened
|
|
138
|
+
- [ ] No configuration options were silently removed
|
|
139
|
+
- [ ] No CLI flags/options were removed without deprecation
|
|
140
|
+
- [ ] All removed functionality has explicit justification
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Consistency Detection Patterns Reference
|
|
2
|
+
|
|
3
|
+
Bash commands and patterns for detecting consistency issues.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Diff Statistics Analysis
|
|
8
|
+
|
|
9
|
+
### Files with Excessive Deletions
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Files with many more deletions than additions
|
|
13
|
+
git diff main...HEAD --stat | awk '{
|
|
14
|
+
if (match($0, /\+([0-9]+).*-([0-9]+)/, arr)) {
|
|
15
|
+
added = arr[1]; deleted = arr[2];
|
|
16
|
+
if (deleted > added * 2 && deleted > 10) {
|
|
17
|
+
print "WARNING:", $0
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Content Length Changes
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Compare line counts for key files
|
|
27
|
+
for file in $(git diff --name-only main...HEAD); do
|
|
28
|
+
if [ -f "$file" ]; then
|
|
29
|
+
before=$(git show main:"$file" 2>/dev/null | wc -l)
|
|
30
|
+
after=$(wc -l < "$file")
|
|
31
|
+
if [ "$before" -gt "$after" ]; then
|
|
32
|
+
reduction=$((before - after))
|
|
33
|
+
percent=$((reduction * 100 / before))
|
|
34
|
+
if [ "$percent" -gt 20 ]; then
|
|
35
|
+
echo "WARNING: $file reduced by $percent% ($before -> $after lines)"
|
|
36
|
+
fi
|
|
37
|
+
fi
|
|
38
|
+
fi
|
|
39
|
+
done
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Error Message Detection
|
|
45
|
+
|
|
46
|
+
### Shortened Error Messages
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Find shortened error messages in diff
|
|
50
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*Error\|^-.*throw" | head -20
|
|
51
|
+
|
|
52
|
+
# Compare error message lengths before/after
|
|
53
|
+
git diff main...HEAD -- "*.ts" | grep -A1 "^-.*throw new Error" | head -30
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Generic Error Replacements
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Find generic error messages that replaced specific ones
|
|
60
|
+
git diff main...HEAD -- "*.ts" | grep "^+.*'Error'\|^+.*'Failed'\|^+.*'Invalid'" | head -20
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Export/Import Detection
|
|
66
|
+
|
|
67
|
+
### Removed Exports
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Find removed exports
|
|
71
|
+
git diff main...HEAD -- "*.ts" | grep "^-export" | head -20
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Changed Export Patterns
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Find export default vs named export changes
|
|
78
|
+
git diff main...HEAD -- "*.ts" | grep "^-export\|^+export" | head -30
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Import Order Analysis
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Check for import order inconsistencies
|
|
85
|
+
for file in $(git diff --name-only main...HEAD -- "*.ts"); do
|
|
86
|
+
echo "=== $file ==="
|
|
87
|
+
head -30 "$file" | grep "^import" | head -15
|
|
88
|
+
done
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## CLI/Options Detection
|
|
94
|
+
|
|
95
|
+
### Removed Options
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Find removed CLI options
|
|
99
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*\.option\|^-.*flag" | head -20
|
|
100
|
+
|
|
101
|
+
# Find removed function parameters
|
|
102
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*function.*(" | head -20
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Changed Signatures
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Find changed function signatures
|
|
109
|
+
git diff main...HEAD -- "*.ts" | grep -A2 "^-.*function\|^+.*function" | head -40
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Naming Convention Detection
|
|
115
|
+
|
|
116
|
+
### Unusual Naming Patterns
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Find snake_case in functions (unusual for TypeScript)
|
|
120
|
+
grep -rn "function [A-Z_]" --include="*.ts" | head -10
|
|
121
|
+
|
|
122
|
+
# Find SCREAMING_CASE functions (should be constants only)
|
|
123
|
+
grep -rn "function [A-Z][A-Z]" --include="*.ts" | head -10
|
|
124
|
+
|
|
125
|
+
# Find mixed function styles
|
|
126
|
+
grep -rn "const [a-z].*= function" --include="*.ts" | head -10
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Quote Style Detection
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Find inconsistent quotes
|
|
133
|
+
echo "Double quotes:"
|
|
134
|
+
grep -rn '"[^"]*"' --include="*.ts" | head -5
|
|
135
|
+
|
|
136
|
+
echo "Single quotes:"
|
|
137
|
+
grep -rn "'[^']*'" --include="*.ts" | head -5
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Event Emission Detection
|
|
143
|
+
|
|
144
|
+
### Removed Event Emissions
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Find removed event emissions
|
|
148
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*\.emit\|^-.*emit(" | head -20
|
|
149
|
+
|
|
150
|
+
# Find removed event listeners
|
|
151
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*\.on(\|^-.*addEventListener" | head -20
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Configuration Detection
|
|
157
|
+
|
|
158
|
+
### Removed Config Options
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Find removed interface properties
|
|
162
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*:" | grep -v "//" | head -20
|
|
163
|
+
|
|
164
|
+
# Find removed config keys
|
|
165
|
+
git diff main...HEAD -- "*.json" | grep "^-" | head -20
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Changed Default Values
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Find changed default values
|
|
172
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*=.*\|^+.*=.*" | grep default | head -20
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Comprehensive Scan
|
|
178
|
+
|
|
179
|
+
### Full Consistency Check
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
#!/bin/bash
|
|
183
|
+
# Run all consistency checks
|
|
184
|
+
|
|
185
|
+
echo "=== Excessive Deletions ==="
|
|
186
|
+
git diff main...HEAD --stat | awk '{
|
|
187
|
+
if (match($0, /\+([0-9]+).*-([0-9]+)/, arr)) {
|
|
188
|
+
if (arr[2] > arr[1] * 2 && arr[2] > 10) print "WARNING:", $0
|
|
189
|
+
}
|
|
190
|
+
}'
|
|
191
|
+
|
|
192
|
+
echo ""
|
|
193
|
+
echo "=== Removed Exports ==="
|
|
194
|
+
git diff main...HEAD -- "*.ts" | grep "^-export" | head -10
|
|
195
|
+
|
|
196
|
+
echo ""
|
|
197
|
+
echo "=== Shortened Errors ==="
|
|
198
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*Error\|^-.*throw" | head -10
|
|
199
|
+
|
|
200
|
+
echo ""
|
|
201
|
+
echo "=== Removed Events ==="
|
|
202
|
+
git diff main...HEAD -- "*.ts" | grep "^-.*\.emit" | head -10
|
|
203
|
+
|
|
204
|
+
echo ""
|
|
205
|
+
echo "=== Naming Issues ==="
|
|
206
|
+
grep -rn "function [A-Z_]" --include="*.ts" | head -5
|
|
207
|
+
```
|