devflow-kit 1.8.3 → 2.0.1
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 +182 -7
- package/LICENSE +1 -1
- package/README.md +139 -219
- package/dist/cli/agents-view/index.js +9 -0
- package/dist/cli/agents-view/render.js +310 -0
- package/dist/cli/agents-view/state.js +423 -0
- package/dist/cli/agents-view/terminal.js +179 -0
- package/dist/cli/commands/agents.js +585 -0
- package/dist/cli/commands/ambient.js +231 -0
- package/dist/cli/commands/capture.js +133 -0
- package/dist/cli/commands/compliance-prompts.js +174 -0
- package/dist/cli/commands/compliance.js +337 -0
- package/dist/cli/commands/context.js +66 -0
- package/dist/cli/commands/debug.js +122 -0
- package/dist/cli/commands/flags.js +119 -0
- package/dist/cli/commands/hud.js +229 -0
- package/dist/cli/commands/init-seed.js +226 -0
- package/dist/cli/commands/init.js +1786 -0
- package/dist/cli/commands/knowledge/index.js +25 -0
- package/dist/cli/commands/knowledge/list.js +115 -0
- package/dist/cli/commands/knowledge/toggle.js +84 -0
- package/dist/cli/commands/learning.js +311 -0
- package/dist/cli/commands/legacy-hooks.js +40 -0
- package/dist/cli/commands/memory.js +349 -0
- package/dist/cli/commands/proxy.js +1435 -0
- package/dist/cli/commands/rules.js +334 -0
- package/dist/cli/commands/safe-delete.js +140 -0
- package/dist/cli/commands/security.js +179 -0
- package/dist/cli/commands/skills.js +140 -0
- package/dist/cli/commands/uninstall.js +1214 -0
- package/dist/cli.js +35 -10
- package/dist/commands/bug-analysis.md +400 -0
- package/dist/commands/code-review.md +403 -0
- package/dist/commands/debug.md +282 -0
- package/dist/commands/dynamic-build.md +972 -0
- package/dist/commands/dynamic-plan.md +383 -0
- package/dist/commands/dynamic-profile.md +206 -0
- package/dist/commands/dynamic-tickets.md +583 -0
- package/dist/commands/explore.md +208 -0
- package/dist/commands/implement.md +590 -0
- package/dist/commands/plan.md +570 -0
- package/dist/commands/release.md +206 -0
- package/dist/commands/research.md +212 -0
- package/dist/commands/resolve.md +731 -0
- package/dist/commands/self-review.md +251 -0
- package/dist/core/agent-frontmatter.js +209 -0
- package/dist/core/agent-models.js +556 -0
- package/dist/core/agent-state.js +44 -0
- package/dist/core/assets.js +39 -0
- package/dist/core/cache.js +205 -0
- package/dist/core/codex-auth-inspect.js +128 -0
- package/dist/core/compliance-compose.js +458 -0
- package/dist/core/compliance.js +165 -0
- package/dist/core/external-models.js +76 -0
- package/dist/core/feature-config.js +125 -0
- package/dist/core/flags.js +309 -0
- package/dist/core/fs-atomic.js +74 -0
- package/dist/core/git.js +61 -0
- package/dist/core/learning-queue-cleanup.js +92 -0
- package/dist/core/learning-tuning-config.js +78 -0
- package/dist/core/manifest.js +171 -0
- package/dist/core/migrations.js +330 -0
- package/dist/core/model-discovery.js +655 -0
- package/dist/core/observation-io.js +50 -0
- package/dist/core/observations.js +109 -0
- package/dist/core/orphan-sweep.js +92 -0
- package/dist/core/paths.js +48 -0
- package/dist/core/plugins.js +525 -0
- package/dist/core/project-paths.js +159 -0
- package/dist/core/proxy-log.js +165 -0
- package/dist/core/proxy-state.js +305 -0
- package/dist/core/safe-delete-install.js +191 -0
- package/dist/core/teammate-mode-cleanup.js +33 -0
- package/dist/hud/colors.js +13 -2
- package/dist/hud/components/config-counts.js +2 -2
- package/dist/hud/components/context-usage.js +2 -2
- package/dist/hud/components/learning-counts.js +92 -0
- package/dist/hud/components/session-cost.js +10 -2
- package/dist/hud/components/usage-quota.js +43 -8
- package/dist/hud/components/version-badge.js +14 -4
- package/dist/hud/config.js +4 -2
- package/dist/hud/cost-history.js +281 -0
- package/dist/hud/git.js +112 -71
- package/dist/hud/index.js +47 -4
- package/dist/hud/render.js +8 -20
- package/dist/hud/transcript.js +5 -6
- package/dist/targets/claude-code/claude-paths.js +106 -0
- package/dist/targets/claude-code/compliance-install.js +305 -0
- package/dist/targets/claude-code/hooks.js +9 -0
- package/dist/targets/claude-code/installer.js +458 -0
- package/dist/targets/claude-code/legacy.js +239 -0
- package/dist/targets/claude-code/post-install.js +971 -0
- package/package.json +23 -17
- package/src/assets/agents/code.md +244 -0
- package/src/assets/agents/design.md +113 -0
- package/src/assets/agents/diagnose.md +210 -0
- package/src/assets/agents/evaluate.md +117 -0
- package/src/assets/agents/git.md +938 -0
- package/src/assets/agents/knowledge.md +89 -0
- package/src/assets/agents/learning.md +203 -0
- package/src/assets/agents/research.md +134 -0
- package/src/assets/agents/review.md +220 -0
- package/src/assets/agents/scrutinize.md +95 -0
- package/src/assets/agents/simplify.md +108 -0
- package/src/assets/agents/skim.md +136 -0
- package/src/assets/agents/synthesize.md +402 -0
- package/src/assets/agents/test.md +155 -0
- package/src/assets/agents/triage.md +141 -0
- package/src/assets/agents/validate.md +103 -0
- package/src/assets/commands/_partials/_compliance.mds +5 -0
- package/src/assets/commands/_partials/_decisions.mds +20 -0
- package/src/assets/commands/_partials/_engine.mds +244 -0
- package/src/assets/commands/_partials/_factory.mds +216 -0
- package/src/assets/commands/_partials/_knowledge.mds +95 -0
- package/src/assets/commands/_partials/_plan_contract.mds +51 -0
- package/src/assets/commands/_partials/_preamble.mds +82 -0
- package/src/assets/commands/_partials/_publication.mds +7 -0
- package/src/assets/commands/_partials/_roster.mds +31 -0
- package/src/assets/commands/_partials/_ticket_template.mds +59 -0
- package/src/assets/commands/_partials/_wave.mds +123 -0
- package/src/assets/commands/bug-analysis.mds +353 -0
- package/src/assets/commands/code-review.mds +355 -0
- package/src/assets/commands/debug.mds +224 -0
- package/src/assets/commands/dynamic-build.mds +534 -0
- package/src/assets/commands/dynamic-plan.mds +244 -0
- package/src/assets/commands/dynamic-profile.mds +132 -0
- package/src/assets/commands/dynamic-tickets.mds +226 -0
- package/src/assets/commands/explore.mds +150 -0
- package/src/assets/commands/implement.mds +496 -0
- package/src/assets/commands/plan.mds +523 -0
- package/src/assets/commands/release.md +206 -0
- package/src/assets/commands/research.mds +164 -0
- package/src/assets/commands/resolve.mds +636 -0
- package/src/assets/commands/self-review.mds +156 -0
- package/src/assets/rules/accessibility.md +11 -0
- package/src/assets/rules/compliance.md +15 -0
- package/src/assets/rules/engineering.md +13 -0
- package/src/assets/rules/go.md +12 -0
- package/src/assets/rules/java.md +12 -0
- package/src/assets/rules/python.md +12 -0
- package/src/assets/rules/quality.md +14 -0
- package/src/assets/rules/react.md +11 -0
- package/src/assets/rules/reliability.md +12 -0
- package/src/assets/rules/rust.md +12 -0
- package/src/assets/rules/security.md +12 -0
- package/src/assets/rules/typescript.md +12 -0
- package/src/assets/rules/ui-design.md +11 -0
- package/src/assets/scripts/hooks/assets/orchestrator-charter.md +21 -0
- package/src/assets/scripts/hooks/background-memory-update +460 -0
- package/src/assets/scripts/hooks/capture-prompt +87 -0
- package/src/assets/scripts/hooks/capture-question +153 -0
- package/src/assets/scripts/hooks/capture-turn +105 -0
- package/src/assets/scripts/hooks/debug-trace +75 -0
- package/src/assets/scripts/hooks/decisions-usage-scan.cjs +131 -0
- package/src/assets/scripts/hooks/ensure-devflow-init +39 -0
- package/src/assets/scripts/hooks/ensure-proxy +294 -0
- package/src/assets/scripts/hooks/ensure-root-gitignore +116 -0
- package/src/assets/scripts/hooks/get-mtime +23 -0
- package/src/assets/scripts/hooks/git-marker +16 -0
- package/src/assets/scripts/hooks/hook-bootstrap +25 -0
- package/src/assets/scripts/hooks/hook-log-init +41 -0
- package/src/assets/scripts/hooks/json-helper.cjs +725 -0
- package/src/assets/scripts/hooks/json-parse +243 -0
- package/src/assets/scripts/hooks/learning-lock +44 -0
- package/src/assets/scripts/hooks/lib/decisions-format.cjs +301 -0
- package/src/assets/scripts/hooks/lib/mkdir-lock.cjs +106 -0
- package/src/assets/scripts/hooks/lib/project-paths.cjs +230 -0
- package/src/assets/scripts/hooks/lib/render-decisions.cjs +398 -0
- package/src/assets/scripts/hooks/lib/safe-path.cjs +29 -0
- package/src/assets/scripts/hooks/log-paths +24 -0
- package/src/assets/scripts/hooks/memory-worker +101 -0
- package/src/assets/scripts/hooks/pre-compact-memory +126 -0
- package/src/assets/scripts/hooks/preamble +77 -0
- package/src/assets/scripts/hooks/queue-append +120 -0
- package/src/assets/scripts/hooks/resolve-project-root +37 -0
- package/src/assets/scripts/hooks/run-hook +31 -0
- package/src/assets/scripts/hooks/session-start-context +180 -0
- package/src/assets/scripts/hooks/session-start-memory +318 -0
- package/src/assets/scripts/hooks/session-start-orchestrator +54 -0
- package/src/assets/scripts/hud.sh +5 -0
- package/src/assets/scripts/redact-secrets.cjs +410 -0
- package/src/assets/skills/accessibility/SKILL.md +145 -0
- package/src/assets/skills/accessibility/references/patterns.md +398 -0
- package/src/assets/skills/accessibility/references/sources.md +26 -0
- package/src/assets/skills/accessibility/references/violations.md +358 -0
- package/src/assets/skills/apply-decisions/SKILL.md +100 -0
- package/src/assets/skills/apply-feature-knowledge/SKILL.md +69 -0
- package/src/assets/skills/architecture/SKILL.md +138 -0
- package/src/assets/skills/architecture/references/patterns.md +378 -0
- package/src/assets/skills/architecture/references/sources.md +41 -0
- package/src/assets/skills/architecture/references/violations.md +314 -0
- package/src/assets/skills/boundary-validation/SKILL.md +119 -0
- package/src/assets/skills/boundary-validation/references/detection.md +283 -0
- package/src/assets/skills/boundary-validation/references/patterns.md +283 -0
- package/src/assets/skills/boundary-validation/references/sources.md +41 -0
- package/src/assets/skills/boundary-validation/references/violations.md +211 -0
- package/src/assets/skills/complexity/SKILL.md +150 -0
- package/src/assets/skills/compliance/SKILL.md +121 -0
- package/src/assets/skills/compliance/frameworks/gdpr/fragment.md +11 -0
- package/src/assets/skills/compliance/frameworks/gdpr/reference.md +50 -0
- package/src/assets/skills/compliance/frameworks/hipaa/fragment.md +11 -0
- package/src/assets/skills/compliance/frameworks/hipaa/reference.md +44 -0
- package/src/assets/skills/compliance/frameworks/iso-27001/fragment.md +10 -0
- package/src/assets/skills/compliance/frameworks/iso-27001/reference.md +45 -0
- package/src/assets/skills/compliance/frameworks/pci-dss/fragment.md +11 -0
- package/src/assets/skills/compliance/frameworks/pci-dss/reference.md +55 -0
- package/src/assets/skills/compliance/frameworks/soc2/fragment.md +10 -0
- package/src/assets/skills/compliance/frameworks/soc2/reference.md +53 -0
- package/src/assets/skills/compliance/frameworks/sox/fragment.md +10 -0
- package/src/assets/skills/compliance/frameworks/sox/reference.md +67 -0
- package/src/assets/skills/compliance/references/detection.md +108 -0
- package/src/assets/skills/compliance/references/sources.md +28 -0
- package/src/assets/skills/consistency/SKILL.md +140 -0
- package/src/assets/skills/database/SKILL.md +134 -0
- package/src/assets/skills/dependencies/SKILL.md +141 -0
- package/src/assets/skills/dependency-research/SKILL.md +133 -0
- package/src/assets/skills/dependency-research/references/evaluation-criteria.md +101 -0
- package/src/assets/skills/design-review/SKILL.md +155 -0
- package/src/assets/skills/design-review/references/anti-patterns.md +207 -0
- package/src/assets/skills/docs-framework/SKILL.md +190 -0
- package/src/assets/skills/docs-framework/references/patterns.md +381 -0
- package/src/assets/skills/docs-framework/references/violations.md +221 -0
- package/src/assets/skills/documentation/SKILL.md +126 -0
- package/src/assets/skills/feature-knowledge/SKILL.md +341 -0
- package/src/assets/skills/gap-analysis/SKILL.md +151 -0
- package/src/assets/skills/gap-analysis/references/check-layers.md +125 -0
- package/src/assets/skills/git/SKILL.md +287 -0
- package/src/assets/skills/git/references/github-api.md +666 -0
- package/src/assets/skills/git/references/patterns.md +324 -0
- package/src/assets/skills/git/references/sources.md +16 -0
- package/src/assets/skills/git/references/violations.md +128 -0
- package/src/assets/skills/go/SKILL.md +147 -0
- package/src/assets/skills/go/references/concurrency.md +335 -0
- package/src/assets/skills/go/references/patterns.md +278 -0
- package/src/assets/skills/go/references/sources.md +41 -0
- package/src/assets/skills/go/references/violations.md +262 -0
- package/src/assets/skills/java/SKILL.md +148 -0
- package/src/assets/skills/java/references/modern-java.md +335 -0
- package/src/assets/skills/java/references/patterns.md +311 -0
- package/src/assets/skills/java/references/sources.md +44 -0
- package/src/assets/skills/java/references/violations.md +257 -0
- package/src/assets/skills/patterns/SKILL.md +162 -0
- package/src/assets/skills/performance/SKILL.md +135 -0
- package/src/assets/skills/performance/references/patterns.md +516 -0
- package/src/assets/skills/performance/references/sources.md +41 -0
- package/src/assets/skills/performance/references/violations.md +417 -0
- package/src/assets/skills/python/SKILL.md +156 -0
- package/src/assets/skills/python/references/async.md +255 -0
- package/src/assets/skills/python/references/patterns.md +280 -0
- package/src/assets/skills/python/references/sources.md +41 -0
- package/src/assets/skills/python/references/violations.md +272 -0
- package/src/assets/skills/qa/SKILL.md +136 -0
- package/src/assets/skills/qa/references/browser-testing.md +97 -0
- package/src/assets/skills/qa/references/patterns.md +118 -0
- package/src/assets/skills/qa/references/scenario-templates.md +102 -0
- package/src/assets/skills/qa/references/sources.md +30 -0
- package/src/assets/skills/qa/references/violations.md +98 -0
- package/src/assets/skills/quality-gates/SKILL.md +152 -0
- package/src/assets/skills/quality-gates/references/stub-detection.md +135 -0
- package/src/assets/skills/react/SKILL.md +143 -0
- package/src/assets/skills/react/references/error-handling.md +179 -0
- package/src/assets/skills/react/references/forms.md +214 -0
- package/src/assets/skills/react/references/hooks.md +193 -0
- package/src/assets/skills/react/references/patterns.md +1336 -0
- package/src/assets/skills/react/references/sources.md +35 -0
- package/src/assets/skills/react/references/violations.md +570 -0
- package/src/assets/skills/regression/SKILL.md +146 -0
- package/src/assets/skills/reliability/SKILL.md +153 -0
- package/src/assets/skills/reliability/references/detection.md +66 -0
- package/src/assets/skills/reliability/references/patterns.md +151 -0
- package/src/assets/skills/reliability/references/sources.md +27 -0
- package/src/assets/skills/reliability/references/violations.md +125 -0
- package/src/assets/skills/research-codebase/SKILL.md +135 -0
- package/src/assets/skills/research-competitor/SKILL.md +145 -0
- package/src/assets/skills/research-external/SKILL.md +141 -0
- package/src/assets/skills/research-market/SKILL.md +145 -0
- package/src/assets/skills/research-technology/SKILL.md +180 -0
- package/src/assets/skills/review-methodology/SKILL.md +121 -0
- package/src/assets/skills/review-methodology/references/patterns.md +186 -0
- package/src/assets/skills/review-methodology/references/report-template.md +142 -0
- package/src/assets/skills/review-methodology/references/violations.md +125 -0
- package/src/assets/skills/rust/SKILL.md +148 -0
- package/src/assets/skills/rust/references/ownership.md +278 -0
- package/src/assets/skills/rust/references/patterns.md +247 -0
- package/src/assets/skills/rust/references/sources.md +46 -0
- package/src/assets/skills/rust/references/violations.md +252 -0
- package/src/assets/skills/security/SKILL.md +121 -0
- package/src/assets/skills/security/references/patterns.md +271 -0
- package/src/assets/skills/security/references/sources.md +41 -0
- package/src/assets/skills/security/references/violations.md +241 -0
- package/src/assets/skills/software-design/SKILL.md +143 -0
- package/src/assets/skills/software-design/references/checklist.md +259 -0
- package/src/assets/skills/software-design/references/code-smell-violations.md +189 -0
- package/src/assets/skills/software-design/references/patterns.md +359 -0
- package/src/assets/skills/software-design/references/sources.md +41 -0
- package/src/assets/skills/software-design/references/violations.md +341 -0
- package/src/assets/skills/test-driven-development/SKILL.md +197 -0
- package/src/assets/skills/testing/SKILL.md +139 -0
- package/src/assets/skills/testing/references/patterns.md +346 -0
- package/src/assets/skills/testing/references/sources.md +53 -0
- package/src/assets/skills/testing/references/violations.md +322 -0
- package/src/assets/skills/typescript/SKILL.md +150 -0
- package/src/assets/skills/typescript/references/async.md +333 -0
- package/src/assets/skills/typescript/references/patterns.md +440 -0
- package/src/assets/skills/typescript/references/sources.md +41 -0
- package/src/assets/skills/typescript/references/type-guards.md +333 -0
- package/src/assets/skills/typescript/references/utility-types.md +255 -0
- package/src/assets/skills/typescript/references/violations.md +285 -0
- package/src/assets/skills/ui-design/SKILL.md +144 -0
- package/src/assets/skills/ui-design/references/patterns.md +341 -0
- package/src/assets/skills/ui-design/references/sources.md +41 -0
- package/src/assets/skills/ui-design/references/violations.md +312 -0
- package/src/assets/skills/worktree-support/SKILL.md +92 -0
- package/src/targets/claude-code/templates/claudeignore.template +188 -0
- package/src/targets/claude-code/templates/settings.json +86 -0
- package/dist/cli.d.ts +0 -3
- package/dist/commands/ambient.d.ts +0 -18
- package/dist/commands/ambient.js +0 -137
- package/dist/commands/hud.d.ts +0 -22
- package/dist/commands/hud.js +0 -180
- package/dist/commands/init.d.ts +0 -16
- package/dist/commands/init.js +0 -738
- package/dist/commands/list.d.ts +0 -24
- package/dist/commands/list.js +0 -89
- package/dist/commands/memory.d.ts +0 -22
- package/dist/commands/memory.js +0 -175
- package/dist/commands/skills.d.ts +0 -11
- package/dist/commands/skills.js +0 -116
- package/dist/commands/uninstall.d.ts +0 -22
- package/dist/commands/uninstall.js +0 -558
- package/dist/hud/cache.d.ts +0 -14
- package/dist/hud/cache.js +0 -54
- package/dist/hud/colors.d.ts +0 -23
- package/dist/hud/components/config-counts.d.ts +0 -8
- package/dist/hud/components/context-usage.d.ts +0 -8
- package/dist/hud/components/diff-stats.d.ts +0 -3
- package/dist/hud/components/directory.d.ts +0 -3
- package/dist/hud/components/git-ahead-behind.d.ts +0 -3
- package/dist/hud/components/git-branch.d.ts +0 -3
- package/dist/hud/components/model.d.ts +0 -3
- package/dist/hud/components/release-info.d.ts +0 -3
- package/dist/hud/components/session-cost.d.ts +0 -3
- package/dist/hud/components/session-duration.d.ts +0 -3
- package/dist/hud/components/todo-progress.d.ts +0 -3
- package/dist/hud/components/usage-quota.d.ts +0 -3
- package/dist/hud/components/version-badge.d.ts +0 -3
- package/dist/hud/components/worktree-count.d.ts +0 -3
- package/dist/hud/config.d.ts +0 -10
- package/dist/hud/credentials.d.ts +0 -17
- package/dist/hud/credentials.js +0 -99
- package/dist/hud/git.d.ts +0 -7
- package/dist/hud/index.d.ts +0 -2
- package/dist/hud/render.d.ts +0 -7
- package/dist/hud/stdin.d.ts +0 -6
- package/dist/hud/transcript.d.ts +0 -7
- package/dist/hud/types.d.ts +0 -116
- package/dist/hud/usage-api.d.ts +0 -7
- package/dist/hud/usage-api.js +0 -84
- package/dist/plugins.d.ts +0 -46
- package/dist/plugins.js +0 -233
- package/dist/utils/cli.d.ts +0 -5
- package/dist/utils/cli.js +0 -14
- package/dist/utils/git.d.ts +0 -11
- package/dist/utils/git.js +0 -36
- package/dist/utils/installer.d.ts +0 -41
- package/dist/utils/installer.js +0 -195
- package/dist/utils/manifest.d.ts +0 -46
- package/dist/utils/manifest.js +0 -100
- package/dist/utils/paths.d.ts +0 -42
- package/dist/utils/paths.js +0 -106
- package/dist/utils/post-install.d.ts +0 -87
- package/dist/utils/post-install.js +0 -546
- package/dist/utils/safe-delete-install.d.ts +0 -29
- package/dist/utils/safe-delete-install.js +0 -191
- package/dist/utils/safe-delete.d.ts +0 -12
- package/plugins/devflow-accessibility/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-accessibility/skills/accessibility/SKILL.md +0 -229
- package/plugins/devflow-accessibility/skills/accessibility/references/patterns.md +0 -670
- package/plugins/devflow-accessibility/skills/accessibility/references/violations.md +0 -419
- package/plugins/devflow-ambient/.claude-plugin/plugin.json +0 -33
- package/plugins/devflow-ambient/README.md +0 -68
- package/plugins/devflow-ambient/agents/coder.md +0 -135
- package/plugins/devflow-ambient/agents/reviewer.md +0 -165
- package/plugins/devflow-ambient/agents/scrutinizer.md +0 -82
- package/plugins/devflow-ambient/agents/shepherd.md +0 -108
- package/plugins/devflow-ambient/agents/simplifier.md +0 -102
- package/plugins/devflow-ambient/agents/skimmer.md +0 -143
- package/plugins/devflow-ambient/agents/validator.md +0 -86
- package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +0 -145
- package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +0 -74
- package/plugins/devflow-ambient/skills/debug-orchestration/SKILL.md +0 -69
- package/plugins/devflow-ambient/skills/implementation-orchestration/SKILL.md +0 -92
- package/plugins/devflow-ambient/skills/plan-orchestration/SKILL.md +0 -71
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +0 -19
- package/plugins/devflow-audit-claude/README.md +0 -46
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +0 -134
- package/plugins/devflow-audit-claude/commands/audit-claude.md +0 -89
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +0 -38
- package/plugins/devflow-code-review/README.md +0 -73
- package/plugins/devflow-code-review/agents/git.md +0 -277
- package/plugins/devflow-code-review/agents/reviewer.md +0 -165
- package/plugins/devflow-code-review/agents/synthesizer.md +0 -211
- package/plugins/devflow-code-review/commands/code-review-teams.md +0 -285
- package/plugins/devflow-code-review/commands/code-review.md +0 -163
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +0 -153
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +0 -873
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +0 -575
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +0 -143
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +0 -140
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +0 -134
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +0 -141
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +0 -125
- package/plugins/devflow-code-review/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-code-review/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +0 -154
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +0 -503
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +0 -354
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +0 -146
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +0 -119
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +0 -186
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +0 -142
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +0 -125
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +0 -156
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +0 -507
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +0 -237
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +0 -183
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +0 -220
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +0 -221
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +0 -31
- package/plugins/devflow-core-skills/README.md +0 -50
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +0 -162
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +0 -276
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +0 -144
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +0 -576
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +0 -369
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +0 -143
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +0 -346
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +0 -221
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +0 -122
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +0 -289
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +0 -18
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +0 -158
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +0 -115
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +0 -77
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +0 -127
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +0 -96
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +0 -153
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +0 -572
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +0 -298
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +0 -148
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +0 -283
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +0 -361
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +0 -224
- package/plugins/devflow-core-skills/skills/search-first/SKILL.md +0 -133
- package/plugins/devflow-core-skills/skills/search-first/references/evaluation-criteria.md +0 -101
- package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +0 -137
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +0 -183
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +0 -149
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +0 -220
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +0 -108
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +0 -221
- package/plugins/devflow-debug/.claude-plugin/plugin.json +0 -26
- package/plugins/devflow-debug/README.md +0 -65
- package/plugins/devflow-debug/agents/git.md +0 -277
- package/plugins/devflow-debug/agents/synthesizer.md +0 -211
- package/plugins/devflow-debug/commands/debug-teams.md +0 -245
- package/plugins/devflow-debug/commands/debug.md +0 -174
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +0 -122
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +0 -290
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +0 -289
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +0 -18
- package/plugins/devflow-debug/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-debug/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-frontend-design/skills/frontend-design/SKILL.md +0 -254
- package/plugins/devflow-frontend-design/skills/frontend-design/references/patterns.md +0 -511
- package/plugins/devflow-frontend-design/skills/frontend-design/references/violations.md +0 -453
- package/plugins/devflow-go/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-go/skills/go/SKILL.md +0 -187
- package/plugins/devflow-go/skills/go/references/concurrency.md +0 -312
- package/plugins/devflow-go/skills/go/references/patterns.md +0 -232
- package/plugins/devflow-go/skills/go/references/violations.md +0 -205
- package/plugins/devflow-implement/.claude-plugin/plugin.json +0 -35
- package/plugins/devflow-implement/README.md +0 -71
- package/plugins/devflow-implement/agents/coder.md +0 -135
- package/plugins/devflow-implement/agents/git.md +0 -277
- package/plugins/devflow-implement/agents/scrutinizer.md +0 -82
- package/plugins/devflow-implement/agents/shepherd.md +0 -108
- package/plugins/devflow-implement/agents/simplifier.md +0 -102
- package/plugins/devflow-implement/agents/skimmer.md +0 -143
- package/plugins/devflow-implement/agents/synthesizer.md +0 -211
- package/plugins/devflow-implement/agents/validator.md +0 -86
- package/plugins/devflow-implement/commands/implement-teams.md +0 -620
- package/plugins/devflow-implement/commands/implement.md +0 -430
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +0 -162
- package/plugins/devflow-implement/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-implement/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-implement/skills/self-review/SKILL.md +0 -149
- package/plugins/devflow-implement/skills/self-review/references/stub-detection.md +0 -135
- package/plugins/devflow-java/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-java/skills/java/SKILL.md +0 -183
- package/plugins/devflow-java/skills/java/references/modern-java.md +0 -270
- package/plugins/devflow-java/skills/java/references/patterns.md +0 -235
- package/plugins/devflow-java/skills/java/references/violations.md +0 -213
- package/plugins/devflow-python/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-python/skills/python/SKILL.md +0 -188
- package/plugins/devflow-python/skills/python/references/async.md +0 -220
- package/plugins/devflow-python/skills/python/references/patterns.md +0 -226
- package/plugins/devflow-python/skills/python/references/violations.md +0 -204
- package/plugins/devflow-react/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-react/skills/react/SKILL.md +0 -276
- package/plugins/devflow-react/skills/react/references/patterns.md +0 -1331
- package/plugins/devflow-react/skills/react/references/violations.md +0 -565
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +0 -29
- package/plugins/devflow-resolve/README.md +0 -65
- package/plugins/devflow-resolve/agents/git.md +0 -277
- package/plugins/devflow-resolve/agents/resolver.md +0 -131
- package/plugins/devflow-resolve/agents/simplifier.md +0 -102
- package/plugins/devflow-resolve/commands/resolve-teams.md +0 -307
- package/plugins/devflow-resolve/commands/resolve.md +0 -246
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +0 -162
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +0 -1063
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +0 -483
- package/plugins/devflow-resolve/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-resolve/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +0 -156
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +0 -287
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +0 -507
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +0 -237
- package/plugins/devflow-rust/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-rust/skills/rust/SKILL.md +0 -193
- package/plugins/devflow-rust/skills/rust/references/ownership.md +0 -242
- package/plugins/devflow-rust/skills/rust/references/patterns.md +0 -210
- package/plugins/devflow-rust/skills/rust/references/violations.md +0 -191
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +0 -26
- package/plugins/devflow-self-review/README.md +0 -38
- package/plugins/devflow-self-review/agents/scrutinizer.md +0 -82
- package/plugins/devflow-self-review/agents/simplifier.md +0 -102
- package/plugins/devflow-self-review/agents/validator.md +0 -86
- package/plugins/devflow-self-review/commands/self-review.md +0 -132
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +0 -162
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +0 -276
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +0 -144
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +0 -303
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +0 -576
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +0 -369
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +0 -149
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +0 -405
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +0 -253
- package/plugins/devflow-self-review/skills/self-review/references/stub-detection.md +0 -135
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +0 -308
- package/plugins/devflow-specify/.claude-plugin/plugin.json +0 -25
- package/plugins/devflow-specify/README.md +0 -46
- package/plugins/devflow-specify/agents/skimmer.md +0 -143
- package/plugins/devflow-specify/agents/synthesizer.md +0 -211
- package/plugins/devflow-specify/commands/specify-teams.md +0 -321
- package/plugins/devflow-specify/commands/specify.md +0 -186
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-typescript/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-typescript/skills/typescript/SKILL.md +0 -176
- package/plugins/devflow-typescript/skills/typescript/references/patterns.md +0 -1105
- package/plugins/devflow-typescript/skills/typescript/references/violations.md +0 -433
- package/scripts/hooks/ambient-prompt +0 -50
- package/scripts/hooks/background-memory-update +0 -257
- package/scripts/hooks/ensure-memory-gitignore +0 -17
- package/scripts/hooks/pre-compact-memory +0 -87
- package/scripts/hooks/run-hook +0 -23
- package/scripts/hooks/session-start-memory +0 -165
- package/scripts/hooks/stop-update-memory +0 -85
- package/scripts/hud/cache.d.ts +0 -14
- package/scripts/hud/cache.d.ts.map +0 -1
- package/scripts/hud/cache.js +0 -54
- package/scripts/hud/cache.js.map +0 -1
- package/scripts/hud/colors.d.ts +0 -23
- package/scripts/hud/colors.d.ts.map +0 -1
- package/scripts/hud/colors.js +0 -62
- package/scripts/hud/colors.js.map +0 -1
- package/scripts/hud/components/config-counts.d.ts +0 -8
- package/scripts/hud/components/config-counts.d.ts.map +0 -1
- package/scripts/hud/components/config-counts.js +0 -91
- package/scripts/hud/components/config-counts.js.map +0 -1
- package/scripts/hud/components/context-usage.d.ts +0 -8
- package/scripts/hud/components/context-usage.d.ts.map +0 -1
- package/scripts/hud/components/context-usage.js +0 -49
- package/scripts/hud/components/context-usage.js.map +0 -1
- package/scripts/hud/components/diff-stats.d.ts +0 -3
- package/scripts/hud/components/diff-stats.d.ts.map +0 -1
- package/scripts/hud/components/diff-stats.js +0 -36
- package/scripts/hud/components/diff-stats.js.map +0 -1
- package/scripts/hud/components/directory.d.ts +0 -3
- package/scripts/hud/components/directory.d.ts.map +0 -1
- package/scripts/hud/components/directory.js +0 -10
- package/scripts/hud/components/directory.js.map +0 -1
- package/scripts/hud/components/git-ahead-behind.d.ts +0 -3
- package/scripts/hud/components/git-ahead-behind.d.ts.map +0 -1
- package/scripts/hud/components/git-ahead-behind.js +0 -16
- package/scripts/hud/components/git-ahead-behind.js.map +0 -1
- package/scripts/hud/components/git-branch.d.ts +0 -3
- package/scripts/hud/components/git-branch.d.ts.map +0 -1
- package/scripts/hud/components/git-branch.js +0 -14
- package/scripts/hud/components/git-branch.js.map +0 -1
- package/scripts/hud/components/model.d.ts +0 -3
- package/scripts/hud/components/model.d.ts.map +0 -1
- package/scripts/hud/components/model.js +0 -21
- package/scripts/hud/components/model.js.map +0 -1
- package/scripts/hud/components/release-info.d.ts +0 -3
- package/scripts/hud/components/release-info.d.ts.map +0 -1
- package/scripts/hud/components/release-info.js +0 -9
- package/scripts/hud/components/release-info.js.map +0 -1
- package/scripts/hud/components/session-cost.d.ts +0 -3
- package/scripts/hud/components/session-cost.d.ts.map +0 -1
- package/scripts/hud/components/session-cost.js +0 -9
- package/scripts/hud/components/session-cost.js.map +0 -1
- package/scripts/hud/components/session-duration.d.ts +0 -3
- package/scripts/hud/components/session-duration.d.ts.map +0 -1
- package/scripts/hud/components/session-duration.js +0 -18
- package/scripts/hud/components/session-duration.js.map +0 -1
- package/scripts/hud/components/todo-progress.d.ts +0 -3
- package/scripts/hud/components/todo-progress.d.ts.map +0 -1
- package/scripts/hud/components/todo-progress.js +0 -11
- package/scripts/hud/components/todo-progress.js.map +0 -1
- package/scripts/hud/components/usage-quota.d.ts +0 -3
- package/scripts/hud/components/usage-quota.d.ts.map +0 -1
- package/scripts/hud/components/usage-quota.js +0 -45
- package/scripts/hud/components/usage-quota.js.map +0 -1
- package/scripts/hud/components/version-badge.d.ts +0 -3
- package/scripts/hud/components/version-badge.d.ts.map +0 -1
- package/scripts/hud/components/version-badge.js +0 -80
- package/scripts/hud/components/version-badge.js.map +0 -1
- package/scripts/hud/components/worktree-count.d.ts +0 -3
- package/scripts/hud/components/worktree-count.d.ts.map +0 -1
- package/scripts/hud/components/worktree-count.js +0 -8
- package/scripts/hud/components/worktree-count.js.map +0 -1
- package/scripts/hud/config.d.ts +0 -10
- package/scripts/hud/config.d.ts.map +0 -1
- package/scripts/hud/config.js +0 -55
- package/scripts/hud/config.js.map +0 -1
- package/scripts/hud/credentials.d.ts +0 -17
- package/scripts/hud/credentials.d.ts.map +0 -1
- package/scripts/hud/credentials.js +0 -99
- package/scripts/hud/credentials.js.map +0 -1
- package/scripts/hud/git.d.ts +0 -7
- package/scripts/hud/git.d.ts.map +0 -1
- package/scripts/hud/git.js +0 -153
- package/scripts/hud/git.js.map +0 -1
- package/scripts/hud/index.d.ts +0 -2
- package/scripts/hud/index.d.ts.map +0 -1
- package/scripts/hud/index.js +0 -81
- package/scripts/hud/index.js.map +0 -1
- package/scripts/hud/render.d.ts +0 -7
- package/scripts/hud/render.d.ts.map +0 -1
- package/scripts/hud/render.js +0 -111
- package/scripts/hud/render.js.map +0 -1
- package/scripts/hud/stdin.d.ts +0 -6
- package/scripts/hud/stdin.d.ts.map +0 -1
- package/scripts/hud/stdin.js +0 -25
- package/scripts/hud/stdin.js.map +0 -1
- package/scripts/hud/transcript.d.ts +0 -7
- package/scripts/hud/transcript.d.ts.map +0 -1
- package/scripts/hud/transcript.js +0 -130
- package/scripts/hud/transcript.js.map +0 -1
- package/scripts/hud/types.d.ts +0 -116
- package/scripts/hud/types.d.ts.map +0 -1
- package/scripts/hud/types.js +0 -2
- package/scripts/hud/types.js.map +0 -1
- package/scripts/hud/usage-api.d.ts +0 -7
- package/scripts/hud/usage-api.d.ts.map +0 -1
- package/scripts/hud/usage-api.js +0 -84
- package/scripts/hud/usage-api.js.map +0 -1
- package/scripts/hud.sh +0 -5
- package/shared/agents/coder.md +0 -135
- package/shared/agents/git.md +0 -277
- package/shared/agents/resolver.md +0 -131
- package/shared/agents/reviewer.md +0 -165
- package/shared/agents/scrutinizer.md +0 -82
- package/shared/agents/shepherd.md +0 -108
- package/shared/agents/simplifier.md +0 -102
- package/shared/agents/skimmer.md +0 -143
- package/shared/agents/synthesizer.md +0 -211
- package/shared/agents/validator.md +0 -86
- package/shared/skills/accessibility/SKILL.md +0 -229
- package/shared/skills/accessibility/references/detection.md +0 -171
- package/shared/skills/accessibility/references/patterns.md +0 -670
- package/shared/skills/accessibility/references/violations.md +0 -419
- package/shared/skills/agent-teams/SKILL.md +0 -124
- package/shared/skills/agent-teams/references/cleanup.md +0 -104
- package/shared/skills/agent-teams/references/communication.md +0 -122
- package/shared/skills/agent-teams/references/team-patterns.md +0 -217
- package/shared/skills/ambient-router/SKILL.md +0 -145
- package/shared/skills/ambient-router/references/skill-catalog.md +0 -74
- package/shared/skills/architecture-patterns/SKILL.md +0 -153
- package/shared/skills/architecture-patterns/references/detection.md +0 -337
- package/shared/skills/architecture-patterns/references/patterns.md +0 -873
- package/shared/skills/architecture-patterns/references/violations.md +0 -575
- package/shared/skills/complexity-patterns/SKILL.md +0 -143
- package/shared/skills/complexity-patterns/references/detection.md +0 -264
- package/shared/skills/complexity-patterns/references/patterns.md +0 -487
- package/shared/skills/complexity-patterns/references/violations.md +0 -361
- package/shared/skills/consistency-patterns/SKILL.md +0 -140
- package/shared/skills/consistency-patterns/references/detection.md +0 -207
- package/shared/skills/consistency-patterns/references/patterns.md +0 -202
- package/shared/skills/consistency-patterns/references/violations.md +0 -213
- package/shared/skills/core-patterns/SKILL.md +0 -162
- package/shared/skills/core-patterns/references/checklist.md +0 -276
- package/shared/skills/core-patterns/references/code-smell-violations.md +0 -144
- package/shared/skills/core-patterns/references/detection.md +0 -303
- package/shared/skills/core-patterns/references/patterns.md +0 -576
- package/shared/skills/core-patterns/references/violations.md +0 -369
- package/shared/skills/database-patterns/SKILL.md +0 -134
- package/shared/skills/database-patterns/references/detection.md +0 -208
- package/shared/skills/database-patterns/references/patterns.md +0 -394
- package/shared/skills/database-patterns/references/violations.md +0 -332
- package/shared/skills/debug-orchestration/SKILL.md +0 -69
- package/shared/skills/dependencies-patterns/SKILL.md +0 -141
- package/shared/skills/dependencies-patterns/references/detection.md +0 -181
- package/shared/skills/dependencies-patterns/references/patterns.md +0 -225
- package/shared/skills/dependencies-patterns/references/violations.md +0 -247
- package/shared/skills/docs-framework/SKILL.md +0 -143
- package/shared/skills/docs-framework/references/patterns.md +0 -346
- package/shared/skills/docs-framework/references/violations.md +0 -221
- package/shared/skills/documentation-patterns/SKILL.md +0 -125
- package/shared/skills/documentation-patterns/references/detection.md +0 -190
- package/shared/skills/documentation-patterns/references/patterns.md +0 -189
- package/shared/skills/documentation-patterns/references/violations.md +0 -163
- package/shared/skills/frontend-design/SKILL.md +0 -254
- package/shared/skills/frontend-design/references/detection.md +0 -184
- package/shared/skills/frontend-design/references/patterns.md +0 -511
- package/shared/skills/frontend-design/references/violations.md +0 -453
- package/shared/skills/git-safety/SKILL.md +0 -122
- package/shared/skills/git-safety/references/detection.md +0 -290
- package/shared/skills/git-safety/references/patterns.md +0 -289
- package/shared/skills/git-safety/references/violations.md +0 -18
- package/shared/skills/git-workflow/SKILL.md +0 -158
- package/shared/skills/git-workflow/references/commit-patterns.md +0 -115
- package/shared/skills/git-workflow/references/commit-violations.md +0 -77
- package/shared/skills/git-workflow/references/pr-patterns.md +0 -127
- package/shared/skills/git-workflow/references/pr-violations.md +0 -96
- package/shared/skills/github-patterns/SKILL.md +0 -153
- package/shared/skills/github-patterns/references/patterns.md +0 -572
- package/shared/skills/github-patterns/references/violations.md +0 -298
- package/shared/skills/go/SKILL.md +0 -187
- package/shared/skills/go/references/concurrency.md +0 -312
- package/shared/skills/go/references/detection.md +0 -129
- package/shared/skills/go/references/patterns.md +0 -232
- package/shared/skills/go/references/violations.md +0 -205
- package/shared/skills/implementation-orchestration/SKILL.md +0 -92
- package/shared/skills/implementation-patterns/SKILL.md +0 -162
- package/shared/skills/implementation-patterns/references/patterns.md +0 -1063
- package/shared/skills/implementation-patterns/references/violations.md +0 -483
- package/shared/skills/input-validation/SKILL.md +0 -148
- package/shared/skills/input-validation/references/detection.md +0 -283
- package/shared/skills/input-validation/references/patterns.md +0 -361
- package/shared/skills/input-validation/references/violations.md +0 -224
- package/shared/skills/java/SKILL.md +0 -183
- package/shared/skills/java/references/detection.md +0 -120
- package/shared/skills/java/references/modern-java.md +0 -270
- package/shared/skills/java/references/patterns.md +0 -235
- package/shared/skills/java/references/violations.md +0 -213
- package/shared/skills/knowledge-persistence/SKILL.md +0 -128
- package/shared/skills/knowledge-persistence/references/examples.md +0 -44
- package/shared/skills/performance-patterns/SKILL.md +0 -154
- package/shared/skills/performance-patterns/references/detection.md +0 -351
- package/shared/skills/performance-patterns/references/patterns.md +0 -503
- package/shared/skills/performance-patterns/references/violations.md +0 -354
- package/shared/skills/plan-orchestration/SKILL.md +0 -71
- package/shared/skills/python/SKILL.md +0 -188
- package/shared/skills/python/references/async.md +0 -220
- package/shared/skills/python/references/detection.md +0 -128
- package/shared/skills/python/references/patterns.md +0 -226
- package/shared/skills/python/references/violations.md +0 -204
- package/shared/skills/react/SKILL.md +0 -276
- package/shared/skills/react/references/patterns.md +0 -1331
- package/shared/skills/react/references/violations.md +0 -565
- package/shared/skills/regression-patterns/SKILL.md +0 -146
- package/shared/skills/regression-patterns/references/detection.md +0 -237
- package/shared/skills/regression-patterns/references/patterns.md +0 -226
- package/shared/skills/regression-patterns/references/violations.md +0 -225
- package/shared/skills/review-methodology/SKILL.md +0 -119
- package/shared/skills/review-methodology/references/patterns.md +0 -186
- package/shared/skills/review-methodology/references/report-template.md +0 -142
- package/shared/skills/review-methodology/references/violations.md +0 -125
- package/shared/skills/rust/SKILL.md +0 -193
- package/shared/skills/rust/references/detection.md +0 -131
- package/shared/skills/rust/references/ownership.md +0 -242
- package/shared/skills/rust/references/patterns.md +0 -210
- package/shared/skills/rust/references/violations.md +0 -191
- package/shared/skills/search-first/SKILL.md +0 -133
- package/shared/skills/search-first/references/evaluation-criteria.md +0 -101
- package/shared/skills/security-patterns/SKILL.md +0 -156
- package/shared/skills/security-patterns/references/detection.md +0 -287
- package/shared/skills/security-patterns/references/patterns.md +0 -507
- package/shared/skills/security-patterns/references/violations.md +0 -237
- package/shared/skills/self-review/SKILL.md +0 -149
- package/shared/skills/self-review/references/patterns.md +0 -405
- package/shared/skills/self-review/references/report-template.md +0 -253
- package/shared/skills/self-review/references/stub-detection.md +0 -135
- package/shared/skills/self-review/references/violations.md +0 -308
- package/shared/skills/test-driven-development/SKILL.md +0 -137
- package/shared/skills/test-driven-development/references/rationalization-prevention.md +0 -111
- package/shared/skills/test-patterns/SKILL.md +0 -183
- package/shared/skills/test-patterns/references/detection.md +0 -149
- package/shared/skills/test-patterns/references/patterns.md +0 -220
- package/shared/skills/test-patterns/references/report-template.md +0 -108
- package/shared/skills/test-patterns/references/violations.md +0 -221
- package/shared/skills/typescript/SKILL.md +0 -176
- package/shared/skills/typescript/references/patterns.md +0 -1105
- package/shared/skills/typescript/references/violations.md +0 -433
- package/src/templates/claudeignore.template +0 -188
- package/src/templates/settings.json +0 -59
- /package/dist/{utils → core}/safe-delete.js +0 -0
- /package/{plugins/devflow-accessibility → src/assets}/skills/accessibility/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/architecture-patterns → src/assets/skills/architecture}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/complexity-patterns → src/assets/skills/complexity}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/complexity-patterns → src/assets/skills/complexity}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/complexity-patterns → src/assets/skills/complexity}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/consistency-patterns → src/assets/skills/consistency}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/consistency-patterns → src/assets/skills/consistency}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/consistency-patterns → src/assets/skills/consistency}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/database-patterns → src/assets/skills/database}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/database-patterns → src/assets/skills/database}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/database-patterns → src/assets/skills/database}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/dependencies-patterns → src/assets/skills/dependencies}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/dependencies-patterns → src/assets/skills/dependencies}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/dependencies-patterns → src/assets/skills/dependencies}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/documentation-patterns → src/assets/skills/documentation}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/documentation-patterns → src/assets/skills/documentation}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/documentation-patterns → src/assets/skills/documentation}/references/violations.md +0 -0
- /package/{plugins/devflow-core-skills/skills/git-safety → src/assets/skills/git}/references/detection.md +0 -0
- /package/{plugins/devflow-go → src/assets}/skills/go/references/detection.md +0 -0
- /package/{plugins/devflow-java → src/assets}/skills/java/references/detection.md +0 -0
- /package/{plugins/devflow-implement/skills/implementation-patterns → src/assets/skills/patterns}/references/patterns.md +0 -0
- /package/{plugins/devflow-implement/skills/implementation-patterns → src/assets/skills/patterns}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/performance-patterns → src/assets/skills/performance}/references/detection.md +0 -0
- /package/{plugins/devflow-python → src/assets}/skills/python/references/detection.md +0 -0
- /package/{plugins/devflow-implement/skills/self-review → src/assets/skills/quality-gates}/references/patterns.md +0 -0
- /package/{plugins/devflow-implement/skills/self-review → src/assets/skills/quality-gates}/references/report-template.md +0 -0
- /package/{plugins/devflow-implement/skills/self-review → src/assets/skills/quality-gates}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/regression-patterns → src/assets/skills/regression}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/regression-patterns → src/assets/skills/regression}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/regression-patterns → src/assets/skills/regression}/references/violations.md +0 -0
- /package/{plugins/devflow-rust → src/assets}/skills/rust/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/security-patterns → src/assets/skills/security}/references/detection.md +0 -0
- /package/{plugins/devflow-core-skills/skills/core-patterns → src/assets/skills/software-design}/references/detection.md +0 -0
- /package/{plugins/devflow-core-skills → src/assets}/skills/test-driven-development/references/rationalization-prevention.md +0 -0
- /package/{plugins/devflow-code-review/skills/test-patterns → src/assets/skills/testing}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/test-patterns → src/assets/skills/testing}/references/report-template.md +0 -0
- /package/{plugins/devflow-frontend-design/skills/frontend-design → src/assets/skills/ui-design}/references/detection.md +0 -0
- /package/src/{templates → targets/claude-code/templates}/managed-settings.json +0 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { promises as fs } from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import * as p from '@clack/prompts';
|
|
5
|
+
import color from 'picocolors';
|
|
6
|
+
import { getClaudeDirectory, getDevFlowDirectory } from '../../targets/claude-code/claude-paths.js';
|
|
7
|
+
import { syncManifestFeature } from '../../core/manifest.js';
|
|
8
|
+
import { writeFileAtomicExclusive } from '../../core/fs-atomic.js';
|
|
9
|
+
import { HUD_COMPONENTS, loadConfig, saveConfig, } from '../../hud/config.js';
|
|
10
|
+
/**
|
|
11
|
+
* Add the HUD statusLine to settings JSON.
|
|
12
|
+
* Idempotent — returns unchanged JSON if HUD already set.
|
|
13
|
+
* Upgrades legacy statusline.sh to hud.sh automatically.
|
|
14
|
+
*/
|
|
15
|
+
export function addHudStatusLine(settingsJson, devflowDir) {
|
|
16
|
+
const settings = JSON.parse(settingsJson);
|
|
17
|
+
const hudCommand = path.join(devflowDir, 'scripts', 'hud.sh');
|
|
18
|
+
// Already pointing to this exact HUD — nothing to do
|
|
19
|
+
if (settings.statusLine?.command === hudCommand) {
|
|
20
|
+
return settingsJson;
|
|
21
|
+
}
|
|
22
|
+
// If there's a non-Devflow statusLine, don't overwrite (caller should check first)
|
|
23
|
+
if (settings.statusLine && !isDevFlowStatusLine(settings.statusLine)) {
|
|
24
|
+
return settingsJson;
|
|
25
|
+
}
|
|
26
|
+
settings.statusLine = {
|
|
27
|
+
type: 'command',
|
|
28
|
+
command: hudCommand,
|
|
29
|
+
};
|
|
30
|
+
return JSON.stringify(settings, null, 2) + '\n';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Remove the HUD statusLine from settings JSON.
|
|
34
|
+
* Idempotent — returns unchanged JSON if statusLine not present or not Devflow.
|
|
35
|
+
*/
|
|
36
|
+
export function removeHudStatusLine(settingsJson) {
|
|
37
|
+
const settings = JSON.parse(settingsJson);
|
|
38
|
+
if (!settings.statusLine) {
|
|
39
|
+
return settingsJson;
|
|
40
|
+
}
|
|
41
|
+
// Only remove if it's a Devflow HUD/statusline
|
|
42
|
+
if (!isDevFlowStatusLine(settings.statusLine)) {
|
|
43
|
+
return settingsJson;
|
|
44
|
+
}
|
|
45
|
+
delete settings.statusLine;
|
|
46
|
+
return JSON.stringify(settings, null, 2) + '\n';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Check if the statusLine in settings JSON points to the Devflow HUD.
|
|
50
|
+
*/
|
|
51
|
+
export function hasHudStatusLine(settingsJson) {
|
|
52
|
+
const settings = JSON.parse(settingsJson);
|
|
53
|
+
if (!settings.statusLine)
|
|
54
|
+
return false;
|
|
55
|
+
return isDevFlowStatusLine(settings.statusLine);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Check if an existing statusLine belongs to Devflow (HUD or legacy statusline).
|
|
59
|
+
* Matches paths containing 'hud.sh', 'statusline.sh', or a '/devflow/' directory segment.
|
|
60
|
+
*/
|
|
61
|
+
function isDevFlowStatusLine(statusLine) {
|
|
62
|
+
const cmd = statusLine.command ?? '';
|
|
63
|
+
return (cmd.includes('hud.sh') ||
|
|
64
|
+
cmd.includes('statusline.sh') ||
|
|
65
|
+
cmd.includes('/devflow/') ||
|
|
66
|
+
cmd.includes('\\devflow\\'));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if an existing statusLine belongs to a non-Devflow tool.
|
|
70
|
+
*/
|
|
71
|
+
export function hasNonDevFlowStatusLine(settingsJson) {
|
|
72
|
+
const settings = JSON.parse(settingsJson);
|
|
73
|
+
if (!settings.statusLine?.command)
|
|
74
|
+
return false;
|
|
75
|
+
return !isDevFlowStatusLine(settings.statusLine);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build a fresh Commander Command for the `hud` subcommand.
|
|
79
|
+
* Exported for tests that need per-test isolation without resorting to
|
|
80
|
+
* Commander's private `_optionValues` field.
|
|
81
|
+
*/
|
|
82
|
+
export function createHudCommand() {
|
|
83
|
+
return new Command('hud')
|
|
84
|
+
.description('Configure the HUD (status line)')
|
|
85
|
+
.option('--status', 'Show current HUD config')
|
|
86
|
+
.option('--detail', 'Show tool/agent descriptions in HUD')
|
|
87
|
+
.option('--no-detail', 'Hide tool/agent descriptions')
|
|
88
|
+
.option('--enable', 'Enable HUD in settings')
|
|
89
|
+
.option('--disable', 'Disable HUD (remove statusLine)')
|
|
90
|
+
.action(async (options) => {
|
|
91
|
+
const hasFlag = options.status ||
|
|
92
|
+
options.enable ||
|
|
93
|
+
options.disable ||
|
|
94
|
+
options.detail !== undefined;
|
|
95
|
+
if (!hasFlag) {
|
|
96
|
+
p.intro(color.bgCyan(color.white(' HUD ')));
|
|
97
|
+
p.note(`${color.cyan('devflow hud --detail')} Show tool/agent descriptions\n` +
|
|
98
|
+
`${color.cyan('devflow hud --no-detail')} Hide tool/agent descriptions\n` +
|
|
99
|
+
`${color.cyan('devflow hud --status')} Show current config\n` +
|
|
100
|
+
`${color.cyan('devflow hud --enable')} Enable HUD in settings\n` +
|
|
101
|
+
`${color.cyan('devflow hud --disable')} Remove HUD from settings`, 'Usage');
|
|
102
|
+
p.note(`${HUD_COMPONENTS.length} components: ${HUD_COMPONENTS.join(', ')}`, 'Components');
|
|
103
|
+
p.outro(color.dim('Toggle with --enable / --disable'));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (options.status) {
|
|
107
|
+
const config = loadConfig();
|
|
108
|
+
p.intro(color.bgCyan(color.white(' HUD Status ')));
|
|
109
|
+
p.note(`${color.dim('Enabled:')} ${config.enabled ? color.green('yes') : color.dim('no')}\n` +
|
|
110
|
+
`${color.dim('Detail:')} ${config.detail ? color.green('on') : color.dim('off')}\n` +
|
|
111
|
+
`${color.dim('Components:')} ${HUD_COMPONENTS.length}`, 'Current config');
|
|
112
|
+
// Check settings.json
|
|
113
|
+
const claudeDir = getClaudeDirectory();
|
|
114
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
115
|
+
try {
|
|
116
|
+
const content = await fs.readFile(settingsPath, 'utf-8');
|
|
117
|
+
const enabled = hasHudStatusLine(content);
|
|
118
|
+
p.log.info(`Status line: ${enabled ? color.green('enabled') : color.dim('disabled')}`);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
p.log.info(`Status line: ${color.dim('no settings.json found')}`);
|
|
122
|
+
}
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (options.detail !== undefined) {
|
|
126
|
+
const config = loadConfig();
|
|
127
|
+
config.detail = options.detail;
|
|
128
|
+
saveConfig(config);
|
|
129
|
+
p.log.success(`HUD detail ${config.detail ? 'enabled' : 'disabled'}`);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (options.enable) {
|
|
133
|
+
const claudeDir = getClaudeDirectory();
|
|
134
|
+
const devflowDir = getDevFlowDirectory();
|
|
135
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
136
|
+
let settingsContent;
|
|
137
|
+
try {
|
|
138
|
+
settingsContent = await fs.readFile(settingsPath, 'utf-8');
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
settingsContent = '{}';
|
|
142
|
+
}
|
|
143
|
+
// Ensure statusLine is registered (idempotent — adds only if missing).
|
|
144
|
+
// This runs unconditionally so a missing statusLine is repaired even when
|
|
145
|
+
// config already says enabled (@D2 symmetric self-heal with --disable).
|
|
146
|
+
if (!hasHudStatusLine(settingsContent)) {
|
|
147
|
+
// Check for non-Devflow statusLine
|
|
148
|
+
if (hasNonDevFlowStatusLine(settingsContent)) {
|
|
149
|
+
const settings = JSON.parse(settingsContent);
|
|
150
|
+
p.log.warn(`Existing statusLine found: ${color.dim(settings.statusLine?.command ?? 'unknown')}`);
|
|
151
|
+
if (process.stdin.isTTY) {
|
|
152
|
+
const overwrite = await p.confirm({
|
|
153
|
+
message: 'Replace existing statusLine with Devflow HUD?',
|
|
154
|
+
initialValue: false,
|
|
155
|
+
});
|
|
156
|
+
if (p.isCancel(overwrite) || !overwrite) {
|
|
157
|
+
p.log.info('HUD not enabled — existing statusLine preserved');
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// User confirmed: clear the non-Devflow statusLine so
|
|
161
|
+
// addHudStatusLine can write the Devflow HUD. The guard inside
|
|
162
|
+
// addHudStatusLine protects callers that haven't confirmed yet;
|
|
163
|
+
// this call site has confirmed, so clear the field first.
|
|
164
|
+
const confirmed = JSON.parse(settingsContent);
|
|
165
|
+
delete confirmed.statusLine;
|
|
166
|
+
settingsContent = JSON.stringify(confirmed, null, 2) + '\n';
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
p.log.info('Non-interactive mode — skipping (existing statusLine would be overwritten)');
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const updated = addHudStatusLine(settingsContent, devflowDir);
|
|
174
|
+
await writeFileAtomicExclusive(settingsPath, updated);
|
|
175
|
+
}
|
|
176
|
+
// Always update config and sync manifest — removing the already-enabled
|
|
177
|
+
// early-return makes --enable self-healing symmetric with --disable.
|
|
178
|
+
// @D2 a drifted manifest (hud=false when config says enabled) is repaired
|
|
179
|
+
// on --enable without requiring a disable/re-enable cycle.
|
|
180
|
+
const config = loadConfig();
|
|
181
|
+
const wasEnabled = config.enabled;
|
|
182
|
+
if (!wasEnabled) {
|
|
183
|
+
saveConfig({ ...config, enabled: true });
|
|
184
|
+
}
|
|
185
|
+
await syncManifestFeature(devflowDir, 'hud', true);
|
|
186
|
+
if (wasEnabled) {
|
|
187
|
+
p.log.info('HUD already enabled');
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
p.log.success('HUD enabled');
|
|
191
|
+
p.log.info(color.dim('Restart Claude Code to see the HUD'));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (options.disable) {
|
|
195
|
+
const config = loadConfig();
|
|
196
|
+
const wasEnabled = config.enabled;
|
|
197
|
+
// Always update config to disabled (idempotent).
|
|
198
|
+
if (wasEnabled) {
|
|
199
|
+
saveConfig({ ...config, enabled: false });
|
|
200
|
+
}
|
|
201
|
+
// @D1 Always attempt to hard-remove the statusLine from settings.json,
|
|
202
|
+
// regardless of config.enabled. This self-heals drift where hud.json says
|
|
203
|
+
// disabled but a Devflow statusLine still lingers in settings.json from a
|
|
204
|
+
// partial prior state (e.g. crash between config-write and settings-write).
|
|
205
|
+
const claudeDir = getClaudeDirectory();
|
|
206
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
207
|
+
let statusLineRemoved = false;
|
|
208
|
+
try {
|
|
209
|
+
const settingsContent = await fs.readFile(settingsPath, 'utf-8');
|
|
210
|
+
const updated = removeHudStatusLine(settingsContent);
|
|
211
|
+
if (updated !== settingsContent) {
|
|
212
|
+
await writeFileAtomicExclusive(settingsPath, updated);
|
|
213
|
+
statusLineRemoved = true;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
// settings.json may not exist — non-fatal
|
|
218
|
+
}
|
|
219
|
+
if (!wasEnabled && !statusLineRemoved) {
|
|
220
|
+
p.log.info('HUD already disabled');
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
await syncManifestFeature(getDevFlowDirectory(), 'hud', false);
|
|
224
|
+
p.log.success('HUD disabled');
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
export const hudCommand = createHudCommand();
|
|
229
|
+
//# sourceMappingURL=hud.js.map
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure seeding helpers for devflow init.
|
|
3
|
+
*
|
|
4
|
+
* Computes the initial state (seed) for init prompts from:
|
|
5
|
+
* - The existing manifest (from a prior install)
|
|
6
|
+
* - The project feature config (.devflow/config.json)
|
|
7
|
+
* - The current settings.json snapshot (for viewMode)
|
|
8
|
+
* - The plugin registry
|
|
9
|
+
*
|
|
10
|
+
* All exported functions are pure — no I/O, no side effects.
|
|
11
|
+
*
|
|
12
|
+
* Applies ADR-013: seeding helpers are CLI-init-specific logic, so they live
|
|
13
|
+
* beside init.ts in src/cli/commands/ rather than in src/core/ (which holds
|
|
14
|
+
* agent-neutral, target-agnostic utilities).
|
|
15
|
+
*/
|
|
16
|
+
import { resolveExistingViewMode, FLAG_REGISTRY } from '../../core/flags.js';
|
|
17
|
+
import { partitionSelectablePlugins } from '../../core/plugins.js';
|
|
18
|
+
/** Registry defaults — all features enabled except proxy (advanced-only, off by default). */
|
|
19
|
+
export const FEATURE_DEFAULTS = {
|
|
20
|
+
ambient: true,
|
|
21
|
+
memory: true,
|
|
22
|
+
hud: true,
|
|
23
|
+
knowledge: true,
|
|
24
|
+
learning: true,
|
|
25
|
+
rules: true,
|
|
26
|
+
proxy: false,
|
|
27
|
+
compliance: { enabled: false, frameworks: [] },
|
|
28
|
+
};
|
|
29
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
30
|
+
/**
|
|
31
|
+
* Resolve feature booleans for the init seed.
|
|
32
|
+
*
|
|
33
|
+
* - memory / learning / knowledge come from projectConfig WHENEVER present,
|
|
34
|
+
* independent of whether a manifest exists (covers config-present /
|
|
35
|
+
* manifest-missing cases such as a fresh project with a prior learning run).
|
|
36
|
+
* - ambient / hud / rules come from manifest.features; registry defaults
|
|
37
|
+
* (all true) are used when the manifest is absent.
|
|
38
|
+
*
|
|
39
|
+
* Applies ADR-001: .devflow/config.json is the source of truth for
|
|
40
|
+
* memory/learning/knowledge; manifest reflects the last install choices for
|
|
41
|
+
* the remaining toggles.
|
|
42
|
+
*/
|
|
43
|
+
export function resolveSeedFeatures(manifest, projectConfig) {
|
|
44
|
+
// ambient/hud/rules/proxy/compliance: manifest is the source; fall back to registry defaults.
|
|
45
|
+
// proxy and compliance follow the manifest group (like ambient) per ADR-001 — NOT config.json-gated.
|
|
46
|
+
const ambient = manifest?.features.ambient ?? FEATURE_DEFAULTS.ambient;
|
|
47
|
+
const hud = manifest?.features.hud ?? FEATURE_DEFAULTS.hud;
|
|
48
|
+
const rules = manifest?.features.rules ?? FEATURE_DEFAULTS.rules;
|
|
49
|
+
const proxy = manifest?.features.proxy ?? FEATURE_DEFAULTS.proxy;
|
|
50
|
+
// Return a fresh object so callers never hold a reference to FEATURE_DEFAULTS.compliance.
|
|
51
|
+
// Without the spread, `manifest?.features.compliance ?? FEATURE_DEFAULTS.compliance` returns
|
|
52
|
+
// the module-level default by reference — downstream mutation would corrupt it process-wide.
|
|
53
|
+
const rawCompliance = manifest?.features.compliance ?? FEATURE_DEFAULTS.compliance;
|
|
54
|
+
const compliance = { ...rawCompliance, frameworks: [...rawCompliance.frameworks] };
|
|
55
|
+
// memory/learning/knowledge: projectConfig wins whenever present (ADR-001).
|
|
56
|
+
// Helper eliminates the repeated projectConfig !== null ternary pattern.
|
|
57
|
+
const fromConfig = (key) => projectConfig !== null
|
|
58
|
+
? projectConfig[key]
|
|
59
|
+
: (manifest?.features[key] ?? FEATURE_DEFAULTS[key]);
|
|
60
|
+
const memory = fromConfig('memory');
|
|
61
|
+
const knowledge = fromConfig('knowledge');
|
|
62
|
+
const learning = fromConfig('learning');
|
|
63
|
+
return { ambient, memory, hud, knowledge, learning, rules, proxy, compliance };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resolve the enabled flag set for the init seed.
|
|
67
|
+
*
|
|
68
|
+
* @param enabledFlags - Currently-enabled flag IDs from the manifest,
|
|
69
|
+
* or null for a fresh install (no prior manifest).
|
|
70
|
+
* @param knownFlags - Snapshot of all flag IDs known at the last install
|
|
71
|
+
* (manifest.features.knownFlags), or undefined when
|
|
72
|
+
* the manifest pre-dates the snapshot feature.
|
|
73
|
+
* @param registry - Flag registry to consult; injectable for tests.
|
|
74
|
+
*
|
|
75
|
+
* Rules:
|
|
76
|
+
* - null enabledFlags (fresh) → all default-ON flags in the registry
|
|
77
|
+
* - knownFlags === undefined (old manifest, migration) → return enabledFlags
|
|
78
|
+
* as-is; adopt nothing new (safe: user's prior choices preserved)
|
|
79
|
+
* - Otherwise → enabledFlags ∪ {default-ON flags whose id ∉ knownFlags}
|
|
80
|
+
* (newly added registry entries that the user never saw before are auto-adopted)
|
|
81
|
+
* - Default-OFF flags are NEVER auto-added regardless of knownFlags
|
|
82
|
+
*/
|
|
83
|
+
export function resolveSeedFlags(enabledFlags, knownFlags, registry = FLAG_REGISTRY) {
|
|
84
|
+
// Fresh install → all default-ON flags from the registry
|
|
85
|
+
if (enabledFlags === null) {
|
|
86
|
+
return registry.filter(f => f.defaultEnabled).map(f => f.id);
|
|
87
|
+
}
|
|
88
|
+
// Old manifest without a knownFlags snapshot → adopt nothing new
|
|
89
|
+
if (knownFlags === undefined) {
|
|
90
|
+
return [...enabledFlags];
|
|
91
|
+
}
|
|
92
|
+
// Re-init with a knownFlags snapshot: union existing + newly-added default-ON entries
|
|
93
|
+
const knownSet = new Set(knownFlags);
|
|
94
|
+
const result = new Set(enabledFlags);
|
|
95
|
+
for (const flag of registry) {
|
|
96
|
+
if (flag.defaultEnabled && !knownSet.has(flag.id)) {
|
|
97
|
+
result.add(flag.id);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return [...result];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Resolve the plugin selection buckets for the init seed.
|
|
104
|
+
*
|
|
105
|
+
* @param manifestPlugins - Plugin names stored in the existing manifest,
|
|
106
|
+
* or null for a fresh install.
|
|
107
|
+
* @param knownPlugins - Plugin name snapshot from the last install
|
|
108
|
+
* (manifest.knownPlugins), or undefined when the
|
|
109
|
+
* manifest pre-dates the snapshot feature.
|
|
110
|
+
* @param allPlugins - Full plugin registry.
|
|
111
|
+
*
|
|
112
|
+
* Rules:
|
|
113
|
+
* - null manifestPlugins (fresh) → non-optional workflow plugins preselected,
|
|
114
|
+
* empty language list (matches current init UI defaults)
|
|
115
|
+
* - knownPlugins === undefined → split existing into workflow/language buckets,
|
|
116
|
+
* adopt nothing new
|
|
117
|
+
* - Otherwise → split + adopt newly-added non-optional selectable plugins
|
|
118
|
+
* whose name is ∉ knownPlugins and ∉ manifestPlugins
|
|
119
|
+
*
|
|
120
|
+
* Always-installed plugins (devflow-core-skills, devflow-ambient) are filtered
|
|
121
|
+
* out by partitionSelectablePlugins and never appear in the returned buckets.
|
|
122
|
+
*/
|
|
123
|
+
export function resolveSeedPlugins(manifestPlugins, knownPlugins, allPlugins) {
|
|
124
|
+
const { workflow, language } = partitionSelectablePlugins(allPlugins);
|
|
125
|
+
const workflowNames = new Set(workflow.map(p => p.name));
|
|
126
|
+
const languageNames = new Set(language.map(p => p.name));
|
|
127
|
+
// Fresh install → non-optional workflow plugins preselected, empty language
|
|
128
|
+
if (manifestPlugins === null) {
|
|
129
|
+
return {
|
|
130
|
+
workflowPlugins: workflow.filter(p => !p.optional).map(p => p.name),
|
|
131
|
+
languagePlugins: [],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Split existing manifest plugins into the selectable buckets
|
|
135
|
+
const workflowPlugins = manifestPlugins.filter(n => workflowNames.has(n));
|
|
136
|
+
const languagePlugins = manifestPlugins.filter(n => languageNames.has(n));
|
|
137
|
+
// Old manifest (no knownPlugins snapshot) → adopt nothing new
|
|
138
|
+
if (knownPlugins === undefined) {
|
|
139
|
+
return { workflowPlugins, languagePlugins };
|
|
140
|
+
}
|
|
141
|
+
// Re-init with a knownPlugins snapshot: adopt new non-optional selectable plugins
|
|
142
|
+
const knownSet = new Set(knownPlugins);
|
|
143
|
+
const manifestSet = new Set(manifestPlugins);
|
|
144
|
+
for (const plugin of allPlugins) {
|
|
145
|
+
if (plugin.optional)
|
|
146
|
+
continue; // never auto-adopt optional plugins
|
|
147
|
+
if (knownSet.has(plugin.name))
|
|
148
|
+
continue; // was known at last install
|
|
149
|
+
if (manifestSet.has(plugin.name))
|
|
150
|
+
continue; // already in the selection
|
|
151
|
+
if (workflowNames.has(plugin.name)) {
|
|
152
|
+
workflowPlugins.push(plugin.name);
|
|
153
|
+
}
|
|
154
|
+
else if (languageNames.has(plugin.name)) {
|
|
155
|
+
languagePlugins.push(plugin.name);
|
|
156
|
+
}
|
|
157
|
+
// excluded always-installed plugins: neither bucket — silently ignored
|
|
158
|
+
}
|
|
159
|
+
return { workflowPlugins, languagePlugins };
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Compose the full init seed from manifest, project config, settings, and registry.
|
|
163
|
+
*
|
|
164
|
+
* viewMode priority: existing settings.json (non-default) → manifest → 'default'
|
|
165
|
+
*
|
|
166
|
+
* This is the single composition point; callers (init.ts hoist block) call this
|
|
167
|
+
* once and pass `seed` down to Phase 4's prompt wiring.
|
|
168
|
+
*/
|
|
169
|
+
export function resolveInitSeed(seedManifest, seedConfig, settingsSnapshot, plugins) {
|
|
170
|
+
const features = resolveSeedFeatures(seedManifest, seedConfig);
|
|
171
|
+
// null for a fresh install (no manifest); string[] from manifest otherwise
|
|
172
|
+
const enabledFlags = seedManifest !== null ? seedManifest.features.flags : null;
|
|
173
|
+
const flags = resolveSeedFlags(enabledFlags, seedManifest?.features.knownFlags);
|
|
174
|
+
const manifestPlugins = seedManifest !== null ? seedManifest.plugins : null;
|
|
175
|
+
const { workflowPlugins, languagePlugins } = resolveSeedPlugins(manifestPlugins, seedManifest?.knownPlugins, plugins);
|
|
176
|
+
// viewMode: non-default setting wins; else manifest; else 'default'
|
|
177
|
+
const viewMode = resolveExistingViewMode(settingsSnapshot) ??
|
|
178
|
+
seedManifest?.features.viewMode ??
|
|
179
|
+
'default';
|
|
180
|
+
return { features, flags, viewMode, workflowPlugins, languagePlugins };
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Resolve the three seed inputs under the --reset gate.
|
|
184
|
+
*
|
|
185
|
+
* --reset is a factory reset: the prior manifest, the prior project config, AND
|
|
186
|
+
* the current settings.json snapshot are all discarded so the seed collapses to
|
|
187
|
+
* registry defaults. Emptying the settings snapshot is essential — otherwise
|
|
188
|
+
* resolveInitSeed's viewMode resolution would surface an externally-set value
|
|
189
|
+
* (e.g. a /focus mode persisted in settings.json) and defeat the reset. This
|
|
190
|
+
* keeps --reset faithful to its USER-LOCKED contract: viewMode is forced to
|
|
191
|
+
* 'default'.
|
|
192
|
+
*
|
|
193
|
+
* The caller must still use the REAL (un-emptied) settings/manifest elsewhere —
|
|
194
|
+
* e.g. for security deny-state detection and installedAt preservation. This
|
|
195
|
+
* helper only shapes the inputs handed to resolveInitSeed.
|
|
196
|
+
*
|
|
197
|
+
* Pure function — no I/O, no side effects.
|
|
198
|
+
*/
|
|
199
|
+
export function resolveResetGatedInputs(reset, manifest, projectConfig, settingsJson) {
|
|
200
|
+
if (reset) {
|
|
201
|
+
return { seedManifest: null, seedConfig: null, seedSettings: '' };
|
|
202
|
+
}
|
|
203
|
+
return { seedManifest: manifest, seedConfig: projectConfig, seedSettings: settingsJson };
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Apply CLI-explicit feature toggles on top of a seed's features.
|
|
207
|
+
*
|
|
208
|
+
* Per-key: `toggles.X ?? base.X` — an explicit CLI value (true/false) wins;
|
|
209
|
+
* undefined means "user did not specify this flag, keep the seed value".
|
|
210
|
+
*
|
|
211
|
+
* Used in Phase 4 to honour --ambient/--no-ambient etc. passed alongside
|
|
212
|
+
* --recommended.
|
|
213
|
+
*/
|
|
214
|
+
export function applyCliToggles(base, toggles) {
|
|
215
|
+
return {
|
|
216
|
+
ambient: toggles.ambient ?? base.ambient,
|
|
217
|
+
memory: toggles.memory ?? base.memory,
|
|
218
|
+
hud: toggles.hud ?? base.hud,
|
|
219
|
+
knowledge: toggles.knowledge ?? base.knowledge,
|
|
220
|
+
learning: toggles.learning ?? base.learning,
|
|
221
|
+
rules: toggles.rules ?? base.rules,
|
|
222
|
+
proxy: toggles.proxy ?? base.proxy,
|
|
223
|
+
compliance: toggles.compliance ?? base.compliance,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=init-seed.js.map
|