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
package/dist/plugins.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared plugin registry — single source of truth for all CLI commands.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Available DevFlow plugins
|
|
6
|
+
*/
|
|
7
|
+
export const DEVFLOW_PLUGINS = [
|
|
8
|
+
{
|
|
9
|
+
name: 'devflow-core-skills',
|
|
10
|
+
description: 'Auto-activating quality enforcement (foundation layer)',
|
|
11
|
+
commands: [],
|
|
12
|
+
agents: [],
|
|
13
|
+
skills: ['accessibility', 'core-patterns', 'docs-framework', 'frontend-design', 'git-safety', 'git-workflow', 'github-patterns', 'input-validation', 'react', 'test-patterns', 'typescript'],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'devflow-specify',
|
|
17
|
+
description: 'Interactive feature specification',
|
|
18
|
+
commands: ['/specify'],
|
|
19
|
+
agents: ['skimmer', 'synthesizer'],
|
|
20
|
+
skills: ['agent-teams'],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'devflow-implement',
|
|
24
|
+
description: 'Complete task implementation workflow',
|
|
25
|
+
commands: ['/implement'],
|
|
26
|
+
agents: ['git', 'skimmer', 'synthesizer', 'coder', 'simplifier', 'scrutinizer', 'shepherd', 'validator'],
|
|
27
|
+
skills: ['accessibility', 'agent-teams', 'frontend-design', 'implementation-patterns', 'self-review'],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'devflow-code-review',
|
|
31
|
+
description: 'Comprehensive code review',
|
|
32
|
+
commands: ['/code-review'],
|
|
33
|
+
agents: ['git', 'reviewer', 'synthesizer'],
|
|
34
|
+
skills: ['accessibility', 'agent-teams', 'architecture-patterns', 'complexity-patterns', 'consistency-patterns', 'database-patterns', 'dependencies-patterns', 'documentation-patterns', 'frontend-design', 'performance-patterns', 'react', 'regression-patterns', 'review-methodology', 'security-patterns', 'test-patterns'],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'devflow-resolve',
|
|
38
|
+
description: 'Process and fix review issues',
|
|
39
|
+
commands: ['/resolve'],
|
|
40
|
+
agents: ['git', 'resolver', 'simplifier'],
|
|
41
|
+
skills: ['agent-teams', 'implementation-patterns', 'security-patterns'],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'devflow-debug',
|
|
45
|
+
description: 'Debugging with competing hypotheses',
|
|
46
|
+
commands: ['/debug'],
|
|
47
|
+
agents: ['git'],
|
|
48
|
+
skills: ['agent-teams', 'git-safety'],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'devflow-self-review',
|
|
52
|
+
description: 'Self-review workflow (Simplifier + Scrutinizer)',
|
|
53
|
+
commands: ['/self-review'],
|
|
54
|
+
agents: ['simplifier', 'scrutinizer', 'validator'],
|
|
55
|
+
skills: ['self-review', 'core-patterns'],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'devflow-audit-claude',
|
|
59
|
+
description: 'Audit CLAUDE.md files against Anthropic best practices',
|
|
60
|
+
commands: ['/audit-claude'],
|
|
61
|
+
agents: ['claude-md-auditor'],
|
|
62
|
+
skills: [],
|
|
63
|
+
optional: true,
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
/**
|
|
67
|
+
* Deprecated command names from old installations.
|
|
68
|
+
* Used during init to clean up stale command files on upgrade.
|
|
69
|
+
*/
|
|
70
|
+
export const LEGACY_COMMAND_NAMES = [
|
|
71
|
+
'review',
|
|
72
|
+
];
|
|
73
|
+
/**
|
|
74
|
+
* Deprecated skill names from old installations (prefixed with devflow-).
|
|
75
|
+
* Used during uninstall to clean up legacy installs.
|
|
76
|
+
*/
|
|
77
|
+
export const LEGACY_SKILL_NAMES = [
|
|
78
|
+
'devflow-core-patterns',
|
|
79
|
+
'devflow-review-methodology',
|
|
80
|
+
'devflow-docs-framework',
|
|
81
|
+
'devflow-git-safety',
|
|
82
|
+
'devflow-github-patterns',
|
|
83
|
+
'devflow-implementation-patterns',
|
|
84
|
+
'devflow-codebase-navigation',
|
|
85
|
+
'devflow-test-design',
|
|
86
|
+
'devflow-code-smell',
|
|
87
|
+
'devflow-commit',
|
|
88
|
+
'devflow-pull-request',
|
|
89
|
+
'devflow-input-validation',
|
|
90
|
+
'devflow-self-review',
|
|
91
|
+
'devflow-typescript',
|
|
92
|
+
'devflow-react',
|
|
93
|
+
'devflow-architecture-patterns',
|
|
94
|
+
'devflow-complexity-patterns',
|
|
95
|
+
'devflow-consistency-patterns',
|
|
96
|
+
'devflow-database-patterns',
|
|
97
|
+
'devflow-dependencies-patterns',
|
|
98
|
+
'devflow-documentation-patterns',
|
|
99
|
+
'devflow-performance-patterns',
|
|
100
|
+
'devflow-regression-patterns',
|
|
101
|
+
'devflow-security-patterns',
|
|
102
|
+
'devflow-tests-patterns',
|
|
103
|
+
'devflow-pattern-check',
|
|
104
|
+
'devflow-error-handling',
|
|
105
|
+
'devflow-debug',
|
|
106
|
+
'devflow-accessibility',
|
|
107
|
+
'devflow-frontend-design',
|
|
108
|
+
'devflow-agent-teams',
|
|
109
|
+
// v1.0.0 consolidation: old unprefixed names from pre-v1.0.0 installs
|
|
110
|
+
'codebase-navigation',
|
|
111
|
+
'test-design',
|
|
112
|
+
'code-smell',
|
|
113
|
+
'commit',
|
|
114
|
+
'pull-request',
|
|
115
|
+
'tests-patterns',
|
|
116
|
+
];
|
|
117
|
+
/**
|
|
118
|
+
* Derive unique skill names from all plugins.
|
|
119
|
+
*/
|
|
120
|
+
export function getAllSkillNames() {
|
|
121
|
+
const skills = new Set();
|
|
122
|
+
for (const plugin of DEVFLOW_PLUGINS) {
|
|
123
|
+
for (const skill of plugin.skills) {
|
|
124
|
+
skills.add(skill);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return [...skills];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Derive unique agent names from all plugins.
|
|
131
|
+
*/
|
|
132
|
+
export function getAllAgentNames() {
|
|
133
|
+
const agents = new Set();
|
|
134
|
+
for (const plugin of DEVFLOW_PLUGINS) {
|
|
135
|
+
for (const agent of plugin.agents) {
|
|
136
|
+
agents.add(agent);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return [...agents];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Build maps of unique assets to their source plugin (first plugin that declares them).
|
|
143
|
+
* This ensures each skill/agent is copied only once during installation.
|
|
144
|
+
*/
|
|
145
|
+
export function buildAssetMaps(plugins) {
|
|
146
|
+
const skillsMap = new Map();
|
|
147
|
+
const agentsMap = new Map();
|
|
148
|
+
for (const plugin of plugins) {
|
|
149
|
+
for (const skill of plugin.skills) {
|
|
150
|
+
if (!skillsMap.has(skill)) {
|
|
151
|
+
skillsMap.set(skill, plugin.name);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
for (const agent of plugin.agents) {
|
|
155
|
+
if (!agentsMap.has(agent)) {
|
|
156
|
+
agentsMap.set(agent, plugin.name);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return { skillsMap, agentsMap };
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Check if Claude CLI is available in the system PATH
|
|
4
|
+
*/
|
|
5
|
+
export function isClaudeCliAvailable() {
|
|
6
|
+
try {
|
|
7
|
+
execSync('claude --version', { stdio: 'ignore' });
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { PluginDefinition } from '../plugins.js';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal spinner interface matching @clack/prompts spinner().
|
|
4
|
+
*/
|
|
5
|
+
export interface Spinner {
|
|
6
|
+
start(msg?: string): void;
|
|
7
|
+
stop(msg?: string, code?: number): void;
|
|
8
|
+
message(msg?: string): void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Recursively copy a directory tree.
|
|
12
|
+
*/
|
|
13
|
+
export declare function copyDirectory(src: string, dest: string): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Recursively chmod all files in a directory tree.
|
|
16
|
+
*/
|
|
17
|
+
export declare function chmodRecursive(dir: string, mode: number): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Install plugins via Claude CLI native plugin system.
|
|
20
|
+
* Returns true if all plugins installed successfully.
|
|
21
|
+
*/
|
|
22
|
+
export declare function installViaCli(plugins: PluginDefinition[], scope: 'user' | 'local', spinner: Spinner): boolean;
|
|
23
|
+
export interface FileCopyOptions {
|
|
24
|
+
plugins: PluginDefinition[];
|
|
25
|
+
claudeDir: string;
|
|
26
|
+
pluginsDir: string;
|
|
27
|
+
rootDir: string;
|
|
28
|
+
devflowDir: string;
|
|
29
|
+
skillsMap: Map<string, string>;
|
|
30
|
+
agentsMap: Map<string, string>;
|
|
31
|
+
isPartialInstall: boolean;
|
|
32
|
+
teamsEnabled: boolean;
|
|
33
|
+
spinner: Spinner;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Install plugins via manual file copy.
|
|
37
|
+
* Handles cleanup of old monolithic structure, deduplication of shared assets,
|
|
38
|
+
* and script installation with executable permissions.
|
|
39
|
+
*/
|
|
40
|
+
export declare function installViaFileCopy(options: FileCopyOptions): Promise<void>;
|
|
41
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import { DEVFLOW_PLUGINS } from '../plugins.js';
|
|
5
|
+
/**
|
|
6
|
+
* Recursively copy a directory tree.
|
|
7
|
+
*/
|
|
8
|
+
export async function copyDirectory(src, dest) {
|
|
9
|
+
await fs.mkdir(dest, { recursive: true });
|
|
10
|
+
const entries = await fs.readdir(src, { withFileTypes: true });
|
|
11
|
+
for (const entry of entries) {
|
|
12
|
+
const srcPath = path.join(src, entry.name);
|
|
13
|
+
const destPath = path.join(dest, entry.name);
|
|
14
|
+
if (entry.isDirectory()) {
|
|
15
|
+
await copyDirectory(srcPath, destPath);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
await fs.copyFile(srcPath, destPath);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Recursively chmod all files in a directory tree.
|
|
24
|
+
*/
|
|
25
|
+
export async function chmodRecursive(dir, mode) {
|
|
26
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
const fullPath = path.join(dir, entry.name);
|
|
29
|
+
if (entry.isDirectory()) {
|
|
30
|
+
await chmodRecursive(fullPath, mode);
|
|
31
|
+
}
|
|
32
|
+
else if (entry.isFile()) {
|
|
33
|
+
await fs.chmod(fullPath, mode);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Add DevFlow marketplace to Claude CLI.
|
|
39
|
+
* Idempotent — safe to call multiple times.
|
|
40
|
+
*/
|
|
41
|
+
function addMarketplaceViaCli() {
|
|
42
|
+
try {
|
|
43
|
+
execSync('claude plugin marketplace add dean0x/devflow', { stdio: 'pipe' });
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Install a single plugin via Claude CLI.
|
|
52
|
+
*/
|
|
53
|
+
function installPluginViaCli(pluginName, scope) {
|
|
54
|
+
try {
|
|
55
|
+
const cliScope = scope === 'local' ? 'project' : 'user';
|
|
56
|
+
execSync(`claude plugin install ${pluginName}@dean0x-devflow --scope ${cliScope}`, {
|
|
57
|
+
stdio: 'pipe',
|
|
58
|
+
});
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Install plugins via Claude CLI native plugin system.
|
|
67
|
+
* Returns true if all plugins installed successfully.
|
|
68
|
+
*/
|
|
69
|
+
export function installViaCli(plugins, scope, spinner) {
|
|
70
|
+
spinner.message('Adding DevFlow marketplace...');
|
|
71
|
+
const marketplaceAdded = addMarketplaceViaCli();
|
|
72
|
+
if (!marketplaceAdded)
|
|
73
|
+
return false;
|
|
74
|
+
spinner.message('Installing plugins via Claude CLI...');
|
|
75
|
+
for (const plugin of plugins) {
|
|
76
|
+
if (!installPluginViaCli(plugin.name, scope))
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
spinner.stop('Plugins installed via Claude CLI');
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Install plugins via manual file copy.
|
|
84
|
+
* Handles cleanup of old monolithic structure, deduplication of shared assets,
|
|
85
|
+
* and script installation with executable permissions.
|
|
86
|
+
*/
|
|
87
|
+
export async function installViaFileCopy(options) {
|
|
88
|
+
const { plugins, claudeDir, pluginsDir, rootDir, devflowDir, skillsMap, agentsMap, isPartialInstall, teamsEnabled, spinner, } = options;
|
|
89
|
+
// Clean old DevFlow files before installing (only for full install)
|
|
90
|
+
if (!isPartialInstall) {
|
|
91
|
+
const oldDirs = [
|
|
92
|
+
path.join(claudeDir, 'commands', 'devflow'),
|
|
93
|
+
path.join(claudeDir, 'agents', 'devflow'),
|
|
94
|
+
];
|
|
95
|
+
for (const dir of oldDirs) {
|
|
96
|
+
try {
|
|
97
|
+
await fs.rm(dir, { recursive: true, force: true });
|
|
98
|
+
}
|
|
99
|
+
catch { /* ignore */ }
|
|
100
|
+
}
|
|
101
|
+
const allSkills = new Set();
|
|
102
|
+
for (const plugin of DEVFLOW_PLUGINS) {
|
|
103
|
+
for (const skill of plugin.skills) {
|
|
104
|
+
allSkills.add(skill);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
for (const skill of allSkills) {
|
|
108
|
+
try {
|
|
109
|
+
await fs.rm(path.join(claudeDir, 'skills', skill), { recursive: true, force: true });
|
|
110
|
+
}
|
|
111
|
+
catch { /* ignore */ }
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Install each selected plugin (with deduplication)
|
|
115
|
+
for (const plugin of plugins) {
|
|
116
|
+
const pluginSourceDir = path.join(pluginsDir, plugin.name);
|
|
117
|
+
// Install commands (variant-aware: pick -teams.md or base .md)
|
|
118
|
+
const commandsSource = path.join(pluginSourceDir, 'commands');
|
|
119
|
+
const commandsTarget = path.join(claudeDir, 'commands', 'devflow');
|
|
120
|
+
try {
|
|
121
|
+
const allFiles = await fs.readdir(commandsSource);
|
|
122
|
+
const mdFiles = allFiles.filter(f => f.endsWith('.md'));
|
|
123
|
+
const teamsVariants = new Set(mdFiles.filter(f => f.endsWith('-teams.md')));
|
|
124
|
+
const baseCommands = mdFiles.filter(f => !teamsVariants.has(f));
|
|
125
|
+
if (baseCommands.length > 0 || teamsVariants.size > 0) {
|
|
126
|
+
await fs.mkdir(commandsTarget, { recursive: true });
|
|
127
|
+
for (const file of baseCommands) {
|
|
128
|
+
const teamsFile = file.replace('.md', '-teams.md');
|
|
129
|
+
const sourceFile = (teamsEnabled && teamsVariants.has(teamsFile)) ? teamsFile : file;
|
|
130
|
+
await fs.copyFile(path.join(commandsSource, sourceFile), path.join(commandsTarget, file));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch { /* no commands directory */ }
|
|
135
|
+
// Install agents (deduplicated)
|
|
136
|
+
const agentsSource = path.join(pluginSourceDir, 'agents');
|
|
137
|
+
const agentsTarget = path.join(claudeDir, 'agents', 'devflow');
|
|
138
|
+
try {
|
|
139
|
+
const files = await fs.readdir(agentsSource);
|
|
140
|
+
if (files.length > 0) {
|
|
141
|
+
await fs.mkdir(agentsTarget, { recursive: true });
|
|
142
|
+
for (const file of files) {
|
|
143
|
+
const agentName = path.basename(file, '.md');
|
|
144
|
+
if (agentsMap.get(agentName) === plugin.name) {
|
|
145
|
+
await fs.copyFile(path.join(agentsSource, file), path.join(agentsTarget, file));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch { /* no agents directory */ }
|
|
151
|
+
// Install skills (deduplicated)
|
|
152
|
+
const skillsSource = path.join(pluginSourceDir, 'skills');
|
|
153
|
+
try {
|
|
154
|
+
const skillDirs = await fs.readdir(skillsSource, { withFileTypes: true });
|
|
155
|
+
for (const skillDir of skillDirs) {
|
|
156
|
+
if (skillDir.isDirectory()) {
|
|
157
|
+
if (skillsMap.get(skillDir.name) === plugin.name) {
|
|
158
|
+
const skillTarget = path.join(claudeDir, 'skills', skillDir.name);
|
|
159
|
+
await copyDirectory(path.join(skillsSource, skillDir.name), skillTarget);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch { /* no skills directory */ }
|
|
165
|
+
}
|
|
166
|
+
// Install scripts (always from root scripts/ directory)
|
|
167
|
+
const scriptsSource = path.join(rootDir, 'scripts');
|
|
168
|
+
const scriptsTarget = path.join(devflowDir, 'scripts');
|
|
169
|
+
try {
|
|
170
|
+
await fs.mkdir(scriptsTarget, { recursive: true });
|
|
171
|
+
await copyDirectory(scriptsSource, scriptsTarget);
|
|
172
|
+
await chmodRecursive(scriptsTarget, 0o755);
|
|
173
|
+
}
|
|
174
|
+
catch { /* scripts may not exist */ }
|
|
175
|
+
spinner.stop('Components installed via file copy');
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=installer.js.map
|
package/dist/utils/paths.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the OS-specific path for Claude Code managed settings.
|
|
3
|
+
* Managed settings have highest precedence and cannot be overridden by users.
|
|
4
|
+
* - macOS: /Library/Application Support/ClaudeCode/managed-settings.json
|
|
5
|
+
* - Linux: /etc/claude-code/managed-settings.json
|
|
6
|
+
*
|
|
7
|
+
* @throws {Error} On unsupported platforms (Windows)
|
|
8
|
+
*/
|
|
9
|
+
export declare function getManagedSettingsPath(): string;
|
|
1
10
|
/**
|
|
2
11
|
* Get home directory with proper fallback and validation
|
|
3
12
|
* Priority: process.env.HOME > os.homedir()
|
|
@@ -28,5 +37,6 @@ export declare function getDevFlowDirectory(): string;
|
|
|
28
37
|
export declare function getInstallationPaths(scope: 'user' | 'local'): Promise<{
|
|
29
38
|
claudeDir: string;
|
|
30
39
|
devflowDir: string;
|
|
40
|
+
gitRoot: string | null;
|
|
31
41
|
}>;
|
|
32
42
|
//# sourceMappingURL=paths.d.ts.map
|
package/dist/utils/paths.js
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
|
-
import { homedir } from 'os';
|
|
1
|
+
import { homedir, platform } from 'os';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { getGitRoot } from './git.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get the OS-specific path for Claude Code managed settings.
|
|
6
|
+
* Managed settings have highest precedence and cannot be overridden by users.
|
|
7
|
+
* - macOS: /Library/Application Support/ClaudeCode/managed-settings.json
|
|
8
|
+
* - Linux: /etc/claude-code/managed-settings.json
|
|
9
|
+
*
|
|
10
|
+
* @throws {Error} On unsupported platforms (Windows)
|
|
11
|
+
*/
|
|
12
|
+
export function getManagedSettingsPath() {
|
|
13
|
+
const os = platform();
|
|
14
|
+
if (os === 'darwin') {
|
|
15
|
+
return '/Library/Application Support/ClaudeCode/managed-settings.json';
|
|
16
|
+
}
|
|
17
|
+
if (os === 'linux') {
|
|
18
|
+
return '/etc/claude-code/managed-settings.json';
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`Managed settings not supported on platform: ${os}`);
|
|
21
|
+
}
|
|
4
22
|
/**
|
|
5
23
|
* Get home directory with proper fallback and validation
|
|
6
24
|
* Priority: process.env.HOME > os.homedir()
|
|
@@ -68,7 +86,8 @@ export async function getInstallationPaths(scope) {
|
|
|
68
86
|
if (scope === 'user') {
|
|
69
87
|
return {
|
|
70
88
|
claudeDir: getClaudeDirectory(),
|
|
71
|
-
devflowDir: getDevFlowDirectory()
|
|
89
|
+
devflowDir: getDevFlowDirectory(),
|
|
90
|
+
gitRoot: null,
|
|
72
91
|
};
|
|
73
92
|
}
|
|
74
93
|
else {
|
|
@@ -79,7 +98,8 @@ export async function getInstallationPaths(scope) {
|
|
|
79
98
|
}
|
|
80
99
|
return {
|
|
81
100
|
claudeDir: path.join(gitRoot, '.claude'),
|
|
82
|
-
devflowDir: path.join(gitRoot, '.devflow')
|
|
101
|
+
devflowDir: path.join(gitRoot, '.devflow'),
|
|
102
|
+
gitRoot,
|
|
83
103
|
};
|
|
84
104
|
}
|
|
85
105
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replace ${DEVFLOW_DIR} placeholders in a settings template.
|
|
3
|
+
*/
|
|
4
|
+
export declare function substituteSettingsTemplate(template: string, devflowDir: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Add Agent Teams configuration to settings JSON.
|
|
7
|
+
* Sets teammateMode and CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS env var.
|
|
8
|
+
*/
|
|
9
|
+
export declare function applyTeamsConfig(settingsJson: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Remove Agent Teams configuration from settings JSON.
|
|
12
|
+
* Strips teammateMode and CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS env var.
|
|
13
|
+
*/
|
|
14
|
+
export declare function stripTeamsConfig(settingsJson: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Compute which entries need appending to a .gitignore file.
|
|
17
|
+
* Returns only entries not already present.
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeGitignoreAppend(existingContent: string, entries: string[]): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Merge DevFlow deny entries into an existing managed settings object.
|
|
22
|
+
* Preserves existing entries, deduplicates, and returns the merged JSON string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function mergeDenyList(existingJson: string, newDenyEntries: string[]): string;
|
|
25
|
+
/**
|
|
26
|
+
* Attempt to install managed settings (security deny list) to the system path.
|
|
27
|
+
* Managed settings have highest precedence in Claude Code and cannot be overridden.
|
|
28
|
+
*
|
|
29
|
+
* Strategy:
|
|
30
|
+
* 1. Try direct write (works if running as root or directory is writable)
|
|
31
|
+
* 2. If EACCES in TTY, offer to retry with sudo
|
|
32
|
+
* 3. Returns true if managed settings were written, false if caller should fall back
|
|
33
|
+
*/
|
|
34
|
+
export declare function installManagedSettings(rootDir: string, verbose: boolean): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Remove DevFlow deny entries from managed settings.
|
|
37
|
+
* If only DevFlow entries remain, deletes the file entirely.
|
|
38
|
+
*
|
|
39
|
+
* Mirrors installManagedSettings strategy:
|
|
40
|
+
* 1. Try direct write/delete
|
|
41
|
+
* 2. If EACCES and TTY, ask user before sudo
|
|
42
|
+
* 3. Non-TTY: return false (caller logs preservation message)
|
|
43
|
+
*/
|
|
44
|
+
export declare function removeManagedSettings(rootDir: string, verbose: boolean): Promise<boolean>;
|
|
45
|
+
export type SecurityMode = 'managed' | 'user';
|
|
46
|
+
/**
|
|
47
|
+
* Install or update settings.json with DevFlow configuration.
|
|
48
|
+
* Prompts interactively in TTY mode when settings already exist.
|
|
49
|
+
* In non-TTY mode, skips override (safe default).
|
|
50
|
+
*
|
|
51
|
+
* When securityMode is 'managed', the deny list goes to system-level managed
|
|
52
|
+
* settings and is excluded from user settings.json. When 'user', the deny list
|
|
53
|
+
* is included in settings.json (original behavior).
|
|
54
|
+
*/
|
|
55
|
+
export declare function installSettings(claudeDir: string, rootDir: string, devflowDir: string, verbose: boolean, teamsEnabled?: boolean, securityMode?: SecurityMode): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Create .claudeignore in git repository root (skip if already exists).
|
|
58
|
+
*/
|
|
59
|
+
export declare function installClaudeignore(gitRoot: string, rootDir: string, verbose: boolean): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Update .gitignore with DevFlow entries (for local scope installs).
|
|
62
|
+
*/
|
|
63
|
+
export declare function updateGitignore(gitRoot: string, verbose: boolean): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Create .docs/ directory structure for DevFlow artifacts.
|
|
66
|
+
*/
|
|
67
|
+
export declare function createDocsStructure(verbose: boolean): Promise<void>;
|
|
68
|
+
//# sourceMappingURL=post-install.d.ts.map
|