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
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
# Rust Extended Patterns
|
|
2
|
-
|
|
3
|
-
Extended correct patterns for Rust. Reference from main SKILL.md.
|
|
4
|
-
|
|
5
|
-
## Typestate Pattern
|
|
6
|
-
|
|
7
|
-
Encode valid state transitions in the type system so invalid sequences don't compile.
|
|
8
|
-
|
|
9
|
-
```rust
|
|
10
|
-
// States are zero-sized types — no runtime cost
|
|
11
|
-
struct Draft;
|
|
12
|
-
struct Published;
|
|
13
|
-
struct Archived;
|
|
14
|
-
|
|
15
|
-
struct Article<State> {
|
|
16
|
-
title: String,
|
|
17
|
-
body: String,
|
|
18
|
-
_state: std::marker::PhantomData<State>,
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
impl Article<Draft> {
|
|
22
|
-
pub fn new(title: String, body: String) -> Self {
|
|
23
|
-
Article { title, body, _state: std::marker::PhantomData }
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
pub fn publish(self) -> Article<Published> {
|
|
27
|
-
Article { title: self.title, body: self.body, _state: std::marker::PhantomData }
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
impl Article<Published> {
|
|
32
|
-
pub fn archive(self) -> Article<Archived> {
|
|
33
|
-
Article { title: self.title, body: self.body, _state: std::marker::PhantomData }
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// article.archive() on Draft won't compile — transition enforced at compile time
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Error Handling Hierarchy
|
|
43
|
-
|
|
44
|
-
Layer errors from specific to general using `thiserror` for libraries and `anyhow` for applications.
|
|
45
|
-
|
|
46
|
-
```rust
|
|
47
|
-
// Library: precise, typed errors
|
|
48
|
-
#[derive(thiserror::Error, Debug)]
|
|
49
|
-
pub enum RepoError {
|
|
50
|
-
#[error("entity {entity} with id {id} not found")]
|
|
51
|
-
NotFound { entity: &'static str, id: String },
|
|
52
|
-
#[error("duplicate key: {0}")]
|
|
53
|
-
Duplicate(String),
|
|
54
|
-
#[error("connection failed")]
|
|
55
|
-
Connection(#[from] sqlx::Error),
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Application: ergonomic error propagation
|
|
59
|
-
use anyhow::{Context, Result};
|
|
60
|
-
|
|
61
|
-
fn run() -> Result<()> {
|
|
62
|
-
let config = load_config()
|
|
63
|
-
.context("failed to load configuration")?;
|
|
64
|
-
let db = connect_db(&config.database_url)
|
|
65
|
-
.context("failed to connect to database")?;
|
|
66
|
-
serve(db, config.port)
|
|
67
|
-
.context("server exited with error")
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Trait Objects vs Generics
|
|
74
|
-
|
|
75
|
-
### Use Generics for Performance (Monomorphization)
|
|
76
|
-
|
|
77
|
-
```rust
|
|
78
|
-
fn largest<T: PartialOrd>(list: &[T]) -> Option<&T> {
|
|
79
|
-
list.iter().reduce(|a, b| if a >= b { a } else { b })
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Use Trait Objects for Heterogeneous Collections
|
|
84
|
-
|
|
85
|
-
```rust
|
|
86
|
-
trait Handler: Send + Sync {
|
|
87
|
-
fn handle(&self, request: &Request) -> Response;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
struct Router {
|
|
91
|
-
routes: Vec<Box<dyn Handler>>, // Different concrete types in one Vec
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Decision Guide
|
|
96
|
-
|
|
97
|
-
| Criteria | Generics | Trait Objects |
|
|
98
|
-
|----------|----------|--------------|
|
|
99
|
-
| Known types at compile time | Yes | No |
|
|
100
|
-
| Heterogeneous collection | No | Yes |
|
|
101
|
-
| Performance-critical | Yes | Acceptable overhead |
|
|
102
|
-
| Binary size concern | Increases | Minimal |
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Smart Pointers
|
|
107
|
-
|
|
108
|
-
### Box — Heap Allocation
|
|
109
|
-
|
|
110
|
-
```rust
|
|
111
|
-
// Recursive types require indirection
|
|
112
|
-
enum List<T> {
|
|
113
|
-
Cons(T, Box<List<T>>),
|
|
114
|
-
Nil,
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Rc/Arc — Shared Ownership
|
|
119
|
-
|
|
120
|
-
```rust
|
|
121
|
-
use std::sync::Arc;
|
|
122
|
-
|
|
123
|
-
// Shared read-only config across threads
|
|
124
|
-
let config = Arc::new(load_config()?);
|
|
125
|
-
let config_clone = Arc::clone(&config);
|
|
126
|
-
tokio::spawn(async move {
|
|
127
|
-
use_config(&config_clone).await;
|
|
128
|
-
});
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### When to Use Each
|
|
132
|
-
|
|
133
|
-
| Pointer | Use Case |
|
|
134
|
-
|---------|----------|
|
|
135
|
-
| `Box<T>` | Single owner, heap allocation, recursive types |
|
|
136
|
-
| `Rc<T>` | Multiple owners, single-threaded |
|
|
137
|
-
| `Arc<T>` | Multiple owners, multi-threaded |
|
|
138
|
-
| `Cow<'a, T>` | Clone-on-write, flexible borrowing |
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## From/Into Conversions
|
|
143
|
-
|
|
144
|
-
```rust
|
|
145
|
-
// Implement From for automatic Into
|
|
146
|
-
impl From<CreateUserRequest> for User {
|
|
147
|
-
fn from(req: CreateUserRequest) -> Self {
|
|
148
|
-
User {
|
|
149
|
-
id: Uuid::new_v4(),
|
|
150
|
-
name: req.name,
|
|
151
|
-
email: req.email,
|
|
152
|
-
created_at: Utc::now(),
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// Callers get Into for free
|
|
158
|
-
fn save_user(user: impl Into<User>) -> Result<(), DbError> {
|
|
159
|
-
let user: User = user.into();
|
|
160
|
-
// ...
|
|
161
|
-
Ok(())
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Derive and Trait Best Practices
|
|
168
|
-
|
|
169
|
-
```rust
|
|
170
|
-
// Derive the standard set for data types
|
|
171
|
-
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
|
172
|
-
pub struct UserId(String);
|
|
173
|
-
|
|
174
|
-
// Derive serde for serialization boundaries
|
|
175
|
-
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
|
176
|
-
pub struct ApiResponse<T> {
|
|
177
|
-
pub data: T,
|
|
178
|
-
pub metadata: Metadata,
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Trait Implementation Order Convention
|
|
183
|
-
|
|
184
|
-
1. Standard library traits (`Debug`, `Display`, `Clone`, `PartialEq`)
|
|
185
|
-
2. Conversion traits (`From`, `Into`, `TryFrom`)
|
|
186
|
-
3. Iterator traits (`Iterator`, `IntoIterator`)
|
|
187
|
-
4. Serde traits (`Serialize`, `Deserialize`)
|
|
188
|
-
5. Custom traits (domain-specific)
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
## Module Organization
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
src/
|
|
196
|
-
├── lib.rs # Public API re-exports
|
|
197
|
-
├── error.rs # Crate-level error types
|
|
198
|
-
├── domain/
|
|
199
|
-
│ ├── mod.rs # Domain re-exports
|
|
200
|
-
│ ├── user.rs # User entity and logic
|
|
201
|
-
│ └── order.rs # Order entity and logic
|
|
202
|
-
├── repo/
|
|
203
|
-
│ ├── mod.rs # Repository trait definitions
|
|
204
|
-
│ └── postgres.rs # Concrete implementation
|
|
205
|
-
└── api/
|
|
206
|
-
├── mod.rs # Route registration
|
|
207
|
-
└── handlers.rs # HTTP handlers
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Keep `lib.rs` thin — re-export only the public API. Internal modules use `pub(crate)`.
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
# Rust Violation Examples
|
|
2
|
-
|
|
3
|
-
Extended violation patterns for Rust reviews. Reference from main SKILL.md.
|
|
4
|
-
|
|
5
|
-
## Unwrap Abuse
|
|
6
|
-
|
|
7
|
-
### Unwrap in Library Code
|
|
8
|
-
|
|
9
|
-
```rust
|
|
10
|
-
// VIOLATION: Panics on None — caller has no way to handle failure
|
|
11
|
-
pub fn get_username(users: &HashMap<u64, String>, id: u64) -> &str {
|
|
12
|
-
users.get(&id).unwrap() // Panics if id not found
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// VIOLATION: Unwrap on parse without context
|
|
16
|
-
let port: u16 = std::env::var("PORT").unwrap().parse().unwrap();
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Expect Without Useful Message
|
|
20
|
-
|
|
21
|
-
```rust
|
|
22
|
-
// VIOLATION: Message doesn't help diagnose the problem
|
|
23
|
-
let config = load_config().expect("failed");
|
|
24
|
-
|
|
25
|
-
// CORRECT: Actionable message
|
|
26
|
-
let config = load_config().expect("failed to load config from config.toml — does file exist?");
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Unnecessary Cloning
|
|
32
|
-
|
|
33
|
-
### Clone to Satisfy Borrow Checker
|
|
34
|
-
|
|
35
|
-
```rust
|
|
36
|
-
// VIOLATION: Cloning to work around borrow issues
|
|
37
|
-
fn process_items(items: &Vec<Item>) {
|
|
38
|
-
let cloned = items.clone(); // Entire Vec cloned
|
|
39
|
-
for item in &cloned {
|
|
40
|
-
println!("{}", item.name);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// CORRECT: Just borrow
|
|
45
|
-
fn process_items(items: &[Item]) {
|
|
46
|
-
for item in items {
|
|
47
|
-
println!("{}", item.name);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Clone in Hot Loop
|
|
53
|
-
|
|
54
|
-
```rust
|
|
55
|
-
// VIOLATION: Allocating on every iteration
|
|
56
|
-
for record in &records {
|
|
57
|
-
let key = record.id.clone(); // String allocation per iteration
|
|
58
|
-
map.insert(key, record);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// CORRECT: Borrow or use references
|
|
62
|
-
for record in &records {
|
|
63
|
-
map.insert(&record.id, record);
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Stringly-Typed APIs
|
|
70
|
-
|
|
71
|
-
### String Where Enum Belongs
|
|
72
|
-
|
|
73
|
-
```rust
|
|
74
|
-
// VIOLATION: Any typo compiles and fails at runtime
|
|
75
|
-
fn set_status(status: &str) {
|
|
76
|
-
match status {
|
|
77
|
-
"active" => { /* ... */ }
|
|
78
|
-
"inactive" => { /* ... */ }
|
|
79
|
-
_ => panic!("unknown status"), // Runtime failure
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// CORRECT: Compiler enforces valid values
|
|
84
|
-
enum Status { Active, Inactive }
|
|
85
|
-
|
|
86
|
-
fn set_status(status: Status) {
|
|
87
|
-
match status {
|
|
88
|
-
Status::Active => { /* ... */ }
|
|
89
|
-
Status::Inactive => { /* ... */ }
|
|
90
|
-
} // Exhaustive — no default needed
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Unsafe Without Justification
|
|
97
|
-
|
|
98
|
-
### Bare Unsafe Block
|
|
99
|
-
|
|
100
|
-
```rust
|
|
101
|
-
// VIOLATION: No safety comment explaining invariants
|
|
102
|
-
unsafe {
|
|
103
|
-
let ptr = data.as_ptr();
|
|
104
|
-
std::ptr::copy_nonoverlapping(ptr, dest, len);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// CORRECT: Document why this is safe
|
|
108
|
-
// SAFETY: `data` is guaranteed to be valid for `len` bytes because
|
|
109
|
-
// it was allocated by `Vec::with_capacity(len)` and filled by `read_exact`.
|
|
110
|
-
// `dest` is a valid pointer from `alloc::alloc(layout)` with matching size.
|
|
111
|
-
unsafe {
|
|
112
|
-
std::ptr::copy_nonoverlapping(data.as_ptr(), dest, len);
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Unnecessary Unsafe
|
|
117
|
-
|
|
118
|
-
```rust
|
|
119
|
-
// VIOLATION: Using unsafe when safe alternative exists
|
|
120
|
-
unsafe fn get_element(slice: &[u8], index: usize) -> u8 {
|
|
121
|
-
*slice.get_unchecked(index)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// CORRECT: Safe indexing with bounds check
|
|
125
|
-
fn get_element(slice: &[u8], index: usize) -> Option<u8> {
|
|
126
|
-
slice.get(index).copied()
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Ignoring Results
|
|
133
|
-
|
|
134
|
-
### Discarding Write Errors
|
|
135
|
-
|
|
136
|
-
```rust
|
|
137
|
-
// VIOLATION: Write failure silently ignored
|
|
138
|
-
let _ = file.write_all(data);
|
|
139
|
-
let _ = file.flush();
|
|
140
|
-
|
|
141
|
-
// CORRECT: Propagate errors
|
|
142
|
-
file.write_all(data)?;
|
|
143
|
-
file.flush()?;
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Ignoring Lock Poisoning
|
|
147
|
-
|
|
148
|
-
```rust
|
|
149
|
-
// VIOLATION: Silently ignoring poisoned mutex
|
|
150
|
-
let guard = mutex.lock().unwrap_or_else(|e| e.into_inner());
|
|
151
|
-
|
|
152
|
-
// CORRECT: Handle or propagate the poison
|
|
153
|
-
let guard = mutex.lock().map_err(|_| AppError::LockPoisoned)?;
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Concurrency Violations
|
|
159
|
-
|
|
160
|
-
### Shared Mutable State Without Synchronization
|
|
161
|
-
|
|
162
|
-
```rust
|
|
163
|
-
// VIOLATION: Data race potential — no synchronization
|
|
164
|
-
static mut COUNTER: u64 = 0;
|
|
165
|
-
|
|
166
|
-
fn increment() {
|
|
167
|
-
unsafe { COUNTER += 1; } // Undefined behavior under concurrency
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// CORRECT: Use atomic or mutex
|
|
171
|
-
use std::sync::atomic::{AtomicU64, Ordering};
|
|
172
|
-
static COUNTER: AtomicU64 = AtomicU64::new(0);
|
|
173
|
-
|
|
174
|
-
fn increment() {
|
|
175
|
-
COUNTER.fetch_add(1, Ordering::Relaxed);
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
### Blocking in Async Context
|
|
180
|
-
|
|
181
|
-
```rust
|
|
182
|
-
// VIOLATION: Blocks the async runtime thread
|
|
183
|
-
async fn read_file(path: &str) -> Result<String, io::Error> {
|
|
184
|
-
std::fs::read_to_string(path) // Blocking call in async fn
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// CORRECT: Use async file I/O or spawn_blocking
|
|
188
|
-
async fn read_file(path: &str) -> Result<String, io::Error> {
|
|
189
|
-
tokio::fs::read_to_string(path).await
|
|
190
|
-
}
|
|
191
|
-
```
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: search-first
|
|
3
|
-
description: >-
|
|
4
|
-
This skill should be used when the user asks to "add a utility", "create a helper",
|
|
5
|
-
"implement parsing", "build a wrapper", or writes infrastructure/utility code that
|
|
6
|
-
may already exist as a well-maintained package. Enforces research before building.
|
|
7
|
-
user-invocable: false
|
|
8
|
-
allowed-tools: Read, Grep, Glob
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Search-First
|
|
12
|
-
|
|
13
|
-
Research before building. Check if a battle-tested solution exists before writing custom utility code.
|
|
14
|
-
|
|
15
|
-
## Iron Law
|
|
16
|
-
|
|
17
|
-
> **RESEARCH BEFORE BUILDING**
|
|
18
|
-
>
|
|
19
|
-
> Never write custom utility code without first checking if a battle-tested solution
|
|
20
|
-
> exists. The best code is code you don't write. A maintained package with thousands
|
|
21
|
-
> of users will always beat a hand-rolled utility in reliability, edge cases, and
|
|
22
|
-
> long-term maintenance.
|
|
23
|
-
|
|
24
|
-
## When This Skill Activates
|
|
25
|
-
|
|
26
|
-
**Triggers** — creating or modifying code that:
|
|
27
|
-
- Parses, formats, or validates data (dates, URLs, emails, UUIDs, etc.)
|
|
28
|
-
- Implements common algorithms (sorting, diffing, hashing, encoding)
|
|
29
|
-
- Wraps HTTP clients, retries, rate limiting, caching
|
|
30
|
-
- Handles file system operations beyond basic read/write
|
|
31
|
-
- Implements CLI argument parsing, logging, or configuration
|
|
32
|
-
- Creates test utilities (mocking, fixtures, assertions)
|
|
33
|
-
|
|
34
|
-
**Does NOT trigger** for:
|
|
35
|
-
- Domain-specific business logic unique to this project
|
|
36
|
-
- Glue code connecting existing components
|
|
37
|
-
- Trivial operations (< 5 lines, single-use)
|
|
38
|
-
- Code that intentionally avoids external dependencies (e.g., zero-dep libraries)
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Research Process
|
|
43
|
-
|
|
44
|
-
### Phase 1: Need Analysis
|
|
45
|
-
|
|
46
|
-
Before searching, define what you actually need:
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
Need: {one-sentence description of the capability}
|
|
50
|
-
Constraints: {runtime, bundle size, license, zero-dep requirement}
|
|
51
|
-
Must-haves: {non-negotiable requirements}
|
|
52
|
-
Nice-to-haves: {optional features}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Phase 2: Search
|
|
56
|
-
|
|
57
|
-
Delegate research to an Explore subagent to keep main session context clean.
|
|
58
|
-
|
|
59
|
-
**Spawn an Explore agent** with this prompt template:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
Task(subagent_type="Explore"):
|
|
63
|
-
"Research existing solutions for: {need description}
|
|
64
|
-
|
|
65
|
-
Search for:
|
|
66
|
-
1. npm/PyPI/crates packages that solve this (check package.json/requirements.txt for ecosystem)
|
|
67
|
-
2. Existing utilities in this codebase (grep for related function names)
|
|
68
|
-
3. Framework built-ins that already handle this
|
|
69
|
-
|
|
70
|
-
For each candidate, find:
|
|
71
|
-
- Package name and weekly downloads (if applicable)
|
|
72
|
-
- Last publish date and maintenance status
|
|
73
|
-
- Bundle size / dependency count
|
|
74
|
-
- API surface relevant to our need
|
|
75
|
-
- License compatibility
|
|
76
|
-
|
|
77
|
-
Return top 3 candidates with pros/cons, or confirm nothing suitable exists."
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Phase 3: Evaluate
|
|
81
|
-
|
|
82
|
-
Score each candidate against evaluation criteria. See `references/evaluation-criteria.md` for the full matrix.
|
|
83
|
-
|
|
84
|
-
Quick checklist:
|
|
85
|
-
- [ ] Last published within 12 months
|
|
86
|
-
- [ ] Weekly downloads > 1,000 (npm) or equivalent traction
|
|
87
|
-
- [ ] No known vulnerabilities (check Snyk/npm audit)
|
|
88
|
-
- [ ] API fits the use case without heavy wrapping
|
|
89
|
-
- [ ] License compatible with project (MIT/Apache/BSD preferred)
|
|
90
|
-
- [ ] Bundle size acceptable for the project context
|
|
91
|
-
|
|
92
|
-
### Phase 4: Decide
|
|
93
|
-
|
|
94
|
-
Choose one of four outcomes:
|
|
95
|
-
|
|
96
|
-
| Decision | When | Action |
|
|
97
|
-
|----------|------|--------|
|
|
98
|
-
| **Adopt** | Exact match, well-maintained, good API | Install and use directly |
|
|
99
|
-
| **Extend** | Partial match, needs thin wrapper | Install + write minimal adapter |
|
|
100
|
-
| **Compose** | No single package fits, but 2-3 small ones combine well | Install multiple, write glue code |
|
|
101
|
-
| **Build** | Nothing fits, or dependency cost exceeds value | Write custom, document why |
|
|
102
|
-
|
|
103
|
-
**Document the decision** in a code comment at the usage site:
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
// search-first: Adopted date-fns for date formatting (2M weekly downloads, 30KB)
|
|
107
|
-
// search-first: Built custom — no package handles our specific wire format
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## Anti-Patterns
|
|
113
|
-
|
|
114
|
-
| Anti-Pattern | Correct Approach |
|
|
115
|
-
|-------------|-----------------|
|
|
116
|
-
| Adding a dependency for 5 lines of trivial code | Build — dependency overhead exceeds value |
|
|
117
|
-
| Choosing the most popular package without checking fit | Evaluate API fit, not just popularity |
|
|
118
|
-
| Wrapping a package so heavily it obscures the original | If wrapping > 50% of original API, reconsider |
|
|
119
|
-
| Skipping research because "I know how to build this" | Research anyway — maintenance cost matters more than initial build |
|
|
120
|
-
| Installing a massive framework for one utility function | Look for focused, single-purpose packages |
|
|
121
|
-
|
|
122
|
-
## Scope Limiter
|
|
123
|
-
|
|
124
|
-
This skill concerns **utility and infrastructure code** only:
|
|
125
|
-
- Data transformation, validation, formatting
|
|
126
|
-
- Network operations, retries, caching
|
|
127
|
-
- CLI tooling, logging, configuration
|
|
128
|
-
- Test utilities and helpers
|
|
129
|
-
|
|
130
|
-
It does NOT apply to **domain-specific business logic** where:
|
|
131
|
-
- The logic encodes unique business rules
|
|
132
|
-
- No generic solution could exist
|
|
133
|
-
- The code is inherently project-specific
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# Search-First — Evaluation Criteria
|
|
2
|
-
|
|
3
|
-
Detailed package evaluation criteria and decision matrix for the 4-outcome model.
|
|
4
|
-
|
|
5
|
-
## Evaluation Matrix
|
|
6
|
-
|
|
7
|
-
Score each candidate on these axes (1-5 scale):
|
|
8
|
-
|
|
9
|
-
| Criterion | Weight | 1 (Poor) | 3 (Acceptable) | 5 (Excellent) |
|
|
10
|
-
|-----------|--------|-----------|-----------------|----------------|
|
|
11
|
-
| **Maintenance** | High | No commits in 2+ years | Active, yearly releases | Regular releases, responsive maintainer |
|
|
12
|
-
| **Adoption** | Medium | < 100 weekly downloads | 1K-10K weekly downloads | > 100K weekly downloads |
|
|
13
|
-
| **API Fit** | High | Needs heavy wrapping | Partial fit, thin adapter needed | Direct use, clean API |
|
|
14
|
-
| **Bundle Size** | Medium | > 500KB | 50-500KB | < 50KB |
|
|
15
|
-
| **Security** | High | Known vulnerabilities | No known issues, few dependencies | Audited, zero/minimal dependencies |
|
|
16
|
-
| **License** | Required | GPL/AGPL (restrictive) | LGPL (conditional) | MIT/Apache/BSD (permissive) |
|
|
17
|
-
|
|
18
|
-
**Minimum thresholds**: License must be compatible. Security must be ≥ 3. All others are trade-offs.
|
|
19
|
-
|
|
20
|
-
## Decision Matrix
|
|
21
|
-
|
|
22
|
-
### Adopt (score ≥ 20/25, API Fit ≥ 4)
|
|
23
|
-
|
|
24
|
-
The package directly solves the problem with minimal integration code.
|
|
25
|
-
|
|
26
|
-
**Example**: Using `zod` for schema validation — exact fit, massive adoption, tiny bundle.
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
✅ Adopt: zod v3.22
|
|
30
|
-
- Maintenance: 5 (monthly releases)
|
|
31
|
-
- Adoption: 5 (4M weekly downloads)
|
|
32
|
-
- API Fit: 5 (direct use for all validation)
|
|
33
|
-
- Bundle Size: 4 (57KB)
|
|
34
|
-
- Security: 5 (zero dependencies)
|
|
35
|
-
- Total: 24/25
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Extend (score ≥ 15/25, API Fit ≥ 2)
|
|
39
|
-
|
|
40
|
-
The package handles 60-80% of the need. Write a thin adapter for the rest.
|
|
41
|
-
|
|
42
|
-
**Example**: Using `got` for HTTP but wrapping it with project-specific retry and auth logic.
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
✅ Extend: got v14
|
|
46
|
-
- Maintenance: 4 (active)
|
|
47
|
-
- Adoption: 5 (8M weekly downloads)
|
|
48
|
-
- API Fit: 3 (need custom retry wrapper)
|
|
49
|
-
- Bundle Size: 3 (150KB)
|
|
50
|
-
- Security: 4 (minimal deps)
|
|
51
|
-
- Total: 19/25
|
|
52
|
-
Adapter: ~30 lines wrapping retry + auth headers
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Compose (no single package fits, but small packages combine)
|
|
56
|
-
|
|
57
|
-
Two or three focused packages together solve the problem better than one large framework.
|
|
58
|
-
|
|
59
|
-
**Example**: `ms` (time parsing) + `p-retry` (retry logic) + `quick-lru` (caching) instead of a monolithic HTTP client framework.
|
|
60
|
-
|
|
61
|
-
**Rules for Compose**:
|
|
62
|
-
- Maximum 3 packages in a composition
|
|
63
|
-
- Each package must be focused (single responsibility)
|
|
64
|
-
- Total combined bundle < what a monolithic alternative would cost
|
|
65
|
-
- Glue code should be < 50 lines
|
|
66
|
-
|
|
67
|
-
### Build (nothing fits, or dependency cost > value)
|
|
68
|
-
|
|
69
|
-
Write custom code when:
|
|
70
|
-
- No package scores ≥ 15/25
|
|
71
|
-
- The code is < 50 lines and trivial
|
|
72
|
-
- Zero-dependency constraint is explicit
|
|
73
|
-
- The domain is too specific for generic packages
|
|
74
|
-
|
|
75
|
-
**Required**: Document why Build was chosen:
|
|
76
|
-
|
|
77
|
-
```typescript
|
|
78
|
-
// search-first: Built custom — our wire format uses non-standard
|
|
79
|
-
// ISO-8601 extensions that no date library handles correctly.
|
|
80
|
-
// Evaluated: date-fns (no custom format support), luxon (500KB overhead),
|
|
81
|
-
// dayjs (close but missing timezone edge case).
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Ecosystem-Specific Hints
|
|
85
|
-
|
|
86
|
-
### Node.js / TypeScript
|
|
87
|
-
- Check npm: `https://www.npmjs.com/package/{name}`
|
|
88
|
-
- Bundle size: `https://bundlephobia.com/package/{name}`
|
|
89
|
-
- Check if Node.js built-ins handle it (`node:crypto`, `node:url`, `node:path`)
|
|
90
|
-
|
|
91
|
-
### Python
|
|
92
|
-
- Check PyPI: `https://pypi.org/project/{name}`
|
|
93
|
-
- Check if stdlib handles it (`urllib`, `json`, `pathlib`, `dataclasses`)
|
|
94
|
-
|
|
95
|
-
### Rust
|
|
96
|
-
- Check crates.io: `https://crates.io/crates/{name}`
|
|
97
|
-
- Check if std handles it
|
|
98
|
-
|
|
99
|
-
### Go
|
|
100
|
-
- Check pkg.go.dev
|
|
101
|
-
- Go standard library is extensive — check stdlib first
|