devflow-kit 0.9.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +167 -29
- package/LICENSE +1 -1
- package/README.md +179 -310
- package/dist/cli.js +3 -1
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.js +311 -576
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +351 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +162 -0
- package/dist/utils/cli.d.ts +5 -0
- package/dist/utils/cli.js +14 -0
- package/dist/utils/installer.d.ts +41 -0
- package/dist/utils/installer.js +177 -0
- package/dist/utils/paths.d.ts +10 -0
- package/dist/utils/paths.js +23 -3
- package/dist/utils/post-install.d.ts +68 -0
- package/dist/utils/post-install.js +427 -0
- package/dist/utils/safe-delete-install.d.ts +22 -0
- package/dist/utils/safe-delete-install.js +156 -0
- package/dist/utils/safe-delete.d.ts +12 -0
- package/dist/utils/safe-delete.js +83 -0
- package/package.json +18 -8
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-audit-claude/README.md +46 -0
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
- package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
- package/plugins/devflow-code-review/README.md +73 -0
- package/plugins/devflow-code-review/agents/git.md +272 -0
- package/plugins/devflow-code-review/agents/reviewer.md +119 -0
- package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
- package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
- package/plugins/devflow-code-review/commands/code-review.md +141 -0
- package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
- package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
- package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
- package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
- package/plugins/devflow-core-skills/README.md +50 -0
- package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
- package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
- package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
- package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
- package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
- package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
- package/plugins/devflow-debug/README.md +65 -0
- package/plugins/devflow-debug/agents/git.md +272 -0
- package/plugins/devflow-debug/commands/debug-teams.md +231 -0
- package/plugins/devflow-debug/commands/debug.md +160 -0
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
- package/plugins/devflow-implement/README.md +71 -0
- package/plugins/devflow-implement/agents/coder.md +122 -0
- package/plugins/devflow-implement/agents/git.md +272 -0
- package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
- package/plugins/devflow-implement/agents/shepherd.md +94 -0
- package/plugins/devflow-implement/agents/simplifier.md +62 -0
- package/plugins/devflow-implement/agents/skimmer.md +88 -0
- package/plugins/devflow-implement/agents/synthesizer.md +204 -0
- package/plugins/devflow-implement/agents/validator.md +86 -0
- package/plugins/devflow-implement/commands/implement-teams.md +608 -0
- package/plugins/devflow-implement/commands/implement.md +426 -0
- package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
- package/plugins/devflow-resolve/README.md +65 -0
- package/plugins/devflow-resolve/agents/git.md +272 -0
- package/plugins/devflow-resolve/agents/resolver.md +131 -0
- package/plugins/devflow-resolve/agents/simplifier.md +62 -0
- package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
- package/plugins/devflow-resolve/commands/resolve.md +237 -0
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-self-review/README.md +38 -0
- package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
- package/plugins/devflow-self-review/agents/simplifier.md +62 -0
- package/plugins/devflow-self-review/agents/validator.md +86 -0
- package/plugins/devflow-self-review/commands/self-review.md +126 -0
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
- package/plugins/devflow-specify/README.md +46 -0
- package/plugins/devflow-specify/agents/skimmer.md +88 -0
- package/plugins/devflow-specify/agents/synthesizer.md +204 -0
- package/plugins/devflow-specify/commands/specify-teams.md +314 -0
- package/plugins/devflow-specify/commands/specify.md +179 -0
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
- package/scripts/hooks/background-memory-update.sh +167 -0
- package/scripts/hooks/pre-compact-memory.sh +81 -0
- package/scripts/hooks/session-start-memory.sh +84 -0
- package/scripts/hooks/stop-update-memory.sh +81 -0
- package/shared/agents/coder.md +122 -0
- package/shared/agents/git.md +272 -0
- package/shared/agents/resolver.md +131 -0
- package/shared/agents/reviewer.md +119 -0
- package/shared/agents/scrutinizer.md +80 -0
- package/shared/agents/shepherd.md +94 -0
- package/shared/agents/simplifier.md +62 -0
- package/shared/agents/skimmer.md +88 -0
- package/shared/agents/synthesizer.md +204 -0
- package/shared/agents/validator.md +86 -0
- package/shared/skills/accessibility/SKILL.md +229 -0
- package/shared/skills/accessibility/references/detection.md +171 -0
- package/shared/skills/accessibility/references/patterns.md +670 -0
- package/shared/skills/accessibility/references/violations.md +419 -0
- package/shared/skills/agent-teams/SKILL.md +124 -0
- package/shared/skills/agent-teams/references/cleanup.md +104 -0
- package/shared/skills/agent-teams/references/communication.md +122 -0
- package/shared/skills/agent-teams/references/team-patterns.md +217 -0
- package/shared/skills/architecture-patterns/SKILL.md +153 -0
- package/shared/skills/architecture-patterns/references/detection.md +337 -0
- package/shared/skills/architecture-patterns/references/patterns.md +873 -0
- package/shared/skills/architecture-patterns/references/violations.md +575 -0
- package/shared/skills/complexity-patterns/SKILL.md +143 -0
- package/shared/skills/complexity-patterns/references/detection.md +264 -0
- package/shared/skills/complexity-patterns/references/patterns.md +487 -0
- package/shared/skills/complexity-patterns/references/violations.md +361 -0
- package/shared/skills/consistency-patterns/SKILL.md +140 -0
- package/shared/skills/consistency-patterns/references/detection.md +207 -0
- package/shared/skills/consistency-patterns/references/patterns.md +202 -0
- package/shared/skills/consistency-patterns/references/violations.md +213 -0
- package/shared/skills/core-patterns/SKILL.md +162 -0
- package/shared/skills/core-patterns/references/checklist.md +276 -0
- package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/shared/skills/core-patterns/references/detection.md +303 -0
- package/shared/skills/core-patterns/references/patterns.md +576 -0
- package/shared/skills/core-patterns/references/violations.md +369 -0
- package/shared/skills/database-patterns/SKILL.md +134 -0
- package/shared/skills/database-patterns/references/detection.md +208 -0
- package/shared/skills/database-patterns/references/patterns.md +394 -0
- package/shared/skills/database-patterns/references/violations.md +332 -0
- package/shared/skills/dependencies-patterns/SKILL.md +141 -0
- package/shared/skills/dependencies-patterns/references/detection.md +181 -0
- package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
- package/shared/skills/dependencies-patterns/references/violations.md +247 -0
- package/shared/skills/docs-framework/SKILL.md +134 -0
- package/shared/skills/docs-framework/references/patterns.md +346 -0
- package/shared/skills/docs-framework/references/violations.md +221 -0
- package/shared/skills/documentation-patterns/SKILL.md +125 -0
- package/shared/skills/documentation-patterns/references/detection.md +190 -0
- package/shared/skills/documentation-patterns/references/patterns.md +189 -0
- package/shared/skills/documentation-patterns/references/violations.md +163 -0
- package/shared/skills/frontend-design/SKILL.md +254 -0
- package/shared/skills/frontend-design/references/detection.md +184 -0
- package/shared/skills/frontend-design/references/patterns.md +511 -0
- package/shared/skills/frontend-design/references/violations.md +453 -0
- package/shared/skills/git-safety/SKILL.md +122 -0
- package/shared/skills/git-safety/references/detection.md +290 -0
- package/shared/skills/git-safety/references/patterns.md +289 -0
- package/shared/skills/git-safety/references/violations.md +18 -0
- package/shared/skills/git-workflow/SKILL.md +158 -0
- package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
- package/shared/skills/git-workflow/references/commit-violations.md +77 -0
- package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
- package/shared/skills/git-workflow/references/pr-violations.md +96 -0
- package/shared/skills/github-patterns/SKILL.md +153 -0
- package/shared/skills/github-patterns/references/patterns.md +572 -0
- package/shared/skills/github-patterns/references/violations.md +298 -0
- package/shared/skills/implementation-patterns/SKILL.md +162 -0
- package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
- package/shared/skills/implementation-patterns/references/violations.md +483 -0
- package/shared/skills/input-validation/SKILL.md +148 -0
- package/shared/skills/input-validation/references/detection.md +283 -0
- package/shared/skills/input-validation/references/patterns.md +361 -0
- package/shared/skills/input-validation/references/violations.md +224 -0
- package/shared/skills/performance-patterns/SKILL.md +154 -0
- package/shared/skills/performance-patterns/references/detection.md +351 -0
- package/shared/skills/performance-patterns/references/patterns.md +503 -0
- package/shared/skills/performance-patterns/references/violations.md +354 -0
- package/shared/skills/react/SKILL.md +276 -0
- package/shared/skills/react/references/patterns.md +1331 -0
- package/shared/skills/react/references/violations.md +565 -0
- package/shared/skills/regression-patterns/SKILL.md +146 -0
- package/shared/skills/regression-patterns/references/detection.md +237 -0
- package/shared/skills/regression-patterns/references/patterns.md +226 -0
- package/shared/skills/regression-patterns/references/violations.md +225 -0
- package/shared/skills/review-methodology/SKILL.md +119 -0
- package/shared/skills/review-methodology/references/patterns.md +186 -0
- package/shared/skills/review-methodology/references/report-template.md +142 -0
- package/shared/skills/review-methodology/references/violations.md +125 -0
- package/shared/skills/security-patterns/SKILL.md +156 -0
- package/shared/skills/security-patterns/references/detection.md +287 -0
- package/shared/skills/security-patterns/references/patterns.md +507 -0
- package/shared/skills/security-patterns/references/violations.md +237 -0
- package/shared/skills/self-review/SKILL.md +149 -0
- package/shared/skills/self-review/references/patterns.md +405 -0
- package/shared/skills/self-review/references/report-template.md +253 -0
- package/shared/skills/self-review/references/violations.md +308 -0
- package/shared/skills/test-patterns/SKILL.md +183 -0
- package/shared/skills/test-patterns/references/detection.md +149 -0
- package/shared/skills/test-patterns/references/patterns.md +220 -0
- package/shared/skills/test-patterns/references/report-template.md +108 -0
- package/shared/skills/test-patterns/references/violations.md +221 -0
- package/shared/skills/typescript/SKILL.md +176 -0
- package/shared/skills/typescript/references/patterns.md +1105 -0
- package/shared/skills/typescript/references/violations.md +433 -0
- package/src/templates/claudeignore.template +188 -0
- package/src/templates/managed-settings.json +146 -0
- package/src/templates/settings.json +59 -0
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/src/claude/CLAUDE.md +0 -400
- package/src/claude/agents/devflow/audit-architecture.md +0 -132
- package/src/claude/agents/devflow/audit-complexity.md +0 -132
- package/src/claude/agents/devflow/audit-database.md +0 -132
- package/src/claude/agents/devflow/audit-dependencies.md +0 -132
- package/src/claude/agents/devflow/audit-documentation.md +0 -132
- package/src/claude/agents/devflow/audit-performance.md +0 -256
- package/src/claude/agents/devflow/audit-security.md +0 -259
- package/src/claude/agents/devflow/audit-tests.md +0 -132
- package/src/claude/agents/devflow/audit-typescript.md +0 -132
- package/src/claude/agents/devflow/brainstorm.md +0 -279
- package/src/claude/agents/devflow/catch-up.md +0 -345
- package/src/claude/agents/devflow/code-review.md +0 -307
- package/src/claude/agents/devflow/commit.md +0 -380
- package/src/claude/agents/devflow/debug.md +0 -476
- package/src/claude/agents/devflow/design.md +0 -491
- package/src/claude/agents/devflow/get-issue.md +0 -286
- package/src/claude/agents/devflow/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -493
- package/src/claude/agents/devflow/release.md +0 -1137
- package/src/claude/agents/devflow/tech-debt.md +0 -338
- package/src/claude/commands/devflow/brainstorm.md +0 -68
- package/src/claude/commands/devflow/breakdown.md +0 -125
- package/src/claude/commands/devflow/catch-up.md +0 -29
- package/src/claude/commands/devflow/code-review.md +0 -237
- package/src/claude/commands/devflow/commit.md +0 -17
- package/src/claude/commands/devflow/debug.md +0 -56
- package/src/claude/commands/devflow/design.md +0 -82
- package/src/claude/commands/devflow/devlog.md +0 -408
- package/src/claude/commands/devflow/get-issue.md +0 -16
- package/src/claude/commands/devflow/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -20
- package/src/claude/commands/devflow/release.md +0 -251
- package/src/claude/commands/devflow/resolve-comments.md +0 -583
- package/src/claude/scripts/statusline.sh +0 -47
- package/src/claude/settings.json +0 -6
- package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
- package/src/claude/skills/devflow/debug/SKILL.md +0 -119
- package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
- package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
- package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
- package/src/claude/skills/devflow/research/SKILL.md +0 -138
- package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: test-design
|
|
3
|
-
description: Automatically review test quality and design when writing or modifying tests. Use when tests require complex setup, have repetitive boilerplate, or when mocking becomes difficult. Enforces behavior testing over implementation testing.
|
|
4
|
-
allowed-tools: Read, Grep, Glob, AskUserQuestion
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Test Design Skill
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
Enforce test quality standards that indicate good software design:
|
|
12
|
-
1. **Simple test setup** - Complex setup indicates design problems
|
|
13
|
-
2. **Minimal boilerplate** - Repetition indicates API problems
|
|
14
|
-
3. **Easy mocking** - Difficult mocking indicates coupling problems
|
|
15
|
-
4. **Behavior validation** - Tests should verify outcomes, not implementation
|
|
16
|
-
|
|
17
|
-
## When This Skill Activates
|
|
18
|
-
|
|
19
|
-
Automatically triggers when:
|
|
20
|
-
- New test files are being created
|
|
21
|
-
- Existing tests are being modified
|
|
22
|
-
- Test failures occur during development
|
|
23
|
-
- Mock objects or stubs are being added
|
|
24
|
-
- Setup/teardown code is being written
|
|
25
|
-
|
|
26
|
-
## Test Quality Red Flags
|
|
27
|
-
|
|
28
|
-
### 1. Complex Setup Detection
|
|
29
|
-
|
|
30
|
-
**RED FLAG**: If test setup takes >10 lines, the design is wrong.
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
// ❌ VIOLATION: Complex setup indicates design problem
|
|
34
|
-
describe('UserService', () => {
|
|
35
|
-
let service: UserService;
|
|
36
|
-
let mockDb: MockDatabase;
|
|
37
|
-
let mockCache: MockCache;
|
|
38
|
-
let mockLogger: MockLogger;
|
|
39
|
-
let mockConfig: MockConfig;
|
|
40
|
-
|
|
41
|
-
beforeEach(async () => {
|
|
42
|
-
mockDb = new MockDatabase();
|
|
43
|
-
await mockDb.connect();
|
|
44
|
-
await mockDb.seed();
|
|
45
|
-
mockCache = new MockCache();
|
|
46
|
-
mockCache.clear();
|
|
47
|
-
mockLogger = new MockLogger();
|
|
48
|
-
mockConfig = new MockConfig();
|
|
49
|
-
mockConfig.set('env', 'test');
|
|
50
|
-
// ... 10+ more lines
|
|
51
|
-
service = new UserService(mockDb, mockCache, mockLogger, mockConfig);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('should create user', async () => {
|
|
55
|
-
const result = await service.createUser({ name: 'test' });
|
|
56
|
-
expect(result.ok).toBe(true);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// ✅ CORRECT: Simple setup indicates good design
|
|
61
|
-
describe('createUser', () => {
|
|
62
|
-
it('should return Ok with valid data', () => {
|
|
63
|
-
const result = createUser({ name: 'test', email: 'test@example.com' });
|
|
64
|
-
expect(result.ok).toBe(true);
|
|
65
|
-
expect(result.value.name).toBe('test');
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('should return Err with invalid email', () => {
|
|
69
|
-
const result = createUser({ name: 'test', email: 'invalid' });
|
|
70
|
-
expect(result.ok).toBe(false);
|
|
71
|
-
expect(result.error.type).toBe('ValidationError');
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
**Detection patterns:**
|
|
77
|
-
- `beforeEach` blocks >10 lines
|
|
78
|
-
- Multiple mock objects required for single test
|
|
79
|
-
- Complex async setup with awaits
|
|
80
|
-
- Database seeding in test setup
|
|
81
|
-
- Environment variable manipulation
|
|
82
|
-
|
|
83
|
-
### 2. Repetitive Boilerplate Detection
|
|
84
|
-
|
|
85
|
-
**RED FLAG**: If tests have repetitive patterns, the API is wrong.
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
// ❌ VIOLATION: Repetitive error handling indicates API problem
|
|
89
|
-
describe('API endpoints', () => {
|
|
90
|
-
it('should handle user creation error', async () => {
|
|
91
|
-
try {
|
|
92
|
-
await api.createUser(invalidData);
|
|
93
|
-
fail('Should have thrown');
|
|
94
|
-
} catch (error) {
|
|
95
|
-
expect(error.status).toBe(400);
|
|
96
|
-
expect(error.message).toContain('validation');
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
it('should handle order creation error', async () => {
|
|
101
|
-
try {
|
|
102
|
-
await api.createOrder(invalidData);
|
|
103
|
-
fail('Should have thrown');
|
|
104
|
-
} catch (error) {
|
|
105
|
-
expect(error.status).toBe(400);
|
|
106
|
-
expect(error.message).toContain('validation');
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
// ... repeated pattern 10+ times
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
// ✅ CORRECT: Consistent API eliminates repetition
|
|
114
|
-
describe('API endpoints', () => {
|
|
115
|
-
it('should return validation error for invalid user', () => {
|
|
116
|
-
const result = createUser(invalidData);
|
|
117
|
-
expect(result.ok).toBe(false);
|
|
118
|
-
expect(result.error.type).toBe('ValidationError');
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('should return validation error for invalid order', () => {
|
|
122
|
-
const result = createOrder(invalidData);
|
|
123
|
-
expect(result.ok).toBe(false);
|
|
124
|
-
expect(result.error.type).toBe('ValidationError');
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**Detection patterns:**
|
|
130
|
-
- Try/catch blocks in multiple tests
|
|
131
|
-
- Same assertion patterns repeated >3 times
|
|
132
|
-
- Helper functions that wrap basic operations
|
|
133
|
-
- Repeated setup code across test files
|
|
134
|
-
- Explicit error handling in every test
|
|
135
|
-
|
|
136
|
-
### 3. Difficult Mocking Detection
|
|
137
|
-
|
|
138
|
-
**RED FLAG**: If mocking is hard, dependencies are wrong.
|
|
139
|
-
|
|
140
|
-
```typescript
|
|
141
|
-
// ❌ VIOLATION: Complex mocking indicates tight coupling
|
|
142
|
-
describe('OrderProcessor', () => {
|
|
143
|
-
let mockDb: any;
|
|
144
|
-
let mockEmailService: any;
|
|
145
|
-
let mockPaymentGateway: any;
|
|
146
|
-
|
|
147
|
-
beforeEach(() => {
|
|
148
|
-
// Complex mock setup required
|
|
149
|
-
mockDb = {
|
|
150
|
-
transaction: jest.fn((callback) => callback(mockDb)),
|
|
151
|
-
orders: {
|
|
152
|
-
create: jest.fn(),
|
|
153
|
-
update: jest.fn(),
|
|
154
|
-
findById: jest.fn()
|
|
155
|
-
},
|
|
156
|
-
users: {
|
|
157
|
-
findById: jest.fn(),
|
|
158
|
-
update: jest.fn()
|
|
159
|
-
},
|
|
160
|
-
inventory: {
|
|
161
|
-
decrement: jest.fn()
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
mockEmailService = {
|
|
166
|
-
send: jest.fn(),
|
|
167
|
-
queue: jest.fn(),
|
|
168
|
-
retry: jest.fn()
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
// ... 20+ more lines of mock setup
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
it('should process order', async () => {
|
|
175
|
-
// Test requires manipulating all these mocks
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
// ✅ CORRECT: Easy mocking indicates good design
|
|
180
|
-
describe('processOrder', () => {
|
|
181
|
-
it('should return Ok with valid order', () => {
|
|
182
|
-
const order = { id: '1', items: [], total: 100 };
|
|
183
|
-
const result = processOrder(order);
|
|
184
|
-
expect(result.ok).toBe(true);
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
// Pure function needs no mocking
|
|
188
|
-
// Side effects handled in separate wrapper (tested separately)
|
|
189
|
-
});
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**Detection patterns:**
|
|
193
|
-
- Mock objects with >5 methods
|
|
194
|
-
- Nested mock object structures
|
|
195
|
-
- Mock setup >20 lines
|
|
196
|
-
- `jest.fn()` or `sinon.stub()` used >10 times per file
|
|
197
|
-
- Mocking internal implementation details
|
|
198
|
-
|
|
199
|
-
### 4. Implementation Testing Detection
|
|
200
|
-
|
|
201
|
-
**RED FLAG**: Tests should verify behavior, not implementation.
|
|
202
|
-
|
|
203
|
-
```typescript
|
|
204
|
-
// ❌ VIOLATION: Testing implementation details
|
|
205
|
-
describe('ShoppingCart', () => {
|
|
206
|
-
it('should call updateTotal after addItem', () => {
|
|
207
|
-
const cart = new ShoppingCart();
|
|
208
|
-
const spy = jest.spyOn(cart as any, 'updateTotal');
|
|
209
|
-
cart.addItem({ id: '1', price: 10 });
|
|
210
|
-
expect(spy).toHaveBeenCalled(); // Testing implementation!
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
it('should set internal state correctly', () => {
|
|
214
|
-
const cart = new ShoppingCart();
|
|
215
|
-
cart.addItem({ id: '1', price: 10 });
|
|
216
|
-
expect((cart as any).internalState.total).toBe(10); // Testing internals!
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
// ✅ CORRECT: Testing behavior
|
|
221
|
-
describe('ShoppingCart', () => {
|
|
222
|
-
it('should calculate correct total after adding item', () => {
|
|
223
|
-
const cart = new ShoppingCart();
|
|
224
|
-
cart.addItem({ id: '1', price: 10 });
|
|
225
|
-
expect(cart.getTotal()).toBe(10); // Testing observable behavior
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
it('should return all added items', () => {
|
|
229
|
-
const cart = new ShoppingCart();
|
|
230
|
-
const item = { id: '1', price: 10 };
|
|
231
|
-
cart.addItem(item);
|
|
232
|
-
expect(cart.getItems()).toContain(item); // Testing behavior
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**Detection patterns:**
|
|
238
|
-
- `jest.spyOn` on private methods
|
|
239
|
-
- Accessing private properties with `as any`
|
|
240
|
-
- Testing method call counts
|
|
241
|
-
- Verifying internal state changes
|
|
242
|
-
- Testing order of operations
|
|
243
|
-
|
|
244
|
-
## Test Quality Report Format
|
|
245
|
-
|
|
246
|
-
When quality issues are found:
|
|
247
|
-
|
|
248
|
-
```markdown
|
|
249
|
-
⚠️ TEST DESIGN ISSUES DETECTED
|
|
250
|
-
|
|
251
|
-
## 🔴 CRITICAL - Complex Setup (Design Problem)
|
|
252
|
-
**File**: src/services/user.test.ts:15-45
|
|
253
|
-
**Issue**: Test setup requires 35 lines with multiple mocks
|
|
254
|
-
**Root Cause**: UserService has too many dependencies (6 injected services)
|
|
255
|
-
**Symptom**:
|
|
256
|
-
```typescript
|
|
257
|
-
beforeEach(async () => {
|
|
258
|
-
// 35 lines of mock setup
|
|
259
|
-
});
|
|
260
|
-
```
|
|
261
|
-
**Correct Design**:
|
|
262
|
-
```typescript
|
|
263
|
-
// Split UserService into smaller, focused services
|
|
264
|
-
// Use composition instead of monolithic service
|
|
265
|
-
// Test pure functions separately from side effects
|
|
266
|
-
```
|
|
267
|
-
**Action Required**: Refactor UserService architecture before writing more tests
|
|
268
|
-
|
|
269
|
-
## 🔴 CRITICAL - Repetitive Boilerplate (API Problem)
|
|
270
|
-
**File**: src/api/endpoints.test.ts
|
|
271
|
-
**Issue**: Try/catch pattern repeated in 15 tests
|
|
272
|
-
**Root Cause**: API throws exceptions instead of returning Results
|
|
273
|
-
**Symptom**:
|
|
274
|
-
```typescript
|
|
275
|
-
try { await api.createUser(data); } catch (e) { expect(e)... }
|
|
276
|
-
```
|
|
277
|
-
**Correct Design**:
|
|
278
|
-
```typescript
|
|
279
|
-
// Change API to return Result types
|
|
280
|
-
const result = await api.createUser(data);
|
|
281
|
-
expect(result.ok).toBe(false);
|
|
282
|
-
```
|
|
283
|
-
**Action Required**: Migrate API to Result pattern before adding more endpoints
|
|
284
|
-
|
|
285
|
-
## 🟡 HIGH - Difficult Mocking (Coupling Problem)
|
|
286
|
-
**File**: src/processors/order.test.ts:10-50
|
|
287
|
-
**Issue**: 40 lines of mock setup for single test
|
|
288
|
-
**Root Cause**: OrderProcessor directly depends on database structure
|
|
289
|
-
**Symptom**:
|
|
290
|
-
```typescript
|
|
291
|
-
mockDb = { transaction: ..., orders: { create: ..., update: ... }, users: ... }
|
|
292
|
-
```
|
|
293
|
-
**Correct Design**:
|
|
294
|
-
```typescript
|
|
295
|
-
// Separate pure business logic from I/O
|
|
296
|
-
function calculateOrderTotal(items: Item[]): number { ... }
|
|
297
|
-
// Test pure function (no mocks needed)
|
|
298
|
-
```
|
|
299
|
-
**Action Required**: Extract pure logic from OrderProcessor
|
|
300
|
-
|
|
301
|
-
## 🟡 HIGH - Implementation Testing (Fragile Tests)
|
|
302
|
-
**File**: src/models/cart.test.ts:25
|
|
303
|
-
**Issue**: Testing private method calls
|
|
304
|
-
**Root Cause**: Tests coupled to implementation details
|
|
305
|
-
**Symptom**:
|
|
306
|
-
```typescript
|
|
307
|
-
const spy = jest.spyOn(cart as any, 'updateTotal');
|
|
308
|
-
expect(spy).toHaveBeenCalled();
|
|
309
|
-
```
|
|
310
|
-
**Correct Design**:
|
|
311
|
-
```typescript
|
|
312
|
-
// Test observable behavior only
|
|
313
|
-
expect(cart.getTotal()).toBe(expectedTotal);
|
|
314
|
-
```
|
|
315
|
-
**Action Required**: Rewrite tests to verify behavior, not implementation
|
|
316
|
-
|
|
317
|
-
## 📊 Summary
|
|
318
|
-
- **Critical**: 4 issues (block implementation)
|
|
319
|
-
- **High**: 3 issues (refactor needed)
|
|
320
|
-
- **Files affected**: 6 test files
|
|
321
|
-
- **Root cause**: Architecture violates design principles
|
|
322
|
-
|
|
323
|
-
## 🛑 STOP - Design Issues Detected
|
|
324
|
-
|
|
325
|
-
These test problems indicate fundamental design flaws:
|
|
326
|
-
1. UserService has too many responsibilities (SRP violation)
|
|
327
|
-
2. API uses exceptions instead of Result types (pattern violation)
|
|
328
|
-
3. Business logic mixed with I/O (separation violation)
|
|
329
|
-
|
|
330
|
-
**DO NOT work around these issues in tests.**
|
|
331
|
-
**DO NOT add more complex test helpers.**
|
|
332
|
-
**DO NOT mock more things to make tests pass.**
|
|
333
|
-
|
|
334
|
-
## ✅ Next Steps
|
|
335
|
-
|
|
336
|
-
1. **STOP writing tests** - Current design cannot be tested simply
|
|
337
|
-
2. **ANALYZE root cause** - Identify architectural issue
|
|
338
|
-
3. **PROPOSE redesign** - Show correct pattern
|
|
339
|
-
4. **GET APPROVAL** - User confirms design changes
|
|
340
|
-
5. **IMPLEMENT redesign** - Fix architecture first
|
|
341
|
-
6. **WRITE SIMPLE TESTS** - Tests should be trivial after redesign
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
## Change Process
|
|
345
|
-
|
|
346
|
-
When test design issues are detected:
|
|
347
|
-
|
|
348
|
-
1. **STOP** - Do not continue with current test approach
|
|
349
|
-
2. **ANALYZE** - What architectural issue causes complex tests?
|
|
350
|
-
3. **PROPOSE** - What correct design would make tests simple?
|
|
351
|
-
4. **COMMUNICATE** - Present design change proposal to user
|
|
352
|
-
5. **IMPLEMENT** - Fix design first, then tests become simple
|
|
353
|
-
|
|
354
|
-
## Quality Gates
|
|
355
|
-
|
|
356
|
-
Tests pass design review when:
|
|
357
|
-
- ✅ Setup code <10 lines per test file
|
|
358
|
-
- ✅ No repetitive try/catch or error handling patterns
|
|
359
|
-
- ✅ Mocking requires <5 lines of setup
|
|
360
|
-
- ✅ No spying on private methods or internal state
|
|
361
|
-
- ✅ Tests verify behavior, not implementation details
|
|
362
|
-
- ✅ Pure business logic testable without mocks
|
|
363
|
-
|
|
364
|
-
## Integration Points
|
|
365
|
-
|
|
366
|
-
This skill works with:
|
|
367
|
-
- **pattern-check**: Detects architectural issues causing test complexity
|
|
368
|
-
- **code-smell**: Identifies workarounds in test code
|
|
369
|
-
- **error-handling**: Ensures Result types simplify testing
|
|
370
|
-
|
|
371
|
-
## Example Scenario
|
|
372
|
-
|
|
373
|
-
```
|
|
374
|
-
User: "Write tests for UserService"
|
|
375
|
-
→ test-design activates
|
|
376
|
-
→ Analyzes UserService dependencies
|
|
377
|
-
→ Detects 6 constructor parameters
|
|
378
|
-
→ Reports: "STOP - UserService has too many dependencies"
|
|
379
|
-
→ Proposes: "Split into focused services: UserValidation, UserPersistence, UserNotification"
|
|
380
|
-
→ Waits for approval
|
|
381
|
-
→ After redesign: Tests become 5 lines each
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
This prevents writing complex tests that work around bad design.
|