devflow-kit 1.8.2 → 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 +191 -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 +17 -7
- 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,516 @@
|
|
|
1
|
+
# Performance — Correct Patterns
|
|
2
|
+
|
|
3
|
+
Extended correct patterns for performance optimization. Reference from main SKILL.md.
|
|
4
|
+
Citations reference `sources.md`.
|
|
5
|
+
|
|
6
|
+
## Algorithmic Solutions [5][12]
|
|
7
|
+
|
|
8
|
+
### N+1 Query Solutions [5]
|
|
9
|
+
|
|
10
|
+
**ORM Eager Loading** — single query with JOIN instead of N round-trips [5]
|
|
11
|
+
```typescript
|
|
12
|
+
// CORRECT: Include related data in single query [5]
|
|
13
|
+
const posts = await Post.findAll({
|
|
14
|
+
include: [
|
|
15
|
+
{ model: User, as: 'author' },
|
|
16
|
+
{ model: Comment, limit: 10 }
|
|
17
|
+
]
|
|
18
|
+
});
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**GraphQL DataLoader** — batch and cache per request [5]
|
|
22
|
+
```typescript
|
|
23
|
+
// CORRECT: Batch and cache with DataLoader [5]
|
|
24
|
+
const userLoader = new DataLoader(async (ids) => {
|
|
25
|
+
const users = await db.users.findAll({ where: { id: ids } });
|
|
26
|
+
return ids.map(id => users.find(u => u.id === id));
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const resolvers = {
|
|
30
|
+
Post: {
|
|
31
|
+
author: (post) => userLoader.load(post.authorId) // Batched!
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Batch Query with Map** — O(1) lookup after single fetch [5][12]
|
|
37
|
+
```typescript
|
|
38
|
+
// CORRECT: Single query, O(1) map lookup per result [5][12]
|
|
39
|
+
async function enrichOrders(orders: Order[]) {
|
|
40
|
+
const customerIds = [...new Set(orders.map(o => o.customerId))];
|
|
41
|
+
const customers = await db.customers.findByIds(customerIds);
|
|
42
|
+
const customerMap = new Map(customers.map(c => [c.id, c]));
|
|
43
|
+
|
|
44
|
+
return orders.map(o => ({
|
|
45
|
+
...o,
|
|
46
|
+
customer: customerMap.get(o.customerId)
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Efficient Algorithm Patterns [12]
|
|
52
|
+
|
|
53
|
+
**Set for O(1) Lookup** — replaces O(n) array scan [12]
|
|
54
|
+
```typescript
|
|
55
|
+
// CORRECT: O(n+m) instead of O(n*m) [12]
|
|
56
|
+
function findCommon(list1: string[], list2: string[]) {
|
|
57
|
+
const set = new Set(list2);
|
|
58
|
+
return list1.filter(item => set.has(item));
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Map for Single-Pass Grouping** [12]
|
|
63
|
+
```typescript
|
|
64
|
+
// CORRECT: Single pass grouping — O(n) [12]
|
|
65
|
+
function groupBy<T, K extends string>(items: T[], keyFn: (item: T) => K) {
|
|
66
|
+
const groups = new Map<K, T[]>();
|
|
67
|
+
for (const item of items) {
|
|
68
|
+
const key = keyFn(item);
|
|
69
|
+
const group = groups.get(key) || [];
|
|
70
|
+
group.push(item);
|
|
71
|
+
groups.set(key, group);
|
|
72
|
+
}
|
|
73
|
+
return groups;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Efficient String Building** — avoid O(n²) string copies [12]
|
|
78
|
+
```typescript
|
|
79
|
+
// CORRECT: Array join instead of string concat [12]
|
|
80
|
+
function buildCsv(rows: string[][]): string {
|
|
81
|
+
return rows.map(row => row.join(',')).join('\n');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// For very large data: streaming — O(1) memory [12]
|
|
85
|
+
function* streamCsv(rows: string[][]): Generator<string> {
|
|
86
|
+
for (const row of rows) {
|
|
87
|
+
yield row.join(',') + '\n';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Proper Queue Implementation** — O(1) dequeue with circular buffer [12]
|
|
93
|
+
```typescript
|
|
94
|
+
// CORRECT: O(1) dequeue — no reindexing [12]
|
|
95
|
+
class Queue<T> {
|
|
96
|
+
private items: T[] = [];
|
|
97
|
+
private head = 0;
|
|
98
|
+
|
|
99
|
+
enqueue(item: T): void {
|
|
100
|
+
this.items.push(item);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
dequeue(): T | undefined {
|
|
104
|
+
if (this.head >= this.items.length) return undefined;
|
|
105
|
+
const item = this.items[this.head];
|
|
106
|
+
this.items[this.head] = undefined as any; // Allow GC
|
|
107
|
+
this.head++;
|
|
108
|
+
|
|
109
|
+
// Compact when half empty
|
|
110
|
+
if (this.head > this.items.length / 2) {
|
|
111
|
+
this.items = this.items.slice(this.head);
|
|
112
|
+
this.head = 0;
|
|
113
|
+
}
|
|
114
|
+
return item;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Database Solutions [20]
|
|
122
|
+
|
|
123
|
+
### Indexing Strategies [20]
|
|
124
|
+
|
|
125
|
+
**Composite Index for Range Queries** [20]
|
|
126
|
+
```sql
|
|
127
|
+
-- CORRECT: Index supports both equality and range [20]
|
|
128
|
+
CREATE INDEX idx_orders_customer_date ON orders(customer_id, created_at DESC);
|
|
129
|
+
|
|
130
|
+
-- Efficient query
|
|
131
|
+
SELECT * FROM orders
|
|
132
|
+
WHERE customer_id = 123
|
|
133
|
+
ORDER BY created_at DESC
|
|
134
|
+
LIMIT 10;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Covering Index** — query satisfied from index alone [20]
|
|
138
|
+
```sql
|
|
139
|
+
-- CORRECT: Index includes all needed columns [20]
|
|
140
|
+
CREATE INDEX idx_users_status_email ON users(status) INCLUDE (email, name);
|
|
141
|
+
|
|
142
|
+
-- Query satisfied entirely from index — no heap fetch
|
|
143
|
+
SELECT email, name FROM users WHERE status = 'active';
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Partial Index for Common Filters** [20]
|
|
147
|
+
```sql
|
|
148
|
+
-- CORRECT: Index only relevant rows — smaller, faster [20]
|
|
149
|
+
CREATE INDEX idx_orders_pending ON orders(created_at)
|
|
150
|
+
WHERE status = 'pending';
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Efficient Query Patterns [20]
|
|
154
|
+
|
|
155
|
+
**Select Specific Columns** — avoids fetching unused data [20]
|
|
156
|
+
```typescript
|
|
157
|
+
// CORRECT: Only fetch needed data [20]
|
|
158
|
+
const users = await db.query(
|
|
159
|
+
'SELECT id, name, email FROM users WHERE status = ?',
|
|
160
|
+
['active']
|
|
161
|
+
);
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Cursor-Based Pagination** — efficient for large datasets [20]
|
|
165
|
+
```typescript
|
|
166
|
+
// CORRECT: Cursor pagination — O(log n) vs OFFSET O(n) [20]
|
|
167
|
+
async function getOrdersPage(cursor?: string, limit = 20) {
|
|
168
|
+
const query = cursor
|
|
169
|
+
? 'SELECT * FROM orders WHERE id > ? ORDER BY id LIMIT ?'
|
|
170
|
+
: 'SELECT * FROM orders ORDER BY id LIMIT ?';
|
|
171
|
+
|
|
172
|
+
const params = cursor ? [cursor, limit + 1] : [limit + 1];
|
|
173
|
+
const rows = await db.query(query, params);
|
|
174
|
+
|
|
175
|
+
const hasMore = rows.length > limit;
|
|
176
|
+
const items = hasMore ? rows.slice(0, -1) : rows;
|
|
177
|
+
const nextCursor = hasMore ? items[items.length - 1].id : null;
|
|
178
|
+
|
|
179
|
+
return { items, nextCursor, hasMore };
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Batch Processing Large Tables** [20]
|
|
184
|
+
```typescript
|
|
185
|
+
// CORRECT: Process in chunks to avoid memory issues [20]
|
|
186
|
+
async function processAllOrders(batchSize = 1000) {
|
|
187
|
+
let cursor: string | null = null;
|
|
188
|
+
|
|
189
|
+
do {
|
|
190
|
+
const { items, nextCursor } = await getOrdersPage(cursor, batchSize);
|
|
191
|
+
await Promise.all(items.map(processOrder));
|
|
192
|
+
cursor = nextCursor;
|
|
193
|
+
} while (cursor);
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Memory Solutions [4][10]
|
|
200
|
+
|
|
201
|
+
### Cleanup Patterns [4]
|
|
202
|
+
|
|
203
|
+
**Event Listener Cleanup** — track and remove on unmount [4]
|
|
204
|
+
```typescript
|
|
205
|
+
// CORRECT: Track and cleanup listeners [4]
|
|
206
|
+
class Component {
|
|
207
|
+
private cleanupFns: (() => void)[] = [];
|
|
208
|
+
|
|
209
|
+
mount() {
|
|
210
|
+
const handler = (e: Event) => this.handleResize(e);
|
|
211
|
+
window.addEventListener('resize', handler);
|
|
212
|
+
this.cleanupFns.push(() => window.removeEventListener('resize', handler));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
unmount() {
|
|
216
|
+
this.cleanupFns.forEach(fn => fn());
|
|
217
|
+
this.cleanupFns = [];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**AbortController for Async Cleanup** [3]
|
|
223
|
+
```typescript
|
|
224
|
+
// CORRECT: Cancel pending operations on unmount [3]
|
|
225
|
+
class DataFetcher {
|
|
226
|
+
private controller?: AbortController;
|
|
227
|
+
|
|
228
|
+
async fetch(url: string) {
|
|
229
|
+
this.controller?.abort();
|
|
230
|
+
this.controller = new AbortController();
|
|
231
|
+
|
|
232
|
+
const response = await fetch(url, { signal: this.controller.signal });
|
|
233
|
+
return response.json();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
cancel() {
|
|
237
|
+
this.controller?.abort();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**Weak References for Caches** — allow GC to reclaim entries [4]
|
|
243
|
+
```typescript
|
|
244
|
+
// CORRECT: WeakMap allows GC to reclaim cached objects [4]
|
|
245
|
+
const cache = new WeakMap<object, ComputedResult>();
|
|
246
|
+
|
|
247
|
+
function getOrCompute(key: object): ComputedResult {
|
|
248
|
+
let result = cache.get(key);
|
|
249
|
+
if (!result) {
|
|
250
|
+
result = computeExpensive(key);
|
|
251
|
+
cache.set(key, result);
|
|
252
|
+
}
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Cache Line Awareness [4][10]
|
|
258
|
+
|
|
259
|
+
High-throughput code: keep hot mutable data in separate 64-byte cache lines to avoid
|
|
260
|
+
false sharing between CPU cores [4][10]. The LMAX Disruptor demonstrates this with
|
|
261
|
+
sequence number padding [10].
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
// CORRECT: Pad hot fields to prevent false sharing [10]
|
|
265
|
+
class RingBuffer {
|
|
266
|
+
// Pad each cursor to its own cache line (64 bytes)
|
|
267
|
+
private readonly producerCursor = new Int64Array(
|
|
268
|
+
new SharedArrayBuffer(64) // 64-byte aligned
|
|
269
|
+
);
|
|
270
|
+
private readonly consumerCursor = new Int64Array(
|
|
271
|
+
new SharedArrayBuffer(64)
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Allocation Optimization [4][12]
|
|
277
|
+
|
|
278
|
+
**Efficient Object Accumulation** — direct assignment, no spreading in hot loops [12]
|
|
279
|
+
```typescript
|
|
280
|
+
// CORRECT: Direct property assignment — no intermediate allocations [12]
|
|
281
|
+
function indexById<T extends { id: string }>(items: T[]): Record<string, T> {
|
|
282
|
+
const result: Record<string, T> = {};
|
|
283
|
+
for (const item of items) {
|
|
284
|
+
result[item.id] = item;
|
|
285
|
+
}
|
|
286
|
+
return result;
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Streaming for Large Data** — O(1) memory regardless of input size [4]
|
|
291
|
+
```typescript
|
|
292
|
+
// CORRECT: Process without loading all into memory [4]
|
|
293
|
+
async function* readLargeFile(path: string): AsyncGenerator<string> {
|
|
294
|
+
const stream = createReadStream(path);
|
|
295
|
+
const rl = readline.createInterface({ input: stream });
|
|
296
|
+
|
|
297
|
+
for await (const line of rl) {
|
|
298
|
+
yield line;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## I/O Solutions [3][16]
|
|
306
|
+
|
|
307
|
+
### Async Patterns [3][16]
|
|
308
|
+
|
|
309
|
+
**Async File Operations** — non-blocking I/O frees event loop [16]
|
|
310
|
+
```typescript
|
|
311
|
+
// CORRECT: Non-blocking I/O [16]
|
|
312
|
+
import fs from 'fs/promises';
|
|
313
|
+
|
|
314
|
+
async function readConfig() {
|
|
315
|
+
return JSON.parse(await fs.readFile('./config.json', 'utf-8'));
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Worker Threads for CPU-Intensive Work** — offload off the event loop [16]
|
|
320
|
+
```typescript
|
|
321
|
+
// CORRECT: Offload CPU work to worker thread [16]
|
|
322
|
+
import { Worker } from 'worker_threads';
|
|
323
|
+
|
|
324
|
+
async function hashPassword(password: string): Promise<string> {
|
|
325
|
+
return new Promise((resolve, reject) => {
|
|
326
|
+
const worker = new Worker('./hash-worker.js', {
|
|
327
|
+
workerData: { password }
|
|
328
|
+
});
|
|
329
|
+
worker.on('message', resolve);
|
|
330
|
+
worker.on('error', reject);
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Parallelism Patterns [5]
|
|
336
|
+
|
|
337
|
+
**Promise.all for Independent Operations** [5]
|
|
338
|
+
```typescript
|
|
339
|
+
// CORRECT: Parallel independent fetches — total time = max(fetches) [5]
|
|
340
|
+
async function loadDashboard(userId: string) {
|
|
341
|
+
const [user, orders, notifications] = await Promise.all([
|
|
342
|
+
getUser(userId),
|
|
343
|
+
getOrders(userId),
|
|
344
|
+
getNotifications(userId)
|
|
345
|
+
]);
|
|
346
|
+
return { user, orders, notifications };
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**Controlled Concurrency** — avoid overwhelming downstream services [11]
|
|
351
|
+
```typescript
|
|
352
|
+
// CORRECT: Limit parallel operations — prevent overload [11]
|
|
353
|
+
async function processAll(items: Item[], concurrency = 5) {
|
|
354
|
+
const results: Result[] = [];
|
|
355
|
+
const executing: Promise<void>[] = [];
|
|
356
|
+
|
|
357
|
+
for (const item of items) {
|
|
358
|
+
const promise = process(item).then(r => {
|
|
359
|
+
results.push(r);
|
|
360
|
+
executing.splice(executing.indexOf(promise), 1);
|
|
361
|
+
});
|
|
362
|
+
executing.push(promise);
|
|
363
|
+
|
|
364
|
+
if (executing.length >= concurrency) {
|
|
365
|
+
await Promise.race(executing);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
await Promise.all(executing);
|
|
370
|
+
return results;
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## Frontend Solutions [6][14][15]
|
|
377
|
+
|
|
378
|
+
### Core Web Vitals Optimization [6][17]
|
|
379
|
+
|
|
380
|
+
**LCP Optimization** — largest visible element must load fast [6]
|
|
381
|
+
```html
|
|
382
|
+
<!-- CORRECT: Preload LCP image — tells browser early [6] -->
|
|
383
|
+
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high" />
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**INP Optimization** — interactions must complete within 200ms [21]
|
|
387
|
+
```typescript
|
|
388
|
+
// CORRECT: Yield to browser between heavy tasks [21]
|
|
389
|
+
async function handleClick() {
|
|
390
|
+
processFirstChunk();
|
|
391
|
+
await scheduler.yield(); // Let browser render, process input
|
|
392
|
+
processSecondChunk();
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### React Optimization Patterns [15]
|
|
397
|
+
|
|
398
|
+
**Memoized Callbacks** — stable function reference prevents child re-renders
|
|
399
|
+
```tsx
|
|
400
|
+
// CORRECT: Stable function reference [15]
|
|
401
|
+
function UserList({ users, onSelect }: Props) {
|
|
402
|
+
const handleSelect = useCallback((userId: string) => {
|
|
403
|
+
onSelect(userId);
|
|
404
|
+
}, [onSelect]);
|
|
405
|
+
|
|
406
|
+
return <List items={users} onSelect={handleSelect} />;
|
|
407
|
+
}
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
**Memoized Computed Values** [15]
|
|
411
|
+
```tsx
|
|
412
|
+
// CORRECT: Only recompute when dependencies change [15]
|
|
413
|
+
function Dashboard({ data }: Props) {
|
|
414
|
+
const stats = useMemo(() => computeExpensiveStats(data), [data]);
|
|
415
|
+
return <Stats data={stats} />;
|
|
416
|
+
}
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Virtualized Lists** — render only visible rows [14]
|
|
420
|
+
```tsx
|
|
421
|
+
// CORRECT: Only render visible items — O(viewport) not O(n) [14]
|
|
422
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
423
|
+
|
|
424
|
+
function VirtualList({ items }: Props) {
|
|
425
|
+
const parentRef = useRef<HTMLDivElement>(null);
|
|
426
|
+
|
|
427
|
+
const virtualizer = useVirtualizer({
|
|
428
|
+
count: items.length,
|
|
429
|
+
getScrollElement: () => parentRef.current,
|
|
430
|
+
estimateSize: () => 35
|
|
431
|
+
});
|
|
432
|
+
|
|
433
|
+
return (
|
|
434
|
+
<div ref={parentRef} style={{ height: '400px', overflow: 'auto' }}>
|
|
435
|
+
<div style={{ height: virtualizer.getTotalSize() }}>
|
|
436
|
+
{virtualizer.getVirtualItems().map(virtualRow => (
|
|
437
|
+
<div
|
|
438
|
+
key={virtualRow.key}
|
|
439
|
+
style={{ position: 'absolute', top: virtualRow.start, height: virtualRow.size }}
|
|
440
|
+
>
|
|
441
|
+
{items[virtualRow.index].name}
|
|
442
|
+
</div>
|
|
443
|
+
))}
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
);
|
|
447
|
+
}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**Lazy Loading for Code Splitting** [14][18]
|
|
451
|
+
```tsx
|
|
452
|
+
// CORRECT: Load on demand — reduces initial bundle [14][18]
|
|
453
|
+
const HeavyChart = lazy(() => import('./HeavyChart'));
|
|
454
|
+
|
|
455
|
+
function Dashboard() {
|
|
456
|
+
const [showChart, setShowChart] = useState(false);
|
|
457
|
+
|
|
458
|
+
return (
|
|
459
|
+
<div>
|
|
460
|
+
<button onClick={() => setShowChart(true)}>Show Chart</button>
|
|
461
|
+
{showChart && (
|
|
462
|
+
<Suspense fallback={<Spinner />}>
|
|
463
|
+
<HeavyChart />
|
|
464
|
+
</Suspense>
|
|
465
|
+
)}
|
|
466
|
+
</div>
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## Measurement Patterns [1][2][8][9]
|
|
474
|
+
|
|
475
|
+
### USE Method Application [1]
|
|
476
|
+
|
|
477
|
+
For each system resource: CPU, memory, disk, network:
|
|
478
|
+
1. **Utilization** — time resource was busy (e.g., CPU at 80%)
|
|
479
|
+
2. **Saturation** — degree of queuing beyond capacity (e.g., run-queue > 0)
|
|
480
|
+
3. **Errors** — error events (e.g., network retransmits)
|
|
481
|
+
|
|
482
|
+
### Flame Graph Interpretation [9]
|
|
483
|
+
|
|
484
|
+
Widest frames at top = hottest call paths. Optimize the widest towers, not the tallest stacks.
|
|
485
|
+
|
|
486
|
+
### HDR Histogram for Latency [8]
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
// CORRECT: HDR histogram captures full distribution without coordinated omission [8]
|
|
490
|
+
import { Histogram } from 'hdr-histogram-js';
|
|
491
|
+
|
|
492
|
+
const histogram = new Histogram(1, 3_600_000, 3); // 1ns to 1hr, 3 sig figs
|
|
493
|
+
|
|
494
|
+
function recordLatency(startNs: bigint) {
|
|
495
|
+
const latencyNs = Number(process.hrtime.bigint() - startNs);
|
|
496
|
+
histogram.recordValue(latencyNs);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
// Report meaningful percentiles
|
|
500
|
+
console.log(`P50: ${histogram.getValueAtPercentile(50)}ns`);
|
|
501
|
+
console.log(`P99: ${histogram.getValueAtPercentile(99)}ns`);
|
|
502
|
+
console.log(`P999: ${histogram.getValueAtPercentile(99.9)}ns`);
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
### Node.js Performance Measurement [16]
|
|
506
|
+
|
|
507
|
+
```typescript
|
|
508
|
+
// CORRECT: Use performance.mark for operation timing [16]
|
|
509
|
+
performance.mark('op:start');
|
|
510
|
+
await doExpensiveOperation();
|
|
511
|
+
performance.mark('op:end');
|
|
512
|
+
performance.measure('expensive-op', 'op:start', 'op:end');
|
|
513
|
+
|
|
514
|
+
const [entry] = performance.getEntriesByName('expensive-op');
|
|
515
|
+
console.log(`Duration: ${entry.duration}ms`);
|
|
516
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Performance — Sources
|
|
2
|
+
|
|
3
|
+
## Primary References
|
|
4
|
+
|
|
5
|
+
| # | Source | Author(s) | Year | Access | Topics |
|
|
6
|
+
|---|--------|-----------|------|--------|--------|
|
|
7
|
+
| 1 | USE Method | Brendan Gregg | 2012 | [Free](https://brendangregg.com/usemethod.html) | Utilization, Saturation, Errors — systematic resource analysis |
|
|
8
|
+
| 2 | RED Method | Tom Wilkie | 2018 | [Free](https://grafana.com/blog/2018/08/02/the-red-method-how-to-instrument-your-services/) | Rate, Errors, Duration — service-level performance signals |
|
|
9
|
+
| 3 | "High Performance Browser Networking" | Ilya Grigorik | 2013 | [Free](https://hpbn.co) | HTTP, TLS, TCP, WebSockets, network performance |
|
|
10
|
+
| 4 | "What Every Programmer Should Know About Memory" | Ulrich Drepper | 2007 | [Free](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) | Memory hierarchy, L1/L2/L3 cache effects, NUMA, prefetching |
|
|
11
|
+
| 5 | MIT 6.172 Performance Engineering of Software Systems | Charles Leiserson et al. | 2018 | [Free](https://ocw.mit.edu/courses/6-172-performance-engineering-of-software-systems-fall-2018/) | Algorithmic optimization, SIMD, parallelism, work-span model |
|
|
12
|
+
| 6 | Web Vitals | Google | 2024 | [Free](https://web.dev/vitals/) | LCP, INP, CLS — core user experience metrics |
|
|
13
|
+
| 7 | "Latency Numbers Every Programmer Should Know" | Jeff Dean | 2012 | [Free](https://norvig.com/21-days.html#answers) | Order-of-magnitude latencies: cache, RAM, disk, network |
|
|
14
|
+
| 8 | "How NOT to Measure Latency" | Gil Tene | 2015 | [Free](https://www.youtube.com/watch?v=lJ8ydIuPFeU) | Coordinated omission, HDR histograms, percentile pitfalls |
|
|
15
|
+
| 9 | Flame Graphs | Brendan Gregg | 2011 | [Free](https://brendangregg.com/flamegraphs.html) | CPU profiling visualization, hot path identification |
|
|
16
|
+
| 10 | "The LMAX Disruptor" | Thompson, Farley, Barker, Gee, Stewart | 2011 | [Free](https://lmax-exchange.github.io/disruptor/disruptor.html) | Mechanical sympathy, false sharing, cache line padding |
|
|
17
|
+
| 11 | "The Tail at Scale" | Dean & Barroso | 2013 | [Free](https://research.google/pubs/the-tail-at-scale/) | Tail latency causes and mitigation (hedged requests, micro-partitioning) |
|
|
18
|
+
| 12 | "Algorithms for Modern Hardware" | Sergey Slotin | 2022 | [Free](https://en.algorithmica.org/hpc/) | Cache-aware algorithms, SIMD, branch prediction, memory layout |
|
|
19
|
+
| 13 | V8 Blog | Google V8 Team | ongoing | [Free](https://v8.dev/blog) | JavaScript engine JIT internals, hidden classes, deoptimizations |
|
|
20
|
+
| 14 | Lighthouse Documentation | Google | 2024 | [Free](https://developer.chrome.com/docs/lighthouse/) | Web performance auditing, scoring, budget enforcement |
|
|
21
|
+
| 15 | Chrome DevTools Performance Panel | Google | 2024 | [Free](https://developer.chrome.com/docs/devtools/performance/) | CPU profiling, frame timeline, memory analysis in browser |
|
|
22
|
+
| 16 | Node.js Performance Hooks (`perf_hooks`) | Node.js | 2024 | [Free](https://nodejs.org/api/perf_hooks.html) | Server-side measurement, `performance.mark`, `PerformanceObserver` |
|
|
23
|
+
| 17 | Chrome UX Report (CrUX) | Google | 2024 | [Free](https://developer.chrome.com/docs/crux/) | Real-user field data for Core Web Vitals |
|
|
24
|
+
| 18 | webpack Bundle Analysis | webpack contributors | 2024 | [Free](https://webpack.js.org/guides/code-splitting/) | Bundle size optimization, code splitting, tree shaking |
|
|
25
|
+
| 19 | "Systems Performance" 2nd Ed. | Brendan Gregg | 2020 | Purchase | Comprehensive systems performance: OS, CPU, memory, I/O |
|
|
26
|
+
| 20 | "Database Internals" | Alex Petrov | 2019 | Purchase | B-tree storage, LSM trees, index structures, query optimization |
|
|
27
|
+
|
|
28
|
+
## Standards & Specifications
|
|
29
|
+
|
|
30
|
+
| # | Source | Org | Access | Topics |
|
|
31
|
+
|---|--------|-----|--------|--------|
|
|
32
|
+
| 21 | INP (Interaction to Next Paint) | Google/W3C | [Free](https://web.dev/articles/inp) | Responsiveness metric replacing FID, input latency budget |
|
|
33
|
+
| 22 | Resource Timing Level 2 | W3C | [Free](https://www.w3.org/TR/resource-timing-2/) | Browser resource loading performance API |
|
|
34
|
+
| 23 | Long Animation Frames API | W3C | [Free](https://w3c.github.io/long-animation-frames/) | Detecting long tasks blocking the main thread |
|
|
35
|
+
|
|
36
|
+
## Academic & Research
|
|
37
|
+
|
|
38
|
+
| # | Source | Author(s) | Year | Access | Topics |
|
|
39
|
+
|---|--------|-----------|------|--------|--------|
|
|
40
|
+
| 24 | "Computer Architecture: A Quantitative Approach" Ch. 2 | Hennessy & Patterson | 2017 | Purchase | Memory hierarchy design, cache performance, Amdahl's Law |
|
|
41
|
+
| 25 | "The Danger of Naive Benchmarking" (JVM warmup) | Shipilev | 2014 | [Free](https://shipilev.net/blog/2014/nanotrusting-the-nanotime/) | JVM JIT warmup, benchmark harness design, measurement validity |
|