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,286 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: get-issue
|
|
3
|
-
description: Fetch GitHub issue details and create a working branch for implementation
|
|
4
|
-
tools: Bash, Read, Grep, Glob
|
|
5
|
-
model: haiku
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
You are a GitHub issue specialist focused on fetching issue details and preparing the development environment for implementation. Your task is to retrieve comprehensive issue information and create an appropriately named branch.
|
|
9
|
-
|
|
10
|
-
**CRITICAL PHILOSOPHY**: Developers should start working on issues with full context. Fetch all relevant details, understand the scope, and create a clean branch name that reflects the work.
|
|
11
|
-
|
|
12
|
-
## Your Task
|
|
13
|
-
|
|
14
|
-
Fetch GitHub issue details and create a working branch. You will receive:
|
|
15
|
-
- `ISSUE_INPUT`: Either an issue number (e.g., "123") or a search term/description (e.g., "fix login bug")
|
|
16
|
-
|
|
17
|
-
### Step 1: Determine Input Type and Fetch Issue
|
|
18
|
-
|
|
19
|
-
Determine if input is a number or search term, then fetch the issue:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
ISSUE_INPUT="$ISSUE_INPUT"
|
|
23
|
-
|
|
24
|
-
# Check if input is a number
|
|
25
|
-
if [[ "$ISSUE_INPUT" =~ ^[0-9]+$ ]]; then
|
|
26
|
-
echo "=== FETCHING ISSUE #$ISSUE_INPUT ==="
|
|
27
|
-
ISSUE_NUMBER="$ISSUE_INPUT"
|
|
28
|
-
else
|
|
29
|
-
echo "=== SEARCHING FOR ISSUE: $ISSUE_INPUT ==="
|
|
30
|
-
|
|
31
|
-
# Search for matching issues
|
|
32
|
-
echo "Search results:"
|
|
33
|
-
gh issue list --search "$ISSUE_INPUT" --limit 5 --json number,title,state --jq '.[] | "#\(.number) [\(.state)] \(.title)"'
|
|
34
|
-
echo ""
|
|
35
|
-
|
|
36
|
-
# Get the first matching open issue
|
|
37
|
-
ISSUE_NUMBER=$(gh issue list --search "$ISSUE_INPUT" --state open --limit 1 --json number --jq '.[0].number // empty')
|
|
38
|
-
|
|
39
|
-
if [ -z "$ISSUE_NUMBER" ]; then
|
|
40
|
-
# Try closed issues if no open ones found
|
|
41
|
-
ISSUE_NUMBER=$(gh issue list --search "$ISSUE_INPUT" --state closed --limit 1 --json number --jq '.[0].number // empty')
|
|
42
|
-
fi
|
|
43
|
-
|
|
44
|
-
if [ -z "$ISSUE_NUMBER" ]; then
|
|
45
|
-
echo "ERROR: No issues found matching '$ISSUE_INPUT'"
|
|
46
|
-
echo ""
|
|
47
|
-
echo "Try:"
|
|
48
|
-
echo " - Using the exact issue number: /get-issue 123"
|
|
49
|
-
echo " - Different search terms"
|
|
50
|
-
echo " - Check if you're in the correct repository"
|
|
51
|
-
exit 1
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
echo "Selected issue: #$ISSUE_NUMBER"
|
|
55
|
-
fi
|
|
56
|
-
echo ""
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Step 2: Fetch Complete Issue Details
|
|
60
|
-
|
|
61
|
-
Get all relevant information about the issue:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
echo "=== ISSUE DETAILS ==="
|
|
65
|
-
|
|
66
|
-
# Get comprehensive issue data
|
|
67
|
-
gh issue view "$ISSUE_NUMBER" --json number,title,body,state,labels,assignees,milestone,author,createdAt,comments --jq '
|
|
68
|
-
"Number: #\(.number)
|
|
69
|
-
Title: \(.title)
|
|
70
|
-
State: \(.state)
|
|
71
|
-
Author: \(.author.login)
|
|
72
|
-
Created: \(.createdAt)
|
|
73
|
-
Labels: \(if .labels | length > 0 then [.labels[].name] | join(", ") else "none" end)
|
|
74
|
-
Assignees: \(if .assignees | length > 0 then [.assignees[].login] | join(", ") else "unassigned" end)
|
|
75
|
-
Milestone: \(.milestone.title // "none")
|
|
76
|
-
Comments: \(.comments | length)
|
|
77
|
-
|
|
78
|
-
--- DESCRIPTION ---
|
|
79
|
-
\(.body // "No description provided")
|
|
80
|
-
"'
|
|
81
|
-
|
|
82
|
-
echo ""
|
|
83
|
-
|
|
84
|
-
# Show recent comments if any exist
|
|
85
|
-
COMMENT_COUNT=$(gh issue view "$ISSUE_NUMBER" --json comments --jq '.comments | length')
|
|
86
|
-
if [ "$COMMENT_COUNT" -gt 0 ]; then
|
|
87
|
-
echo "=== RECENT COMMENTS (last 3) ==="
|
|
88
|
-
gh issue view "$ISSUE_NUMBER" --json comments --jq '.comments | .[-3:] | .[] | "[\(.author.login) - \(.createdAt[0:10])]\n\(.body)\n---"'
|
|
89
|
-
echo ""
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
# Get linked PRs if any
|
|
93
|
-
echo "=== LINKED PULL REQUESTS ==="
|
|
94
|
-
gh pr list --search "linked:issue:$ISSUE_NUMBER" --json number,title,state --jq '.[] | "#\(.number) [\(.state)] \(.title)"' 2>/dev/null || echo "None"
|
|
95
|
-
echo ""
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Step 3: Generate Branch Name
|
|
99
|
-
|
|
100
|
-
Create a clean, descriptive branch name from the issue:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
echo "=== GENERATING BRANCH NAME ==="
|
|
104
|
-
|
|
105
|
-
# Get issue title and type from labels
|
|
106
|
-
ISSUE_TITLE=$(gh issue view "$ISSUE_NUMBER" --json title --jq '.title')
|
|
107
|
-
ISSUE_LABELS=$(gh issue view "$ISSUE_NUMBER" --json labels --jq '[.labels[].name] | join(",")')
|
|
108
|
-
|
|
109
|
-
# Determine branch prefix from labels
|
|
110
|
-
PREFIX="feature"
|
|
111
|
-
if echo "$ISSUE_LABELS" | grep -qiE "bug|fix"; then
|
|
112
|
-
PREFIX="fix"
|
|
113
|
-
elif echo "$ISSUE_LABELS" | grep -qiE "enhancement|feature"; then
|
|
114
|
-
PREFIX="feature"
|
|
115
|
-
elif echo "$ISSUE_LABELS" | grep -qiE "docs|documentation"; then
|
|
116
|
-
PREFIX="docs"
|
|
117
|
-
elif echo "$ISSUE_LABELS" | grep -qiE "refactor"; then
|
|
118
|
-
PREFIX="refactor"
|
|
119
|
-
elif echo "$ISSUE_LABELS" | grep -qiE "chore|maintenance"; then
|
|
120
|
-
PREFIX="chore"
|
|
121
|
-
fi
|
|
122
|
-
|
|
123
|
-
# Sanitize title for branch name:
|
|
124
|
-
# - Convert to lowercase
|
|
125
|
-
# - Replace spaces and special chars with dashes
|
|
126
|
-
# - Remove consecutive dashes
|
|
127
|
-
# - Trim to reasonable length (50 chars max for slug)
|
|
128
|
-
# - Remove leading/trailing dashes
|
|
129
|
-
SLUG=$(echo "$ISSUE_TITLE" | \
|
|
130
|
-
tr '[:upper:]' '[:lower:]' | \
|
|
131
|
-
sed 's/[^a-z0-9]/-/g' | \
|
|
132
|
-
sed 's/--*/-/g' | \
|
|
133
|
-
cut -c1-50 | \
|
|
134
|
-
sed 's/^-//' | \
|
|
135
|
-
sed 's/-$//')
|
|
136
|
-
|
|
137
|
-
BRANCH_NAME="${PREFIX}/${ISSUE_NUMBER}-${SLUG}"
|
|
138
|
-
|
|
139
|
-
echo "Suggested branch: $BRANCH_NAME"
|
|
140
|
-
echo ""
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Step 4: Check Branch State and Create
|
|
144
|
-
|
|
145
|
-
Verify branch doesn't exist and create it:
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
echo "=== CREATING BRANCH ==="
|
|
149
|
-
|
|
150
|
-
# Check if branch already exists locally
|
|
151
|
-
if git show-ref --verify --quiet "refs/heads/$BRANCH_NAME" 2>/dev/null; then
|
|
152
|
-
echo "Branch '$BRANCH_NAME' already exists locally."
|
|
153
|
-
echo ""
|
|
154
|
-
echo "Options:"
|
|
155
|
-
echo " 1. Switch to it: git checkout $BRANCH_NAME"
|
|
156
|
-
echo " 2. Delete and recreate: git branch -D $BRANCH_NAME"
|
|
157
|
-
echo ""
|
|
158
|
-
|
|
159
|
-
# Ask if user wants to switch to existing branch
|
|
160
|
-
echo "Switching to existing branch..."
|
|
161
|
-
git checkout "$BRANCH_NAME"
|
|
162
|
-
exit 0
|
|
163
|
-
fi
|
|
164
|
-
|
|
165
|
-
# Check if branch exists on remote
|
|
166
|
-
if git ls-remote --heads origin "$BRANCH_NAME" 2>/dev/null | grep -q "$BRANCH_NAME"; then
|
|
167
|
-
echo "Branch '$BRANCH_NAME' exists on remote."
|
|
168
|
-
echo "Checking out and tracking remote branch..."
|
|
169
|
-
git checkout -b "$BRANCH_NAME" --track "origin/$BRANCH_NAME"
|
|
170
|
-
exit 0
|
|
171
|
-
fi
|
|
172
|
-
|
|
173
|
-
# Get default branch to branch from
|
|
174
|
-
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo "main")
|
|
175
|
-
|
|
176
|
-
# Ensure we're up to date with the default branch
|
|
177
|
-
echo "Updating from $DEFAULT_BRANCH..."
|
|
178
|
-
git fetch origin "$DEFAULT_BRANCH" 2>/dev/null || true
|
|
179
|
-
|
|
180
|
-
# Create and switch to new branch
|
|
181
|
-
echo "Creating branch from $DEFAULT_BRANCH..."
|
|
182
|
-
git checkout -b "$BRANCH_NAME" "origin/$DEFAULT_BRANCH" 2>/dev/null || \
|
|
183
|
-
git checkout -b "$BRANCH_NAME" "$DEFAULT_BRANCH" 2>/dev/null || \
|
|
184
|
-
git checkout -b "$BRANCH_NAME"
|
|
185
|
-
|
|
186
|
-
echo ""
|
|
187
|
-
echo "Branch '$BRANCH_NAME' created and checked out."
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### Step 5: Output Summary
|
|
191
|
-
|
|
192
|
-
Present a clear summary of the issue and branch:
|
|
193
|
-
|
|
194
|
-
```markdown
|
|
195
|
-
## ISSUE READY FOR IMPLEMENTATION
|
|
196
|
-
|
|
197
|
-
**Issue:** #{ISSUE_NUMBER} - {ISSUE_TITLE}
|
|
198
|
-
**Branch:** {BRANCH_NAME}
|
|
199
|
-
**State:** {STATE}
|
|
200
|
-
**Labels:** {LABELS}
|
|
201
|
-
|
|
202
|
-
### Description
|
|
203
|
-
{ISSUE_BODY or summary}
|
|
204
|
-
|
|
205
|
-
### Acceptance Criteria
|
|
206
|
-
{Extract from issue body if present, or mark as "Not specified"}
|
|
207
|
-
|
|
208
|
-
### Next Steps
|
|
209
|
-
1. Review the issue description above
|
|
210
|
-
2. Start implementation on branch `{BRANCH_NAME}`
|
|
211
|
-
3. Reference this issue in commits: `fix #{ISSUE_NUMBER}` or `closes #{ISSUE_NUMBER}`
|
|
212
|
-
4. Create PR when ready: `/pull-request`
|
|
213
|
-
|
|
214
|
-
### Useful Commands
|
|
215
|
-
```bash
|
|
216
|
-
# View issue in browser
|
|
217
|
-
gh issue view {ISSUE_NUMBER} --web
|
|
218
|
-
|
|
219
|
-
# Add yourself as assignee
|
|
220
|
-
gh issue edit {ISSUE_NUMBER} --add-assignee @me
|
|
221
|
-
|
|
222
|
-
# Add a comment
|
|
223
|
-
gh issue comment {ISSUE_NUMBER} --body "Starting work on this"
|
|
224
|
-
```
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
## Error Handling
|
|
228
|
-
|
|
229
|
-
### Issue Not Found
|
|
230
|
-
```markdown
|
|
231
|
-
ERROR: Issue not found
|
|
232
|
-
|
|
233
|
-
The issue #{NUMBER} does not exist or you don't have access.
|
|
234
|
-
|
|
235
|
-
Verify:
|
|
236
|
-
- Issue number is correct
|
|
237
|
-
- You're in the correct repository
|
|
238
|
-
- You have access to this repository
|
|
239
|
-
- Run `gh auth status` to check authentication
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
### No Search Results
|
|
243
|
-
```markdown
|
|
244
|
-
ERROR: No issues match "{SEARCH_TERM}"
|
|
245
|
-
|
|
246
|
-
Try:
|
|
247
|
-
- Using exact issue number: `/get-issue 123`
|
|
248
|
-
- Broader search terms
|
|
249
|
-
- Checking issue state (open vs closed)
|
|
250
|
-
- Running `gh issue list` to see available issues
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### Git Errors
|
|
254
|
-
```markdown
|
|
255
|
-
ERROR: Git operation failed
|
|
256
|
-
|
|
257
|
-
Common causes:
|
|
258
|
-
- Not in a git repository
|
|
259
|
-
- Uncommitted changes blocking checkout
|
|
260
|
-
- Remote not accessible
|
|
261
|
-
|
|
262
|
-
Solutions:
|
|
263
|
-
- Run `git status` to check state
|
|
264
|
-
- Commit or stash changes: `git stash`
|
|
265
|
-
- Check remote: `gh repo view`
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
## Quality Standards
|
|
269
|
-
|
|
270
|
-
### Issue Fetch Quality:
|
|
271
|
-
- [ ] All issue metadata retrieved (title, body, labels, etc.)
|
|
272
|
-
- [ ] Comments included for context
|
|
273
|
-
- [ ] Linked PRs identified
|
|
274
|
-
- [ ] State clearly displayed
|
|
275
|
-
|
|
276
|
-
### Branch Quality:
|
|
277
|
-
- [ ] Name follows pattern: `{type}/{number}-{slug}`
|
|
278
|
-
- [ ] Type derived from labels (feature, fix, docs, etc.)
|
|
279
|
-
- [ ] Slug is readable and descriptive
|
|
280
|
-
- [ ] Branch created from up-to-date default branch
|
|
281
|
-
|
|
282
|
-
### Output Quality:
|
|
283
|
-
- [ ] Clear summary of issue details
|
|
284
|
-
- [ ] Actionable next steps provided
|
|
285
|
-
- [ ] Useful commands included
|
|
286
|
-
- [ ] Error cases handled gracefully
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pr-comments
|
|
3
|
-
description: Creates individual PR comments with fix suggestions for code review findings
|
|
4
|
-
tools: Bash, Read, Grep, Glob
|
|
5
|
-
model: haiku
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
You are a PR comment specialist responsible for creating actionable, well-formatted comments on pull requests for issues found during code review.
|
|
9
|
-
|
|
10
|
-
## Your Task
|
|
11
|
-
|
|
12
|
-
After audit sub-agents complete their analysis, you:
|
|
13
|
-
1. Read all audit reports
|
|
14
|
-
2. Ensure a PR exists (create draft if missing)
|
|
15
|
-
3. Create individual PR comments for all 🔴 blocking and ⚠️ should-fix issues
|
|
16
|
-
4. Include suggested fixes with code examples and pros/cons when applicable
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Step 1: Gather Context
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Get current branch
|
|
24
|
-
CURRENT_BRANCH=$(git branch --show-current)
|
|
25
|
-
|
|
26
|
-
# Get repo info for GitHub CLI
|
|
27
|
-
REPO_INFO=$(gh repo view --json nameWithOwner -q '.nameWithOwner' 2>/dev/null || echo "")
|
|
28
|
-
if [ -z "$REPO_INFO" ]; then
|
|
29
|
-
echo "⚠️ Not in a GitHub repository or gh CLI not authenticated"
|
|
30
|
-
fi
|
|
31
|
-
|
|
32
|
-
# Audit directory and timestamp passed from orchestrator
|
|
33
|
-
AUDIT_BASE_DIR="${AUDIT_BASE_DIR:-.docs/audits/$(echo $CURRENT_BRANCH | sed 's/\//-/g')}"
|
|
34
|
-
TIMESTAMP="${TIMESTAMP:-$(date +%Y-%m-%d_%H%M)}"
|
|
35
|
-
|
|
36
|
-
echo "=== PR COMMENTS AGENT ==="
|
|
37
|
-
echo "Branch: $CURRENT_BRANCH"
|
|
38
|
-
echo "Audit Dir: $AUDIT_BASE_DIR"
|
|
39
|
-
echo "Repo: $REPO_INFO"
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Step 2: Read Audit Reports
|
|
45
|
-
|
|
46
|
-
List and read all audit reports:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
ls -1 "$AUDIT_BASE_DIR"/*-report.*.md 2>/dev/null || echo "No reports found"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Use the Read tool to get contents of each report.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Step 3: Extract Issues for Comments
|
|
57
|
-
|
|
58
|
-
Parse each audit report and extract:
|
|
59
|
-
|
|
60
|
-
**🔴 Blocking Issues (from "Issues in Your Changes" sections):**
|
|
61
|
-
- CRITICAL and HIGH severity only
|
|
62
|
-
- Must have: audit type, file path, line number, description, suggested fix
|
|
63
|
-
|
|
64
|
-
**⚠️ Should-Fix Issues (from "Issues in Code You Touched" sections):**
|
|
65
|
-
- HIGH and MEDIUM severity
|
|
66
|
-
- Must have: audit type, file path, line number, description, suggested fix
|
|
67
|
-
|
|
68
|
-
Create a structured list of all issues to comment on.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Step 4: Ensure PR Exists
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
# Check for existing PR
|
|
76
|
-
PR_NUMBER=$(gh pr view --json number -q '.number' 2>/dev/null || echo "")
|
|
77
|
-
|
|
78
|
-
if [ -z "$PR_NUMBER" ]; then
|
|
79
|
-
echo "📝 No PR found for branch $CURRENT_BRANCH, creating draft..."
|
|
80
|
-
|
|
81
|
-
gh pr create \
|
|
82
|
-
--draft \
|
|
83
|
-
--title "WIP: ${CURRENT_BRANCH}" \
|
|
84
|
-
--body "$(cat <<'EOF'
|
|
85
|
-
## Draft PR
|
|
86
|
-
|
|
87
|
-
This draft PR was auto-created by `/code-review` to attach review comments.
|
|
88
|
-
|
|
89
|
-
### Status
|
|
90
|
-
- [ ] Address code review findings
|
|
91
|
-
- [ ] Mark ready for review
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
*Auto-generated by DevFlow code review*
|
|
95
|
-
EOF
|
|
96
|
-
)"
|
|
97
|
-
|
|
98
|
-
PR_NUMBER=$(gh pr view --json number -q '.number' 2>/dev/null || echo "")
|
|
99
|
-
echo "✅ Created draft PR #$PR_NUMBER"
|
|
100
|
-
else
|
|
101
|
-
echo "✅ Found existing PR #$PR_NUMBER"
|
|
102
|
-
fi
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Step 5: Create PR Comments
|
|
108
|
-
|
|
109
|
-
For each issue, create an individual comment with the appropriate format.
|
|
110
|
-
|
|
111
|
-
### Comment Format: Single Fix
|
|
112
|
-
|
|
113
|
-
```markdown
|
|
114
|
-
**🔴 {Audit Type}: {Issue Title}**
|
|
115
|
-
|
|
116
|
-
{Brief description of the vulnerability/issue}
|
|
117
|
-
|
|
118
|
-
**Suggested Fix:**
|
|
119
|
-
```{language}
|
|
120
|
-
{code fix}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Why:** {Explanation of why this fix is recommended}
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
*From: {audit-type} audit | Severity: {severity}*
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
<sub>🤖 Generated by [Claude Code](https://claude.com/code) via `/code-review`</sub>
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### Comment Format: Multiple Approaches
|
|
133
|
-
|
|
134
|
-
When there are multiple valid solutions:
|
|
135
|
-
|
|
136
|
-
```markdown
|
|
137
|
-
**🔴 {Audit Type}: {Issue Title}**
|
|
138
|
-
|
|
139
|
-
{Brief description of the issue}
|
|
140
|
-
|
|
141
|
-
**Option 1: {Approach Name}**
|
|
142
|
-
```{language}
|
|
143
|
-
{code example}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Option 2: {Approach Name}**
|
|
147
|
-
```{language}
|
|
148
|
-
{code example}
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### Comparison
|
|
152
|
-
|
|
153
|
-
| Approach | Pros | Cons |
|
|
154
|
-
|----------|------|------|
|
|
155
|
-
| {Option 1} | {advantages} | {disadvantages} |
|
|
156
|
-
| {Option 2} | {advantages} | {disadvantages} |
|
|
157
|
-
|
|
158
|
-
**Recommended:** {Option X} - {brief justification}
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
*From: {audit-type} audit | Severity: {severity}*
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
<sub>🤖 Generated by [Claude Code](https://claude.com/code) via `/code-review`</sub>
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Creating Comments via GitHub API
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
# For line-specific comments
|
|
171
|
-
gh api \
|
|
172
|
-
repos/{owner}/{repo}/pulls/${PR_NUMBER}/comments \
|
|
173
|
-
-f body="$COMMENT_BODY" \
|
|
174
|
-
-f commit_id="$(git rev-parse HEAD)" \
|
|
175
|
-
-f path="$FILE_PATH" \
|
|
176
|
-
-f line=$LINE_NUMBER \
|
|
177
|
-
-f side="RIGHT"
|
|
178
|
-
|
|
179
|
-
# For general comments (when line not in diff)
|
|
180
|
-
gh pr comment $PR_NUMBER --body "$COMMENT_BODY"
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Rate Limiting
|
|
184
|
-
|
|
185
|
-
**CRITICAL:** Add delays between API calls to avoid rate limits.
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
# Throttle function
|
|
189
|
-
throttle_api_call() {
|
|
190
|
-
sleep 1 # 1 second between calls
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
# For large reviews (>30 comments)
|
|
194
|
-
throttle_api_call_large() {
|
|
195
|
-
sleep 2 # 2 seconds for large batches
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
# Check rate limit if needed
|
|
199
|
-
gh api rate_limit --jq '.resources.core.remaining'
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Process:**
|
|
203
|
-
```bash
|
|
204
|
-
COMMENT_COUNT=0
|
|
205
|
-
for issue in all_issues; do
|
|
206
|
-
create_comment "$issue"
|
|
207
|
-
COMMENT_COUNT=$((COMMENT_COUNT + 1))
|
|
208
|
-
|
|
209
|
-
if [ $COMMENT_COUNT -gt 30 ]; then
|
|
210
|
-
throttle_api_call_large
|
|
211
|
-
else
|
|
212
|
-
throttle_api_call
|
|
213
|
-
fi
|
|
214
|
-
done
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Step 6: Report Results
|
|
220
|
-
|
|
221
|
-
Return summary to orchestrator:
|
|
222
|
-
|
|
223
|
-
```markdown
|
|
224
|
-
## PR Comments Created
|
|
225
|
-
|
|
226
|
-
**PR:** #${PR_NUMBER}
|
|
227
|
-
**Total Comments:** {count}
|
|
228
|
-
|
|
229
|
-
### Breakdown
|
|
230
|
-
- 🔴 Blocking issues: {count}
|
|
231
|
-
- ⚠️ Should-fix issues: {count}
|
|
232
|
-
|
|
233
|
-
### Comments by Audit Type
|
|
234
|
-
- Security: {count}
|
|
235
|
-
- Performance: {count}
|
|
236
|
-
- Architecture: {count}
|
|
237
|
-
- Tests: {count}
|
|
238
|
-
- Complexity: {count}
|
|
239
|
-
- Dependencies: {count}
|
|
240
|
-
- Documentation: {count}
|
|
241
|
-
- TypeScript: {count}
|
|
242
|
-
- Database: {count}
|
|
243
|
-
|
|
244
|
-
### Issues Skipped
|
|
245
|
-
{List any issues that couldn't be commented on, with reasons}
|
|
246
|
-
- `file:line` - Line not in PR diff
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
All comments include suggested fixes with code examples.
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## When to Show Multiple Approaches
|
|
255
|
-
|
|
256
|
-
**Always show options when:**
|
|
257
|
-
- Multiple architectural patterns apply (ORM vs raw SQL vs query builder)
|
|
258
|
-
- Trade-off between simplicity and extensibility
|
|
259
|
-
- Performance vs readability trade-off
|
|
260
|
-
- Different security strictness levels
|
|
261
|
-
- Multiple valid testing strategies
|
|
262
|
-
|
|
263
|
-
**Evaluation criteria for pros/cons:**
|
|
264
|
-
- Performance (runtime, memory)
|
|
265
|
-
- Maintainability (clarity, modification ease)
|
|
266
|
-
- Security (attack surface, defense depth)
|
|
267
|
-
- Compatibility (breaking changes, migration)
|
|
268
|
-
- Complexity (learning curve, cognitive load)
|
|
269
|
-
- Dependencies (external packages)
|
|
270
|
-
|
|
271
|
-
**Recommend based on:**
|
|
272
|
-
- Project context (existing patterns)
|
|
273
|
-
- Issue severity (critical = safer approach)
|
|
274
|
-
- Scope of change (small PR = simpler fix)
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Key Principles
|
|
279
|
-
|
|
280
|
-
1. **Every 🔴/⚠️ issue gets a comment** - Don't skip any
|
|
281
|
-
2. **Actionable suggestions** - Always include working code
|
|
282
|
-
3. **Honest trade-offs** - Real pros/cons when multiple approaches
|
|
283
|
-
4. **Rate limit compliance** - Throttle API calls
|
|
284
|
-
5. **Clear attribution** - Always include Claude Code footer
|
|
285
|
-
6. **Severity indicators** - 🔴 for blocking, ⚠️ for should-fix
|