devflow-kit 0.9.0 → 1.1.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 +197 -29
- package/LICENSE +1 -1
- package/README.md +185 -309
- package/dist/cli.js +7 -1
- package/dist/commands/ambient.d.ts +18 -0
- package/dist/commands/ambient.js +136 -0
- package/dist/commands/init.d.ts +23 -0
- package/dist/commands/init.js +393 -571
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/memory.d.ts +22 -0
- package/dist/commands/memory.js +175 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +418 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +169 -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 +80 -0
- package/dist/utils/post-install.js +508 -0
- package/dist/utils/safe-delete-install.d.ts +29 -0
- package/dist/utils/safe-delete-install.js +191 -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-ambient/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-ambient/README.md +49 -0
- package/plugins/devflow-ambient/commands/ambient.md +110 -0
- package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +89 -0
- package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +64 -0
- 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 +28 -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 +138 -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-driven-development/SKILL.md +139 -0
- package/plugins/devflow-core-skills/skills/test-driven-development/references/rationalization-prevention.md +111 -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/ambient-prompt.sh +48 -0
- package/scripts/hooks/background-memory-update.sh +208 -0
- package/scripts/hooks/ensure-memory-gitignore.sh +17 -0
- package/scripts/hooks/pre-compact-memory.sh +87 -0
- package/scripts/hooks/session-start-memory.sh +126 -0
- package/scripts/hooks/stop-update-memory.sh +85 -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/ambient-router/SKILL.md +89 -0
- package/shared/skills/ambient-router/references/skill-catalog.md +64 -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 +138 -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-driven-development/SKILL.md +139 -0
- package/shared/skills/test-driven-development/references/rationalization-prevention.md +111 -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 +160 -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,453 @@
|
|
|
1
|
+
# Frontend Design Violations
|
|
2
|
+
|
|
3
|
+
Extended violation patterns for frontend design reviews. Reference from main SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Typography Violations
|
|
6
|
+
|
|
7
|
+
### No Rationale for Font Choice
|
|
8
|
+
|
|
9
|
+
```css
|
|
10
|
+
/* VIOLATION: Default sans-serif without justification */
|
|
11
|
+
body {
|
|
12
|
+
font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
|
|
13
|
+
}
|
|
14
|
+
/* Why Inter? What personality does it convey? How does it serve the product? */
|
|
15
|
+
|
|
16
|
+
/* VIOLATION: Trend-following font choice */
|
|
17
|
+
body {
|
|
18
|
+
font-family: 'Poppins', sans-serif;
|
|
19
|
+
}
|
|
20
|
+
/* Poppins is everywhere. Is it right for YOUR product? */
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Flat Hierarchy
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
/* VIOLATION: No visual distinction between heading levels */
|
|
27
|
+
h1 { font-size: 24px; font-weight: 600; }
|
|
28
|
+
h2 { font-size: 22px; font-weight: 600; }
|
|
29
|
+
h3 { font-size: 20px; font-weight: 600; }
|
|
30
|
+
h4 { font-size: 18px; font-weight: 600; }
|
|
31
|
+
/* All look the same - users can't scan content */
|
|
32
|
+
|
|
33
|
+
/* VIOLATION: Only size differentiates, nothing else */
|
|
34
|
+
.title { font-size: 2rem; }
|
|
35
|
+
.subtitle { font-size: 1.5rem; }
|
|
36
|
+
.body { font-size: 1rem; }
|
|
37
|
+
/* No weight, spacing, or color variation */
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Poor Readability
|
|
41
|
+
|
|
42
|
+
```css
|
|
43
|
+
/* VIOLATION: Line height too tight for body text */
|
|
44
|
+
p {
|
|
45
|
+
font-size: 16px;
|
|
46
|
+
line-height: 1.2;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* VIOLATION: Lines too long */
|
|
50
|
+
.content {
|
|
51
|
+
max-width: 1200px; /* 150+ characters per line */
|
|
52
|
+
font-size: 16px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* VIOLATION: Inconsistent line heights */
|
|
56
|
+
.card-title { line-height: 1.1; }
|
|
57
|
+
.card-body { line-height: 1.8; }
|
|
58
|
+
.card-footer { line-height: 1.4; }
|
|
59
|
+
/* Random values, no system */
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Color Violations
|
|
65
|
+
|
|
66
|
+
### Random Hex Values
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
/* VIOLATION: Colors without system */
|
|
70
|
+
.button-primary { background: #4f46e5; }
|
|
71
|
+
.button-secondary { background: #6366f1; }
|
|
72
|
+
.link { color: #3b82f6; }
|
|
73
|
+
.error { color: #ef4444; }
|
|
74
|
+
.success { color: #22c55e; }
|
|
75
|
+
/* Different blues, no relationship, no semantic meaning */
|
|
76
|
+
|
|
77
|
+
/* VIOLATION: Inline color overrides */
|
|
78
|
+
<span style={{ color: '#8b5cf6' }}>Special text</span>
|
|
79
|
+
<div style={{ background: '#fef3c7' }}>Warning area</div>
|
|
80
|
+
/* One-off colors that don't fit the system */
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### AI Slop Gradients
|
|
84
|
+
|
|
85
|
+
```css
|
|
86
|
+
/* VIOLATION: Template gradient with no brand relevance */
|
|
87
|
+
.hero {
|
|
88
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* VIOLATION: Gradient just because "it's modern" */
|
|
92
|
+
.button {
|
|
93
|
+
background: linear-gradient(to right, #ec4899, #8b5cf6);
|
|
94
|
+
}
|
|
95
|
+
/* Purple-pink gradient copied from every template */
|
|
96
|
+
|
|
97
|
+
/* VIOLATION: Gradient on text without purpose */
|
|
98
|
+
.heading {
|
|
99
|
+
background: linear-gradient(90deg, #f97316, #ec4899);
|
|
100
|
+
-webkit-background-clip: text;
|
|
101
|
+
-webkit-text-fill-color: transparent;
|
|
102
|
+
}
|
|
103
|
+
/* Eye-catching but what does it communicate? */
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Dark Mode Afterthoughts
|
|
107
|
+
|
|
108
|
+
```css
|
|
109
|
+
/* VIOLATION: Invert filter hack */
|
|
110
|
+
@media (prefers-color-scheme: dark) {
|
|
111
|
+
body { filter: invert(1) hue-rotate(180deg); }
|
|
112
|
+
img { filter: invert(1) hue-rotate(180deg); }
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* VIOLATION: Only swapping background */
|
|
116
|
+
.dark {
|
|
117
|
+
background: #1a1a1a;
|
|
118
|
+
/* Text colors, borders, shadows all broken */
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* VIOLATION: Different design language in dark mode */
|
|
122
|
+
.card {
|
|
123
|
+
background: white;
|
|
124
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
|
125
|
+
}
|
|
126
|
+
.dark .card {
|
|
127
|
+
background: #2d2d2d;
|
|
128
|
+
border: 1px solid #444;
|
|
129
|
+
/* Shadows become borders - inconsistent */
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Motion Violations
|
|
136
|
+
|
|
137
|
+
### Decorative Animation
|
|
138
|
+
|
|
139
|
+
```css
|
|
140
|
+
/* VIOLATION: Animation without purpose */
|
|
141
|
+
.logo {
|
|
142
|
+
animation: float 3s ease-in-out infinite;
|
|
143
|
+
}
|
|
144
|
+
@keyframes float {
|
|
145
|
+
0%, 100% { transform: translateY(0); }
|
|
146
|
+
50% { transform: translateY(-10px); }
|
|
147
|
+
}
|
|
148
|
+
/* Why is the logo floating? */
|
|
149
|
+
|
|
150
|
+
/* VIOLATION: Pulsing buttons */
|
|
151
|
+
.cta-button {
|
|
152
|
+
animation: pulse 2s infinite;
|
|
153
|
+
}
|
|
154
|
+
/* Desperate attention-seeking, not communication */
|
|
155
|
+
|
|
156
|
+
/* VIOLATION: Spinning loaders everywhere */
|
|
157
|
+
.loading { animation: spin 1s linear infinite; }
|
|
158
|
+
/* Even for instant operations */
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Inconsistent Timing
|
|
162
|
+
|
|
163
|
+
```css
|
|
164
|
+
/* VIOLATION: Random durations */
|
|
165
|
+
.modal {
|
|
166
|
+
transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
167
|
+
}
|
|
168
|
+
.dropdown {
|
|
169
|
+
transition: all 0.2s linear;
|
|
170
|
+
}
|
|
171
|
+
.tooltip {
|
|
172
|
+
transition: opacity 150ms;
|
|
173
|
+
}
|
|
174
|
+
.button {
|
|
175
|
+
transition: background 0.1s, transform 0.15s, box-shadow 0.2s;
|
|
176
|
+
}
|
|
177
|
+
/* No timing system, feels inconsistent */
|
|
178
|
+
|
|
179
|
+
/* VIOLATION: "all" transition */
|
|
180
|
+
.card {
|
|
181
|
+
transition: all 0.3s ease;
|
|
182
|
+
}
|
|
183
|
+
/* Animates everything including width/height layout shifts */
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Jarring Easing
|
|
187
|
+
|
|
188
|
+
```css
|
|
189
|
+
/* VIOLATION: Linear easing for UI (feels robotic) */
|
|
190
|
+
.menu {
|
|
191
|
+
transition: transform 0.3s linear;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/* VIOLATION: Aggressive bounce on everything */
|
|
195
|
+
.button {
|
|
196
|
+
transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
197
|
+
}
|
|
198
|
+
/* Bounce has its place, but not everywhere */
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Spacing Violations
|
|
204
|
+
|
|
205
|
+
### Magic Numbers
|
|
206
|
+
|
|
207
|
+
```css
|
|
208
|
+
/* VIOLATION: Random spacing values */
|
|
209
|
+
.card {
|
|
210
|
+
padding: 18px 22px;
|
|
211
|
+
margin-bottom: 13px;
|
|
212
|
+
}
|
|
213
|
+
.header {
|
|
214
|
+
padding: 14px 20px;
|
|
215
|
+
margin-bottom: 27px;
|
|
216
|
+
}
|
|
217
|
+
/* No relationship between values */
|
|
218
|
+
|
|
219
|
+
/* VIOLATION: Pixel values everywhere */
|
|
220
|
+
.section { margin: 47px 0; }
|
|
221
|
+
.title { margin-bottom: 11px; }
|
|
222
|
+
.button { padding: 9px 17px; }
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### No Spacing System
|
|
226
|
+
|
|
227
|
+
```tsx
|
|
228
|
+
// VIOLATION: Hardcoded spacing in components
|
|
229
|
+
<div style={{ padding: '12px 16px', marginBottom: '24px' }}>
|
|
230
|
+
<h2 style={{ marginBottom: '8px' }}>Title</h2>
|
|
231
|
+
<p style={{ marginBottom: '16px' }}>Content</p>
|
|
232
|
+
</div>
|
|
233
|
+
|
|
234
|
+
// VIOLATION: Inconsistent Tailwind spacing
|
|
235
|
+
<div className="p-4 mb-6">
|
|
236
|
+
<div className="p-3 mb-5">
|
|
237
|
+
<div className="p-2 mb-4">
|
|
238
|
+
{/* Different patterns at each level */}
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Uniform Spacing (No Hierarchy)
|
|
245
|
+
|
|
246
|
+
```css
|
|
247
|
+
/* VIOLATION: Lobotomized owl selector misuse */
|
|
248
|
+
* + * {
|
|
249
|
+
margin-top: 1rem;
|
|
250
|
+
}
|
|
251
|
+
/* Everything has same spacing - no visual grouping */
|
|
252
|
+
|
|
253
|
+
/* VIOLATION: Same gap everywhere */
|
|
254
|
+
.grid { gap: 16px; }
|
|
255
|
+
.stack { gap: 16px; }
|
|
256
|
+
.inline { gap: 16px; }
|
|
257
|
+
/* No context-appropriate spacing */
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Layout Violations
|
|
263
|
+
|
|
264
|
+
### Everything Centered
|
|
265
|
+
|
|
266
|
+
```css
|
|
267
|
+
/* VIOLATION: Centered text everywhere */
|
|
268
|
+
.page {
|
|
269
|
+
text-align: center;
|
|
270
|
+
}
|
|
271
|
+
.card {
|
|
272
|
+
text-align: center;
|
|
273
|
+
}
|
|
274
|
+
.section {
|
|
275
|
+
text-align: center;
|
|
276
|
+
}
|
|
277
|
+
/* No reading flow, no hierarchy */
|
|
278
|
+
|
|
279
|
+
/* VIOLATION: Centered layout regardless of content */
|
|
280
|
+
.container {
|
|
281
|
+
display: flex;
|
|
282
|
+
flex-direction: column;
|
|
283
|
+
align-items: center;
|
|
284
|
+
text-align: center;
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Border Radius Overuse
|
|
289
|
+
|
|
290
|
+
```css
|
|
291
|
+
/* VIOLATION: Same radius on everything */
|
|
292
|
+
.button { border-radius: 12px; }
|
|
293
|
+
.card { border-radius: 12px; }
|
|
294
|
+
.input { border-radius: 12px; }
|
|
295
|
+
.avatar { border-radius: 12px; }
|
|
296
|
+
.badge { border-radius: 12px; }
|
|
297
|
+
.modal { border-radius: 12px; }
|
|
298
|
+
/* Avatar should be round, badge should be small radius */
|
|
299
|
+
|
|
300
|
+
/* VIOLATION: Excessive rounding */
|
|
301
|
+
.container {
|
|
302
|
+
border-radius: 24px;
|
|
303
|
+
}
|
|
304
|
+
/* Large containers look like floating blobs */
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Shadow Abuse
|
|
308
|
+
|
|
309
|
+
```css
|
|
310
|
+
/* VIOLATION: Shadow on everything */
|
|
311
|
+
.card { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
|
|
312
|
+
.button { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
|
|
313
|
+
.input { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
|
|
314
|
+
.header { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
|
|
315
|
+
/* If everything is elevated, nothing is */
|
|
316
|
+
|
|
317
|
+
/* VIOLATION: Deep shadows for no reason */
|
|
318
|
+
.badge {
|
|
319
|
+
box-shadow: 0 10px 25px rgba(0,0,0,0.2);
|
|
320
|
+
}
|
|
321
|
+
/* Tiny element with massive shadow */
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Component Violations
|
|
327
|
+
|
|
328
|
+
### Generic Hero Sections
|
|
329
|
+
|
|
330
|
+
```tsx
|
|
331
|
+
// VIOLATION: Template hero with no customization
|
|
332
|
+
<section className="hero bg-gradient-to-r from-purple-600 to-pink-500">
|
|
333
|
+
<div className="container mx-auto text-center text-white">
|
|
334
|
+
<h1 className="text-5xl font-bold mb-4">Welcome to Our Platform</h1>
|
|
335
|
+
<p className="text-xl mb-8">The best solution for your needs</p>
|
|
336
|
+
<button className="bg-white text-purple-600 rounded-full px-8 py-3">
|
|
337
|
+
Get Started
|
|
338
|
+
</button>
|
|
339
|
+
</div>
|
|
340
|
+
</section>
|
|
341
|
+
/* Seen this exact layout on 10,000 websites */
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Glassmorphism Everywhere
|
|
345
|
+
|
|
346
|
+
```css
|
|
347
|
+
/* VIOLATION: Blur background without purpose */
|
|
348
|
+
.card {
|
|
349
|
+
background: rgba(255, 255, 255, 0.2);
|
|
350
|
+
backdrop-filter: blur(10px);
|
|
351
|
+
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
352
|
+
}
|
|
353
|
+
.modal {
|
|
354
|
+
background: rgba(255, 255, 255, 0.15);
|
|
355
|
+
backdrop-filter: blur(20px);
|
|
356
|
+
}
|
|
357
|
+
.nav {
|
|
358
|
+
background: rgba(255, 255, 255, 0.1);
|
|
359
|
+
backdrop-filter: blur(8px);
|
|
360
|
+
}
|
|
361
|
+
/* Glass effect is a choice, not a default */
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Trend-Following Patterns
|
|
365
|
+
|
|
366
|
+
```css
|
|
367
|
+
/* VIOLATION: Bento grid because it's trendy */
|
|
368
|
+
.features {
|
|
369
|
+
display: grid;
|
|
370
|
+
grid-template-columns: repeat(4, 1fr);
|
|
371
|
+
grid-template-rows: repeat(2, 1fr);
|
|
372
|
+
}
|
|
373
|
+
.feature-1 { grid-column: span 2; grid-row: span 2; }
|
|
374
|
+
.feature-2 { grid-column: span 2; }
|
|
375
|
+
/* Does this layout serve the content or is it just "cool"? */
|
|
376
|
+
|
|
377
|
+
/* VIOLATION: Scroll-triggered animations on everything */
|
|
378
|
+
.section {
|
|
379
|
+
opacity: 0;
|
|
380
|
+
transform: translateY(50px);
|
|
381
|
+
}
|
|
382
|
+
.section.visible {
|
|
383
|
+
opacity: 1;
|
|
384
|
+
transform: translateY(0);
|
|
385
|
+
transition: all 0.6s ease;
|
|
386
|
+
}
|
|
387
|
+
/* Slows down content consumption */
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Responsive Violations
|
|
393
|
+
|
|
394
|
+
### Afterthought Mobile
|
|
395
|
+
|
|
396
|
+
```css
|
|
397
|
+
/* VIOLATION: Desktop-first with broken mobile */
|
|
398
|
+
.sidebar { width: 300px; }
|
|
399
|
+
.content { margin-left: 300px; }
|
|
400
|
+
|
|
401
|
+
@media (max-width: 768px) {
|
|
402
|
+
.sidebar { display: none; } /* Just hide everything */
|
|
403
|
+
.content { margin-left: 0; }
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### Breakpoint Chaos
|
|
408
|
+
|
|
409
|
+
```css
|
|
410
|
+
/* VIOLATION: Inconsistent breakpoints */
|
|
411
|
+
@media (max-width: 1200px) { ... }
|
|
412
|
+
@media (max-width: 992px) { ... }
|
|
413
|
+
@media (max-width: 768px) { ... }
|
|
414
|
+
@media (max-width: 576px) { ... }
|
|
415
|
+
@media (max-width: 480px) { ... }
|
|
416
|
+
@media (max-width: 375px) { ... }
|
|
417
|
+
/* Too many breakpoints, impossible to reason about */
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## Dark Mode Violations (Extended)
|
|
423
|
+
|
|
424
|
+
### Contrast Inversions
|
|
425
|
+
|
|
426
|
+
```css
|
|
427
|
+
/* VIOLATION: Colors that work in light don't work in dark */
|
|
428
|
+
:root {
|
|
429
|
+
--primary: #0066cc;
|
|
430
|
+
}
|
|
431
|
+
.dark {
|
|
432
|
+
/* Same blue on dark background - poor contrast */
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/* VIOLATION: Shadows become invisible */
|
|
436
|
+
.card {
|
|
437
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
|
438
|
+
}
|
|
439
|
+
.dark .card {
|
|
440
|
+
/* Same shadow on dark background - invisible */
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### Inconsistent Dark Surfaces
|
|
445
|
+
|
|
446
|
+
```css
|
|
447
|
+
/* VIOLATION: Random dark grays */
|
|
448
|
+
.dark .bg-1 { background: #1a1a1a; }
|
|
449
|
+
.dark .bg-2 { background: #2d2d2d; }
|
|
450
|
+
.dark .bg-3 { background: #333333; }
|
|
451
|
+
.dark .bg-4 { background: #3d3d3d; }
|
|
452
|
+
/* No intentional hierarchy */
|
|
453
|
+
```
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-patterns
|
|
3
|
+
description: Performance analysis patterns for code review. Detects N+1 queries, memory leaks, unbounded allocations, I/O bottlenecks, and missing caching opportunities. Loaded by Reviewer agent when focus=performance.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Performance Patterns
|
|
9
|
+
|
|
10
|
+
Domain expertise for performance optimization and bottleneck detection. Use alongside `review-methodology` for complete performance reviews.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **MEASURE BEFORE OPTIMIZING**
|
|
15
|
+
>
|
|
16
|
+
> Premature optimization is the root of all evil. Profile first, then optimize. Every
|
|
17
|
+
> performance claim requires benchmarks. "It feels slow" is not a metric. O(n) with small n
|
|
18
|
+
> beats O(1) with huge constants. Optimize for the real bottleneck, not the imagined one.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Performance Categories
|
|
23
|
+
|
|
24
|
+
### 1. Algorithmic Issues
|
|
25
|
+
|
|
26
|
+
**N+1 Query Problem** - Database query inside a loop.
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
// VIOLATION: 1 + N queries
|
|
30
|
+
for (const user of users) {
|
|
31
|
+
user.orders = await db.orders.findByUserId(user.id);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// CORRECT: Batch query with Map lookup
|
|
35
|
+
const orders = await db.orders.findAll({ where: { userId: userIds } });
|
|
36
|
+
const ordersByUser = new Map(groupBy(orders, 'userId'));
|
|
37
|
+
users.forEach(u => u.orders = ordersByUser.get(u.id) || []);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**O(n^2) Patterns** - Nested loops or linear search in loop.
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// VIOLATION: includes() is O(n), called n times
|
|
44
|
+
items.filter(item => selected.includes(item.id));
|
|
45
|
+
|
|
46
|
+
// CORRECT: Use Set for O(1) lookup
|
|
47
|
+
const selectedSet = new Set(selected);
|
|
48
|
+
items.filter(item => selectedSet.has(item.id));
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2. Memory Issues
|
|
52
|
+
|
|
53
|
+
**Memory Leaks** - Resources not cleaned up.
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
// VIOLATION: Listener never removed
|
|
57
|
+
window.addEventListener('resize', this.handleResize);
|
|
58
|
+
|
|
59
|
+
// CORRECT: Track and cleanup
|
|
60
|
+
this.cleanup = () => window.removeEventListener('resize', this.handleResize);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Unbounded Caches** - Collections that grow forever.
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
// VIOLATION: Cache grows indefinitely
|
|
67
|
+
const cache = new Map<string, Result>();
|
|
68
|
+
|
|
69
|
+
// CORRECT: LRU cache with limit
|
|
70
|
+
const cache = new LRU<string, Result>({ max: 1000 });
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. I/O Issues
|
|
74
|
+
|
|
75
|
+
**Blocking Operations** - Synchronous I/O in request path.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
// VIOLATION: Blocks event loop
|
|
79
|
+
const config = fs.readFileSync('./config.json');
|
|
80
|
+
|
|
81
|
+
// CORRECT: Async I/O
|
|
82
|
+
const config = await fs.promises.readFile('./config.json');
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Sequential When Parallel Possible** - Independent operations run serially.
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
// VIOLATION: Sequential execution
|
|
89
|
+
const user = await getUser(id);
|
|
90
|
+
const orders = await getOrders(id);
|
|
91
|
+
|
|
92
|
+
// CORRECT: Parallel execution
|
|
93
|
+
const [user, orders] = await Promise.all([getUser(id), getOrders(id)]);
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 4. Database Issues
|
|
97
|
+
|
|
98
|
+
Missing indexes, SELECT *, missing pagination. See `references/violations.md`.
|
|
99
|
+
|
|
100
|
+
### 5. Frontend Issues
|
|
101
|
+
|
|
102
|
+
Unnecessary re-renders, missing virtualization, missing code splitting. See `references/violations.md`.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Extended References
|
|
107
|
+
|
|
108
|
+
For comprehensive examples and detection techniques:
|
|
109
|
+
|
|
110
|
+
| Reference | Content |
|
|
111
|
+
|-----------|---------|
|
|
112
|
+
| `references/violations.md` | Extended violation examples by category |
|
|
113
|
+
| `references/patterns.md` | Correct implementation patterns |
|
|
114
|
+
| `references/detection.md` | Grep commands, profiling, CI integration |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Severity Guidelines
|
|
119
|
+
|
|
120
|
+
| Severity | Criteria | Examples |
|
|
121
|
+
|----------|----------|----------|
|
|
122
|
+
| **CRITICAL** | Severe degradation, production risk | N+1 with unbounded data, memory leaks, blocking I/O in handlers |
|
|
123
|
+
| **HIGH** | Significant impact | Sequential async, SELECT *, unbounded caches, missing pagination |
|
|
124
|
+
| **MEDIUM** | Moderate concern | Suboptimal algorithm (small data), missing memoization |
|
|
125
|
+
| **LOW** | Minor opportunity | Micro-optimizations, premature optimization candidates |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Performance Metrics Reference
|
|
130
|
+
|
|
131
|
+
| Operation | Good | Warning | Critical |
|
|
132
|
+
|-----------|------|---------|----------|
|
|
133
|
+
| API response | < 100ms | 100-500ms | > 500ms |
|
|
134
|
+
| Database query | < 10ms | 10-100ms | > 100ms |
|
|
135
|
+
| Page load (FCP) | < 1s | 1-2.5s | > 2.5s |
|
|
136
|
+
| Memory per request | < 10MB | 10-50MB | > 50MB |
|
|
137
|
+
| Bundle size | < 200KB | 200-500KB | > 500KB |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Quick Detection
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# N+1 patterns (await in loop)
|
|
145
|
+
grep -rn "for.*await\|\.forEach.*async" --include="*.ts"
|
|
146
|
+
|
|
147
|
+
# Synchronous I/O
|
|
148
|
+
grep -rn "readFileSync\|writeFileSync" --include="*.ts"
|
|
149
|
+
|
|
150
|
+
# SELECT *
|
|
151
|
+
grep -rn "SELECT \*" --include="*.ts" --include="*.sql"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
See `references/detection.md` for comprehensive detection patterns.
|