devflow-kit 1.8.3 → 2.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 +183 -6
- 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
package/dist/hud/git.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { execFile } from 'node:child_process';
|
|
2
|
+
import { isTrunkBranch } from '../core/git.js';
|
|
2
3
|
const GIT_TIMEOUT = 1000; // 1s per command
|
|
4
|
+
const GIT_MAXBUFFER = 16 * 1024 * 1024; // 16 MiB — covers >500k refs at ~30 B/ref
|
|
3
5
|
function shellExec(cmd, args, cwd) {
|
|
4
6
|
return new Promise((resolve) => {
|
|
5
|
-
execFile(cmd, args, { cwd, timeout: GIT_TIMEOUT }, (err, stdout) => {
|
|
7
|
+
execFile(cmd, args, { cwd, timeout: GIT_TIMEOUT, maxBuffer: GIT_MAXBUFFER }, (err, stdout) => {
|
|
6
8
|
resolve(err ? '' : stdout.trim());
|
|
7
9
|
});
|
|
8
10
|
});
|
|
@@ -19,12 +21,16 @@ export async function gatherGitStatus(cwd) {
|
|
|
19
21
|
const topLevel = await gitExec(['rev-parse', '--show-toplevel'], cwd);
|
|
20
22
|
if (!topLevel)
|
|
21
23
|
return null;
|
|
22
|
-
// Branch name
|
|
24
|
+
// Branch name — 'HEAD' means detached HEAD state
|
|
23
25
|
const branch = await gitExec(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
|
|
24
26
|
if (!branch)
|
|
25
27
|
return null;
|
|
26
|
-
// Dirty check
|
|
27
|
-
|
|
28
|
+
// Dirty check — porcelain v1: two-char XY status prefix per path.
|
|
29
|
+
// --no-optional-locks is a git-level option and MUST precede the subcommand:
|
|
30
|
+
// `git status --no-optional-locks` is rejected as an unknown option, which makes
|
|
31
|
+
// shellExec return '' and silently reports every tree as clean. Keeping the flag
|
|
32
|
+
// (in the right position) stops the HUD from writing .git/index on every prompt.
|
|
33
|
+
const statusOutput = await gitExec(['--no-optional-locks', 'status', '--porcelain'], cwd);
|
|
28
34
|
let dirty = false;
|
|
29
35
|
let staged = false;
|
|
30
36
|
for (const line of statusOutput.split('\n')) {
|
|
@@ -39,30 +45,41 @@ export async function gatherGitStatus(cwd) {
|
|
|
39
45
|
if (worktree !== ' ' || index === '?')
|
|
40
46
|
dirty = true;
|
|
41
47
|
}
|
|
42
|
-
// Ahead/behind — detect base branch with layered fallback (ported from statusline.sh)
|
|
43
|
-
const baseBranch = await detectBaseBranch(branch, cwd);
|
|
44
48
|
let ahead = 0;
|
|
45
49
|
let behind = 0;
|
|
46
|
-
if (baseBranch) {
|
|
47
|
-
const revList = await gitExec(['rev-list', '--left-right', '--count', `${baseBranch}...HEAD`], cwd);
|
|
48
|
-
const parts = revList.split(/\s+/);
|
|
49
|
-
if (parts.length === 2) {
|
|
50
|
-
behind = parseInt(parts[0], 10) || 0;
|
|
51
|
-
ahead = parseInt(parts[1], 10) || 0;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Diff stats against base
|
|
55
50
|
let filesChanged = 0;
|
|
56
51
|
let additions = 0;
|
|
57
52
|
let deletions = 0;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
53
|
+
// Detached HEAD ('HEAD') has no branch reference to compare against — skip ahead/behind and diff.
|
|
54
|
+
if (branch !== 'HEAD') {
|
|
55
|
+
const baseRef = await detectBaseBranch(branch, cwd);
|
|
56
|
+
if (baseRef) {
|
|
57
|
+
// rev-list and merge-base are independent — run in parallel.
|
|
58
|
+
// Ahead/behind: three-dot range is merge-base-equivalent (commit count only, no working tree).
|
|
59
|
+
const [revList, mergeBase] = await Promise.all([
|
|
60
|
+
gitExec(['rev-list', '--left-right', '--count', `${baseRef}...HEAD`], cwd),
|
|
61
|
+
gitExec(['merge-base', baseRef, 'HEAD'], cwd),
|
|
62
|
+
]);
|
|
63
|
+
const parts = revList.split(/\s+/);
|
|
64
|
+
if (parts.length === 2) {
|
|
65
|
+
behind = parseInt(parts[0], 10) || 0;
|
|
66
|
+
ahead = parseInt(parts[1], 10) || 0;
|
|
67
|
+
}
|
|
68
|
+
// Diff stats: resolve the explicit merge base so the diff covers only this branch's changes
|
|
69
|
+
// relative to the default branch. git diff --shortstat <mergeBase> compares the working tree
|
|
70
|
+
// against the merge base, intentionally including uncommitted working-tree changes in the figure.
|
|
71
|
+
// NOTE: diff includes the working tree; ahead/behind counts commits only. This asymmetry is
|
|
72
|
+
// deliberate — both reference the same merge base but differ in working-tree inclusion.
|
|
73
|
+
if (mergeBase) {
|
|
74
|
+
const diffStat = await gitExec(['diff', '--shortstat', mergeBase], cwd);
|
|
75
|
+
const filesMatch = diffStat.match(/(\d+)\s+file/);
|
|
76
|
+
const addMatch = diffStat.match(/(\d+)\s+insertion/);
|
|
77
|
+
const delMatch = diffStat.match(/(\d+)\s+deletion/);
|
|
78
|
+
filesChanged = filesMatch ? parseInt(filesMatch[1], 10) : 0;
|
|
79
|
+
additions = addMatch ? parseInt(addMatch[1], 10) : 0;
|
|
80
|
+
deletions = delMatch ? parseInt(delMatch[1], 10) : 0;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
66
83
|
}
|
|
67
84
|
// Tag and worktree info (parallel)
|
|
68
85
|
const [tagOutput, worktreeOutput] = await Promise.all([
|
|
@@ -93,61 +110,85 @@ export async function gatherGitStatus(cwd) {
|
|
|
93
110
|
};
|
|
94
111
|
}
|
|
95
112
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
113
|
+
* Resolve the comparison ref for a given branch, using a pre-built Set of known refs.
|
|
114
|
+
*
|
|
115
|
+
* CONTRACT: when the current branch IS the repo's default branch, or is any
|
|
116
|
+
* canonical trunk branch (per isTrunkBranch), and origin/<branch> exists as a
|
|
117
|
+
* remote ref, compare against origin/<branch> so the status line shows unpushed
|
|
118
|
+
* commits rather than a zero diff.
|
|
119
|
+
*
|
|
120
|
+
* Do NOT use @{upstream} for all branches — pushed feature branches would
|
|
121
|
+
* self-compare (rev-list A...A = 0 ahead/behind) and the HUD would render nothing
|
|
122
|
+
* useful. The trunk-name predicate is the correct discriminant: feature branches
|
|
123
|
+
* compare against the repo default; trunk branches compare against themselves.
|
|
124
|
+
*
|
|
125
|
+
* This function is pure/sync — the refs Set answers existence without spawning.
|
|
126
|
+
* Called from remote detection layers (a) and (b); layer (c) (local-only fallback)
|
|
127
|
+
* returns a local branch name directly and does not self-compare against origin/.
|
|
128
|
+
*/
|
|
129
|
+
function resolveComparisonRef(branch, defaultRef, refs) {
|
|
130
|
+
const defaultShort = defaultRef.replace(/^origin\//, '');
|
|
131
|
+
if ((branch === defaultShort || isTrunkBranch(branch)) && refs.has(`origin/${branch}`)) {
|
|
132
|
+
return `origin/${branch}`;
|
|
133
|
+
}
|
|
134
|
+
return defaultRef;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Detect the base (default) branch for this repository using exactly two git spawns.
|
|
138
|
+
*
|
|
139
|
+
* Resolution order:
|
|
140
|
+
* (a) git symbolic-ref --short refs/remotes/origin/HEAD — authoritative when set by
|
|
141
|
+
* `git clone` or `git remote set-head`. Absence is common (only set by those two
|
|
142
|
+
* operations) and is treated as a normal fallback, not an error.
|
|
143
|
+
* (b) First of origin/main, origin/master, origin/develop, origin/trunk that exists
|
|
144
|
+
* as a ref in the fetched Set.
|
|
145
|
+
* (c) No remote configured — first of main, master, develop, trunk that exists
|
|
146
|
+
* locally (in the fetched Set). Never compare a branch against itself.
|
|
147
|
+
* (d) Nothing resolves — return null; caller renders the counter absent rather than
|
|
148
|
+
* wrong. Rendering nothing is strictly better than a confidently wrong number.
|
|
149
|
+
*
|
|
150
|
+
* Both spawns run in parallel:
|
|
151
|
+
* 1. git symbolic-ref --short refs/remotes/origin/HEAD
|
|
152
|
+
* 2. git for-each-ref --format=%(refname:short) refs/heads/ refs/remotes/origin/
|
|
153
|
+
* → builds a Set<string> of all known local and remote branch names.
|
|
154
|
+
*
|
|
155
|
+
* The Set answers all existence queries (layers a–c) without additional spawns.
|
|
156
|
+
*
|
|
157
|
+
* resolveComparisonRef is called from remote layers (a) and (b) so that any canonical
|
|
158
|
+
* trunk branch (develop, staging, production, release/*) self-compares against
|
|
159
|
+
* origin/<branch> when that ref exists, not just the detected default branch.
|
|
160
|
+
* Layer (c) (no remote configured) returns a local branch name without calling this.
|
|
161
|
+
*
|
|
162
|
+
* Note on tag-DWIM: for-each-ref limits scope to refs/heads/ and refs/remotes/origin/,
|
|
163
|
+
* so tag objects never appear in the Set — a name that happens to match a tag is not
|
|
164
|
+
* mistaken for a branch.
|
|
102
165
|
*/
|
|
103
166
|
async function detectBaseBranch(branch, cwd) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
167
|
+
const [originHead, refsOutput] = await Promise.all([
|
|
168
|
+
gitExec(['symbolic-ref', '--short', 'refs/remotes/origin/HEAD'], cwd),
|
|
169
|
+
gitExec(['for-each-ref', '--format=%(refname:short)', 'refs/heads/', 'refs/remotes/origin/'], cwd),
|
|
170
|
+
]);
|
|
171
|
+
const refs = new Set(refsOutput ? refsOutput.split('\n').filter(Boolean) : []);
|
|
172
|
+
// (a) Authoritative when present: set by git clone or git remote set-head.
|
|
173
|
+
// Absence is common — do not treat as exceptional, just fall through.
|
|
174
|
+
if (originHead && refs.has(originHead)) {
|
|
175
|
+
return resolveComparisonRef(branch, originHead, refs);
|
|
114
176
|
}
|
|
115
|
-
//
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
for (const line of headLog.split('\n')) {
|
|
120
|
-
const match = line.match(checkoutPattern);
|
|
121
|
-
if (match) {
|
|
122
|
-
const candidate = match[1];
|
|
123
|
-
// Skip raw commit hashes and the current branch
|
|
124
|
-
if (candidate === branch || /^[0-9a-f]{7,}$/.test(candidate))
|
|
125
|
-
continue;
|
|
126
|
-
const exists = await gitExec(['rev-parse', '--verify', candidate], cwd);
|
|
127
|
-
if (exists)
|
|
128
|
-
return candidate;
|
|
177
|
+
// (b) Scan common remote branch names when origin/HEAD is absent.
|
|
178
|
+
for (const candidate of ['origin/main', 'origin/master', 'origin/develop', 'origin/trunk']) {
|
|
179
|
+
if (refs.has(candidate)) {
|
|
180
|
+
return resolveComparisonRef(branch, candidate, refs);
|
|
129
181
|
}
|
|
130
182
|
}
|
|
131
|
-
//
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (
|
|
136
|
-
return prBase;
|
|
137
|
-
}
|
|
138
|
-
// Layer 4: main/master fallback (skip if already on that branch — use remote tracking instead)
|
|
139
|
-
for (const candidate of ['main', 'master']) {
|
|
140
|
-
if (candidate === branch) {
|
|
141
|
-
// On main/master itself — compare against remote tracking branch
|
|
142
|
-
const remote = await gitExec(['rev-parse', '--verify', `origin/${candidate}`], cwd);
|
|
143
|
-
if (remote)
|
|
144
|
-
return `origin/${candidate}`;
|
|
145
|
-
continue;
|
|
146
|
-
}
|
|
147
|
-
const exists = await gitExec(['rev-parse', '--verify', candidate], cwd);
|
|
148
|
-
if (exists)
|
|
183
|
+
// (c) No remote configured — fall back to local default branches.
|
|
184
|
+
for (const candidate of ['main', 'master', 'develop', 'trunk']) {
|
|
185
|
+
if (candidate === branch)
|
|
186
|
+
continue; // Never compare a branch against itself
|
|
187
|
+
if (refs.has(candidate)) {
|
|
149
188
|
return candidate;
|
|
189
|
+
}
|
|
150
190
|
}
|
|
191
|
+
// (d) Cannot determine base — degrade gracefully; caller renders counter as absent.
|
|
151
192
|
return null;
|
|
152
193
|
}
|
|
153
194
|
//# sourceMappingURL=git.js.map
|
package/dist/hud/index.js
CHANGED
|
@@ -5,10 +5,36 @@ import { readStdin } from './stdin.js';
|
|
|
5
5
|
import { loadConfig, resolveComponents } from './config.js';
|
|
6
6
|
import { gatherGitStatus } from './git.js';
|
|
7
7
|
import { parseTranscript } from './transcript.js';
|
|
8
|
-
import {
|
|
8
|
+
import { persistSessionCost, aggregateCosts } from './cost-history.js';
|
|
9
9
|
import { gatherConfigCounts } from './components/config-counts.js';
|
|
10
|
+
import { gatherLearningCounts } from './components/learning-counts.js';
|
|
10
11
|
import { render } from './render.js';
|
|
11
12
|
const OVERALL_TIMEOUT = 2000; // 2 second overall timeout
|
|
13
|
+
/**
|
|
14
|
+
* Extract usage quota data from stdin rate_limits field.
|
|
15
|
+
* Returns null if rate_limits is absent.
|
|
16
|
+
* Percentages are clamped to 0-100.
|
|
17
|
+
*/
|
|
18
|
+
function extractUsageFromStdin(stdin) {
|
|
19
|
+
if (!stdin.rate_limits)
|
|
20
|
+
return null;
|
|
21
|
+
const fiveHour = stdin.rate_limits.five_hour;
|
|
22
|
+
const sevenDay = stdin.rate_limits.seven_day;
|
|
23
|
+
const fiveHourPercent = typeof fiveHour?.used_percentage === 'number'
|
|
24
|
+
? Math.max(0, Math.min(100, fiveHour.used_percentage))
|
|
25
|
+
: null;
|
|
26
|
+
const sevenDayPercent = typeof sevenDay?.used_percentage === 'number'
|
|
27
|
+
? Math.max(0, Math.min(100, sevenDay.used_percentage))
|
|
28
|
+
: null;
|
|
29
|
+
const fiveHourResetsAt = typeof fiveHour?.resets_at === 'number' ? fiveHour.resets_at : null;
|
|
30
|
+
const sevenDayResetsAt = typeof sevenDay?.resets_at === 'number' ? sevenDay.resets_at : null;
|
|
31
|
+
return {
|
|
32
|
+
fiveHourPercent,
|
|
33
|
+
sevenDayPercent,
|
|
34
|
+
fiveHourResetsAt,
|
|
35
|
+
sevenDayResetsAt,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
12
38
|
async function main() {
|
|
13
39
|
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), OVERALL_TIMEOUT));
|
|
14
40
|
try {
|
|
@@ -39,16 +65,18 @@ async function run() {
|
|
|
39
65
|
components.has('worktreeCount');
|
|
40
66
|
const needsTranscript = components.has('todoProgress') ||
|
|
41
67
|
components.has('configCounts');
|
|
42
|
-
const needsUsage = components.has('usageQuota');
|
|
43
68
|
const needsConfigCounts = components.has('configCounts');
|
|
69
|
+
const needsLearningCounts = components.has('learningCounts');
|
|
70
|
+
const needsSessionCost = components.has('sessionCost');
|
|
44
71
|
// Parallel data gathering — only fetch what's needed
|
|
45
|
-
const [git, transcript
|
|
72
|
+
const [git, transcript] = await Promise.all([
|
|
46
73
|
needsGit ? gatherGitStatus(cwd) : Promise.resolve(null),
|
|
47
74
|
needsTranscript && stdin.transcript_path
|
|
48
75
|
? parseTranscript(stdin.transcript_path)
|
|
49
76
|
: Promise.resolve(null),
|
|
50
|
-
needsUsage ? fetchUsageData() : Promise.resolve(null),
|
|
51
77
|
]);
|
|
78
|
+
// Extract usage quota from stdin rate_limits (replaces OAuth fetch)
|
|
79
|
+
const usage = components.has('usageQuota') ? extractUsageFromStdin(stdin) : null;
|
|
52
80
|
// Session start time from transcript file creation time
|
|
53
81
|
let sessionStartTime = null;
|
|
54
82
|
if (stdin.transcript_path) {
|
|
@@ -62,6 +90,19 @@ async function run() {
|
|
|
62
90
|
const configCountsData = needsConfigCounts
|
|
63
91
|
? gatherConfigCounts(cwd)
|
|
64
92
|
: null;
|
|
93
|
+
// Decisions/pitfalls counts (fast, synchronous filesystem read)
|
|
94
|
+
const learningCountsData = needsLearningCounts
|
|
95
|
+
? gatherLearningCounts(cwd)
|
|
96
|
+
: null;
|
|
97
|
+
// Cost tracking: persist current session cost, aggregate for weekly/monthly
|
|
98
|
+
const sessionId = stdin.session_id;
|
|
99
|
+
const costUsd = stdin.cost?.total_cost_usd ?? 0;
|
|
100
|
+
if (needsSessionCost && sessionId && costUsd) {
|
|
101
|
+
persistSessionCost(sessionId, costUsd, cwd);
|
|
102
|
+
}
|
|
103
|
+
const costHistory = needsSessionCost && sessionId
|
|
104
|
+
? aggregateCosts(sessionId, costUsd)
|
|
105
|
+
: null;
|
|
65
106
|
// Terminal width via stderr (stdout is piped to Claude Code)
|
|
66
107
|
const terminalWidth = process.stderr.columns || 120;
|
|
67
108
|
const ctx = {
|
|
@@ -70,6 +111,8 @@ async function run() {
|
|
|
70
111
|
transcript,
|
|
71
112
|
usage,
|
|
72
113
|
configCounts: configCountsData,
|
|
114
|
+
learningCounts: learningCountsData,
|
|
115
|
+
costHistory,
|
|
73
116
|
config: { ...config, components: resolved },
|
|
74
117
|
devflowDir,
|
|
75
118
|
sessionStartTime,
|
package/dist/hud/render.js
CHANGED
|
@@ -10,6 +10,7 @@ import sessionDuration from './components/session-duration.js';
|
|
|
10
10
|
import usageQuota from './components/usage-quota.js';
|
|
11
11
|
import todoProgress from './components/todo-progress.js';
|
|
12
12
|
import configCounts from './components/config-counts.js';
|
|
13
|
+
import learningCounts from './components/learning-counts.js';
|
|
13
14
|
import sessionCost from './components/session-cost.js';
|
|
14
15
|
import releaseInfo from './components/release-info.js';
|
|
15
16
|
import worktreeCount from './components/worktree-count.js';
|
|
@@ -25,6 +26,7 @@ const COMPONENT_MAP = {
|
|
|
25
26
|
usageQuota,
|
|
26
27
|
todoProgress,
|
|
27
28
|
configCounts,
|
|
29
|
+
learningCounts,
|
|
28
30
|
sessionCost,
|
|
29
31
|
releaseInfo,
|
|
30
32
|
worktreeCount,
|
|
@@ -32,23 +34,19 @@ const COMPONENT_MAP = {
|
|
|
32
34
|
/**
|
|
33
35
|
* Line groupings for smart layout.
|
|
34
36
|
* Components are assigned to lines and only rendered if enabled.
|
|
35
|
-
* null entries denote section breaks (blank line between sections).
|
|
36
37
|
*/
|
|
37
38
|
const LINE_GROUPS = [
|
|
38
|
-
// Section 1: Info (3 lines)
|
|
39
39
|
['directory', 'gitBranch', 'gitAheadBehind', 'releaseInfo', 'worktreeCount', 'diffStats'],
|
|
40
|
-
['contextUsage', 'usageQuota'],
|
|
41
|
-
['model', '
|
|
42
|
-
|
|
43
|
-
null,
|
|
44
|
-
// Section 2: Activity
|
|
45
|
-
['todoProgress'],
|
|
40
|
+
['contextUsage', 'usageQuota', 'todoProgress'],
|
|
41
|
+
['model', 'configCounts', 'sessionCost'],
|
|
42
|
+
['learningCounts'],
|
|
46
43
|
['versionBadge'],
|
|
47
44
|
];
|
|
48
45
|
const SEPARATOR = dim(' \u00B7 ');
|
|
49
46
|
/**
|
|
50
47
|
* Render all enabled components into a multi-line HUD string.
|
|
51
|
-
* Components that return null are excluded.
|
|
48
|
+
* Components that return null are excluded. Lines with no rendered
|
|
49
|
+
* components are skipped.
|
|
52
50
|
*/
|
|
53
51
|
export async function render(ctx) {
|
|
54
52
|
const enabled = new Set(ctx.config.components);
|
|
@@ -69,23 +67,13 @@ export async function render(ctx) {
|
|
|
69
67
|
}));
|
|
70
68
|
}
|
|
71
69
|
await Promise.all(promises);
|
|
72
|
-
// Assemble lines using smart layout
|
|
70
|
+
// Assemble lines using smart layout
|
|
73
71
|
const lines = [];
|
|
74
|
-
let pendingBreak = false;
|
|
75
72
|
for (const entry of LINE_GROUPS) {
|
|
76
|
-
if (entry === null) {
|
|
77
|
-
if (lines.length > 0)
|
|
78
|
-
pendingBreak = true;
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
73
|
const lineResults = entry
|
|
82
74
|
.filter((id) => enabled.has(id) && results.has(id))
|
|
83
75
|
.map((id) => results.get(id));
|
|
84
76
|
if (lineResults.length > 0) {
|
|
85
|
-
if (pendingBreak) {
|
|
86
|
-
lines.push('');
|
|
87
|
-
pendingBreak = false;
|
|
88
|
-
}
|
|
89
77
|
// Separate multi-line results (containing newlines) from single-line
|
|
90
78
|
const singleLine = [];
|
|
91
79
|
for (const r of lineResults) {
|
package/dist/hud/transcript.js
CHANGED
|
@@ -26,9 +26,9 @@ export async function parseTranscript(transcriptPath) {
|
|
|
26
26
|
continue;
|
|
27
27
|
try {
|
|
28
28
|
const entry = JSON.parse(line);
|
|
29
|
-
// Turn boundary: clear tools and agents on each
|
|
29
|
+
// Turn boundary: clear tools and agents on each user turn
|
|
30
30
|
// so only the current turn's activity shows in the HUD
|
|
31
|
-
if (entry.type === '
|
|
31
|
+
if (entry.type === 'user') {
|
|
32
32
|
tools.clear();
|
|
33
33
|
agents.clear();
|
|
34
34
|
continue;
|
|
@@ -98,10 +98,9 @@ function processEntry(entry, tools, agents, skills) {
|
|
|
98
98
|
else {
|
|
99
99
|
// Regular tool — extract file target for Read/Edit/Write
|
|
100
100
|
const input = block.input;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
101
|
+
const target = input?.file_path && typeof input.file_path === 'string'
|
|
102
|
+
? path.basename(input.file_path)
|
|
103
|
+
: undefined;
|
|
105
104
|
// Extract description: prefer input.description, fallback to first 4 words of command (Bash)
|
|
106
105
|
let description;
|
|
107
106
|
if (typeof input?.description === 'string') {
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { homedir, platform } from 'os';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { getGitRoot } from '../../core/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
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get home directory with proper fallback and validation
|
|
24
|
+
* Priority: process.env.HOME > os.homedir()
|
|
25
|
+
*
|
|
26
|
+
* @throws {Error} If unable to determine home directory
|
|
27
|
+
*/
|
|
28
|
+
export function getHomeDirectory() {
|
|
29
|
+
const home = process.env.HOME || homedir();
|
|
30
|
+
if (!home) {
|
|
31
|
+
throw new Error('Unable to determine home directory. Set HOME environment variable.');
|
|
32
|
+
}
|
|
33
|
+
return home;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get Claude Code directory with environment variable override support
|
|
37
|
+
* Priority: CLAUDE_CODE_DIR env var > ~/.claude
|
|
38
|
+
*
|
|
39
|
+
* @throws {Error} If CLAUDE_CODE_DIR is invalid (not absolute, outside home)
|
|
40
|
+
*/
|
|
41
|
+
export function getClaudeDirectory() {
|
|
42
|
+
if (process.env.CLAUDE_CODE_DIR) {
|
|
43
|
+
const customDir = process.env.CLAUDE_CODE_DIR;
|
|
44
|
+
// Validate path is absolute
|
|
45
|
+
if (!path.isAbsolute(customDir)) {
|
|
46
|
+
throw new Error('CLAUDE_CODE_DIR must be an absolute path');
|
|
47
|
+
}
|
|
48
|
+
// Warn if outside home directory (security best practice)
|
|
49
|
+
const home = getHomeDirectory();
|
|
50
|
+
if (!customDir.startsWith(home)) {
|
|
51
|
+
console.warn('⚠️ CLAUDE_CODE_DIR is outside home directory. Ensure this is intentional.');
|
|
52
|
+
}
|
|
53
|
+
return customDir;
|
|
54
|
+
}
|
|
55
|
+
return path.join(getHomeDirectory(), '.claude');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get Devflow directory with environment variable override support
|
|
59
|
+
* Priority: DEVFLOW_DIR env var > ~/.devflow
|
|
60
|
+
*
|
|
61
|
+
* @throws {Error} If DEVFLOW_DIR is invalid (not absolute, outside home)
|
|
62
|
+
*/
|
|
63
|
+
export function getDevFlowDirectory() {
|
|
64
|
+
if (process.env.DEVFLOW_DIR) {
|
|
65
|
+
const customDir = process.env.DEVFLOW_DIR;
|
|
66
|
+
// Validate path is absolute
|
|
67
|
+
if (!path.isAbsolute(customDir)) {
|
|
68
|
+
throw new Error('DEVFLOW_DIR must be an absolute path');
|
|
69
|
+
}
|
|
70
|
+
// Warn if outside home directory (security best practice)
|
|
71
|
+
const home = getHomeDirectory();
|
|
72
|
+
if (!customDir.startsWith(home)) {
|
|
73
|
+
console.warn('⚠️ DEVFLOW_DIR is outside home directory. Ensure this is intentional.');
|
|
74
|
+
}
|
|
75
|
+
return customDir;
|
|
76
|
+
}
|
|
77
|
+
return path.join(getHomeDirectory(), '.devflow');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get installation paths based on scope (async, non-blocking)
|
|
81
|
+
* @param scope - 'user' or 'local'
|
|
82
|
+
* @returns Object with claudeDir and devflowDir
|
|
83
|
+
* @throws {Error} If local scope selected but not in a git repository
|
|
84
|
+
*/
|
|
85
|
+
export async function getInstallationPaths(scope) {
|
|
86
|
+
if (scope === 'user') {
|
|
87
|
+
return {
|
|
88
|
+
claudeDir: getClaudeDirectory(),
|
|
89
|
+
devflowDir: getDevFlowDirectory(),
|
|
90
|
+
gitRoot: null,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// Local scope - install to git repository root
|
|
95
|
+
const gitRoot = await getGitRoot();
|
|
96
|
+
if (!gitRoot) {
|
|
97
|
+
throw new Error('Local scope requires a git repository. Run "git init" first or use --scope user');
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
claudeDir: path.join(gitRoot, '.claude'),
|
|
101
|
+
devflowDir: path.join(gitRoot, '.devflow'),
|
|
102
|
+
gitRoot,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=claude-paths.js.map
|