devflow-kit 0.8.1 → 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 +185 -29
- package/LICENSE +1 -1
- package/README.md +179 -308
- package/dist/cli.js +3 -1
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.js +311 -575
- 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/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -423
- 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/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -269
- 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,122 @@
|
|
|
1
|
+
# Communication Protocols
|
|
2
|
+
|
|
3
|
+
## Message Types
|
|
4
|
+
|
|
5
|
+
### Direct Message (one-to-one)
|
|
6
|
+
|
|
7
|
+
Use when challenging a specific teammate's finding:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
To [Security Reviewer]:
|
|
11
|
+
"Your finding about SQL injection at api/users.ts:42 - I disagree.
|
|
12
|
+
The parameterized query at line 45 handles this. Check the query builder
|
|
13
|
+
pattern used throughout this codebase."
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Broadcast (one-to-all)
|
|
17
|
+
|
|
18
|
+
Use when sharing findings that affect all teammates:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Broadcast:
|
|
22
|
+
"I found that the auth middleware is bypassed for /api/internal/* routes.
|
|
23
|
+
This affects security, architecture, and testing perspectives."
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Debate Protocol
|
|
29
|
+
|
|
30
|
+
### Round Structure
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Round 1: Initial findings (each teammate shares top findings)
|
|
34
|
+
Round 2: Challenge round (teammates dispute or validate)
|
|
35
|
+
Round 3: Resolution (update, withdraw, or escalate)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Cap: 2 challenge exchanges per topic.** If unresolved, escalate to lead.
|
|
39
|
+
|
|
40
|
+
### Challenge Format
|
|
41
|
+
|
|
42
|
+
When challenging another teammate:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
CHALLENGE to [Teammate]:
|
|
46
|
+
- Finding: [what they claimed]
|
|
47
|
+
- Evidence against: [your counter-evidence with file:line references]
|
|
48
|
+
- Suggested resolution: [what you think is correct]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Concession Format
|
|
52
|
+
|
|
53
|
+
When accepting a challenge:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
UPDATED based on [Teammate]'s challenge:
|
|
57
|
+
- Original: [what I originally claimed]
|
|
58
|
+
- Revised: [updated finding incorporating their evidence]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Escalation Format
|
|
62
|
+
|
|
63
|
+
When debate is unresolved after 2 exchanges:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
ESCALATION to Lead:
|
|
67
|
+
- Topic: [what we disagree about]
|
|
68
|
+
- Position A: [first perspective with evidence]
|
|
69
|
+
- Position B: [second perspective with evidence]
|
|
70
|
+
- Recommendation: [which has stronger evidence, or "genuinely split"]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Lead Coordination Messages
|
|
76
|
+
|
|
77
|
+
### Initiating Debate
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Lead broadcast:
|
|
81
|
+
"All teammates: Share your top 3-5 findings. After sharing, challenge
|
|
82
|
+
any finding you disagree with. Provide evidence (file:line references).
|
|
83
|
+
You have 2 exchange rounds to resolve disagreements."
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Ending Debate
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Lead broadcast:
|
|
90
|
+
"Debate round complete. Submit final findings with confidence levels:
|
|
91
|
+
- HIGH: Unanimous or unchallenged with evidence
|
|
92
|
+
- MEDIUM: Majority agreed, dissent noted
|
|
93
|
+
- LOW: Split opinion, both perspectives included"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Requesting Clarification
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Lead to [Teammate]:
|
|
100
|
+
"Your finding about X contradicts [Other Teammate]'s finding about Y.
|
|
101
|
+
Can you address their evidence at [file:line]?"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Output Aggregation
|
|
107
|
+
|
|
108
|
+
### Consensus Report Structure
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
## Confirmed Findings (HIGH confidence)
|
|
112
|
+
[Findings all teammates agreed on or that survived challenge]
|
|
113
|
+
|
|
114
|
+
## Majority Findings (MEDIUM confidence)
|
|
115
|
+
[Findings most agreed on, with dissenting view noted]
|
|
116
|
+
|
|
117
|
+
## Split Findings (LOW confidence)
|
|
118
|
+
[Genuinely contested findings with both perspectives and evidence]
|
|
119
|
+
|
|
120
|
+
## Withdrawn Findings
|
|
121
|
+
[Findings that were disproved during debate]
|
|
122
|
+
```
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Team Patterns by Workflow
|
|
2
|
+
|
|
3
|
+
## Task-Based Coordination
|
|
4
|
+
|
|
5
|
+
All team workflows should use the shared task list for structured progress tracking:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. Lead creates team
|
|
9
|
+
2. Lead creates tasks (TaskCreate) for each teammate's work unit
|
|
10
|
+
3. Lead spawns teammates, assigning tasks via TaskUpdate(owner)
|
|
11
|
+
4. Teammates work, mark tasks completed via TaskUpdate(status: completed)
|
|
12
|
+
5. Lead checks TaskList before proceeding to next phase
|
|
13
|
+
6. Lead shuts down teammates, calls TeamDelete
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Example task creation for a review team:**
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
TaskCreate: "Security review of auth module" → assigned to Security Reviewer
|
|
20
|
+
TaskCreate: "Architecture review of auth module" → assigned to Architecture Reviewer
|
|
21
|
+
TaskCreate: "Performance review of auth module" → assigned to Performance Reviewer
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Review Team
|
|
27
|
+
|
|
28
|
+
### Standard Review (4 perspectives)
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Lead spawns:
|
|
32
|
+
├── Security reviewer → vulnerabilities, injection, auth, crypto
|
|
33
|
+
├── Architecture reviewer → SOLID, coupling, layering, modularity
|
|
34
|
+
├── Performance reviewer → queries, algorithms, caching, I/O
|
|
35
|
+
└── Quality reviewer → complexity, tests, consistency, naming
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Extended Review (add conditionally)
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Additional teammates based on changed files:
|
|
42
|
+
├── TypeScript reviewer → type safety, generics (if .ts/.tsx changed)
|
|
43
|
+
├── React reviewer → hooks, state, rendering (if .tsx/.jsx changed)
|
|
44
|
+
├── Database reviewer → schema, queries, migrations (if DB files changed)
|
|
45
|
+
└── Dependencies reviewer → CVEs, versions, licenses (if package files changed)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Review Debate Flow
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
1. Each reviewer analyzes independently
|
|
52
|
+
2. Lead broadcasts: "Share top 3 findings and challenge others"
|
|
53
|
+
3. Security challenges architecture: "This coupling creates attack surface"
|
|
54
|
+
4. Architecture challenges performance: "Your caching suggestion breaks separation"
|
|
55
|
+
5. Quality validates: "Tests don't cover the security concern raised"
|
|
56
|
+
6. Lead collects consensus after max 2 exchange rounds
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Implementation Team
|
|
62
|
+
|
|
63
|
+
### Exploration Team (4 perspectives)
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Lead spawns:
|
|
67
|
+
├── Architecture explorer → existing patterns, module structure
|
|
68
|
+
├── Integration explorer → entry points, services, config
|
|
69
|
+
├── Reusable code explorer → utilities, helpers, shared logic
|
|
70
|
+
└── Edge case explorer → error conditions, boundaries, race conditions
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Planning Team (3 perspectives)
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Lead spawns:
|
|
77
|
+
├── Implementation planner → step-by-step coding approach
|
|
78
|
+
├── Testing planner → test strategy and coverage plan
|
|
79
|
+
└── Risk planner → potential issues, rollback strategy
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Implementation Debate
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
1. Explorers share findings
|
|
86
|
+
2. Architecture challenges edge cases: "This boundary isn't handled"
|
|
87
|
+
3. Integration challenges reusable code: "That helper doesn't cover our case"
|
|
88
|
+
4. Lead synthesizes consensus exploration
|
|
89
|
+
|
|
90
|
+
5. Planners propose approaches
|
|
91
|
+
6. Testing challenges implementation: "This approach is untestable"
|
|
92
|
+
7. Risk challenges both: "Rollback is impossible with this migration"
|
|
93
|
+
8. Lead synthesizes consensus plan
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Specification Team
|
|
99
|
+
|
|
100
|
+
### Requirements Exploration Team (4 perspectives)
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Lead spawns:
|
|
104
|
+
├── User Perspective Explorer → target users, goals, pain points, user journeys
|
|
105
|
+
├── Similar Features Explorer → comparable features, scope patterns, precedents
|
|
106
|
+
├── Constraints Explorer → dependencies, business rules, security, performance
|
|
107
|
+
└── Failure Mode Explorer → error states, edge cases, validation needs
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Requirements Debate Flow
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
1. Each explorer shares findings from their perspective
|
|
114
|
+
2. Constraints challenges user perspective: "This requirement conflicts with X constraint"
|
|
115
|
+
3. Failure modes challenges similar features: "That pattern failed in Y scenario"
|
|
116
|
+
4. Similar features validates user perspective: "This UX pattern works well in Z"
|
|
117
|
+
5. Lead collects consensus after max 2 exchange rounds
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Scope Planning Team (3 perspectives)
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Lead spawns:
|
|
124
|
+
├── User Stories Planner → actors, actions, outcomes ("As X, I want Y, so that Z")
|
|
125
|
+
├── Scope Boundaries Planner → v1 MVP, v2 deferred, out of scope, dependencies
|
|
126
|
+
└── Acceptance Criteria Planner → success/failure/edge case criteria (testable)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Scope Debate Flow
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
1. Each planner presents their analysis
|
|
133
|
+
2. Scope challenges user stories: "This story is too broad for v1"
|
|
134
|
+
3. Acceptance challenges scope: "These boundaries leave this edge case uncovered"
|
|
135
|
+
4. User stories challenges acceptance: "This criterion is untestable"
|
|
136
|
+
5. Lead collects consensus after max 2 exchange rounds
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Note**: Specification teams complement (not replace) the 3 mandatory clarification gates. User still drives all decisions via Gate 0, Gate 1, and Gate 2.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Resolution Team
|
|
144
|
+
|
|
145
|
+
### Cross-Validation Resolution Team
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Lead spawns resolvers based on batches:
|
|
149
|
+
├── Resolver A → Batch 1 issues (file-a cluster)
|
|
150
|
+
├── Resolver B → Batch 2 issues (file-b cluster)
|
|
151
|
+
└── Resolver C → Batch 3 issues (file-c cluster)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Resolution Debate Flow
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
1. Each resolver independently validates + fixes their batch
|
|
158
|
+
2. Lead broadcasts: "Review each other's fixes for cross-batch conflicts"
|
|
159
|
+
3. Resolver A: "My fix in file-a.ts changes the interface that Resolver B depends on"
|
|
160
|
+
4. Resolver B: "Confirmed — my fix in file-b.ts imports from that interface"
|
|
161
|
+
5. Resolvers coordinate the fix or escalate conflict to lead
|
|
162
|
+
6. Lead collects consensus after max 2 exchange rounds
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### When Cross-Validation Adds Value
|
|
166
|
+
|
|
167
|
+
- Fixes touch shared interfaces or types
|
|
168
|
+
- Resolvers modify files that import from each other
|
|
169
|
+
- Batch fixes could introduce conflicting patterns
|
|
170
|
+
- Large resolution sets (>5 issues across multiple files)
|
|
171
|
+
|
|
172
|
+
### When to Skip Cross-Validation
|
|
173
|
+
|
|
174
|
+
- All fixes are in completely independent files
|
|
175
|
+
- Only 1-2 batches with no shared dependencies
|
|
176
|
+
- Fixes are trivial (typos, formatting, naming)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Debug Team
|
|
181
|
+
|
|
182
|
+
### Hypothesis Investigation (3-5 hypotheses)
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Lead spawns (one per hypothesis):
|
|
186
|
+
├── Hypothesis A investigator → state management / race condition
|
|
187
|
+
├── Hypothesis B investigator → configuration / environment
|
|
188
|
+
├── Hypothesis C investigator → edge case / input validation
|
|
189
|
+
└── Hypothesis D investigator → dependency / version issue
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Debug Debate Flow
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
1. Each investigator gathers evidence for their hypothesis
|
|
196
|
+
2. Lead broadcasts: "Present evidence. Disprove each other."
|
|
197
|
+
3. Investigator A: "Found race condition at file:line"
|
|
198
|
+
4. Investigator B: "My config theory is disproved by A's evidence"
|
|
199
|
+
5. Investigator C: "A's race condition doesn't explain the timing"
|
|
200
|
+
6. Converge on surviving hypothesis with strongest evidence
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Team Size Guidelines
|
|
206
|
+
|
|
207
|
+
| Scenario | Min | Max | Rationale |
|
|
208
|
+
|----------|-----|-----|-----------|
|
|
209
|
+
| Quick review | 2 | 3 | Focused, low cost |
|
|
210
|
+
| Full review | 4 | 5 | Core perspectives |
|
|
211
|
+
| Exploration | 3 | 4 | Diminishing returns beyond 4 |
|
|
212
|
+
| Planning | 2 | 3 | Too many cooks |
|
|
213
|
+
| Specification (explore) | 3 | 4 | Requirements need diverse perspectives |
|
|
214
|
+
| Specification (scope) | 2 | 3 | Scope planning benefits from focus |
|
|
215
|
+
| Resolution | 2 | 4 | One per independent batch |
|
|
216
|
+
| Debugging | 3 | 5 | One per viable hypothesis |
|
|
217
|
+
| Parallel coding | 2 | 3 | Merge complexity grows fast |
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-patterns
|
|
3
|
+
description: Architecture analysis patterns for code review. Detects SOLID violations, tight coupling, layering issues, and dependency direction problems. Loaded by Reviewer agent when focus=architecture.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Architecture Patterns
|
|
9
|
+
|
|
10
|
+
Domain expertise for software architecture and design pattern analysis. Use alongside `review-methodology` for complete architecture reviews.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **SEPARATION OF CONCERNS IS NON-NEGOTIABLE**
|
|
15
|
+
>
|
|
16
|
+
> Every module has one reason to change. Every layer has clear boundaries. Every dependency
|
|
17
|
+
> points in one direction. Violations compound into unmaintainable systems.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Architecture Categories
|
|
22
|
+
|
|
23
|
+
### 1. SOLID Violations
|
|
24
|
+
|
|
25
|
+
**Single Responsibility (SRP)**: One class, one reason to change.
|
|
26
|
+
```typescript
|
|
27
|
+
// VIOLATION: Handles HTTP, validation, DB, email
|
|
28
|
+
class UserController {
|
|
29
|
+
async createUser(req, res) {
|
|
30
|
+
if (!req.body.email.includes('@')) throw new Error('Invalid');
|
|
31
|
+
const user = await db.users.create(req.body);
|
|
32
|
+
await sendEmail(user.email, 'Welcome!');
|
|
33
|
+
res.json(user);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// CORRECT: Separate concerns via injected services
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Open/Closed (OCP)**: Extend without modifying.
|
|
40
|
+
```typescript
|
|
41
|
+
// VIOLATION: Adding type = modifying
|
|
42
|
+
if (type === 'regular') return amount * 0.1;
|
|
43
|
+
if (type === 'premium') return amount * 0.2;
|
|
44
|
+
|
|
45
|
+
// CORRECT: Strategy pattern
|
|
46
|
+
interface DiscountStrategy { calculate(amount: number): number; }
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Liskov Substitution (LSP)**: Subtypes must be substitutable.
|
|
50
|
+
```typescript
|
|
51
|
+
// VIOLATION: Subclass breaks contract
|
|
52
|
+
class Square extends Rectangle { setWidth(w) { this.width = this.height = w; } }
|
|
53
|
+
|
|
54
|
+
// CORRECT: Use composition/proper abstraction
|
|
55
|
+
interface Shape { area(): number; }
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Interface Segregation (ISP)**: No forced unused implementations.
|
|
59
|
+
```typescript
|
|
60
|
+
// VIOLATION: Robot forced to implement eat()
|
|
61
|
+
interface Worker { work(); eat(); sleep(); }
|
|
62
|
+
|
|
63
|
+
// CORRECT: Segregated interfaces
|
|
64
|
+
interface Workable { work(): void; }
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Dependency Inversion (DIP)**: Depend on abstractions.
|
|
68
|
+
```typescript
|
|
69
|
+
// VIOLATION: Concrete dependency
|
|
70
|
+
class OrderService { private db = new PostgresDatabase(); }
|
|
71
|
+
|
|
72
|
+
// CORRECT: Inject interface
|
|
73
|
+
class OrderService { constructor(private repo: OrderRepository) {} }
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 2. Coupling Issues
|
|
77
|
+
|
|
78
|
+
**Tight Coupling**: Direct instantiation creates coupling.
|
|
79
|
+
```typescript
|
|
80
|
+
// VIOLATION
|
|
81
|
+
class ReportGenerator {
|
|
82
|
+
generate() { new DatabaseService().query('SELECT...'); }
|
|
83
|
+
}
|
|
84
|
+
// CORRECT: Inject dependencies via constructor
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Circular Dependencies**: A imports B, B imports A. Extract shared concern or use events.
|
|
88
|
+
|
|
89
|
+
**Feature Envy**: Method uses another class's data excessively. Move behavior to data owner.
|
|
90
|
+
|
|
91
|
+
### 3. Layering Violations
|
|
92
|
+
|
|
93
|
+
**Skipping Layers**: Controller directly accessing database.
|
|
94
|
+
```typescript
|
|
95
|
+
// VIOLATION: Controller -> DB (skips service)
|
|
96
|
+
const user = await db.query('SELECT...', [req.params.id]);
|
|
97
|
+
|
|
98
|
+
// CORRECT: Controller -> Service -> Repository
|
|
99
|
+
const user = await this.userService.findById(req.params.id);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Leaky Abstractions**: Infrastructure details in domain.
|
|
103
|
+
```typescript
|
|
104
|
+
// VIOLATION: Domain exposes MongoDB internals
|
|
105
|
+
interface User { id: string; _mongoId: ObjectId; __v: number; }
|
|
106
|
+
|
|
107
|
+
// CORRECT: Clean domain, map in repository
|
|
108
|
+
interface User { id: string; name: string; }
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Wrong Direction**: Domain must not import infrastructure. Infrastructure implements domain interfaces.
|
|
112
|
+
|
|
113
|
+
### 4. Modularity Issues
|
|
114
|
+
|
|
115
|
+
**God Class**: Class does everything. Split into bounded contexts.
|
|
116
|
+
|
|
117
|
+
**Inappropriate Intimacy**: Class knows internals of another. Use "tell, don't ask."
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Extended References
|
|
122
|
+
|
|
123
|
+
For detailed examples and detection patterns:
|
|
124
|
+
|
|
125
|
+
- `references/solid.md` - Extended SOLID violation examples with full fixes
|
|
126
|
+
- `references/coupling.md` - Circular dependencies, feature envy, tight coupling
|
|
127
|
+
- `references/layering.md` - Layer skipping, leaky abstractions, wrong direction
|
|
128
|
+
- `references/detection.md` - Grep patterns and bash commands for automated detection
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Severity Guidelines
|
|
133
|
+
|
|
134
|
+
| Severity | Examples |
|
|
135
|
+
|----------|----------|
|
|
136
|
+
| **CRITICAL** | Circular dependencies, domain depends on infrastructure, god classes 1000+ lines |
|
|
137
|
+
| **HIGH** | SOLID violations in core logic, tight coupling between services, leaky abstractions |
|
|
138
|
+
| **MEDIUM** | Dependencies not injected, minor layering violations, missing interfaces |
|
|
139
|
+
| **LOW** | Naming issues, minor organization, missing architecture docs |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Architecture Principles Reference
|
|
144
|
+
|
|
145
|
+
| Principle | Violation Sign | Fix Pattern |
|
|
146
|
+
|-----------|----------------|-------------|
|
|
147
|
+
| SRP | Multiple reasons to change | Extract classes |
|
|
148
|
+
| OCP | Modifying to add features | Strategy/plugin pattern |
|
|
149
|
+
| LSP | Subclass throws "not supported" | Composition over inheritance |
|
|
150
|
+
| ISP | Unused interface methods | Split interfaces |
|
|
151
|
+
| DIP | `new ConcreteClass()` in business | Inject via constructor |
|
|
152
|
+
| DRY | Copy-paste code blocks | Extract to shared module |
|
|
153
|
+
| YAGNI | Premature abstractions | Remove until needed |
|