devflow-kit 0.8.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +185 -29
- package/LICENSE +1 -1
- package/README.md +179 -308
- package/dist/cli.js +3 -1
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.js +311 -575
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +351 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +162 -0
- package/dist/utils/cli.d.ts +5 -0
- package/dist/utils/cli.js +14 -0
- package/dist/utils/installer.d.ts +41 -0
- package/dist/utils/installer.js +177 -0
- package/dist/utils/paths.d.ts +10 -0
- package/dist/utils/paths.js +23 -3
- package/dist/utils/post-install.d.ts +68 -0
- package/dist/utils/post-install.js +427 -0
- package/dist/utils/safe-delete-install.d.ts +22 -0
- package/dist/utils/safe-delete-install.js +156 -0
- package/dist/utils/safe-delete.d.ts +12 -0
- package/dist/utils/safe-delete.js +83 -0
- package/package.json +18 -8
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-audit-claude/README.md +46 -0
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
- package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
- package/plugins/devflow-code-review/README.md +73 -0
- package/plugins/devflow-code-review/agents/git.md +272 -0
- package/plugins/devflow-code-review/agents/reviewer.md +119 -0
- package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
- package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
- package/plugins/devflow-code-review/commands/code-review.md +141 -0
- package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
- package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
- package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
- package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
- package/plugins/devflow-core-skills/README.md +50 -0
- package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
- package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
- package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
- package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
- package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
- package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
- package/plugins/devflow-debug/README.md +65 -0
- package/plugins/devflow-debug/agents/git.md +272 -0
- package/plugins/devflow-debug/commands/debug-teams.md +231 -0
- package/plugins/devflow-debug/commands/debug.md +160 -0
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
- package/plugins/devflow-implement/README.md +71 -0
- package/plugins/devflow-implement/agents/coder.md +122 -0
- package/plugins/devflow-implement/agents/git.md +272 -0
- package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
- package/plugins/devflow-implement/agents/shepherd.md +94 -0
- package/plugins/devflow-implement/agents/simplifier.md +62 -0
- package/plugins/devflow-implement/agents/skimmer.md +88 -0
- package/plugins/devflow-implement/agents/synthesizer.md +204 -0
- package/plugins/devflow-implement/agents/validator.md +86 -0
- package/plugins/devflow-implement/commands/implement-teams.md +608 -0
- package/plugins/devflow-implement/commands/implement.md +426 -0
- package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
- package/plugins/devflow-resolve/README.md +65 -0
- package/plugins/devflow-resolve/agents/git.md +272 -0
- package/plugins/devflow-resolve/agents/resolver.md +131 -0
- package/plugins/devflow-resolve/agents/simplifier.md +62 -0
- package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
- package/plugins/devflow-resolve/commands/resolve.md +237 -0
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-self-review/README.md +38 -0
- package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
- package/plugins/devflow-self-review/agents/simplifier.md +62 -0
- package/plugins/devflow-self-review/agents/validator.md +86 -0
- package/plugins/devflow-self-review/commands/self-review.md +126 -0
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
- package/plugins/devflow-specify/README.md +46 -0
- package/plugins/devflow-specify/agents/skimmer.md +88 -0
- package/plugins/devflow-specify/agents/synthesizer.md +204 -0
- package/plugins/devflow-specify/commands/specify-teams.md +314 -0
- package/plugins/devflow-specify/commands/specify.md +179 -0
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
- package/scripts/hooks/background-memory-update.sh +167 -0
- package/scripts/hooks/pre-compact-memory.sh +81 -0
- package/scripts/hooks/session-start-memory.sh +84 -0
- package/scripts/hooks/stop-update-memory.sh +81 -0
- package/shared/agents/coder.md +122 -0
- package/shared/agents/git.md +272 -0
- package/shared/agents/resolver.md +131 -0
- package/shared/agents/reviewer.md +119 -0
- package/shared/agents/scrutinizer.md +80 -0
- package/shared/agents/shepherd.md +94 -0
- package/shared/agents/simplifier.md +62 -0
- package/shared/agents/skimmer.md +88 -0
- package/shared/agents/synthesizer.md +204 -0
- package/shared/agents/validator.md +86 -0
- package/shared/skills/accessibility/SKILL.md +229 -0
- package/shared/skills/accessibility/references/detection.md +171 -0
- package/shared/skills/accessibility/references/patterns.md +670 -0
- package/shared/skills/accessibility/references/violations.md +419 -0
- package/shared/skills/agent-teams/SKILL.md +124 -0
- package/shared/skills/agent-teams/references/cleanup.md +104 -0
- package/shared/skills/agent-teams/references/communication.md +122 -0
- package/shared/skills/agent-teams/references/team-patterns.md +217 -0
- package/shared/skills/architecture-patterns/SKILL.md +153 -0
- package/shared/skills/architecture-patterns/references/detection.md +337 -0
- package/shared/skills/architecture-patterns/references/patterns.md +873 -0
- package/shared/skills/architecture-patterns/references/violations.md +575 -0
- package/shared/skills/complexity-patterns/SKILL.md +143 -0
- package/shared/skills/complexity-patterns/references/detection.md +264 -0
- package/shared/skills/complexity-patterns/references/patterns.md +487 -0
- package/shared/skills/complexity-patterns/references/violations.md +361 -0
- package/shared/skills/consistency-patterns/SKILL.md +140 -0
- package/shared/skills/consistency-patterns/references/detection.md +207 -0
- package/shared/skills/consistency-patterns/references/patterns.md +202 -0
- package/shared/skills/consistency-patterns/references/violations.md +213 -0
- package/shared/skills/core-patterns/SKILL.md +162 -0
- package/shared/skills/core-patterns/references/checklist.md +276 -0
- package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/shared/skills/core-patterns/references/detection.md +303 -0
- package/shared/skills/core-patterns/references/patterns.md +576 -0
- package/shared/skills/core-patterns/references/violations.md +369 -0
- package/shared/skills/database-patterns/SKILL.md +134 -0
- package/shared/skills/database-patterns/references/detection.md +208 -0
- package/shared/skills/database-patterns/references/patterns.md +394 -0
- package/shared/skills/database-patterns/references/violations.md +332 -0
- package/shared/skills/dependencies-patterns/SKILL.md +141 -0
- package/shared/skills/dependencies-patterns/references/detection.md +181 -0
- package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
- package/shared/skills/dependencies-patterns/references/violations.md +247 -0
- package/shared/skills/docs-framework/SKILL.md +134 -0
- package/shared/skills/docs-framework/references/patterns.md +346 -0
- package/shared/skills/docs-framework/references/violations.md +221 -0
- package/shared/skills/documentation-patterns/SKILL.md +125 -0
- package/shared/skills/documentation-patterns/references/detection.md +190 -0
- package/shared/skills/documentation-patterns/references/patterns.md +189 -0
- package/shared/skills/documentation-patterns/references/violations.md +163 -0
- package/shared/skills/frontend-design/SKILL.md +254 -0
- package/shared/skills/frontend-design/references/detection.md +184 -0
- package/shared/skills/frontend-design/references/patterns.md +511 -0
- package/shared/skills/frontend-design/references/violations.md +453 -0
- package/shared/skills/git-safety/SKILL.md +122 -0
- package/shared/skills/git-safety/references/detection.md +290 -0
- package/shared/skills/git-safety/references/patterns.md +289 -0
- package/shared/skills/git-safety/references/violations.md +18 -0
- package/shared/skills/git-workflow/SKILL.md +158 -0
- package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
- package/shared/skills/git-workflow/references/commit-violations.md +77 -0
- package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
- package/shared/skills/git-workflow/references/pr-violations.md +96 -0
- package/shared/skills/github-patterns/SKILL.md +153 -0
- package/shared/skills/github-patterns/references/patterns.md +572 -0
- package/shared/skills/github-patterns/references/violations.md +298 -0
- package/shared/skills/implementation-patterns/SKILL.md +162 -0
- package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
- package/shared/skills/implementation-patterns/references/violations.md +483 -0
- package/shared/skills/input-validation/SKILL.md +148 -0
- package/shared/skills/input-validation/references/detection.md +283 -0
- package/shared/skills/input-validation/references/patterns.md +361 -0
- package/shared/skills/input-validation/references/violations.md +224 -0
- package/shared/skills/performance-patterns/SKILL.md +154 -0
- package/shared/skills/performance-patterns/references/detection.md +351 -0
- package/shared/skills/performance-patterns/references/patterns.md +503 -0
- package/shared/skills/performance-patterns/references/violations.md +354 -0
- package/shared/skills/react/SKILL.md +276 -0
- package/shared/skills/react/references/patterns.md +1331 -0
- package/shared/skills/react/references/violations.md +565 -0
- package/shared/skills/regression-patterns/SKILL.md +146 -0
- package/shared/skills/regression-patterns/references/detection.md +237 -0
- package/shared/skills/regression-patterns/references/patterns.md +226 -0
- package/shared/skills/regression-patterns/references/violations.md +225 -0
- package/shared/skills/review-methodology/SKILL.md +119 -0
- package/shared/skills/review-methodology/references/patterns.md +186 -0
- package/shared/skills/review-methodology/references/report-template.md +142 -0
- package/shared/skills/review-methodology/references/violations.md +125 -0
- package/shared/skills/security-patterns/SKILL.md +156 -0
- package/shared/skills/security-patterns/references/detection.md +287 -0
- package/shared/skills/security-patterns/references/patterns.md +507 -0
- package/shared/skills/security-patterns/references/violations.md +237 -0
- package/shared/skills/self-review/SKILL.md +149 -0
- package/shared/skills/self-review/references/patterns.md +405 -0
- package/shared/skills/self-review/references/report-template.md +253 -0
- package/shared/skills/self-review/references/violations.md +308 -0
- package/shared/skills/test-patterns/SKILL.md +183 -0
- package/shared/skills/test-patterns/references/detection.md +149 -0
- package/shared/skills/test-patterns/references/patterns.md +220 -0
- package/shared/skills/test-patterns/references/report-template.md +108 -0
- package/shared/skills/test-patterns/references/violations.md +221 -0
- package/shared/skills/typescript/SKILL.md +176 -0
- package/shared/skills/typescript/references/patterns.md +1105 -0
- package/shared/skills/typescript/references/violations.md +433 -0
- package/src/templates/claudeignore.template +188 -0
- package/src/templates/managed-settings.json +146 -0
- package/src/templates/settings.json +59 -0
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/src/claude/CLAUDE.md +0 -400
- package/src/claude/agents/devflow/audit-architecture.md +0 -132
- package/src/claude/agents/devflow/audit-complexity.md +0 -132
- package/src/claude/agents/devflow/audit-database.md +0 -132
- package/src/claude/agents/devflow/audit-dependencies.md +0 -132
- package/src/claude/agents/devflow/audit-documentation.md +0 -132
- package/src/claude/agents/devflow/audit-performance.md +0 -256
- package/src/claude/agents/devflow/audit-security.md +0 -259
- package/src/claude/agents/devflow/audit-tests.md +0 -132
- package/src/claude/agents/devflow/audit-typescript.md +0 -132
- package/src/claude/agents/devflow/brainstorm.md +0 -279
- package/src/claude/agents/devflow/catch-up.md +0 -345
- package/src/claude/agents/devflow/code-review.md +0 -307
- package/src/claude/agents/devflow/commit.md +0 -380
- package/src/claude/agents/devflow/debug.md +0 -476
- package/src/claude/agents/devflow/design.md +0 -491
- package/src/claude/agents/devflow/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -423
- package/src/claude/agents/devflow/release.md +0 -1137
- package/src/claude/agents/devflow/tech-debt.md +0 -338
- package/src/claude/commands/devflow/brainstorm.md +0 -68
- package/src/claude/commands/devflow/breakdown.md +0 -125
- package/src/claude/commands/devflow/catch-up.md +0 -29
- package/src/claude/commands/devflow/code-review.md +0 -237
- package/src/claude/commands/devflow/commit.md +0 -17
- package/src/claude/commands/devflow/debug.md +0 -56
- package/src/claude/commands/devflow/design.md +0 -82
- package/src/claude/commands/devflow/devlog.md +0 -408
- package/src/claude/commands/devflow/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -269
- package/src/claude/commands/devflow/release.md +0 -251
- package/src/claude/commands/devflow/resolve-comments.md +0 -583
- package/src/claude/scripts/statusline.sh +0 -47
- package/src/claude/settings.json +0 -6
- package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
- package/src/claude/skills/devflow/debug/SKILL.md +0 -119
- package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
- package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
- package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
- package/src/claude/skills/devflow/research/SKILL.md +0 -138
- package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# Accessibility Violations
|
|
2
|
+
|
|
3
|
+
Extended violation patterns for accessibility reviews. Reference from main SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Keyboard Navigation Violations
|
|
6
|
+
|
|
7
|
+
### No Keyboard Access
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
// VIOLATION: onClick without keyboard equivalent
|
|
11
|
+
<div onClick={handleClick} className="card">
|
|
12
|
+
Click me
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
// VIOLATION: Custom element not focusable
|
|
16
|
+
<span className="link" onClick={() => navigate('/page')}>
|
|
17
|
+
Go to page
|
|
18
|
+
</span>
|
|
19
|
+
|
|
20
|
+
// VIOLATION: Drag-only interaction
|
|
21
|
+
<div
|
|
22
|
+
draggable
|
|
23
|
+
onDragStart={handleDrag}
|
|
24
|
+
onDragEnd={handleDrop}
|
|
25
|
+
>
|
|
26
|
+
Drag me (no keyboard alternative)
|
|
27
|
+
</div>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Missing Focus Management
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
// VIOLATION: Modal doesn't trap focus
|
|
34
|
+
function Modal({ isOpen, children }) {
|
|
35
|
+
return isOpen ? (
|
|
36
|
+
<div className="modal-overlay">
|
|
37
|
+
<div className="modal-content">
|
|
38
|
+
{children}
|
|
39
|
+
<button onClick={onClose}>Close</button>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
) : null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// VIOLATION: Dropdown doesn't return focus on close
|
|
46
|
+
function Dropdown() {
|
|
47
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<div>
|
|
51
|
+
<button onClick={() => setIsOpen(true)}>Open</button>
|
|
52
|
+
{isOpen && (
|
|
53
|
+
<ul>
|
|
54
|
+
<li onClick={() => setIsOpen(false)}>Option 1</li>
|
|
55
|
+
{/* Focus lost when dropdown closes */}
|
|
56
|
+
</ul>
|
|
57
|
+
)}
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Poor Focus Visibility
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
/* VIOLATION: Focus removed entirely */
|
|
67
|
+
*:focus {
|
|
68
|
+
outline: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* VIOLATION: Focus invisible on dark backgrounds */
|
|
72
|
+
button:focus {
|
|
73
|
+
outline: 1px solid #333;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* VIOLATION: Focus style same as hover */
|
|
77
|
+
button:hover,
|
|
78
|
+
button:focus {
|
|
79
|
+
background: #eee;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Illogical Tab Order
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
// VIOLATION: tabIndex breaks natural order
|
|
87
|
+
<div>
|
|
88
|
+
<input tabIndex={3} placeholder="Third" />
|
|
89
|
+
<input tabIndex={1} placeholder="First" />
|
|
90
|
+
<input tabIndex={2} placeholder="Second" />
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
// VIOLATION: Positive tabIndex on many elements
|
|
94
|
+
<nav>
|
|
95
|
+
<a href="/" tabIndex={1}>Home</a>
|
|
96
|
+
<a href="/about" tabIndex={2}>About</a>
|
|
97
|
+
<a href="/contact" tabIndex={3}>Contact</a>
|
|
98
|
+
</nav>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## ARIA Violations
|
|
104
|
+
|
|
105
|
+
### Missing Labels
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
// VIOLATION: Icon button without accessible name
|
|
109
|
+
<button onClick={handleClose}>
|
|
110
|
+
<CloseIcon />
|
|
111
|
+
</button>
|
|
112
|
+
|
|
113
|
+
// VIOLATION: Input without label
|
|
114
|
+
<input type="text" placeholder="Search" />
|
|
115
|
+
|
|
116
|
+
// VIOLATION: Image without alt
|
|
117
|
+
<img src="/logo.png" />
|
|
118
|
+
|
|
119
|
+
// VIOLATION: Link without text
|
|
120
|
+
<a href="/profile">
|
|
121
|
+
<Avatar src={user.avatar} />
|
|
122
|
+
</a>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Incorrect ARIA Usage
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
// VIOLATION: role="button" on already-button element
|
|
129
|
+
<button role="button" onClick={handleClick}>Submit</button>
|
|
130
|
+
|
|
131
|
+
// VIOLATION: aria-hidden on focusable element
|
|
132
|
+
<button aria-hidden="true" onClick={handleClick}>
|
|
133
|
+
Hidden but focusable
|
|
134
|
+
</button>
|
|
135
|
+
|
|
136
|
+
// VIOLATION: Missing required ARIA attributes
|
|
137
|
+
<div role="slider">
|
|
138
|
+
{/* Missing aria-valuenow, aria-valuemin, aria-valuemax */}
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
// VIOLATION: aria-label duplicating visible text
|
|
142
|
+
<button aria-label="Submit form">Submit form</button>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Overuse of ARIA
|
|
146
|
+
|
|
147
|
+
```tsx
|
|
148
|
+
// VIOLATION: ARIA where semantic HTML suffices
|
|
149
|
+
<div role="navigation" aria-label="Main navigation">
|
|
150
|
+
<div role="list">
|
|
151
|
+
<div role="listitem">
|
|
152
|
+
<div role="link" onClick={() => navigate('/')}>Home</div>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
// Should be:
|
|
158
|
+
<nav aria-label="Main">
|
|
159
|
+
<ul>
|
|
160
|
+
<li><a href="/">Home</a></li>
|
|
161
|
+
</ul>
|
|
162
|
+
</nav>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Color and Contrast Violations
|
|
168
|
+
|
|
169
|
+
### Insufficient Contrast
|
|
170
|
+
|
|
171
|
+
```css
|
|
172
|
+
/* VIOLATION: Light gray on white (1.5:1 ratio) */
|
|
173
|
+
.muted-text {
|
|
174
|
+
color: #aaa;
|
|
175
|
+
background: #fff;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* VIOLATION: Placeholder text too light */
|
|
179
|
+
input::placeholder {
|
|
180
|
+
color: #ccc;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* VIOLATION: Disabled state invisible */
|
|
184
|
+
button:disabled {
|
|
185
|
+
color: #eee;
|
|
186
|
+
background: #f5f5f5;
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Color-Only Information
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
// VIOLATION: Status only indicated by color
|
|
194
|
+
<span style={{ color: status === 'error' ? 'red' : 'green' }}>
|
|
195
|
+
{status}
|
|
196
|
+
</span>
|
|
197
|
+
|
|
198
|
+
// VIOLATION: Required fields only marked red
|
|
199
|
+
<label style={{ color: required ? 'red' : 'inherit' }}>
|
|
200
|
+
{label}
|
|
201
|
+
</label>
|
|
202
|
+
|
|
203
|
+
// VIOLATION: Chart using only color to differentiate data
|
|
204
|
+
<LineChart>
|
|
205
|
+
<Line stroke="red" data={series1} />
|
|
206
|
+
<Line stroke="blue" data={series2} />
|
|
207
|
+
{/* No pattern, icon, or label differentiation */}
|
|
208
|
+
</LineChart>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Form Violations
|
|
214
|
+
|
|
215
|
+
### Missing Error Association
|
|
216
|
+
|
|
217
|
+
```tsx
|
|
218
|
+
// VIOLATION: Error not associated with input
|
|
219
|
+
<div>
|
|
220
|
+
<input id="email" type="email" />
|
|
221
|
+
{error && <span className="error">{error}</span>}
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
// VIOLATION: Error not announced to screen readers
|
|
225
|
+
<div>
|
|
226
|
+
<input aria-invalid={!!error} />
|
|
227
|
+
{error && <div className="error-message">{error}</div>}
|
|
228
|
+
</div>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Placeholder as Label
|
|
232
|
+
|
|
233
|
+
```tsx
|
|
234
|
+
// VIOLATION: Placeholder disappears, no persistent label
|
|
235
|
+
<input placeholder="Email address" />
|
|
236
|
+
|
|
237
|
+
// VIOLATION: Floating label without visible label initially
|
|
238
|
+
function FloatingInput({ label }) {
|
|
239
|
+
const [value, setValue] = useState('');
|
|
240
|
+
return (
|
|
241
|
+
<div>
|
|
242
|
+
<input
|
|
243
|
+
value={value}
|
|
244
|
+
onChange={(e) => setValue(e.target.value)}
|
|
245
|
+
/>
|
|
246
|
+
<label className={value ? 'floating' : 'hidden'}>{label}</label>
|
|
247
|
+
</div>
|
|
248
|
+
);
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Form Not Keyboard Navigable
|
|
253
|
+
|
|
254
|
+
```tsx
|
|
255
|
+
// VIOLATION: Custom select not keyboard accessible
|
|
256
|
+
function CustomSelect({ options, value, onChange }) {
|
|
257
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
258
|
+
|
|
259
|
+
return (
|
|
260
|
+
<div className="select" onClick={() => setIsOpen(!isOpen)}>
|
|
261
|
+
<span>{value}</span>
|
|
262
|
+
{isOpen && (
|
|
263
|
+
<ul className="options">
|
|
264
|
+
{options.map(opt => (
|
|
265
|
+
<li onClick={() => onChange(opt)}>{opt}</li>
|
|
266
|
+
))}
|
|
267
|
+
</ul>
|
|
268
|
+
)}
|
|
269
|
+
</div>
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Motion and Animation Violations
|
|
277
|
+
|
|
278
|
+
### No Reduced Motion Support
|
|
279
|
+
|
|
280
|
+
```css
|
|
281
|
+
/* VIOLATION: Animation ignores user preference */
|
|
282
|
+
.hero {
|
|
283
|
+
animation: slideIn 1s ease-in-out;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
@keyframes slideIn {
|
|
287
|
+
from { transform: translateY(100%); }
|
|
288
|
+
to { transform: translateY(0); }
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Autoplay Without Pause
|
|
293
|
+
|
|
294
|
+
```tsx
|
|
295
|
+
// VIOLATION: Video autoplays without pause control
|
|
296
|
+
<video autoPlay loop muted>
|
|
297
|
+
<source src="/background.mp4" />
|
|
298
|
+
</video>
|
|
299
|
+
|
|
300
|
+
// VIOLATION: Carousel auto-advances without pause
|
|
301
|
+
function Carousel({ slides }) {
|
|
302
|
+
useEffect(() => {
|
|
303
|
+
const interval = setInterval(nextSlide, 3000);
|
|
304
|
+
return () => clearInterval(interval);
|
|
305
|
+
}, []);
|
|
306
|
+
// No pause on hover or focus
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Flashing Content
|
|
311
|
+
|
|
312
|
+
```css
|
|
313
|
+
/* VIOLATION: Flash rate > 3 per second */
|
|
314
|
+
@keyframes flash {
|
|
315
|
+
0%, 100% { opacity: 1; }
|
|
316
|
+
50% { opacity: 0; }
|
|
317
|
+
}
|
|
318
|
+
.alert {
|
|
319
|
+
animation: flash 0.2s infinite;
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Touch Target Violations
|
|
326
|
+
|
|
327
|
+
### Small Touch Targets
|
|
328
|
+
|
|
329
|
+
```css
|
|
330
|
+
/* VIOLATION: Icon buttons too small */
|
|
331
|
+
.icon-btn {
|
|
332
|
+
width: 24px;
|
|
333
|
+
height: 24px;
|
|
334
|
+
padding: 4px;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/* VIOLATION: Inline links with no padding */
|
|
338
|
+
.inline-link {
|
|
339
|
+
/* Natural text height only */
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* VIOLATION: Close button in corner */
|
|
343
|
+
.modal-close {
|
|
344
|
+
position: absolute;
|
|
345
|
+
top: 4px;
|
|
346
|
+
right: 4px;
|
|
347
|
+
width: 16px;
|
|
348
|
+
height: 16px;
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Targets Too Close Together
|
|
353
|
+
|
|
354
|
+
```tsx
|
|
355
|
+
// VIOLATION: Adjacent small targets
|
|
356
|
+
<div className="button-group">
|
|
357
|
+
<button className="icon-btn">A</button>
|
|
358
|
+
<button className="icon-btn">B</button>
|
|
359
|
+
<button className="icon-btn">C</button>
|
|
360
|
+
{/* No spacing between 24px buttons */}
|
|
361
|
+
</div>
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## Screen Reader Violations
|
|
367
|
+
|
|
368
|
+
### Hidden Important Content
|
|
369
|
+
|
|
370
|
+
```tsx
|
|
371
|
+
// VIOLATION: Visually hidden but important content
|
|
372
|
+
<span className="sr-only">
|
|
373
|
+
Loading... {/* Never announced because sr-only wrong implementation */}
|
|
374
|
+
</span>
|
|
375
|
+
|
|
376
|
+
// VIOLATION: aria-hidden on important element
|
|
377
|
+
<main aria-hidden="true">
|
|
378
|
+
{/* Page content hidden from AT */}
|
|
379
|
+
</main>
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Meaningless Link Text
|
|
383
|
+
|
|
384
|
+
```tsx
|
|
385
|
+
// VIOLATION: Generic link text
|
|
386
|
+
<p>
|
|
387
|
+
To learn more about our services, <a href="/services">click here</a>.
|
|
388
|
+
</p>
|
|
389
|
+
|
|
390
|
+
// VIOLATION: Repeated "Read more" links
|
|
391
|
+
{posts.map(post => (
|
|
392
|
+
<article>
|
|
393
|
+
<h2>{post.title}</h2>
|
|
394
|
+
<p>{post.excerpt}</p>
|
|
395
|
+
<a href={post.url}>Read more</a>
|
|
396
|
+
</article>
|
|
397
|
+
))}
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Missing Page Structure
|
|
401
|
+
|
|
402
|
+
```tsx
|
|
403
|
+
// VIOLATION: No landmark regions
|
|
404
|
+
function App() {
|
|
405
|
+
return (
|
|
406
|
+
<div>
|
|
407
|
+
<div className="header">...</div>
|
|
408
|
+
<div className="sidebar">...</div>
|
|
409
|
+
<div className="content">...</div>
|
|
410
|
+
<div className="footer">...</div>
|
|
411
|
+
</div>
|
|
412
|
+
);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// VIOLATION: Skipped heading levels
|
|
416
|
+
<h1>Page Title</h1>
|
|
417
|
+
<h3>Section</h3> {/* h2 skipped */}
|
|
418
|
+
<h5>Subsection</h5> {/* h4 skipped */}
|
|
419
|
+
```
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-teams
|
|
3
|
+
description: This skill should be used when the user asks to "create an agent team", "spawn teammates", "set up debate protocol", "coordinate agents", or discusses peer-to-peer agent collaboration, consensus formation, or team-based workflows. Provides patterns for team spawning, message passing, adversarial debate, and quality gates driven by multi-agent consensus.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Agent Teams Patterns
|
|
9
|
+
|
|
10
|
+
Patterns for collaborative multi-agent workflows using Claude Code's Agent Teams feature. Teams enable peer-to-peer communication between agents, replacing one-way subagent reporting with adversarial debate and consensus.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **TEAMMATES CHALLENGE EACH OTHER**
|
|
15
|
+
>
|
|
16
|
+
> Every finding must survive peer scrutiny. No unchallenged claims reach the final
|
|
17
|
+
> report. A single agent's opinion is a hypothesis; consensus from debate is a finding.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## When This Activates
|
|
22
|
+
|
|
23
|
+
- Creating agent teams for review, implementation, or debugging
|
|
24
|
+
- Spawning teammates with distinct perspectives
|
|
25
|
+
- Coordinating multi-agent debate rounds
|
|
26
|
+
- Forming consensus from conflicting findings
|
|
27
|
+
|
|
28
|
+
## Core Patterns
|
|
29
|
+
|
|
30
|
+
### Team Spawning
|
|
31
|
+
|
|
32
|
+
Size team to task complexity. Assign distinct, non-overlapping perspectives.
|
|
33
|
+
|
|
34
|
+
| Task Complexity | Team Size | Rationale |
|
|
35
|
+
|----------------|-----------|-----------|
|
|
36
|
+
| Simple review | 2-3 | Security + architecture sufficient |
|
|
37
|
+
| Full review | 4-5 | Core perspectives covered |
|
|
38
|
+
| Debug investigation | 3-5 | One per hypothesis |
|
|
39
|
+
| Implementation | 2-4 | Domain-separated work units |
|
|
40
|
+
| Specification | 3-4 | Debate requirements before user gates |
|
|
41
|
+
| Resolution | 2-4 | Cross-validate fixes across batches |
|
|
42
|
+
|
|
43
|
+
**Model guidance**: Explorers/Reviewers inherit parent model. Validators use `model: haiku`.
|
|
44
|
+
|
|
45
|
+
### Detection and Fallback
|
|
46
|
+
|
|
47
|
+
Attempt `TeamCreate`. If it fails or the tool is unavailable, fall back to parallel subagents:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
try TeamCreate → success → proceed with team workflow
|
|
51
|
+
→ failure → fall back to parallel Task() calls
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Always document which mode was used in the final report.
|
|
55
|
+
|
|
56
|
+
### Task List Coordination
|
|
57
|
+
|
|
58
|
+
Use `TaskCreate` to give each teammate a trackable work unit. Lead checks `TaskList` for structured progress visibility beyond ad-hoc messages:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
1. Lead creates tasks for each teammate's work unit
|
|
62
|
+
2. Teammates claim tasks via TaskUpdate (owner: self)
|
|
63
|
+
3. Teammates mark tasks completed when done
|
|
64
|
+
4. Lead checks TaskList before proceeding to next phase
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Challenge Protocol
|
|
68
|
+
|
|
69
|
+
1. **Initial work**: Each teammate completes independent analysis
|
|
70
|
+
2. **Exchange**: Lead broadcasts "Share findings and challenge others"
|
|
71
|
+
3. **Direct debate**: Teammates message each other with evidence
|
|
72
|
+
4. **Resolution**: Contradictions resolved through 1-2 exchanges
|
|
73
|
+
5. **Escalation**: Unresolved after 2 exchanges → report disagreement to lead
|
|
74
|
+
|
|
75
|
+
### Consensus Formation
|
|
76
|
+
|
|
77
|
+
| Agreement Level | Confidence | Report As |
|
|
78
|
+
|----------------|------------|-----------|
|
|
79
|
+
| Unanimous | HIGH | Confirmed finding |
|
|
80
|
+
| Majority (>50%) | MEDIUM | Finding with noted dissent |
|
|
81
|
+
| Split (50/50) | LOW | Disagreement with both perspectives |
|
|
82
|
+
|
|
83
|
+
### Team Cleanup
|
|
84
|
+
|
|
85
|
+
Lead MUST always handle cleanup:
|
|
86
|
+
1. Ensure all teammates have completed or been shut down
|
|
87
|
+
2. Call `TeamDelete` to release resources
|
|
88
|
+
3. Verify no orphaned sessions remain
|
|
89
|
+
4. **CRITICAL**: Confirm cleanup completed before creating next team
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Limitations
|
|
94
|
+
|
|
95
|
+
| Limitation | Impact | Guidance |
|
|
96
|
+
|-----------|--------|----------|
|
|
97
|
+
| One team per session | Cannot run two teams concurrently | Shut down and verify cleanup before creating next team |
|
|
98
|
+
| No nested teams | Teammates cannot spawn sub-teams | Keep hierarchy flat; only lead creates teams |
|
|
99
|
+
| No session resumption | Teammate state lost if interrupted | Start fresh; don't rely on teammate state persistence |
|
|
100
|
+
| Shutdown can be slow | Cleanup may take several seconds | Wait for confirmation; don't race to create next team |
|
|
101
|
+
| Task status may lag | Task list updates aren't instant | Use direct messages for time-sensitive coordination |
|
|
102
|
+
| Permissions inherited | Teammates get lead's permissions at spawn | Cannot escalate permissions mid-session |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Anti-Patterns
|
|
107
|
+
|
|
108
|
+
| Anti-Pattern | Correct Approach |
|
|
109
|
+
|-------------|-----------------|
|
|
110
|
+
| Overlapping perspectives | Assign distinct, non-overlapping focus areas |
|
|
111
|
+
| Skipping debate round | Always require peer challenge before synthesis |
|
|
112
|
+
| Unlimited debate | Cap at 2 exchanges per topic, then escalate |
|
|
113
|
+
| Lead does analysis work | Lead coordinates only; teammates do analysis |
|
|
114
|
+
| Ignoring minority opinion | Report dissent with evidence in final output |
|
|
115
|
+
| Creating team before prior cleanup | Wait for TeamDelete confirmation, then create |
|
|
116
|
+
| Messaging-only coordination | Use task list for structured progress tracking |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Extended References
|
|
121
|
+
|
|
122
|
+
- `references/team-patterns.md` - Team structures for review, implement, debug, specify, resolve workflows
|
|
123
|
+
- `references/communication.md` - Message protocols, broadcast patterns, debate formats
|
|
124
|
+
- `references/cleanup.md` - Session management, orphan detection, resource cleanup
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Session Management and Cleanup
|
|
2
|
+
|
|
3
|
+
## Team Lifecycle
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
1. Lead creates team
|
|
7
|
+
2. Lead spawns teammates
|
|
8
|
+
3. Teammates work independently
|
|
9
|
+
4. Debate rounds (teammates message directly)
|
|
10
|
+
5. Lead collects consensus
|
|
11
|
+
6. Lead shuts down teammates
|
|
12
|
+
7. Lead calls cleanup
|
|
13
|
+
8. Lead verifies no orphans
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Cleanup Rules
|
|
19
|
+
|
|
20
|
+
### Lead Responsibilities
|
|
21
|
+
|
|
22
|
+
1. **Always call cleanup** - Even if team work was interrupted or errored
|
|
23
|
+
2. **Shut down teammates first** - Before calling cleanup
|
|
24
|
+
3. **Verify completion** - Check that no orphaned sessions remain
|
|
25
|
+
|
|
26
|
+
### Error Handling
|
|
27
|
+
|
|
28
|
+
If a teammate errors or hangs:
|
|
29
|
+
1. Send shutdown message to the teammate
|
|
30
|
+
2. Wait briefly for graceful shutdown
|
|
31
|
+
3. Proceed with cleanup for remaining team
|
|
32
|
+
4. Report the failed teammate in final output
|
|
33
|
+
|
|
34
|
+
### Orphan Detection
|
|
35
|
+
|
|
36
|
+
After cleanup, verify:
|
|
37
|
+
- No tmux sessions from the team remain (split-pane mode)
|
|
38
|
+
- No background processes from teammates
|
|
39
|
+
- Team config at `~/.claude/teams/{team-name}/` is cleaned up
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Known Limitations
|
|
44
|
+
|
|
45
|
+
| Limitation | Mitigation |
|
|
46
|
+
|-----------|------------|
|
|
47
|
+
| No session resumption for teammates | Start fresh; don't rely on teammate state persistence |
|
|
48
|
+
| One team per session | Queue team work sequentially if needed |
|
|
49
|
+
| Task status may lag | Use direct messages for time-sensitive coordination |
|
|
50
|
+
| No nested teams | Teammates cannot spawn sub-teams; keep hierarchy flat |
|
|
51
|
+
| Split-pane requires tmux/iTerm2 | Fall back to in-process mode if unavailable |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Cost Management
|
|
56
|
+
|
|
57
|
+
### Token Optimization
|
|
58
|
+
|
|
59
|
+
| Strategy | Savings |
|
|
60
|
+
|----------|---------|
|
|
61
|
+
| Use haiku for validation teammates | ~70% per validation agent |
|
|
62
|
+
| Limit debate to 2 rounds | Prevents runaway token usage |
|
|
63
|
+
| Size teams to task (don't over-spawn) | Fewer agents = fewer tokens |
|
|
64
|
+
| Shut down teammates promptly | No idle token consumption |
|
|
65
|
+
|
|
66
|
+
### When NOT to Use Teams
|
|
67
|
+
|
|
68
|
+
- Simple, single-focus tasks (use regular subagent)
|
|
69
|
+
- Tasks requiring sequential dependency (no parallelism benefit)
|
|
70
|
+
- Cost-sensitive operations where subagent is sufficient
|
|
71
|
+
- Tasks where debate adds no value (e.g., formatting, simple fixes)
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Sequential Team Transition Protocol
|
|
76
|
+
|
|
77
|
+
Commands that create multiple teams (e.g., `/implement`, `/specify`) MUST follow this 4-step protocol between teams. Skipping steps causes silent failures due to the one-team-per-session constraint.
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Step 1: SHUTDOWN — Send shutdown_request to each teammate by name
|
|
81
|
+
SendMessage(type: "shutdown_request", recipient: "{name}", content: "Phase complete")
|
|
82
|
+
Wait for each shutdown_response (approve: true)
|
|
83
|
+
|
|
84
|
+
Step 2: DELETE — Remove team resources
|
|
85
|
+
TeamDelete
|
|
86
|
+
|
|
87
|
+
Step 3: VERIFY — Confirm cleanup succeeded
|
|
88
|
+
If TeamDelete returned success → proceed
|
|
89
|
+
If TeamDelete failed → retry once after 5s
|
|
90
|
+
If retry fails → HALT and report to user:
|
|
91
|
+
"Team cleanup failed for {team-name}. Cannot create next team."
|
|
92
|
+
|
|
93
|
+
Step 4: CREATE — Only now create the next team
|
|
94
|
+
TeamCreate(team_name: "{next-team-name}")
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Failure Modes
|
|
98
|
+
|
|
99
|
+
| Failure | Action |
|
|
100
|
+
|---------|--------|
|
|
101
|
+
| Teammate ignores shutdown_request | Wait 30s, then proceed to TeamDelete (force cleanup) |
|
|
102
|
+
| TeamDelete fails | Retry once after 5s delay |
|
|
103
|
+
| TeamDelete retry fails | HALT execution, report to user |
|
|
104
|
+
| TeamCreate fails after successful delete | Retry once; if fails, fall back to parallel Task() subagents |
|