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,247 @@
|
|
|
1
|
+
# Rust Extended Patterns
|
|
2
|
+
|
|
3
|
+
Extended correct patterns for Rust with literature citations. Reference from main SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Typestate Pattern [4][27]
|
|
6
|
+
|
|
7
|
+
Encode valid state transitions in the type system so invalid sequences don't compile.
|
|
8
|
+
Zero-sized phantom types add no runtime cost [4][15].
|
|
9
|
+
|
|
10
|
+
```rust
|
|
11
|
+
// States are zero-sized types — no runtime cost [18]
|
|
12
|
+
struct Draft;
|
|
13
|
+
struct Published;
|
|
14
|
+
struct Archived;
|
|
15
|
+
|
|
16
|
+
struct Article<State> {
|
|
17
|
+
title: String,
|
|
18
|
+
body: String,
|
|
19
|
+
_state: std::marker::PhantomData<State>,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
impl Article<Draft> {
|
|
23
|
+
pub fn new(title: String, body: String) -> Self {
|
|
24
|
+
Article { title, body, _state: std::marker::PhantomData }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
pub fn publish(self) -> Article<Published> {
|
|
28
|
+
Article { title: self.title, body: self.body, _state: std::marker::PhantomData }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
impl Article<Published> {
|
|
33
|
+
pub fn archive(self) -> Article<Archived> {
|
|
34
|
+
Article { title: self.title, body: self.body, _state: std::marker::PhantomData }
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// article.archive() on Draft won't compile — transition enforced at compile time [15][27]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Error Handling Hierarchy [8][9][16]
|
|
44
|
+
|
|
45
|
+
Layer errors from specific (library) to general (application). `thiserror` for precise
|
|
46
|
+
typed errors; `anyhow` for ergonomic propagation in binaries [8][16].
|
|
47
|
+
|
|
48
|
+
```rust
|
|
49
|
+
// Library: precise, typed errors — callers can match on variants [8][9]
|
|
50
|
+
#[derive(thiserror::Error, Debug)]
|
|
51
|
+
pub enum RepoError {
|
|
52
|
+
#[error("entity {entity} with id {id} not found")]
|
|
53
|
+
NotFound { entity: &'static str, id: String },
|
|
54
|
+
#[error("duplicate key: {0}")]
|
|
55
|
+
Duplicate(String),
|
|
56
|
+
#[error("connection failed")]
|
|
57
|
+
Connection(#[from] sqlx::Error),
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Application: ergonomic error propagation with context [9]
|
|
61
|
+
use anyhow::{Context, Result};
|
|
62
|
+
|
|
63
|
+
fn run() -> Result<()> {
|
|
64
|
+
let config = load_config()
|
|
65
|
+
.context("failed to load configuration")?;
|
|
66
|
+
let db = connect_db(&config.database_url)
|
|
67
|
+
.context("failed to connect to database")?;
|
|
68
|
+
serve(db, config.port)
|
|
69
|
+
.context("server exited with error")
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Trait Objects vs Generics [1, Ch.17][20]
|
|
76
|
+
|
|
77
|
+
### Use Generics for Performance (Monomorphization) [18][20]
|
|
78
|
+
|
|
79
|
+
```rust
|
|
80
|
+
// Compiler generates specialized code per type — zero-cost [18]
|
|
81
|
+
fn largest<T: PartialOrd>(list: &[T]) -> Option<&T> {
|
|
82
|
+
list.iter().reduce(|a, b| if a >= b { a } else { b })
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Use Trait Objects for Heterogeneous Collections [1, Ch.17]
|
|
87
|
+
|
|
88
|
+
```rust
|
|
89
|
+
trait Handler: Send + Sync {
|
|
90
|
+
fn handle(&self, request: &Request) -> Response;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
struct Router {
|
|
94
|
+
routes: Vec<Box<dyn Handler>>, // Different concrete types in one Vec [1, Ch.17]
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Decision Guide [5, Item 12]
|
|
99
|
+
|
|
100
|
+
| Criteria | Generics | Trait Objects |
|
|
101
|
+
|----------|----------|--------------|
|
|
102
|
+
| Known types at compile time | Yes | No |
|
|
103
|
+
| Heterogeneous collection | No | Yes |
|
|
104
|
+
| Performance-critical | Yes | Acceptable overhead |
|
|
105
|
+
| Binary size concern | Increases | Minimal |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Smart Pointers [1, Ch.15]
|
|
110
|
+
|
|
111
|
+
### Box — Heap Allocation [1, Ch.15]
|
|
112
|
+
|
|
113
|
+
```rust
|
|
114
|
+
// Recursive types require indirection — Box provides single ownership [1, Ch.15]
|
|
115
|
+
enum List<T> {
|
|
116
|
+
Cons(T, Box<List<T>>),
|
|
117
|
+
Nil,
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Rc/Arc — Shared Ownership [1, Ch.15]
|
|
122
|
+
|
|
123
|
+
```rust
|
|
124
|
+
use std::sync::Arc;
|
|
125
|
+
|
|
126
|
+
// Shared read-only config across threads — Arc enables this safely [29]
|
|
127
|
+
let config = Arc::new(load_config()?);
|
|
128
|
+
let config_clone = Arc::clone(&config);
|
|
129
|
+
tokio::spawn(async move {
|
|
130
|
+
use_config(&config_clone).await;
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### When to Use Each [5, Item 8]
|
|
135
|
+
|
|
136
|
+
| Pointer | Use Case |
|
|
137
|
+
|---------|----------|
|
|
138
|
+
| `Box<T>` | Single owner, heap allocation, recursive types |
|
|
139
|
+
| `Rc<T>` | Multiple owners, single-threaded |
|
|
140
|
+
| `Arc<T>` | Multiple owners, multi-threaded [29] |
|
|
141
|
+
| `Cow<'a, T>` | Clone-on-write, flexible borrowing [2, C-BORROW] |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## From/Into Conversions [2][5, Item 5]
|
|
146
|
+
|
|
147
|
+
Implement `From` to get `Into` for free. Prefer `From` over `Into` in implementations
|
|
148
|
+
(the orphan rule makes `From` more usable) [2].
|
|
149
|
+
|
|
150
|
+
```rust
|
|
151
|
+
// Implement From for automatic Into [2]
|
|
152
|
+
impl From<CreateUserRequest> for User {
|
|
153
|
+
fn from(req: CreateUserRequest) -> Self {
|
|
154
|
+
User {
|
|
155
|
+
id: Uuid::new_v4(),
|
|
156
|
+
name: req.name,
|
|
157
|
+
email: req.email,
|
|
158
|
+
created_at: Utc::now(),
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Callers get Into for free — accept impl Into<User> for flexibility [2, C-BORROW]
|
|
164
|
+
fn save_user(user: impl Into<User>) -> Result<(), DbError> {
|
|
165
|
+
let user: User = user.into();
|
|
166
|
+
Ok(())
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Derive and Trait Best Practices [2][12]
|
|
173
|
+
|
|
174
|
+
```rust
|
|
175
|
+
// Derive the standard set for data types [2]
|
|
176
|
+
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
|
177
|
+
pub struct UserId(String);
|
|
178
|
+
|
|
179
|
+
// Derive serde for serialization boundaries — serde is the ecosystem standard [12]
|
|
180
|
+
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
|
181
|
+
pub struct ApiResponse<T> {
|
|
182
|
+
pub data: T,
|
|
183
|
+
pub metadata: Metadata,
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Trait Implementation Order Convention [2]
|
|
188
|
+
|
|
189
|
+
1. Standard library traits (`Debug`, `Display`, `Clone`, `PartialEq`)
|
|
190
|
+
2. Conversion traits (`From`, `Into`, `TryFrom`)
|
|
191
|
+
3. Iterator traits (`Iterator`, `IntoIterator`)
|
|
192
|
+
4. Serde traits (`Serialize`, `Deserialize`) [12]
|
|
193
|
+
5. Custom traits (domain-specific)
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Async Patterns [13]
|
|
198
|
+
|
|
199
|
+
### spawn_blocking for CPU Work [13]
|
|
200
|
+
|
|
201
|
+
```rust
|
|
202
|
+
// Offload CPU-bound work to dedicated thread pool — never block the async runtime [13]
|
|
203
|
+
async fn process_file(path: &str) -> Result<Report, AppError> {
|
|
204
|
+
let path = path.to_string();
|
|
205
|
+
let report = tokio::task::spawn_blocking(move || {
|
|
206
|
+
parse_large_file(&path) // CPU-bound, safe to block thread
|
|
207
|
+
}).await??;
|
|
208
|
+
Ok(report)
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Channel Patterns [1, Ch.16][13]
|
|
213
|
+
|
|
214
|
+
```rust
|
|
215
|
+
use tokio::sync::mpsc;
|
|
216
|
+
|
|
217
|
+
// Prefer channels over shared state for communication [1, Ch.16]
|
|
218
|
+
let (tx, mut rx) = mpsc::channel::<Work>(100);
|
|
219
|
+
|
|
220
|
+
tokio::spawn(async move {
|
|
221
|
+
while let Some(work) = rx.recv().await {
|
|
222
|
+
process(work).await;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Module Organization [2][10, Ch.3]
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
src/
|
|
233
|
+
├── lib.rs # Public API re-exports only [2]
|
|
234
|
+
├── error.rs # Crate-level error types [8]
|
|
235
|
+
├── domain/
|
|
236
|
+
│ ├── mod.rs # Domain re-exports
|
|
237
|
+
│ ├── user.rs # User entity and logic
|
|
238
|
+
│ └── order.rs # Order entity and logic
|
|
239
|
+
├── repo/
|
|
240
|
+
│ ├── mod.rs # Repository trait definitions
|
|
241
|
+
│ └── postgres.rs # Concrete implementation
|
|
242
|
+
└── api/
|
|
243
|
+
├── mod.rs # Route registration
|
|
244
|
+
└── handlers.rs # HTTP handlers
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Keep `lib.rs` thin — re-export only the public API. Internal modules use `pub(crate)` [2].
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Rust — Sources
|
|
2
|
+
|
|
3
|
+
## Primary References
|
|
4
|
+
|
|
5
|
+
| # | Source | Author(s) | Year | Access | Topics |
|
|
6
|
+
|---|--------|-----------|------|--------|--------|
|
|
7
|
+
| 1 | "The Rust Programming Language" (The Book) | Klabnik & Nichols | 2023 | [Free](https://doc.rust-lang.org/book/) | Ownership, borrowing, lifetimes, traits, error handling, concurrency |
|
|
8
|
+
| 2 | Rust API Guidelines | Rust Team | 2024 | [Free](https://rust-lang.github.io/api-guidelines/) | C-NEWTYPE, C-BUILDER, C-BORROW, C-VALIDATE, naming, docs |
|
|
9
|
+
| 3 | The Rustonomicon | Rust Team | 2024 | [Free](https://doc.rust-lang.org/nomicon/) | Unsafe Rust, memory layout, FFI, aliasing rules |
|
|
10
|
+
| 4 | "Rust Design Patterns" | Rust Community | 2024 | [Free](https://rust-unofficial.github.io/patterns/) | Builder, newtype, RAII, typestate, strategy patterns |
|
|
11
|
+
| 5 | "Effective Rust" | David Drysdale | 2024 | [Free](https://effective-rust.com) | 35 items for idiomatic Rust, API design, error handling |
|
|
12
|
+
| 6 | "RustBelt: Securing the Foundations of the Rust Programming Language" | Jung et al. | 2018 | [Free](https://plv.mpi-sws.org/rustbelt/) | Formal verification of Rust type system and ownership semantics |
|
|
13
|
+
| 7 | Clippy Lint Documentation | Rust Team | 2024 | [Free](https://rust-lang.github.io/rust-clippy/) | 700+ lints, idiomatic Rust enforcement |
|
|
14
|
+
| 8 | "Error Handling in Rust" | Andrew Gallant (BurntSushi) | 2015 | [Free](https://blog.burntsushi.net/rust-error-handling/) | Error handling philosophy, trait objects vs enums, composition |
|
|
15
|
+
| 9 | thiserror / anyhow documentation | David Tolnay | 2024 | [Free](https://docs.rs/thiserror) | Error type design, library vs application error strategy |
|
|
16
|
+
| 10 | "Rust for Rustaceans" | Jon Gjengset | 2021 | Purchase | Advanced patterns, unsafe, macros, API design |
|
|
17
|
+
| 11 | "Stacked Borrows: An Aliasing Model for Rust" | Ralf Jung | 2019 | [Free](https://plv.mpi-sws.org/stacked-borrows/) | Aliasing model formalization, unsafe code correctness |
|
|
18
|
+
| 12 | serde Documentation | David Tolnay | 2024 | [Free](https://serde.rs) | Serialization framework, derive macros, custom implementations |
|
|
19
|
+
| 13 | tokio Documentation | Tokio Team | 2024 | [Free](https://tokio.rs) | Async runtime, task spawning, channels, spawn_blocking |
|
|
20
|
+
| 14 | Rust Reference | Rust Team | 2024 | [Free](https://doc.rust-lang.org/reference/) | Language specification, type system rules, unsafe operations |
|
|
21
|
+
| 15 | "Making Illegal States Unrepresentable" | Yaron Minsky (adapted for Rust) | 2011 | [Free](https://blog.janestreet.com/effective-ml-video/) | Type-driven design, eliminating invalid states at compile time |
|
|
22
|
+
| 16 | "Choosing an Error Library" (talk) | Jane Lusby (yaahc) | 2020 | [Free](https://www.youtube.com/watch?v=rAF8mLI0naQ) | Error handling ecosystem, thiserror vs anyhow vs error-stack |
|
|
23
|
+
| 17 | Rust Performance Book | Nicholas Nethercote | 2024 | [Free](https://nnethercote.github.io/perf-book/) | Optimization patterns, profiling, heap allocation reduction |
|
|
24
|
+
| 18 | "Zero-cost abstractions" | Rust Blog | 2015 | [Free](https://blog.rust-lang.org/2015/05/11/traits.html) | Core design principle: monomorphization, trait dispatch |
|
|
25
|
+
| 19 | Rust Edition Guide | Rust Team | 2024 | [Free](https://doc.rust-lang.org/edition-guide/) | Edition migration patterns, compatibility guarantees |
|
|
26
|
+
| 20 | "Abstraction without overhead: traits in Rust" | Aaron Turon | 2015 | [Free](https://blog.rust-lang.org/2015/05/11/traits.html) | Trait design philosophy, static vs dynamic dispatch |
|
|
27
|
+
|
|
28
|
+
## Standards & Style Guides
|
|
29
|
+
|
|
30
|
+
| # | Source | Org | Access | Topics |
|
|
31
|
+
|---|--------|-----|--------|--------|
|
|
32
|
+
| 21 | Rust API Guidelines — Naming (C-CASE) | Rust Team | [Free](https://rust-lang.github.io/api-guidelines/naming.html) | Casing, affixes, method naming conventions |
|
|
33
|
+
| 22 | Rust API Guidelines — Type Safety (C-NEWTYPE) | Rust Team | [Free](https://rust-lang.github.io/api-guidelines/type-safety.html) | Newtype wrappers, type-safe distinctions |
|
|
34
|
+
| 23 | Rust API Guidelines — Flexibility (C-BORROW) | Rust Team | [Free](https://rust-lang.github.io/api-guidelines/flexibility.html) | Borrow vs own, generic inputs, C-CALLER-CONTROL |
|
|
35
|
+
| 24 | Rust API Guidelines — Builder (C-BUILDER) | Rust Team | [Free](https://rust-lang.github.io/api-guidelines/type-safety.html) | Builder pattern requirements, consuming vs non-consuming |
|
|
36
|
+
| 25 | Rust API Guidelines — Validation (C-VALIDATE) | Rust Team | [Free](https://rust-lang.github.io/api-guidelines/dependability.html) | Constructor validation, error types for invalid input |
|
|
37
|
+
|
|
38
|
+
## Academic & Research
|
|
39
|
+
|
|
40
|
+
| # | Source | Author(s) | Year | Access | Topics |
|
|
41
|
+
|---|--------|-----------|------|--------|--------|
|
|
42
|
+
| 26 | "Ownership Types for Safe Programming" | Clarke et al. | 2013 | Free | Ownership type theory: formal foundation for Rust's model |
|
|
43
|
+
| 27 | "Typestate-Oriented Programming" | Aldrich et al. | 2009 | [Free](https://www.cs.cmu.edu/~aldrich/papers/onward2009-state.pdf) | Typestate pattern — encoding protocol states in types |
|
|
44
|
+
| 28 | "A Formalization of Rust's Type System" | Benitez | 2016 | Free | Formal type-theoretic treatment of lifetimes and borrowing |
|
|
45
|
+
| 29 | "Fearless Concurrency with Rust" | Aaron Turon | 2015 | [Free](https://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html) | Send/Sync traits, data race prevention at compile time |
|
|
46
|
+
| 30 | "Linear Types Can Change the World!" | Wadler | 1990 | Free | Linear type theory — conceptual foundation for Rust's ownership |
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# Rust Violation Examples
|
|
2
|
+
|
|
3
|
+
Extended violation patterns for Rust reviews with literature citations. Reference from main SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Unwrap Abuse [8][7]
|
|
6
|
+
|
|
7
|
+
`.unwrap()` in library or application code panics at runtime and gives callers no way to
|
|
8
|
+
recover. The `?` operator is always available; reach for it first [8].
|
|
9
|
+
|
|
10
|
+
### Unwrap in Library Code [8]
|
|
11
|
+
|
|
12
|
+
```rust
|
|
13
|
+
// VIOLATION: Panics on None — caller has no way to handle failure [8]
|
|
14
|
+
pub fn get_username(users: &HashMap<u64, String>, id: u64) -> &str {
|
|
15
|
+
users.get(&id).unwrap() // Panics if id not found
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// VIOLATION: Unwrap on parse without context [7]
|
|
19
|
+
let port: u16 = std::env::var("PORT").unwrap().parse().unwrap();
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Expect Without Useful Message [8]
|
|
23
|
+
|
|
24
|
+
```rust
|
|
25
|
+
// VIOLATION: Message doesn't help diagnose the problem [8]
|
|
26
|
+
let config = load_config().expect("failed");
|
|
27
|
+
|
|
28
|
+
// CORRECT: Actionable message with remediation hint [8]
|
|
29
|
+
let config = load_config().expect("failed to load config from config.toml — does file exist?");
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Unnecessary Cloning [2, C-BORROW][17]
|
|
35
|
+
|
|
36
|
+
Cloning to satisfy the borrow checker signals a design issue. Restructure ownership or
|
|
37
|
+
accept slices/borrows. Clones in hot loops cause heap allocation per iteration [17].
|
|
38
|
+
|
|
39
|
+
### Clone to Satisfy Borrow Checker [2, C-BORROW]
|
|
40
|
+
|
|
41
|
+
```rust
|
|
42
|
+
// VIOLATION: Cloning entire Vec to work around borrow issues [2, C-BORROW]
|
|
43
|
+
fn process_items(items: &Vec<Item>) {
|
|
44
|
+
let cloned = items.clone(); // Entire Vec cloned — unnecessary allocation
|
|
45
|
+
for item in &cloned {
|
|
46
|
+
println!("{}", item.name);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// CORRECT: Accept &[Item] and just borrow [2, C-BORROW]
|
|
51
|
+
fn process_items(items: &[Item]) {
|
|
52
|
+
for item in items {
|
|
53
|
+
println!("{}", item.name);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Clone in Hot Loop [17]
|
|
59
|
+
|
|
60
|
+
```rust
|
|
61
|
+
// VIOLATION: String allocation on every iteration — performance regression [17]
|
|
62
|
+
for record in &records {
|
|
63
|
+
let key = record.id.clone();
|
|
64
|
+
map.insert(key, record);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// CORRECT: Borrow or use references — zero allocation [2, C-BORROW]
|
|
68
|
+
for record in &records {
|
|
69
|
+
map.insert(&record.id, record);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Stringly-Typed APIs [2, C-NEWTYPE][15]
|
|
76
|
+
|
|
77
|
+
Using `String` or `&str` where a typed enum or newtype belongs allows typos to compile
|
|
78
|
+
and failures to occur at runtime instead of compile time [15].
|
|
79
|
+
|
|
80
|
+
### String Where Enum Belongs [2, C-NEWTYPE]
|
|
81
|
+
|
|
82
|
+
```rust
|
|
83
|
+
// VIOLATION: Any typo compiles and fails at runtime [15]
|
|
84
|
+
fn set_status(status: &str) {
|
|
85
|
+
match status {
|
|
86
|
+
"active" => { /* ... */ }
|
|
87
|
+
"inactive" => { /* ... */ }
|
|
88
|
+
_ => panic!("unknown status"), // Runtime failure — compiler can't help
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// CORRECT: Compiler enforces valid values — exhaustive match [2, C-NEWTYPE][15]
|
|
93
|
+
enum Status { Active, Inactive }
|
|
94
|
+
|
|
95
|
+
fn set_status(status: Status) {
|
|
96
|
+
match status {
|
|
97
|
+
Status::Active => { /* ... */ }
|
|
98
|
+
Status::Inactive => { /* ... */ }
|
|
99
|
+
} // Exhaustive — no default needed
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### String IDs Instead of Newtypes [2, C-NEWTYPE]
|
|
104
|
+
|
|
105
|
+
```rust
|
|
106
|
+
// VIOLATION: OrderId passed where UserId expected — no compile error [15]
|
|
107
|
+
fn charge_user(user_id: &str, order_id: &str) { /* ... */ }
|
|
108
|
+
charge_user(order_id, user_id); // Silent logic bug
|
|
109
|
+
|
|
110
|
+
// CORRECT: Newtype makes the swap a compile error [2, C-NEWTYPE]
|
|
111
|
+
struct UserId(String);
|
|
112
|
+
struct OrderId(String);
|
|
113
|
+
fn charge_user(user_id: &UserId, order_id: &OrderId) { /* ... */ }
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Unsafe Without Justification [3][11]
|
|
119
|
+
|
|
120
|
+
Every `unsafe` block must have a `// SAFETY:` comment explaining the invariants that
|
|
121
|
+
make the operation sound. The Stacked Borrows model formalizes what "sound" means [11].
|
|
122
|
+
|
|
123
|
+
### Bare Unsafe Block [3][11]
|
|
124
|
+
|
|
125
|
+
```rust
|
|
126
|
+
// VIOLATION: No safety comment explaining invariants [3][11]
|
|
127
|
+
unsafe {
|
|
128
|
+
let ptr = data.as_ptr();
|
|
129
|
+
std::ptr::copy_nonoverlapping(ptr, dest, len);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// CORRECT: Document why this is safe — sufficient for Stacked Borrows soundness [3][11]
|
|
133
|
+
// SAFETY: `data` is guaranteed to be valid for `len` bytes because
|
|
134
|
+
// it was allocated by `Vec::with_capacity(len)` and filled by `read_exact`.
|
|
135
|
+
// `dest` is a valid pointer from `alloc::alloc(layout)` with matching size.
|
|
136
|
+
// No aliasing exists: `data` and `dest` are disjoint allocations.
|
|
137
|
+
unsafe {
|
|
138
|
+
std::ptr::copy_nonoverlapping(data.as_ptr(), dest, len);
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Unnecessary Unsafe [7]
|
|
143
|
+
|
|
144
|
+
```rust
|
|
145
|
+
// VIOLATION: Using unsafe when safe alternative exists [7]
|
|
146
|
+
unsafe fn get_element(slice: &[u8], index: usize) -> u8 {
|
|
147
|
+
*slice.get_unchecked(index)
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// CORRECT: Safe indexing with bounds check [7]
|
|
151
|
+
fn get_element(slice: &[u8], index: usize) -> Option<u8> {
|
|
152
|
+
slice.get(index).copied()
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Ignoring Results [8][7]
|
|
159
|
+
|
|
160
|
+
Discarding `Result` values silently swallows errors. Clippy lint `must_use` catches this;
|
|
161
|
+
`let _ =` is always a red flag [7][8].
|
|
162
|
+
|
|
163
|
+
### Discarding Write Errors [8]
|
|
164
|
+
|
|
165
|
+
```rust
|
|
166
|
+
// VIOLATION: Write failure silently ignored — data loss possible [8]
|
|
167
|
+
let _ = file.write_all(data);
|
|
168
|
+
let _ = file.flush();
|
|
169
|
+
|
|
170
|
+
// CORRECT: Propagate errors with ? [1, Ch.9]
|
|
171
|
+
file.write_all(data)?;
|
|
172
|
+
file.flush()?;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Ignoring Lock Poisoning [1, Ch.16]
|
|
176
|
+
|
|
177
|
+
```rust
|
|
178
|
+
// VIOLATION: Silently ignoring poisoned mutex — undefined program state [1, Ch.16]
|
|
179
|
+
let guard = mutex.lock().unwrap_or_else(|e| e.into_inner());
|
|
180
|
+
|
|
181
|
+
// CORRECT: Handle or propagate the poison explicitly [1, Ch.16]
|
|
182
|
+
let guard = mutex.lock().map_err(|_| AppError::LockPoisoned)?;
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Concurrency Violations [1, Ch.16][29]
|
|
188
|
+
|
|
189
|
+
Rust's `Send` and `Sync` traits prevent data races at compile time. Violations require
|
|
190
|
+
`unsafe` to bypass these guarantees [6][29].
|
|
191
|
+
|
|
192
|
+
### Shared Mutable State Without Synchronization [1, Ch.16]
|
|
193
|
+
|
|
194
|
+
```rust
|
|
195
|
+
// VIOLATION: Data race — undefined behavior under concurrency [1, Ch.16]
|
|
196
|
+
static mut COUNTER: u64 = 0;
|
|
197
|
+
|
|
198
|
+
fn increment() {
|
|
199
|
+
unsafe { COUNTER += 1; } // UB — compiler/CPU may reorder or tear [6]
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// CORRECT: Use atomics for simple counters [29]
|
|
203
|
+
use std::sync::atomic::{AtomicU64, Ordering};
|
|
204
|
+
static COUNTER: AtomicU64 = AtomicU64::new(0);
|
|
205
|
+
|
|
206
|
+
fn increment() {
|
|
207
|
+
COUNTER.fetch_add(1, Ordering::Relaxed);
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Blocking in Async Context [13]
|
|
212
|
+
|
|
213
|
+
```rust
|
|
214
|
+
// VIOLATION: Blocks the async runtime thread — starves other tasks [13]
|
|
215
|
+
async fn read_file(path: &str) -> Result<String, io::Error> {
|
|
216
|
+
std::fs::read_to_string(path) // Blocking syscall in async fn
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// CORRECT: Use async I/O or spawn_blocking for CPU/blocking work [13]
|
|
220
|
+
async fn read_file(path: &str) -> Result<String, io::Error> {
|
|
221
|
+
tokio::fs::read_to_string(path).await
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## API Design Violations [2][5]
|
|
228
|
+
|
|
229
|
+
### Accepting Owned String When Borrow Suffices [2, C-BORROW]
|
|
230
|
+
|
|
231
|
+
```rust
|
|
232
|
+
// VIOLATION: Forces allocation at every call site [2, C-BORROW]
|
|
233
|
+
fn print_greeting(name: String) {
|
|
234
|
+
println!("Hello, {}", name);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// CORRECT: Accept &str — callers keep ownership; String derefs to &str [2, C-BORROW]
|
|
238
|
+
fn print_greeting(name: &str) {
|
|
239
|
+
println!("Hello, {}", name);
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Missing #[must_use] on Result [7][2]
|
|
244
|
+
|
|
245
|
+
```rust
|
|
246
|
+
// VIOLATION: Result silently discarded — caller gets no warning [7]
|
|
247
|
+
pub fn flush_buffer(&mut self) -> Result<(), IoError> { /* ... */ }
|
|
248
|
+
|
|
249
|
+
// CORRECT: #[must_use] forces callers to handle or explicitly discard [7]
|
|
250
|
+
#[must_use]
|
|
251
|
+
pub fn flush_buffer(&mut self) -> Result<(), IoError> { /* ... */ }
|
|
252
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security
|
|
3
|
+
description: This skill should be used when reviewing code for injection flaws, auth bypasses, or hardcoded secrets.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Security Patterns
|
|
9
|
+
|
|
10
|
+
Domain expertise for security vulnerability detection. Use alongside `devflow:review-methodology` for complete security reviews.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **ASSUME ALL INPUT IS MALICIOUS**
|
|
15
|
+
>
|
|
16
|
+
> Every user input, URL parameter, header, and cookie is an attack vector. Use parameterized
|
|
17
|
+
> queries always. Escape output always. Validate schemas always. "This field is internal"
|
|
18
|
+
> is not a defense. Defense in depth, not wishful thinking. [1][6]
|
|
19
|
+
|
|
20
|
+
## Vulnerability Categories
|
|
21
|
+
|
|
22
|
+
### 1. Input Validation & Injection [1][6]
|
|
23
|
+
|
|
24
|
+
**SQL Injection** — parameterize, never interpolate:
|
|
25
|
+
```typescript
|
|
26
|
+
// VULNERABLE: const query = `SELECT * FROM users WHERE email = '${email}'`;
|
|
27
|
+
await db.execute("SELECT * FROM users WHERE email = ?", [email]);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**XSS** — text content, never innerHTML:
|
|
31
|
+
```typescript
|
|
32
|
+
element.textContent = userInput; // not: element.innerHTML = userInput
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
> `references/patterns.md` — NoSQL, command injection, path traversal, LDAP injection.
|
|
36
|
+
|
|
37
|
+
### 2. Authentication & Authorization [1][2][7]
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// VULNERABLE: no auth middleware
|
|
41
|
+
app.delete('/api/users/:id', async (req, res) => { await deleteUser(req.params.id); });
|
|
42
|
+
|
|
43
|
+
// SECURE: layered auth
|
|
44
|
+
app.delete('/api/users/:id', requireAuth, requireRole('admin'), handler);
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
NIST 800-63 minimum: 15-char passphrase or 12-char complex, phishing-resistant MFA [7].
|
|
48
|
+
JWT: pin algorithm explicitly, set `expiresIn`, store refresh tokens server-side [17].
|
|
49
|
+
|
|
50
|
+
### 3. Cryptography & Secrets [5][24][25]
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
const API_KEY = process.env.API_KEY; // not: hardcoded literal
|
|
54
|
+
const token = crypto.randomBytes(32).toString('hex'); // not: Math.random()
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Password hashing: Argon2id (preferred) or bcrypt cost ≥12 [24]. Encrypt with AES-256-GCM
|
|
58
|
+
(authenticated). Compare secrets with `crypto.timingSafeEqual`, never `===` [25].
|
|
59
|
+
|
|
60
|
+
**Reporting a found secret**: cite `file:line` and the type slug — never quote the full value.
|
|
61
|
+
Use `{first ≤4 chars}…[REDACTED:{type}]` (e.g. `AKID…[REDACTED:aws-key]`).
|
|
62
|
+
A found live credential is ALREADY COMPROMISED — the remediation is rotation
|
|
63
|
+
(revoke and regenerate the exposed credential) plus moving to env vars or a secret store,
|
|
64
|
+
not just removal from code.
|
|
65
|
+
|
|
66
|
+
### 4. Configuration & Headers [10][15][16]
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
app.use(helmet());
|
|
70
|
+
res.setHeader('Content-Security-Policy', "default-src 'self'"); // [15]
|
|
71
|
+
res.setHeader('Strict-Transport-Security', 'max-age=31536000'); // [10]
|
|
72
|
+
app.use(cors({ origin: ['https://myapp.com'], credentials: true }));
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
SameSite=Strict cookies prevent CSRF [16]. SRI hashes prevent CDN tampering [18].
|
|
76
|
+
|
|
77
|
+
### 5. Business Logic & API Security [1][3][11]
|
|
78
|
+
|
|
79
|
+
Race conditions: wrap check-then-act in database transactions with row locks.
|
|
80
|
+
Mass assignment: explicitly allowlist fields — never `User.create(req.body)` [11].
|
|
81
|
+
OWASP API Top 10 [11]: Broken Object Auth (API1), Excessive Data Exposure (API3), SSRF (API7).
|
|
82
|
+
|
|
83
|
+
### 6. Supply Chain [12][13]
|
|
84
|
+
|
|
85
|
+
Pin dependencies to exact versions. Require SRI for CDN assets [18]. Use
|
|
86
|
+
Sigstore/SLSA provenance in CI/CD to verify artifact integrity [12][13].
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Extended References
|
|
91
|
+
|
|
92
|
+
| Reference | Content |
|
|
93
|
+
|-----------|---------|
|
|
94
|
+
| `references/sources.md` | Full bibliography (25 sources) |
|
|
95
|
+
| `references/patterns.md` | Correct patterns with citations |
|
|
96
|
+
| `references/violations.md` | Violation examples with citations |
|
|
97
|
+
| `references/detection.md` | Grep patterns for automated scanning |
|
|
98
|
+
|
|
99
|
+
## Severity Guidelines
|
|
100
|
+
|
|
101
|
+
| Level | Criteria | Examples |
|
|
102
|
+
|-------|----------|----------|
|
|
103
|
+
| **CRITICAL** | Immediate exploitation | SQL injection in auth, RCE, hardcoded admin creds |
|
|
104
|
+
| **HIGH** | Significant risk | XSS [1], broken access control, weak crypto, CSRF [16] |
|
|
105
|
+
| **MEDIUM** | Moderate with conditions | Missing headers [10], permissive CORS, missing rate limits [11] |
|
|
106
|
+
| **LOW** | Minor improvement | Outdated deps (no CVE), suboptimal CSP [15] |
|
|
107
|
+
|
|
108
|
+
## OWASP Top 10 Reference [1]
|
|
109
|
+
|
|
110
|
+
| ID | Category | Examples |
|
|
111
|
+
|----|----------|----------|
|
|
112
|
+
| A01 | Broken Access Control | Missing auth, IDOR, privilege escalation |
|
|
113
|
+
| A02 | Cryptographic Failures | Weak hashing [24], hardcoded secrets |
|
|
114
|
+
| A03 | Injection | SQL, NoSQL, command, XSS [6] |
|
|
115
|
+
| A04 | Insecure Design | Missing rate limits, mass assignment [11] |
|
|
116
|
+
| A05 | Security Misconfiguration | Debug enabled, missing headers [10][15] |
|
|
117
|
+
| A06 | Vulnerable Components | Outdated deps, supply chain risks [12] |
|
|
118
|
+
| A07 | Auth Failures | Weak passwords [7], session issues, JWT misuse [17] |
|
|
119
|
+
| A08 | Data Integrity Failures | Untrusted deserialization, no SRI [18] |
|
|
120
|
+
| A09 | Logging Failures | Missing security event logs [8] |
|
|
121
|
+
| A10 | SSRF | Unvalidated URLs in server requests [11] |
|