devflow-kit 0.9.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +167 -29
- package/LICENSE +1 -1
- package/README.md +179 -310
- package/dist/cli.js +3 -1
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.js +311 -576
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +351 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +162 -0
- package/dist/utils/cli.d.ts +5 -0
- package/dist/utils/cli.js +14 -0
- package/dist/utils/installer.d.ts +41 -0
- package/dist/utils/installer.js +177 -0
- package/dist/utils/paths.d.ts +10 -0
- package/dist/utils/paths.js +23 -3
- package/dist/utils/post-install.d.ts +68 -0
- package/dist/utils/post-install.js +427 -0
- package/dist/utils/safe-delete-install.d.ts +22 -0
- package/dist/utils/safe-delete-install.js +156 -0
- package/dist/utils/safe-delete.d.ts +12 -0
- package/dist/utils/safe-delete.js +83 -0
- package/package.json +18 -8
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-audit-claude/README.md +46 -0
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
- package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
- package/plugins/devflow-code-review/README.md +73 -0
- package/plugins/devflow-code-review/agents/git.md +272 -0
- package/plugins/devflow-code-review/agents/reviewer.md +119 -0
- package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
- package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
- package/plugins/devflow-code-review/commands/code-review.md +141 -0
- package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
- package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
- package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
- package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
- package/plugins/devflow-core-skills/README.md +50 -0
- package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
- package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
- package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
- package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
- package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
- package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
- package/plugins/devflow-debug/README.md +65 -0
- package/plugins/devflow-debug/agents/git.md +272 -0
- package/plugins/devflow-debug/commands/debug-teams.md +231 -0
- package/plugins/devflow-debug/commands/debug.md +160 -0
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
- package/plugins/devflow-implement/README.md +71 -0
- package/plugins/devflow-implement/agents/coder.md +122 -0
- package/plugins/devflow-implement/agents/git.md +272 -0
- package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
- package/plugins/devflow-implement/agents/shepherd.md +94 -0
- package/plugins/devflow-implement/agents/simplifier.md +62 -0
- package/plugins/devflow-implement/agents/skimmer.md +88 -0
- package/plugins/devflow-implement/agents/synthesizer.md +204 -0
- package/plugins/devflow-implement/agents/validator.md +86 -0
- package/plugins/devflow-implement/commands/implement-teams.md +608 -0
- package/plugins/devflow-implement/commands/implement.md +426 -0
- package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
- package/plugins/devflow-resolve/README.md +65 -0
- package/plugins/devflow-resolve/agents/git.md +272 -0
- package/plugins/devflow-resolve/agents/resolver.md +131 -0
- package/plugins/devflow-resolve/agents/simplifier.md +62 -0
- package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
- package/plugins/devflow-resolve/commands/resolve.md +237 -0
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-self-review/README.md +38 -0
- package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
- package/plugins/devflow-self-review/agents/simplifier.md +62 -0
- package/plugins/devflow-self-review/agents/validator.md +86 -0
- package/plugins/devflow-self-review/commands/self-review.md +126 -0
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
- package/plugins/devflow-specify/README.md +46 -0
- package/plugins/devflow-specify/agents/skimmer.md +88 -0
- package/plugins/devflow-specify/agents/synthesizer.md +204 -0
- package/plugins/devflow-specify/commands/specify-teams.md +314 -0
- package/plugins/devflow-specify/commands/specify.md +179 -0
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
- package/scripts/hooks/background-memory-update.sh +167 -0
- package/scripts/hooks/pre-compact-memory.sh +81 -0
- package/scripts/hooks/session-start-memory.sh +84 -0
- package/scripts/hooks/stop-update-memory.sh +81 -0
- package/shared/agents/coder.md +122 -0
- package/shared/agents/git.md +272 -0
- package/shared/agents/resolver.md +131 -0
- package/shared/agents/reviewer.md +119 -0
- package/shared/agents/scrutinizer.md +80 -0
- package/shared/agents/shepherd.md +94 -0
- package/shared/agents/simplifier.md +62 -0
- package/shared/agents/skimmer.md +88 -0
- package/shared/agents/synthesizer.md +204 -0
- package/shared/agents/validator.md +86 -0
- package/shared/skills/accessibility/SKILL.md +229 -0
- package/shared/skills/accessibility/references/detection.md +171 -0
- package/shared/skills/accessibility/references/patterns.md +670 -0
- package/shared/skills/accessibility/references/violations.md +419 -0
- package/shared/skills/agent-teams/SKILL.md +124 -0
- package/shared/skills/agent-teams/references/cleanup.md +104 -0
- package/shared/skills/agent-teams/references/communication.md +122 -0
- package/shared/skills/agent-teams/references/team-patterns.md +217 -0
- package/shared/skills/architecture-patterns/SKILL.md +153 -0
- package/shared/skills/architecture-patterns/references/detection.md +337 -0
- package/shared/skills/architecture-patterns/references/patterns.md +873 -0
- package/shared/skills/architecture-patterns/references/violations.md +575 -0
- package/shared/skills/complexity-patterns/SKILL.md +143 -0
- package/shared/skills/complexity-patterns/references/detection.md +264 -0
- package/shared/skills/complexity-patterns/references/patterns.md +487 -0
- package/shared/skills/complexity-patterns/references/violations.md +361 -0
- package/shared/skills/consistency-patterns/SKILL.md +140 -0
- package/shared/skills/consistency-patterns/references/detection.md +207 -0
- package/shared/skills/consistency-patterns/references/patterns.md +202 -0
- package/shared/skills/consistency-patterns/references/violations.md +213 -0
- package/shared/skills/core-patterns/SKILL.md +162 -0
- package/shared/skills/core-patterns/references/checklist.md +276 -0
- package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/shared/skills/core-patterns/references/detection.md +303 -0
- package/shared/skills/core-patterns/references/patterns.md +576 -0
- package/shared/skills/core-patterns/references/violations.md +369 -0
- package/shared/skills/database-patterns/SKILL.md +134 -0
- package/shared/skills/database-patterns/references/detection.md +208 -0
- package/shared/skills/database-patterns/references/patterns.md +394 -0
- package/shared/skills/database-patterns/references/violations.md +332 -0
- package/shared/skills/dependencies-patterns/SKILL.md +141 -0
- package/shared/skills/dependencies-patterns/references/detection.md +181 -0
- package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
- package/shared/skills/dependencies-patterns/references/violations.md +247 -0
- package/shared/skills/docs-framework/SKILL.md +134 -0
- package/shared/skills/docs-framework/references/patterns.md +346 -0
- package/shared/skills/docs-framework/references/violations.md +221 -0
- package/shared/skills/documentation-patterns/SKILL.md +125 -0
- package/shared/skills/documentation-patterns/references/detection.md +190 -0
- package/shared/skills/documentation-patterns/references/patterns.md +189 -0
- package/shared/skills/documentation-patterns/references/violations.md +163 -0
- package/shared/skills/frontend-design/SKILL.md +254 -0
- package/shared/skills/frontend-design/references/detection.md +184 -0
- package/shared/skills/frontend-design/references/patterns.md +511 -0
- package/shared/skills/frontend-design/references/violations.md +453 -0
- package/shared/skills/git-safety/SKILL.md +122 -0
- package/shared/skills/git-safety/references/detection.md +290 -0
- package/shared/skills/git-safety/references/patterns.md +289 -0
- package/shared/skills/git-safety/references/violations.md +18 -0
- package/shared/skills/git-workflow/SKILL.md +158 -0
- package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
- package/shared/skills/git-workflow/references/commit-violations.md +77 -0
- package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
- package/shared/skills/git-workflow/references/pr-violations.md +96 -0
- package/shared/skills/github-patterns/SKILL.md +153 -0
- package/shared/skills/github-patterns/references/patterns.md +572 -0
- package/shared/skills/github-patterns/references/violations.md +298 -0
- package/shared/skills/implementation-patterns/SKILL.md +162 -0
- package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
- package/shared/skills/implementation-patterns/references/violations.md +483 -0
- package/shared/skills/input-validation/SKILL.md +148 -0
- package/shared/skills/input-validation/references/detection.md +283 -0
- package/shared/skills/input-validation/references/patterns.md +361 -0
- package/shared/skills/input-validation/references/violations.md +224 -0
- package/shared/skills/performance-patterns/SKILL.md +154 -0
- package/shared/skills/performance-patterns/references/detection.md +351 -0
- package/shared/skills/performance-patterns/references/patterns.md +503 -0
- package/shared/skills/performance-patterns/references/violations.md +354 -0
- package/shared/skills/react/SKILL.md +276 -0
- package/shared/skills/react/references/patterns.md +1331 -0
- package/shared/skills/react/references/violations.md +565 -0
- package/shared/skills/regression-patterns/SKILL.md +146 -0
- package/shared/skills/regression-patterns/references/detection.md +237 -0
- package/shared/skills/regression-patterns/references/patterns.md +226 -0
- package/shared/skills/regression-patterns/references/violations.md +225 -0
- package/shared/skills/review-methodology/SKILL.md +119 -0
- package/shared/skills/review-methodology/references/patterns.md +186 -0
- package/shared/skills/review-methodology/references/report-template.md +142 -0
- package/shared/skills/review-methodology/references/violations.md +125 -0
- package/shared/skills/security-patterns/SKILL.md +156 -0
- package/shared/skills/security-patterns/references/detection.md +287 -0
- package/shared/skills/security-patterns/references/patterns.md +507 -0
- package/shared/skills/security-patterns/references/violations.md +237 -0
- package/shared/skills/self-review/SKILL.md +149 -0
- package/shared/skills/self-review/references/patterns.md +405 -0
- package/shared/skills/self-review/references/report-template.md +253 -0
- package/shared/skills/self-review/references/violations.md +308 -0
- package/shared/skills/test-patterns/SKILL.md +183 -0
- package/shared/skills/test-patterns/references/detection.md +149 -0
- package/shared/skills/test-patterns/references/patterns.md +220 -0
- package/shared/skills/test-patterns/references/report-template.md +108 -0
- package/shared/skills/test-patterns/references/violations.md +221 -0
- package/shared/skills/typescript/SKILL.md +176 -0
- package/shared/skills/typescript/references/patterns.md +1105 -0
- package/shared/skills/typescript/references/violations.md +433 -0
- package/src/templates/claudeignore.template +188 -0
- package/src/templates/managed-settings.json +146 -0
- package/src/templates/settings.json +59 -0
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/src/claude/CLAUDE.md +0 -400
- package/src/claude/agents/devflow/audit-architecture.md +0 -132
- package/src/claude/agents/devflow/audit-complexity.md +0 -132
- package/src/claude/agents/devflow/audit-database.md +0 -132
- package/src/claude/agents/devflow/audit-dependencies.md +0 -132
- package/src/claude/agents/devflow/audit-documentation.md +0 -132
- package/src/claude/agents/devflow/audit-performance.md +0 -256
- package/src/claude/agents/devflow/audit-security.md +0 -259
- package/src/claude/agents/devflow/audit-tests.md +0 -132
- package/src/claude/agents/devflow/audit-typescript.md +0 -132
- package/src/claude/agents/devflow/brainstorm.md +0 -279
- package/src/claude/agents/devflow/catch-up.md +0 -345
- package/src/claude/agents/devflow/code-review.md +0 -307
- package/src/claude/agents/devflow/commit.md +0 -380
- package/src/claude/agents/devflow/debug.md +0 -476
- package/src/claude/agents/devflow/design.md +0 -491
- package/src/claude/agents/devflow/get-issue.md +0 -286
- package/src/claude/agents/devflow/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -493
- package/src/claude/agents/devflow/release.md +0 -1137
- package/src/claude/agents/devflow/tech-debt.md +0 -338
- package/src/claude/commands/devflow/brainstorm.md +0 -68
- package/src/claude/commands/devflow/breakdown.md +0 -125
- package/src/claude/commands/devflow/catch-up.md +0 -29
- package/src/claude/commands/devflow/code-review.md +0 -237
- package/src/claude/commands/devflow/commit.md +0 -17
- package/src/claude/commands/devflow/debug.md +0 -56
- package/src/claude/commands/devflow/design.md +0 -82
- package/src/claude/commands/devflow/devlog.md +0 -408
- package/src/claude/commands/devflow/get-issue.md +0 -16
- package/src/claude/commands/devflow/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -20
- package/src/claude/commands/devflow/release.md +0 -251
- package/src/claude/commands/devflow/resolve-comments.md +0 -583
- package/src/claude/scripts/statusline.sh +0 -47
- package/src/claude/settings.json +0 -6
- package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
- package/src/claude/skills/devflow/debug/SKILL.md +0 -119
- package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
- package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
- package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
- package/src/claude/skills/devflow/research/SKILL.md +0 -138
- package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
|
@@ -0,0 +1,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 |
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Communication Protocols
|
|
2
|
+
|
|
3
|
+
## Message Types
|
|
4
|
+
|
|
5
|
+
### Direct Message (one-to-one)
|
|
6
|
+
|
|
7
|
+
Use when challenging a specific teammate's finding:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
To [Security Reviewer]:
|
|
11
|
+
"Your finding about SQL injection at api/users.ts:42 - I disagree.
|
|
12
|
+
The parameterized query at line 45 handles this. Check the query builder
|
|
13
|
+
pattern used throughout this codebase."
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Broadcast (one-to-all)
|
|
17
|
+
|
|
18
|
+
Use when sharing findings that affect all teammates:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Broadcast:
|
|
22
|
+
"I found that the auth middleware is bypassed for /api/internal/* routes.
|
|
23
|
+
This affects security, architecture, and testing perspectives."
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Debate Protocol
|
|
29
|
+
|
|
30
|
+
### Round Structure
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Round 1: Initial findings (each teammate shares top findings)
|
|
34
|
+
Round 2: Challenge round (teammates dispute or validate)
|
|
35
|
+
Round 3: Resolution (update, withdraw, or escalate)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Cap: 2 challenge exchanges per topic.** If unresolved, escalate to lead.
|
|
39
|
+
|
|
40
|
+
### Challenge Format
|
|
41
|
+
|
|
42
|
+
When challenging another teammate:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
CHALLENGE to [Teammate]:
|
|
46
|
+
- Finding: [what they claimed]
|
|
47
|
+
- Evidence against: [your counter-evidence with file:line references]
|
|
48
|
+
- Suggested resolution: [what you think is correct]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Concession Format
|
|
52
|
+
|
|
53
|
+
When accepting a challenge:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
UPDATED based on [Teammate]'s challenge:
|
|
57
|
+
- Original: [what I originally claimed]
|
|
58
|
+
- Revised: [updated finding incorporating their evidence]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Escalation Format
|
|
62
|
+
|
|
63
|
+
When debate is unresolved after 2 exchanges:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
ESCALATION to Lead:
|
|
67
|
+
- Topic: [what we disagree about]
|
|
68
|
+
- Position A: [first perspective with evidence]
|
|
69
|
+
- Position B: [second perspective with evidence]
|
|
70
|
+
- Recommendation: [which has stronger evidence, or "genuinely split"]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Lead Coordination Messages
|
|
76
|
+
|
|
77
|
+
### Initiating Debate
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Lead broadcast:
|
|
81
|
+
"All teammates: Share your top 3-5 findings. After sharing, challenge
|
|
82
|
+
any finding you disagree with. Provide evidence (file:line references).
|
|
83
|
+
You have 2 exchange rounds to resolve disagreements."
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Ending Debate
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Lead broadcast:
|
|
90
|
+
"Debate round complete. Submit final findings with confidence levels:
|
|
91
|
+
- HIGH: Unanimous or unchallenged with evidence
|
|
92
|
+
- MEDIUM: Majority agreed, dissent noted
|
|
93
|
+
- LOW: Split opinion, both perspectives included"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Requesting Clarification
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Lead to [Teammate]:
|
|
100
|
+
"Your finding about X contradicts [Other Teammate]'s finding about Y.
|
|
101
|
+
Can you address their evidence at [file:line]?"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Output Aggregation
|
|
107
|
+
|
|
108
|
+
### Consensus Report Structure
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
## Confirmed Findings (HIGH confidence)
|
|
112
|
+
[Findings all teammates agreed on or that survived challenge]
|
|
113
|
+
|
|
114
|
+
## Majority Findings (MEDIUM confidence)
|
|
115
|
+
[Findings most agreed on, with dissenting view noted]
|
|
116
|
+
|
|
117
|
+
## Split Findings (LOW confidence)
|
|
118
|
+
[Genuinely contested findings with both perspectives and evidence]
|
|
119
|
+
|
|
120
|
+
## Withdrawn Findings
|
|
121
|
+
[Findings that were disproved during debate]
|
|
122
|
+
```
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Team Patterns by Workflow
|
|
2
|
+
|
|
3
|
+
## Task-Based Coordination
|
|
4
|
+
|
|
5
|
+
All team workflows should use the shared task list for structured progress tracking:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. Lead creates team
|
|
9
|
+
2. Lead creates tasks (TaskCreate) for each teammate's work unit
|
|
10
|
+
3. Lead spawns teammates, assigning tasks via TaskUpdate(owner)
|
|
11
|
+
4. Teammates work, mark tasks completed via TaskUpdate(status: completed)
|
|
12
|
+
5. Lead checks TaskList before proceeding to next phase
|
|
13
|
+
6. Lead shuts down teammates, calls TeamDelete
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Example task creation for a review team:**
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
TaskCreate: "Security review of auth module" → assigned to Security Reviewer
|
|
20
|
+
TaskCreate: "Architecture review of auth module" → assigned to Architecture Reviewer
|
|
21
|
+
TaskCreate: "Performance review of auth module" → assigned to Performance Reviewer
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Review Team
|
|
27
|
+
|
|
28
|
+
### Standard Review (4 perspectives)
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Lead spawns:
|
|
32
|
+
├── Security reviewer → vulnerabilities, injection, auth, crypto
|
|
33
|
+
├── Architecture reviewer → SOLID, coupling, layering, modularity
|
|
34
|
+
├── Performance reviewer → queries, algorithms, caching, I/O
|
|
35
|
+
└── Quality reviewer → complexity, tests, consistency, naming
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Extended Review (add conditionally)
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Additional teammates based on changed files:
|
|
42
|
+
├── TypeScript reviewer → type safety, generics (if .ts/.tsx changed)
|
|
43
|
+
├── React reviewer → hooks, state, rendering (if .tsx/.jsx changed)
|
|
44
|
+
├── Database reviewer → schema, queries, migrations (if DB files changed)
|
|
45
|
+
└── Dependencies reviewer → CVEs, versions, licenses (if package files changed)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Review Debate Flow
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
1. Each reviewer analyzes independently
|
|
52
|
+
2. Lead broadcasts: "Share top 3 findings and challenge others"
|
|
53
|
+
3. Security challenges architecture: "This coupling creates attack surface"
|
|
54
|
+
4. Architecture challenges performance: "Your caching suggestion breaks separation"
|
|
55
|
+
5. Quality validates: "Tests don't cover the security concern raised"
|
|
56
|
+
6. Lead collects consensus after max 2 exchange rounds
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Implementation Team
|
|
62
|
+
|
|
63
|
+
### Exploration Team (4 perspectives)
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Lead spawns:
|
|
67
|
+
├── Architecture explorer → existing patterns, module structure
|
|
68
|
+
├── Integration explorer → entry points, services, config
|
|
69
|
+
├── Reusable code explorer → utilities, helpers, shared logic
|
|
70
|
+
└── Edge case explorer → error conditions, boundaries, race conditions
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Planning Team (3 perspectives)
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Lead spawns:
|
|
77
|
+
├── Implementation planner → step-by-step coding approach
|
|
78
|
+
├── Testing planner → test strategy and coverage plan
|
|
79
|
+
└── Risk planner → potential issues, rollback strategy
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Implementation Debate
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
1. Explorers share findings
|
|
86
|
+
2. Architecture challenges edge cases: "This boundary isn't handled"
|
|
87
|
+
3. Integration challenges reusable code: "That helper doesn't cover our case"
|
|
88
|
+
4. Lead synthesizes consensus exploration
|
|
89
|
+
|
|
90
|
+
5. Planners propose approaches
|
|
91
|
+
6. Testing challenges implementation: "This approach is untestable"
|
|
92
|
+
7. Risk challenges both: "Rollback is impossible with this migration"
|
|
93
|
+
8. Lead synthesizes consensus plan
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Specification Team
|
|
99
|
+
|
|
100
|
+
### Requirements Exploration Team (4 perspectives)
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Lead spawns:
|
|
104
|
+
├── User Perspective Explorer → target users, goals, pain points, user journeys
|
|
105
|
+
├── Similar Features Explorer → comparable features, scope patterns, precedents
|
|
106
|
+
├── Constraints Explorer → dependencies, business rules, security, performance
|
|
107
|
+
└── Failure Mode Explorer → error states, edge cases, validation needs
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Requirements Debate Flow
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
1. Each explorer shares findings from their perspective
|
|
114
|
+
2. Constraints challenges user perspective: "This requirement conflicts with X constraint"
|
|
115
|
+
3. Failure modes challenges similar features: "That pattern failed in Y scenario"
|
|
116
|
+
4. Similar features validates user perspective: "This UX pattern works well in Z"
|
|
117
|
+
5. Lead collects consensus after max 2 exchange rounds
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Scope Planning Team (3 perspectives)
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Lead spawns:
|
|
124
|
+
├── User Stories Planner → actors, actions, outcomes ("As X, I want Y, so that Z")
|
|
125
|
+
├── Scope Boundaries Planner → v1 MVP, v2 deferred, out of scope, dependencies
|
|
126
|
+
└── Acceptance Criteria Planner → success/failure/edge case criteria (testable)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Scope Debate Flow
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
1. Each planner presents their analysis
|
|
133
|
+
2. Scope challenges user stories: "This story is too broad for v1"
|
|
134
|
+
3. Acceptance challenges scope: "These boundaries leave this edge case uncovered"
|
|
135
|
+
4. User stories challenges acceptance: "This criterion is untestable"
|
|
136
|
+
5. Lead collects consensus after max 2 exchange rounds
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Note**: Specification teams complement (not replace) the 3 mandatory clarification gates. User still drives all decisions via Gate 0, Gate 1, and Gate 2.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Resolution Team
|
|
144
|
+
|
|
145
|
+
### Cross-Validation Resolution Team
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Lead spawns resolvers based on batches:
|
|
149
|
+
├── Resolver A → Batch 1 issues (file-a cluster)
|
|
150
|
+
├── Resolver B → Batch 2 issues (file-b cluster)
|
|
151
|
+
└── Resolver C → Batch 3 issues (file-c cluster)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Resolution Debate Flow
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
1. Each resolver independently validates + fixes their batch
|
|
158
|
+
2. Lead broadcasts: "Review each other's fixes for cross-batch conflicts"
|
|
159
|
+
3. Resolver A: "My fix in file-a.ts changes the interface that Resolver B depends on"
|
|
160
|
+
4. Resolver B: "Confirmed — my fix in file-b.ts imports from that interface"
|
|
161
|
+
5. Resolvers coordinate the fix or escalate conflict to lead
|
|
162
|
+
6. Lead collects consensus after max 2 exchange rounds
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### When Cross-Validation Adds Value
|
|
166
|
+
|
|
167
|
+
- Fixes touch shared interfaces or types
|
|
168
|
+
- Resolvers modify files that import from each other
|
|
169
|
+
- Batch fixes could introduce conflicting patterns
|
|
170
|
+
- Large resolution sets (>5 issues across multiple files)
|
|
171
|
+
|
|
172
|
+
### When to Skip Cross-Validation
|
|
173
|
+
|
|
174
|
+
- All fixes are in completely independent files
|
|
175
|
+
- Only 1-2 batches with no shared dependencies
|
|
176
|
+
- Fixes are trivial (typos, formatting, naming)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Debug Team
|
|
181
|
+
|
|
182
|
+
### Hypothesis Investigation (3-5 hypotheses)
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Lead spawns (one per hypothesis):
|
|
186
|
+
├── Hypothesis A investigator → state management / race condition
|
|
187
|
+
├── Hypothesis B investigator → configuration / environment
|
|
188
|
+
├── Hypothesis C investigator → edge case / input validation
|
|
189
|
+
└── Hypothesis D investigator → dependency / version issue
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Debug Debate Flow
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
1. Each investigator gathers evidence for their hypothesis
|
|
196
|
+
2. Lead broadcasts: "Present evidence. Disprove each other."
|
|
197
|
+
3. Investigator A: "Found race condition at file:line"
|
|
198
|
+
4. Investigator B: "My config theory is disproved by A's evidence"
|
|
199
|
+
5. Investigator C: "A's race condition doesn't explain the timing"
|
|
200
|
+
6. Converge on surviving hypothesis with strongest evidence
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Team Size Guidelines
|
|
206
|
+
|
|
207
|
+
| Scenario | Min | Max | Rationale |
|
|
208
|
+
|----------|-----|-----|-----------|
|
|
209
|
+
| Quick review | 2 | 3 | Focused, low cost |
|
|
210
|
+
| Full review | 4 | 5 | Core perspectives |
|
|
211
|
+
| Exploration | 3 | 4 | Diminishing returns beyond 4 |
|
|
212
|
+
| Planning | 2 | 3 | Too many cooks |
|
|
213
|
+
| Specification (explore) | 3 | 4 | Requirements need diverse perspectives |
|
|
214
|
+
| Specification (scope) | 2 | 3 | Scope planning benefits from focus |
|
|
215
|
+
| Resolution | 2 | 4 | One per independent batch |
|
|
216
|
+
| Debugging | 3 | 5 | One per viable hypothesis |
|
|
217
|
+
| Parallel coding | 2 | 3 | Merge complexity grows fast |
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Background Working Memory Updater
|
|
4
|
+
# Called by stop-update-memory.sh as a detached background process.
|
|
5
|
+
# Resumes the parent session headlessly to update .docs/WORKING-MEMORY.md.
|
|
6
|
+
# On failure: logs error, does nothing (no fallback).
|
|
7
|
+
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
CWD="$1"
|
|
11
|
+
SESSION_ID="$2"
|
|
12
|
+
MEMORY_FILE="$3"
|
|
13
|
+
CLAUDE_BIN="$4"
|
|
14
|
+
|
|
15
|
+
LOG_FILE="$CWD/.docs/.working-memory-update.log"
|
|
16
|
+
LOCK_DIR="$CWD/.docs/.working-memory.lock"
|
|
17
|
+
|
|
18
|
+
# --- Logging ---
|
|
19
|
+
|
|
20
|
+
log() {
|
|
21
|
+
echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] $1" >> "$LOG_FILE"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
rotate_log() {
|
|
25
|
+
if [ -f "$LOG_FILE" ] && [ "$(wc -l < "$LOG_FILE")" -gt 100 ]; then
|
|
26
|
+
tail -50 "$LOG_FILE" > "$LOG_FILE.tmp" && mv "$LOG_FILE.tmp" "$LOG_FILE"
|
|
27
|
+
fi
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
# --- Stale Lock Recovery ---
|
|
31
|
+
|
|
32
|
+
# Portable mtime in epoch seconds (same pattern as stop-update-memory.sh:35-39)
|
|
33
|
+
get_mtime() {
|
|
34
|
+
if stat --version &>/dev/null 2>&1; then
|
|
35
|
+
stat -c %Y "$1"
|
|
36
|
+
else
|
|
37
|
+
stat -f %m "$1"
|
|
38
|
+
fi
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
STALE_THRESHOLD=300 # 5 min — generous vs 30-60s normal runtime
|
|
42
|
+
|
|
43
|
+
break_stale_lock() {
|
|
44
|
+
if [ ! -d "$LOCK_DIR" ]; then return; fi
|
|
45
|
+
local lock_mtime now age
|
|
46
|
+
lock_mtime=$(get_mtime "$LOCK_DIR")
|
|
47
|
+
now=$(date +%s)
|
|
48
|
+
age=$(( now - lock_mtime ))
|
|
49
|
+
if [ "$age" -gt "$STALE_THRESHOLD" ]; then
|
|
50
|
+
log "Breaking stale lock (age: ${age}s, threshold: ${STALE_THRESHOLD}s)"
|
|
51
|
+
rmdir "$LOCK_DIR" 2>/dev/null || true
|
|
52
|
+
fi
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# --- Locking (mkdir-based, POSIX-atomic) ---
|
|
56
|
+
|
|
57
|
+
acquire_lock() {
|
|
58
|
+
local timeout=90
|
|
59
|
+
local waited=0
|
|
60
|
+
while ! mkdir "$LOCK_DIR" 2>/dev/null; do
|
|
61
|
+
if [ "$waited" -ge "$timeout" ]; then
|
|
62
|
+
return 1
|
|
63
|
+
fi
|
|
64
|
+
sleep 1
|
|
65
|
+
waited=$((waited + 1))
|
|
66
|
+
done
|
|
67
|
+
return 0
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
cleanup() {
|
|
71
|
+
rmdir "$LOCK_DIR" 2>/dev/null || true
|
|
72
|
+
}
|
|
73
|
+
trap cleanup EXIT
|
|
74
|
+
|
|
75
|
+
# --- Main ---
|
|
76
|
+
|
|
77
|
+
# Wait for parent session to flush transcript.
|
|
78
|
+
# 3s provides ~6-10x margin over typical flush times.
|
|
79
|
+
# If --resume shows stale transcripts, bump to 5s.
|
|
80
|
+
sleep 3
|
|
81
|
+
|
|
82
|
+
log "Starting update for session $SESSION_ID"
|
|
83
|
+
|
|
84
|
+
# Break stale locks from previous zombie processes
|
|
85
|
+
break_stale_lock
|
|
86
|
+
|
|
87
|
+
# Acquire lock (other sessions may be updating concurrently)
|
|
88
|
+
if ! acquire_lock; then
|
|
89
|
+
log "Lock timeout after 90s — skipping update for session $SESSION_ID"
|
|
90
|
+
# Don't clean up lock we don't own
|
|
91
|
+
trap - EXIT
|
|
92
|
+
exit 0
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
rotate_log
|
|
96
|
+
|
|
97
|
+
# Read existing memory for merge context
|
|
98
|
+
EXISTING_MEMORY=""
|
|
99
|
+
if [ -f "$MEMORY_FILE" ]; then
|
|
100
|
+
EXISTING_MEMORY=$(cat "$MEMORY_FILE")
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
# Build instruction
|
|
104
|
+
if [ -n "$EXISTING_MEMORY" ]; then
|
|
105
|
+
INSTRUCTION="Update the file $MEMORY_FILE with working memory from this session. The file already has content — possibly from a concurrent session that just wrote it moments ago. Merge this session's context with the existing content to produce a single unified working memory snapshot. Both this session and the existing content represent fresh, concurrent work — integrate both fully. Working memory captures what's active now, not a changelog. Deduplicate overlapping information. Keep under 100 lines total. Use the same structure: ## Now, ## Decisions, ## Modified Files, ## Context, ## Session Log.
|
|
106
|
+
|
|
107
|
+
Existing content:
|
|
108
|
+
$EXISTING_MEMORY"
|
|
109
|
+
else
|
|
110
|
+
INSTRUCTION="Create the file $MEMORY_FILE with working memory from this session. Keep under 100 lines. Use this structure:
|
|
111
|
+
|
|
112
|
+
# Working Memory
|
|
113
|
+
|
|
114
|
+
## Now
|
|
115
|
+
<!-- Current focus, status, blockers (1-3 bullets) -->
|
|
116
|
+
|
|
117
|
+
## Decisions
|
|
118
|
+
<!-- Key decisions made this session with brief rationale -->
|
|
119
|
+
|
|
120
|
+
## Modified Files
|
|
121
|
+
<!-- File paths only, most recent first -->
|
|
122
|
+
|
|
123
|
+
## Context
|
|
124
|
+
<!-- Branch, PR, architectural context, open questions -->
|
|
125
|
+
|
|
126
|
+
## Session Log
|
|
127
|
+
|
|
128
|
+
### Today
|
|
129
|
+
<!-- Chronological summary of work done today (2-5 bullets) -->
|
|
130
|
+
|
|
131
|
+
### This Week
|
|
132
|
+
<!-- Broader multi-day context if relevant -->"
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
# Resume session headlessly to perform the update
|
|
136
|
+
TIMEOUT=120 # Normal runtime 30-60s; 2x margin
|
|
137
|
+
|
|
138
|
+
DEVFLOW_BG_UPDATER=1 env -u CLAUDECODE "$CLAUDE_BIN" -p \
|
|
139
|
+
--resume "$SESSION_ID" \
|
|
140
|
+
--model haiku \
|
|
141
|
+
--dangerously-skip-permissions \
|
|
142
|
+
--no-session-persistence \
|
|
143
|
+
--output-format text \
|
|
144
|
+
"$INSTRUCTION" \
|
|
145
|
+
> /dev/null 2>> "$LOG_FILE" &
|
|
146
|
+
CLAUDE_PID=$!
|
|
147
|
+
|
|
148
|
+
# Watchdog: kill claude if it exceeds timeout
|
|
149
|
+
( sleep "$TIMEOUT" && kill "$CLAUDE_PID" 2>/dev/null ) &
|
|
150
|
+
WATCHDOG_PID=$!
|
|
151
|
+
|
|
152
|
+
if wait "$CLAUDE_PID" 2>/dev/null; then
|
|
153
|
+
log "Update completed for session $SESSION_ID"
|
|
154
|
+
else
|
|
155
|
+
EXIT_CODE=$?
|
|
156
|
+
if [ "$EXIT_CODE" -gt 128 ]; then
|
|
157
|
+
log "Update timed out (killed after ${TIMEOUT}s) for session $SESSION_ID"
|
|
158
|
+
else
|
|
159
|
+
log "Update failed for session $SESSION_ID (exit code $EXIT_CODE)"
|
|
160
|
+
fi
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
# Clean up watchdog
|
|
164
|
+
kill "$WATCHDOG_PID" 2>/dev/null || true
|
|
165
|
+
wait "$WATCHDOG_PID" 2>/dev/null || true
|
|
166
|
+
|
|
167
|
+
exit 0
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Working Memory: PreCompact Hook
|
|
4
|
+
# Safety net that captures git state to a backup JSON file before context compaction.
|
|
5
|
+
# Also bootstraps a minimal WORKING-MEMORY.md if none exists yet, so SessionStart
|
|
6
|
+
# has something to inject after compaction.
|
|
7
|
+
# PreCompact hooks cannot block compaction — this is informational only.
|
|
8
|
+
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
# jq is required to parse hook input JSON — silently no-op if missing
|
|
12
|
+
if ! command -v jq &>/dev/null; then exit 0; fi
|
|
13
|
+
|
|
14
|
+
INPUT=$(cat)
|
|
15
|
+
|
|
16
|
+
CWD=$(echo "$INPUT" | jq -r '.cwd // ""' 2>/dev/null)
|
|
17
|
+
if [ -z "$CWD" ]; then
|
|
18
|
+
exit 0
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# Only activate in DevFlow-initialized projects
|
|
22
|
+
if [ ! -d "$CWD/.docs" ]; then
|
|
23
|
+
exit 0
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
BACKUP_FILE="$CWD/.docs/working-memory-backup.json"
|
|
27
|
+
|
|
28
|
+
# Capture git state
|
|
29
|
+
GIT_BRANCH=""
|
|
30
|
+
GIT_STATUS=""
|
|
31
|
+
GIT_LOG=""
|
|
32
|
+
GIT_DIFF_STAT=""
|
|
33
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
34
|
+
|
|
35
|
+
if cd "$CWD" 2>/dev/null && git rev-parse --git-dir >/dev/null 2>&1; then
|
|
36
|
+
GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
|
|
37
|
+
GIT_STATUS=$(git status --porcelain 2>/dev/null | head -30 || echo "")
|
|
38
|
+
GIT_LOG=$(git log --oneline -10 2>/dev/null || echo "")
|
|
39
|
+
GIT_DIFF_STAT=$(git diff --stat HEAD 2>/dev/null || echo "")
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Write backup JSON
|
|
43
|
+
jq -n \
|
|
44
|
+
--arg ts "$TIMESTAMP" \
|
|
45
|
+
--arg branch "$GIT_BRANCH" \
|
|
46
|
+
--arg status "$GIT_STATUS" \
|
|
47
|
+
--arg log "$GIT_LOG" \
|
|
48
|
+
--arg diff "$GIT_DIFF_STAT" \
|
|
49
|
+
'{
|
|
50
|
+
timestamp: $ts,
|
|
51
|
+
trigger: "pre-compact",
|
|
52
|
+
git: {
|
|
53
|
+
branch: $branch,
|
|
54
|
+
status: $status,
|
|
55
|
+
log: $log,
|
|
56
|
+
diff_stat: $diff
|
|
57
|
+
}
|
|
58
|
+
}' > "$BACKUP_FILE"
|
|
59
|
+
|
|
60
|
+
# Bootstrap minimal WORKING-MEMORY.md if none exists yet
|
|
61
|
+
# This ensures SessionStart has context to inject after compaction
|
|
62
|
+
MEMORY_FILE="$CWD/.docs/WORKING-MEMORY.md"
|
|
63
|
+
if [ ! -f "$MEMORY_FILE" ] && [ -n "$GIT_BRANCH" ]; then
|
|
64
|
+
{
|
|
65
|
+
echo "# Working Memory"
|
|
66
|
+
echo ""
|
|
67
|
+
echo "## Now"
|
|
68
|
+
echo "- Session compacted before working memory was established"
|
|
69
|
+
echo ""
|
|
70
|
+
echo "## Context"
|
|
71
|
+
echo "- Branch: $GIT_BRANCH"
|
|
72
|
+
echo "$GIT_LOG" | head -3 | while IFS= read -r line; do
|
|
73
|
+
[ -n "$line" ] && echo "- $line"
|
|
74
|
+
done
|
|
75
|
+
echo ""
|
|
76
|
+
echo "## Modified Files"
|
|
77
|
+
echo "$GIT_STATUS" | head -10 | while IFS= read -r line; do
|
|
78
|
+
[ -n "$line" ] && echo "- $(echo "$line" | awk '{print $2}')"
|
|
79
|
+
done
|
|
80
|
+
} > "$MEMORY_FILE"
|
|
81
|
+
fi
|