devflow-kit 0.9.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +167 -29
- package/LICENSE +1 -1
- package/README.md +179 -310
- package/dist/cli.js +3 -1
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.js +311 -576
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +351 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +162 -0
- package/dist/utils/cli.d.ts +5 -0
- package/dist/utils/cli.js +14 -0
- package/dist/utils/installer.d.ts +41 -0
- package/dist/utils/installer.js +177 -0
- package/dist/utils/paths.d.ts +10 -0
- package/dist/utils/paths.js +23 -3
- package/dist/utils/post-install.d.ts +68 -0
- package/dist/utils/post-install.js +427 -0
- package/dist/utils/safe-delete-install.d.ts +22 -0
- package/dist/utils/safe-delete-install.js +156 -0
- package/dist/utils/safe-delete.d.ts +12 -0
- package/dist/utils/safe-delete.js +83 -0
- package/package.json +18 -8
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-audit-claude/README.md +46 -0
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
- package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
- package/plugins/devflow-code-review/README.md +73 -0
- package/plugins/devflow-code-review/agents/git.md +272 -0
- package/plugins/devflow-code-review/agents/reviewer.md +119 -0
- package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
- package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
- package/plugins/devflow-code-review/commands/code-review.md +141 -0
- package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
- package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
- package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
- package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
- package/plugins/devflow-core-skills/README.md +50 -0
- package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
- package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
- package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
- package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
- package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
- package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
- package/plugins/devflow-debug/README.md +65 -0
- package/plugins/devflow-debug/agents/git.md +272 -0
- package/plugins/devflow-debug/commands/debug-teams.md +231 -0
- package/plugins/devflow-debug/commands/debug.md +160 -0
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
- package/plugins/devflow-implement/README.md +71 -0
- package/plugins/devflow-implement/agents/coder.md +122 -0
- package/plugins/devflow-implement/agents/git.md +272 -0
- package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
- package/plugins/devflow-implement/agents/shepherd.md +94 -0
- package/plugins/devflow-implement/agents/simplifier.md +62 -0
- package/plugins/devflow-implement/agents/skimmer.md +88 -0
- package/plugins/devflow-implement/agents/synthesizer.md +204 -0
- package/plugins/devflow-implement/agents/validator.md +86 -0
- package/plugins/devflow-implement/commands/implement-teams.md +608 -0
- package/plugins/devflow-implement/commands/implement.md +426 -0
- package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
- package/plugins/devflow-resolve/README.md +65 -0
- package/plugins/devflow-resolve/agents/git.md +272 -0
- package/plugins/devflow-resolve/agents/resolver.md +131 -0
- package/plugins/devflow-resolve/agents/simplifier.md +62 -0
- package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
- package/plugins/devflow-resolve/commands/resolve.md +237 -0
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-self-review/README.md +38 -0
- package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
- package/plugins/devflow-self-review/agents/simplifier.md +62 -0
- package/plugins/devflow-self-review/agents/validator.md +86 -0
- package/plugins/devflow-self-review/commands/self-review.md +126 -0
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
- package/plugins/devflow-specify/README.md +46 -0
- package/plugins/devflow-specify/agents/skimmer.md +88 -0
- package/plugins/devflow-specify/agents/synthesizer.md +204 -0
- package/plugins/devflow-specify/commands/specify-teams.md +314 -0
- package/plugins/devflow-specify/commands/specify.md +179 -0
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
- package/scripts/hooks/background-memory-update.sh +167 -0
- package/scripts/hooks/pre-compact-memory.sh +81 -0
- package/scripts/hooks/session-start-memory.sh +84 -0
- package/scripts/hooks/stop-update-memory.sh +81 -0
- package/shared/agents/coder.md +122 -0
- package/shared/agents/git.md +272 -0
- package/shared/agents/resolver.md +131 -0
- package/shared/agents/reviewer.md +119 -0
- package/shared/agents/scrutinizer.md +80 -0
- package/shared/agents/shepherd.md +94 -0
- package/shared/agents/simplifier.md +62 -0
- package/shared/agents/skimmer.md +88 -0
- package/shared/agents/synthesizer.md +204 -0
- package/shared/agents/validator.md +86 -0
- package/shared/skills/accessibility/SKILL.md +229 -0
- package/shared/skills/accessibility/references/detection.md +171 -0
- package/shared/skills/accessibility/references/patterns.md +670 -0
- package/shared/skills/accessibility/references/violations.md +419 -0
- package/shared/skills/agent-teams/SKILL.md +124 -0
- package/shared/skills/agent-teams/references/cleanup.md +104 -0
- package/shared/skills/agent-teams/references/communication.md +122 -0
- package/shared/skills/agent-teams/references/team-patterns.md +217 -0
- package/shared/skills/architecture-patterns/SKILL.md +153 -0
- package/shared/skills/architecture-patterns/references/detection.md +337 -0
- package/shared/skills/architecture-patterns/references/patterns.md +873 -0
- package/shared/skills/architecture-patterns/references/violations.md +575 -0
- package/shared/skills/complexity-patterns/SKILL.md +143 -0
- package/shared/skills/complexity-patterns/references/detection.md +264 -0
- package/shared/skills/complexity-patterns/references/patterns.md +487 -0
- package/shared/skills/complexity-patterns/references/violations.md +361 -0
- package/shared/skills/consistency-patterns/SKILL.md +140 -0
- package/shared/skills/consistency-patterns/references/detection.md +207 -0
- package/shared/skills/consistency-patterns/references/patterns.md +202 -0
- package/shared/skills/consistency-patterns/references/violations.md +213 -0
- package/shared/skills/core-patterns/SKILL.md +162 -0
- package/shared/skills/core-patterns/references/checklist.md +276 -0
- package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/shared/skills/core-patterns/references/detection.md +303 -0
- package/shared/skills/core-patterns/references/patterns.md +576 -0
- package/shared/skills/core-patterns/references/violations.md +369 -0
- package/shared/skills/database-patterns/SKILL.md +134 -0
- package/shared/skills/database-patterns/references/detection.md +208 -0
- package/shared/skills/database-patterns/references/patterns.md +394 -0
- package/shared/skills/database-patterns/references/violations.md +332 -0
- package/shared/skills/dependencies-patterns/SKILL.md +141 -0
- package/shared/skills/dependencies-patterns/references/detection.md +181 -0
- package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
- package/shared/skills/dependencies-patterns/references/violations.md +247 -0
- package/shared/skills/docs-framework/SKILL.md +134 -0
- package/shared/skills/docs-framework/references/patterns.md +346 -0
- package/shared/skills/docs-framework/references/violations.md +221 -0
- package/shared/skills/documentation-patterns/SKILL.md +125 -0
- package/shared/skills/documentation-patterns/references/detection.md +190 -0
- package/shared/skills/documentation-patterns/references/patterns.md +189 -0
- package/shared/skills/documentation-patterns/references/violations.md +163 -0
- package/shared/skills/frontend-design/SKILL.md +254 -0
- package/shared/skills/frontend-design/references/detection.md +184 -0
- package/shared/skills/frontend-design/references/patterns.md +511 -0
- package/shared/skills/frontend-design/references/violations.md +453 -0
- package/shared/skills/git-safety/SKILL.md +122 -0
- package/shared/skills/git-safety/references/detection.md +290 -0
- package/shared/skills/git-safety/references/patterns.md +289 -0
- package/shared/skills/git-safety/references/violations.md +18 -0
- package/shared/skills/git-workflow/SKILL.md +158 -0
- package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
- package/shared/skills/git-workflow/references/commit-violations.md +77 -0
- package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
- package/shared/skills/git-workflow/references/pr-violations.md +96 -0
- package/shared/skills/github-patterns/SKILL.md +153 -0
- package/shared/skills/github-patterns/references/patterns.md +572 -0
- package/shared/skills/github-patterns/references/violations.md +298 -0
- package/shared/skills/implementation-patterns/SKILL.md +162 -0
- package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
- package/shared/skills/implementation-patterns/references/violations.md +483 -0
- package/shared/skills/input-validation/SKILL.md +148 -0
- package/shared/skills/input-validation/references/detection.md +283 -0
- package/shared/skills/input-validation/references/patterns.md +361 -0
- package/shared/skills/input-validation/references/violations.md +224 -0
- package/shared/skills/performance-patterns/SKILL.md +154 -0
- package/shared/skills/performance-patterns/references/detection.md +351 -0
- package/shared/skills/performance-patterns/references/patterns.md +503 -0
- package/shared/skills/performance-patterns/references/violations.md +354 -0
- package/shared/skills/react/SKILL.md +276 -0
- package/shared/skills/react/references/patterns.md +1331 -0
- package/shared/skills/react/references/violations.md +565 -0
- package/shared/skills/regression-patterns/SKILL.md +146 -0
- package/shared/skills/regression-patterns/references/detection.md +237 -0
- package/shared/skills/regression-patterns/references/patterns.md +226 -0
- package/shared/skills/regression-patterns/references/violations.md +225 -0
- package/shared/skills/review-methodology/SKILL.md +119 -0
- package/shared/skills/review-methodology/references/patterns.md +186 -0
- package/shared/skills/review-methodology/references/report-template.md +142 -0
- package/shared/skills/review-methodology/references/violations.md +125 -0
- package/shared/skills/security-patterns/SKILL.md +156 -0
- package/shared/skills/security-patterns/references/detection.md +287 -0
- package/shared/skills/security-patterns/references/patterns.md +507 -0
- package/shared/skills/security-patterns/references/violations.md +237 -0
- package/shared/skills/self-review/SKILL.md +149 -0
- package/shared/skills/self-review/references/patterns.md +405 -0
- package/shared/skills/self-review/references/report-template.md +253 -0
- package/shared/skills/self-review/references/violations.md +308 -0
- package/shared/skills/test-patterns/SKILL.md +183 -0
- package/shared/skills/test-patterns/references/detection.md +149 -0
- package/shared/skills/test-patterns/references/patterns.md +220 -0
- package/shared/skills/test-patterns/references/report-template.md +108 -0
- package/shared/skills/test-patterns/references/violations.md +221 -0
- package/shared/skills/typescript/SKILL.md +176 -0
- package/shared/skills/typescript/references/patterns.md +1105 -0
- package/shared/skills/typescript/references/violations.md +433 -0
- package/src/templates/claudeignore.template +188 -0
- package/src/templates/managed-settings.json +146 -0
- package/src/templates/settings.json +59 -0
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/src/claude/CLAUDE.md +0 -400
- package/src/claude/agents/devflow/audit-architecture.md +0 -132
- package/src/claude/agents/devflow/audit-complexity.md +0 -132
- package/src/claude/agents/devflow/audit-database.md +0 -132
- package/src/claude/agents/devflow/audit-dependencies.md +0 -132
- package/src/claude/agents/devflow/audit-documentation.md +0 -132
- package/src/claude/agents/devflow/audit-performance.md +0 -256
- package/src/claude/agents/devflow/audit-security.md +0 -259
- package/src/claude/agents/devflow/audit-tests.md +0 -132
- package/src/claude/agents/devflow/audit-typescript.md +0 -132
- package/src/claude/agents/devflow/brainstorm.md +0 -279
- package/src/claude/agents/devflow/catch-up.md +0 -345
- package/src/claude/agents/devflow/code-review.md +0 -307
- package/src/claude/agents/devflow/commit.md +0 -380
- package/src/claude/agents/devflow/debug.md +0 -476
- package/src/claude/agents/devflow/design.md +0 -491
- package/src/claude/agents/devflow/get-issue.md +0 -286
- package/src/claude/agents/devflow/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -493
- package/src/claude/agents/devflow/release.md +0 -1137
- package/src/claude/agents/devflow/tech-debt.md +0 -338
- package/src/claude/commands/devflow/brainstorm.md +0 -68
- package/src/claude/commands/devflow/breakdown.md +0 -125
- package/src/claude/commands/devflow/catch-up.md +0 -29
- package/src/claude/commands/devflow/code-review.md +0 -237
- package/src/claude/commands/devflow/commit.md +0 -17
- package/src/claude/commands/devflow/debug.md +0 -56
- package/src/claude/commands/devflow/design.md +0 -82
- package/src/claude/commands/devflow/devlog.md +0 -408
- package/src/claude/commands/devflow/get-issue.md +0 -16
- package/src/claude/commands/devflow/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -20
- package/src/claude/commands/devflow/release.md +0 -251
- package/src/claude/commands/devflow/resolve-comments.md +0 -583
- package/src/claude/scripts/statusline.sh +0 -47
- package/src/claude/settings.json +0 -6
- package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
- package/src/claude/skills/devflow/debug/SKILL.md +0 -119
- package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
- package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
- package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
- package/src/claude/skills/devflow/research/SKILL.md +0 -138
- package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# GitHub Patterns Violation Examples
|
|
2
|
+
|
|
3
|
+
Extended violation patterns for GitHub API and CLI operations. Reference from main SKILL.md.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## API Usage Violations
|
|
8
|
+
|
|
9
|
+
### Rate Limit Violations
|
|
10
|
+
|
|
11
|
+
**Ignoring Rate Limits**
|
|
12
|
+
```bash
|
|
13
|
+
# VIOLATION: No rate limit check before batch operations
|
|
14
|
+
for issue in $(seq 1 100); do
|
|
15
|
+
gh api repos/{owner}/{repo}/issues/${issue}
|
|
16
|
+
done
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**No Backoff on Rate Limit Error**
|
|
20
|
+
```bash
|
|
21
|
+
# VIOLATION: Fails immediately without retry
|
|
22
|
+
response=$(gh api repos/{owner}/{repo}/issues 2>&1)
|
|
23
|
+
if [ $? -ne 0 ]; then
|
|
24
|
+
echo "Failed"
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Error Handling Violations
|
|
30
|
+
|
|
31
|
+
**Missing Error Handling**
|
|
32
|
+
```bash
|
|
33
|
+
# VIOLATION: Assumes success, ignores errors
|
|
34
|
+
PR_NUMBER=$(gh pr create --title "..." --body "..." --json number -q '.number')
|
|
35
|
+
gh pr merge $PR_NUMBER
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Silent Failure**
|
|
39
|
+
```bash
|
|
40
|
+
# VIOLATION: Swallows errors without reporting
|
|
41
|
+
gh issue create --title "..." 2>/dev/null || true
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**No Response Validation**
|
|
45
|
+
```bash
|
|
46
|
+
# VIOLATION: Trusts API response without validation
|
|
47
|
+
BODY=$(gh issue view $ISSUE --json body -q '.body')
|
|
48
|
+
# Directly uses BODY without checking if empty or malformed
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Security Violations
|
|
52
|
+
|
|
53
|
+
**Hardcoded Tokens**
|
|
54
|
+
```bash
|
|
55
|
+
# VIOLATION: Token in script
|
|
56
|
+
gh api -H "Authorization: token ghp_xxxxxxxxxxxx" repos/{owner}/{repo}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Token in Command History**
|
|
60
|
+
```bash
|
|
61
|
+
# VIOLATION: Exposes token in shell history
|
|
62
|
+
export GITHUB_TOKEN=ghp_xxxxxxxxxxxx
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Pagination Violations
|
|
66
|
+
|
|
67
|
+
**Missing Pagination**
|
|
68
|
+
```bash
|
|
69
|
+
# VIOLATION: Only gets first page (30 items by default)
|
|
70
|
+
gh api repos/{owner}/{repo}/issues --jq '.[].number'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Incorrect Pagination Handling**
|
|
74
|
+
```bash
|
|
75
|
+
# VIOLATION: Manual page limit that may miss data
|
|
76
|
+
for page in 1 2 3; do
|
|
77
|
+
gh api "repos/{owner}/{repo}/issues?page=$page"
|
|
78
|
+
done
|
|
79
|
+
# What if there are 4+ pages?
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Query Violations
|
|
83
|
+
|
|
84
|
+
**Inefficient Multiple Queries**
|
|
85
|
+
```bash
|
|
86
|
+
# VIOLATION: Separate queries for data available in one
|
|
87
|
+
gh pr view $PR --json title
|
|
88
|
+
gh pr view $PR --json body
|
|
89
|
+
gh pr view $PR --json state
|
|
90
|
+
# Should use: gh pr view $PR --json title,body,state
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Missing Field Selection**
|
|
94
|
+
```bash
|
|
95
|
+
# VIOLATION: Fetches all fields when only one needed
|
|
96
|
+
gh issue list --json number,title,body,state,labels,assignees,milestone
|
|
97
|
+
# When you only need numbers
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## CLI Command Violations
|
|
103
|
+
|
|
104
|
+
### PR Comment Violations
|
|
105
|
+
|
|
106
|
+
**Invalid Line Comment Target**
|
|
107
|
+
```bash
|
|
108
|
+
# VIOLATION: Commenting on line not in diff
|
|
109
|
+
gh api -X POST "repos/${OWNER}/${REPO}/pulls/${PR}/comments" \
|
|
110
|
+
-f body="Comment" \
|
|
111
|
+
-f path="unchanged_file.ts" \
|
|
112
|
+
-F line=50 # Line not in PR diff
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Missing Commit SHA**
|
|
116
|
+
```bash
|
|
117
|
+
# VIOLATION: Comment without commit reference
|
|
118
|
+
gh api -X POST "repos/${OWNER}/${REPO}/pulls/${PR}/comments" \
|
|
119
|
+
-f body="Comment" \
|
|
120
|
+
-f path="file.ts" \
|
|
121
|
+
-F line=10
|
|
122
|
+
# Missing: -f commit_id="$HEAD_SHA"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**No Rate Limiting Between Comments**
|
|
126
|
+
```bash
|
|
127
|
+
# VIOLATION: Rapid-fire comments may hit rate limit
|
|
128
|
+
for file in "${FILES[@]}"; do
|
|
129
|
+
gh api -X POST "repos/${OWNER}/${REPO}/pulls/${PR}/comments" \
|
|
130
|
+
-f body="Issue found" \
|
|
131
|
+
-f path="$file"
|
|
132
|
+
# Missing: sleep between calls
|
|
133
|
+
done
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Issue Operations Violations
|
|
137
|
+
|
|
138
|
+
**Duplicate Issue Creation**
|
|
139
|
+
```bash
|
|
140
|
+
# VIOLATION: Creates duplicate without checking existing
|
|
141
|
+
gh issue create --title "Bug: Login fails" --body "..."
|
|
142
|
+
# Should check for existing similar issues first
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Tech Debt Issue Size Ignored**
|
|
146
|
+
```bash
|
|
147
|
+
# VIOLATION: Appending to issue without size check
|
|
148
|
+
gh issue comment $TECH_DEBT_ISSUE --body "$NEW_ITEMS"
|
|
149
|
+
# Issue may exceed 65,536 character limit
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Missing Issue Link Back**
|
|
153
|
+
```bash
|
|
154
|
+
# VIOLATION: Creates related issues without linking
|
|
155
|
+
NEW_ISSUE=$(gh issue create --title "Subtask" --json number -q '.number')
|
|
156
|
+
# Should add reference to parent issue
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Release Violations
|
|
160
|
+
|
|
161
|
+
**Invalid Version Format**
|
|
162
|
+
```bash
|
|
163
|
+
# VIOLATION: Non-semver version
|
|
164
|
+
gh release create "version-1.2" --title "Release"
|
|
165
|
+
# Should be: v1.2.0
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Missing Tag Before Release**
|
|
169
|
+
```bash
|
|
170
|
+
# VIOLATION: Creates release without tag
|
|
171
|
+
gh release create "v1.0.0" --title "Release"
|
|
172
|
+
# Tag should be created and pushed first for proper git history
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**No Changelog Reference**
|
|
176
|
+
```bash
|
|
177
|
+
# VIOLATION: Release without documented changes
|
|
178
|
+
gh release create "v1.0.0" --generate-notes
|
|
179
|
+
# Should have curated release notes or changelog reference
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Branch Name Violations
|
|
183
|
+
|
|
184
|
+
**Invalid Characters in Branch**
|
|
185
|
+
```bash
|
|
186
|
+
# VIOLATION: Spaces and special characters
|
|
187
|
+
BRANCH="feature/new feature with spaces!"
|
|
188
|
+
git checkout -b "$BRANCH"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Missing Issue Reference**
|
|
192
|
+
```bash
|
|
193
|
+
# VIOLATION: Branch without issue number for tracking
|
|
194
|
+
BRANCH="feature/add-login"
|
|
195
|
+
# Should be: feature/123-add-login (with issue reference)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### PR Creation Violations
|
|
199
|
+
|
|
200
|
+
**Missing Base Branch**
|
|
201
|
+
```bash
|
|
202
|
+
# VIOLATION: PR to wrong base branch
|
|
203
|
+
gh pr create --title "Feature" --body "..."
|
|
204
|
+
# May default to wrong branch in forks
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**No Draft for WIP**
|
|
208
|
+
```bash
|
|
209
|
+
# VIOLATION: Non-draft PR for incomplete work
|
|
210
|
+
gh pr create --title "WIP: Feature" --body "Not ready yet"
|
|
211
|
+
# Should use: --draft
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Missing Test Plan**
|
|
215
|
+
```bash
|
|
216
|
+
# VIOLATION: PR without test instructions
|
|
217
|
+
gh pr create --title "Feature" --body "Added feature X"
|
|
218
|
+
# Should include: ## Test plan section
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Workflow Integration Violations
|
|
224
|
+
|
|
225
|
+
### Webhook Handling Violations
|
|
226
|
+
|
|
227
|
+
**No Signature Verification**
|
|
228
|
+
```bash
|
|
229
|
+
# VIOLATION: Trusts webhook payload without verification
|
|
230
|
+
process_webhook() {
|
|
231
|
+
local payload="$1"
|
|
232
|
+
# Directly processes without checking X-Hub-Signature-256
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Blocking Webhook Handler**
|
|
237
|
+
```bash
|
|
238
|
+
# VIOLATION: Long-running operation in webhook handler
|
|
239
|
+
handle_push_event() {
|
|
240
|
+
run_full_test_suite # May timeout
|
|
241
|
+
deploy_to_production # Takes too long
|
|
242
|
+
}
|
|
243
|
+
# Should acknowledge immediately, process async
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Actions Integration Violations
|
|
247
|
+
|
|
248
|
+
**Workflow Dispatch Without Validation**
|
|
249
|
+
```bash
|
|
250
|
+
# VIOLATION: Triggers workflow with unvalidated inputs
|
|
251
|
+
gh workflow run "deploy.yml" -f environment="$USER_INPUT"
|
|
252
|
+
# USER_INPUT could be malicious or invalid
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**No Run Status Check**
|
|
256
|
+
```bash
|
|
257
|
+
# VIOLATION: Triggers workflow without waiting for result
|
|
258
|
+
gh workflow run "build.yml"
|
|
259
|
+
echo "Triggered"
|
|
260
|
+
# Should check run status for critical workflows
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## GraphQL Violations
|
|
266
|
+
|
|
267
|
+
**Over-fetching Data**
|
|
268
|
+
```bash
|
|
269
|
+
# VIOLATION: Requesting all fields when few needed
|
|
270
|
+
gh api graphql -f query='
|
|
271
|
+
query {
|
|
272
|
+
repository(owner: "owner", name: "repo") {
|
|
273
|
+
pullRequest(number: 1) {
|
|
274
|
+
title body state author { login }
|
|
275
|
+
reviews(first: 100) { nodes { ... } }
|
|
276
|
+
comments(first: 100) { nodes { ... } }
|
|
277
|
+
commits(first: 250) { nodes { ... } }
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
'
|
|
282
|
+
# If only title and state needed, this wastes resources
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Missing Pagination in GraphQL**
|
|
286
|
+
```bash
|
|
287
|
+
# VIOLATION: No cursor for paginated data
|
|
288
|
+
gh api graphql -f query='
|
|
289
|
+
query {
|
|
290
|
+
repository(owner: "owner", name: "repo") {
|
|
291
|
+
issues(first: 100) {
|
|
292
|
+
nodes { number title }
|
|
293
|
+
# Missing: pageInfo { hasNextPage endCursor }
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
'
|
|
298
|
+
```
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: input-validation
|
|
3
|
+
description: This skill should be used when the user asks to "validate input", "parse request data", "handle form data", "add Zod schema", "sanitize user input", or creates API endpoints and system boundaries. Provides parse-don't-validate patterns with Zod schemas for type-safe boundary validation and hostile input defense.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Input Validation Skill
|
|
9
|
+
|
|
10
|
+
## Iron Law
|
|
11
|
+
|
|
12
|
+
> **ALL EXTERNAL DATA IS HOSTILE**
|
|
13
|
+
>
|
|
14
|
+
> Validate at boundaries, trust inside. Every piece of data from outside the system
|
|
15
|
+
> (user input, API responses, environment variables) is potentially malicious until
|
|
16
|
+
> validated with a schema. No exceptions. No "I trust this source." Validate everything.
|
|
17
|
+
|
|
18
|
+
## When This Skill Activates
|
|
19
|
+
|
|
20
|
+
- Creating API endpoints or routes
|
|
21
|
+
- Processing user-submitted data
|
|
22
|
+
- Integrating with external APIs
|
|
23
|
+
- Accepting environment variables
|
|
24
|
+
- Handling database queries with user input
|
|
25
|
+
|
|
26
|
+
## Core Principle: Parse, Don't Validate
|
|
27
|
+
|
|
28
|
+
Use schema validation libraries, not manual checks.
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
// VIOLATION: Manual validation
|
|
32
|
+
function createUser(data: any): User {
|
|
33
|
+
if (!data.email || typeof data.email !== 'string') throw new Error('Invalid');
|
|
34
|
+
// ... scattered checks
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// CORRECT: Schema validation at boundary
|
|
38
|
+
const UserSchema = z.object({
|
|
39
|
+
email: z.string().email().max(255),
|
|
40
|
+
age: z.number().int().min(0).max(150),
|
|
41
|
+
name: z.string().min(1).max(100)
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
function createUser(data: unknown): Result<User, ValidationError> {
|
|
45
|
+
const validation = UserSchema.safeParse(data);
|
|
46
|
+
if (!validation.success) {
|
|
47
|
+
return { ok: false, error: new ValidationError('Invalid', validation.error) };
|
|
48
|
+
}
|
|
49
|
+
return { ok: true, value: validation.data };
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Boundary Examples
|
|
54
|
+
|
|
55
|
+
### API Endpoint
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
app.post('/api/users', async (req, res) => {
|
|
59
|
+
const validation = UserSchema.safeParse(req.body);
|
|
60
|
+
if (!validation.success) {
|
|
61
|
+
return res.status(400).json({ error: validation.error.issues });
|
|
62
|
+
}
|
|
63
|
+
const result = await createUser(validation.data);
|
|
64
|
+
// ... handle result
|
|
65
|
+
});
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### External API Response
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
async function fetchUserData(userId: string): Promise<Result<UserData, Error>> {
|
|
72
|
+
const response = await fetch(`https://api.example.com/users/${userId}`);
|
|
73
|
+
const validation = ExternalUserSchema.safeParse(await response.json());
|
|
74
|
+
if (!validation.success) {
|
|
75
|
+
return { ok: false, error: new Error('External API returned invalid data') };
|
|
76
|
+
}
|
|
77
|
+
return { ok: true, value: validation.data };
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Environment Variables
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
const ConfigSchema = z.object({
|
|
85
|
+
port: z.string().regex(/^\d+$/).transform(Number),
|
|
86
|
+
dbUrl: z.string().url().startsWith('postgresql://'),
|
|
87
|
+
apiKey: z.string().min(32)
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const configResult = ConfigSchema.safeParse(process.env);
|
|
91
|
+
if (!configResult.success) {
|
|
92
|
+
console.error('Invalid configuration:', configResult.error);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Database Queries (SQL Injection Prevention)
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
const EmailSchema = z.string().email().max(255);
|
|
101
|
+
|
|
102
|
+
async function getUserByEmail(email: unknown): Promise<Result<User, Error>> {
|
|
103
|
+
const validation = EmailSchema.safeParse(email);
|
|
104
|
+
if (!validation.success) {
|
|
105
|
+
return { ok: false, error: new Error('Invalid email format') };
|
|
106
|
+
}
|
|
107
|
+
// Parameterized query prevents SQL injection
|
|
108
|
+
const user = await db.query('SELECT * FROM users WHERE email = $1', [validation.data]);
|
|
109
|
+
return { ok: true, value: user };
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Validation Libraries
|
|
114
|
+
|
|
115
|
+
| Language | Recommended |
|
|
116
|
+
|----------|-------------|
|
|
117
|
+
| TypeScript/JavaScript | Zod, Yup, joi |
|
|
118
|
+
| Python | Pydantic, marshmallow |
|
|
119
|
+
| Go | go-playground/validator |
|
|
120
|
+
| Rust | serde + validator |
|
|
121
|
+
|
|
122
|
+
## Security Principles
|
|
123
|
+
|
|
124
|
+
1. **Trust Nothing**: All external data is potentially malicious
|
|
125
|
+
2. **Validate Once**: At the boundary, then trust typed data
|
|
126
|
+
3. **Fail Secure**: Invalid input = reject, not accept with warning
|
|
127
|
+
4. **No Bypass**: No "skip validation" flags or backdoors
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Extended References
|
|
132
|
+
|
|
133
|
+
For extended examples and detection patterns, see:
|
|
134
|
+
- `references/violations.md` - Extended violation examples
|
|
135
|
+
- `references/patterns.md` - Extended correct patterns
|
|
136
|
+
- `references/detection.md` - Grep patterns and report templates
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Success Criteria
|
|
141
|
+
|
|
142
|
+
- [ ] All boundaries identified and validated
|
|
143
|
+
- [ ] Schema validation used (not manual checks)
|
|
144
|
+
- [ ] No SQL injection risks
|
|
145
|
+
- [ ] External data validated before use
|
|
146
|
+
- [ ] Configuration validated on startup
|
|
147
|
+
- [ ] Validation errors return Result types
|
|
148
|
+
- [ ] Tests cover invalid input scenarios
|