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,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: regression
|
|
3
|
+
description: This skill should be used when reviewing changes that may remove exports, change signatures, or alter behavior.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Regression Patterns
|
|
9
|
+
|
|
10
|
+
Domain expertise for detecting functionality regressions and validating implementation intent. Use alongside `devflow:review-methodology` for complete regression reviews.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **WHAT WORKED BEFORE MUST WORK AFTER**
|
|
15
|
+
>
|
|
16
|
+
> Every change carries regression risk. Removed exports break consumers. Changed signatures
|
|
17
|
+
> break callers. Modified behavior breaks expectations. The burden of proof is on the change:
|
|
18
|
+
> demonstrate no regression, or document the intentional breaking change.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Regression Categories
|
|
23
|
+
|
|
24
|
+
### 1. Lost Functionality
|
|
25
|
+
|
|
26
|
+
Features, exports, or capabilities that existed before but are missing after.
|
|
27
|
+
|
|
28
|
+
| Type | Risk | Detection |
|
|
29
|
+
|------|------|-----------|
|
|
30
|
+
| Removed exports | Breaks consumers | Compare `export` statements |
|
|
31
|
+
| Removed CLI options | Breaks scripts | Compare option definitions |
|
|
32
|
+
| Removed API endpoints | Breaks clients | Compare route handlers |
|
|
33
|
+
| Removed event handlers | Breaks integrations | Compare `.on()` calls |
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// VIOLATION: Export removed without deprecation
|
|
37
|
+
// BEFORE: export function deleteUser(id: string): void { }
|
|
38
|
+
// AFTER: (removed) - consumers will break!
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Broken Behavior
|
|
42
|
+
|
|
43
|
+
Code still exists but behaves differently in breaking ways.
|
|
44
|
+
|
|
45
|
+
| Type | Risk | Detection |
|
|
46
|
+
|------|------|-----------|
|
|
47
|
+
| Changed return types | Null dereference | Compare function signatures |
|
|
48
|
+
| Changed defaults | Unexpected behavior | Compare default values |
|
|
49
|
+
| Removed side effects | Missing events/logs | Compare emit/log calls |
|
|
50
|
+
| Changed error handling | Uncaught errors | Compare throw/return patterns |
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// VIOLATION: Return type widened without migration
|
|
54
|
+
// BEFORE: function getUser(id: string): User { }
|
|
55
|
+
// AFTER: function getUser(id: string): User | null { }
|
|
56
|
+
// Callers assuming non-null will break!
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 3. Intent vs Reality Mismatch
|
|
60
|
+
|
|
61
|
+
Commit message promises one thing, code does another.
|
|
62
|
+
|
|
63
|
+
| Type | Risk | Detection |
|
|
64
|
+
|------|------|-----------|
|
|
65
|
+
| Commit says X, code does Y | False confidence | Compare message to diff |
|
|
66
|
+
| Partial implementation | Incomplete feature | Check all stated changes |
|
|
67
|
+
| Missing edge cases | Fragile code | Verify claimed coverage |
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
// VIOLATION: Commit says "Add retry logic" but no retry implemented
|
|
71
|
+
async function fetchData(): Promise<Data> {
|
|
72
|
+
return api.get('/data'); // No retry!
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 4. Incomplete Migrations
|
|
77
|
+
|
|
78
|
+
Old API deprecated but not all consumers updated.
|
|
79
|
+
|
|
80
|
+
| Type | Risk | Detection |
|
|
81
|
+
|------|------|-----------|
|
|
82
|
+
| Some call sites updated | Mixed behavior | Search for old API usage |
|
|
83
|
+
| Consumers not updated | Type errors | Check all importers |
|
|
84
|
+
| Tests not updated | False passes | Compare test coverage |
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
// VIOLATION: Migration incomplete
|
|
88
|
+
// file1.ts: newFunction({ a, b }) // Updated
|
|
89
|
+
// file2.ts: oldFunction(a, b) // NOT updated!
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Quick Detection Commands
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Find removed exports
|
|
98
|
+
git diff main...HEAD | grep "^-export"
|
|
99
|
+
|
|
100
|
+
# Find removed files
|
|
101
|
+
git diff main...HEAD --name-status | grep "^D"
|
|
102
|
+
|
|
103
|
+
# Find incomplete migration (old API still used)
|
|
104
|
+
grep -r "oldFunction" src/ --include="*.ts"
|
|
105
|
+
|
|
106
|
+
# Find new TODOs (incomplete work)
|
|
107
|
+
git diff main...HEAD | grep "^\+.*TODO"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Extended References
|
|
113
|
+
|
|
114
|
+
For extended examples and detection techniques:
|
|
115
|
+
|
|
116
|
+
- **[violations.md](references/violations.md)** - Detailed violation examples for each category
|
|
117
|
+
- **[patterns.md](references/patterns.md)** - Correct patterns for regression-safe changes
|
|
118
|
+
- **[detection.md](references/detection.md)** - Comprehensive bash commands for detection
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Severity Guidelines
|
|
123
|
+
|
|
124
|
+
| Severity | Criteria | Examples |
|
|
125
|
+
|----------|----------|----------|
|
|
126
|
+
| **CRITICAL** | Breaking changes without migration | Public exports removed, return types incompatible, required params added |
|
|
127
|
+
| **HIGH** | Significant behavior changes | Defaults changed, error handling changed, side effects removed |
|
|
128
|
+
| **MEDIUM** | Moderate regression risk | Internal APIs changed, logging reduced, performance changed |
|
|
129
|
+
| **LOW** | Minor concerns | Documentation drift, internal refactoring |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Regression Checklist
|
|
134
|
+
|
|
135
|
+
Before approving changes:
|
|
136
|
+
|
|
137
|
+
- [ ] No exports removed without deprecation
|
|
138
|
+
- [ ] Return types backward compatible
|
|
139
|
+
- [ ] Default values unchanged (or documented)
|
|
140
|
+
- [ ] Side effects preserved (events, logging)
|
|
141
|
+
- [ ] All consumers of changed code updated
|
|
142
|
+
- [ ] Migration complete across codebase
|
|
143
|
+
- [ ] CLI options preserved or deprecated
|
|
144
|
+
- [ ] API endpoints preserved or versioned
|
|
145
|
+
- [ ] Commit message matches implementation
|
|
146
|
+
- [ ] Breaking changes documented in CHANGELOG
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reliability
|
|
3
|
+
description: This skill should be used when reviewing code for unbounded loops, missing assertions, excessive allocation, or deep indirection.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Reliability Patterns
|
|
9
|
+
|
|
10
|
+
Domain expertise for runtime reliability and defensive bounds analysis. Use alongside `devflow:review-methodology` for complete reliability reviews.
|
|
11
|
+
|
|
12
|
+
## Iron Law
|
|
13
|
+
|
|
14
|
+
> **EVERY OPERATION MUST TERMINATE AND EVERY RESOURCE MUST BE BOUNDED**
|
|
15
|
+
>
|
|
16
|
+
> Adapted from NASA/JPL's "Power of Ten" rules for safety-critical code [1]: every loop must
|
|
17
|
+
> have a fixed upper bound, every resource must have a known lifetime, and every assumption
|
|
18
|
+
> must be checked by an assertion. Unbounded operations are latent outages.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Reliability Categories
|
|
23
|
+
|
|
24
|
+
### 1. Bounded Iteration [1]
|
|
25
|
+
|
|
26
|
+
All loops, retries, and pagination must terminate after a known maximum.
|
|
27
|
+
|
|
28
|
+
**Violation**: Unbounded retry loop
|
|
29
|
+
```typescript
|
|
30
|
+
while (true) {
|
|
31
|
+
const res = await fetch(url);
|
|
32
|
+
if (res.ok) break;
|
|
33
|
+
await sleep(1000);
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Solution**: Fixed upper bound with explicit failure
|
|
38
|
+
```typescript
|
|
39
|
+
const MAX_RETRIES = 5;
|
|
40
|
+
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|
|
41
|
+
const res = await fetch(url);
|
|
42
|
+
if (res.ok) return res;
|
|
43
|
+
await sleep(1000 * 2 ** attempt);
|
|
44
|
+
}
|
|
45
|
+
throw new Error(`Failed after ${MAX_RETRIES} attempts`);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. Assertion Density [1]
|
|
49
|
+
|
|
50
|
+
Assert preconditions and invariants in production code, not just tests.
|
|
51
|
+
|
|
52
|
+
**Violation**: Silent assumption
|
|
53
|
+
```typescript
|
|
54
|
+
function processPayment(order: Order) {
|
|
55
|
+
const total = order.items.reduce((sum, i) => sum + i.price, 0);
|
|
56
|
+
chargeCard(order.paymentMethod, total);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Solution**: Explicit precondition checks
|
|
61
|
+
```typescript
|
|
62
|
+
function processPayment(order: Order) {
|
|
63
|
+
assert(order.items.length > 0, 'Cannot process empty order');
|
|
64
|
+
assert(order.paymentMethod != null, 'Missing payment method');
|
|
65
|
+
const total = order.items.reduce((sum, i) => sum + i.price, 0);
|
|
66
|
+
assert(total > 0, 'Order total must be positive');
|
|
67
|
+
chargeCard(order.paymentMethod, total);
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 3. Allocation Discipline [1]
|
|
72
|
+
|
|
73
|
+
Minimize allocation in hot paths — prefer pre-sized collections, pools, or arenas.
|
|
74
|
+
|
|
75
|
+
**Violation**: Allocation in tight loop
|
|
76
|
+
```go
|
|
77
|
+
func processEvents(events []Event) []Result {
|
|
78
|
+
var results []Result
|
|
79
|
+
for _, e := range events {
|
|
80
|
+
buf := make([]byte, 4096) // alloc per iteration
|
|
81
|
+
results = append(results, process(e, buf))
|
|
82
|
+
}
|
|
83
|
+
return results
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Solution**: Pre-allocate outside loop
|
|
88
|
+
```go
|
|
89
|
+
func processEvents(events []Event) []Result {
|
|
90
|
+
results := make([]Result, 0, len(events))
|
|
91
|
+
buf := make([]byte, 4096) // single allocation
|
|
92
|
+
for _, e := range events {
|
|
93
|
+
results = append(results, process(e, buf))
|
|
94
|
+
}
|
|
95
|
+
return results
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 4. Indirection Limits [1]
|
|
100
|
+
|
|
101
|
+
Restrict pointer depth — no pointer-to-pointer, `Box<Box<T>>`, or triple-nested references.
|
|
102
|
+
|
|
103
|
+
**Violation**: Excessive indirection
|
|
104
|
+
```rust
|
|
105
|
+
fn update(data: &mut Box<Box<Vec<Item>>>) {
|
|
106
|
+
(***data).push(item);
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Solution**: Flatten indirection
|
|
111
|
+
```rust
|
|
112
|
+
fn update(data: &mut Vec<Item>) {
|
|
113
|
+
data.push(item);
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 5. Metaprogramming Restraint [1]
|
|
118
|
+
|
|
119
|
+
Restrict to simple constructs — no reflection-heavy magic, multi-level macros, or recursive generics.
|
|
120
|
+
|
|
121
|
+
**Violation**: Recursive generic type
|
|
122
|
+
```typescript
|
|
123
|
+
type DeepPartial<T> = T extends object
|
|
124
|
+
? { [K in keyof T]?: DeepPartial<T[K]> }
|
|
125
|
+
: T;
|
|
126
|
+
type Config = DeepPartial<DeepPartial<AppConfig>>; // unbounded recursion risk
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Solution**: Bounded, explicit type
|
|
130
|
+
```typescript
|
|
131
|
+
type ShallowPartial<T> = { [K in keyof T]?: T[K] };
|
|
132
|
+
type ConfigOverrides = Pick<AppConfig, 'timeout' | 'retries'>;
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Extended References
|
|
138
|
+
|
|
139
|
+
| Reference | Content |
|
|
140
|
+
|-----------|---------|
|
|
141
|
+
| `references/sources.md` | Full bibliography |
|
|
142
|
+
| `references/patterns.md` | Correct patterns with citations |
|
|
143
|
+
| `references/violations.md` | Violation examples with citations |
|
|
144
|
+
| `references/detection.md` | Grep patterns for automated scanning |
|
|
145
|
+
|
|
146
|
+
## Severity Guidelines
|
|
147
|
+
|
|
148
|
+
| Level | Criteria | Examples |
|
|
149
|
+
|-------|----------|----------|
|
|
150
|
+
| **CRITICAL** | Unbounded operation on external I/O | Infinite retry on network call, allocation in tight loop processing unbounded input |
|
|
151
|
+
| **HIGH** | Implicit-only bounds, zero assertions in critical path | Retry with no max, validation function with no precondition checks |
|
|
152
|
+
| **MEDIUM** | Missing bound on bounded data, low assertion density | Pagination without page limit on known-finite dataset, sparse assertions |
|
|
153
|
+
| **LOW** | Style-level reliability improvement | Unnecessary indirection, overly complex generic type |
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Reliability — Detection Patterns
|
|
2
|
+
|
|
3
|
+
Grep commands for automated detection of reliability violations.
|
|
4
|
+
|
|
5
|
+
## Unbounded Loops
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# while(true) / for(;;) patterns
|
|
9
|
+
grep -rn 'while\s*(true)\|while\s*(1)\|for\s*(;;)' --include="*.ts" --include="*.tsx" --include="*.js"
|
|
10
|
+
grep -rn 'while True' --include="*.py"
|
|
11
|
+
grep -rn 'for\s*{' --include="*.go" | grep -v 'range\|select\|ctx'
|
|
12
|
+
grep -rn 'while\s*(true)\|for\s*(;;)' --include="*.java"
|
|
13
|
+
grep -rn 'loop\s*{' --include="*.rs"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Missing Retry Bounds
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Retry/attempt keywords without max/limit/bound nearby
|
|
20
|
+
grep -rn 'retry\|retries\|attempt' --include="*.ts" --include="*.tsx" | grep -v 'max\|limit\|bound\|MAX\|LIMIT'
|
|
21
|
+
grep -rn 'retry\|retries\|attempt' --include="*.py" | grep -v 'max\|limit\|bound'
|
|
22
|
+
grep -rn 'retry\|retries\|Retry' --include="*.go" | grep -v 'Max\|max\|Limit\|limit'
|
|
23
|
+
grep -rn 'retry\|retries\|attempt' --include="*.java" | grep -v 'max\|limit\|MAX'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Excessive Indirection
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Pointer-to-pointer (Go)
|
|
30
|
+
grep -rn '\*\*[A-Z]' --include="*.go"
|
|
31
|
+
# Double-boxed types (Rust)
|
|
32
|
+
grep -rn 'Box<Box\|Rc<Rc\|Arc<Arc\|&&mut\|&mut &mut' --include="*.rs"
|
|
33
|
+
# Triple-nested Map/Record (TypeScript)
|
|
34
|
+
grep -rn 'Map<.*Map<.*Map<\|Record<.*Record<.*Record<' --include="*.ts" --include="*.tsx"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Missing Assertions
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Functions with zero assert/invariant checks (heuristic: find functions > 10 lines)
|
|
41
|
+
grep -rn 'function\|fn\s\|def\s\|public\s.*(' --include="*.ts" --include="*.go" --include="*.py" --include="*.java" --include="*.rs" | head -50
|
|
42
|
+
# Compare against assertion density
|
|
43
|
+
grep -rn 'assert\|invariant\|precondition\|require(' --include="*.ts" --include="*.go" --include="*.py" --include="*.java" --include="*.rs" | wc -l
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Allocation in Hot Paths
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# new/make inside for loops (Go)
|
|
50
|
+
grep -rn 'make(\|new(' --include="*.go" | grep -B5 'for\s\|range'
|
|
51
|
+
# new allocation in loops (Java)
|
|
52
|
+
grep -rn 'new\s' --include="*.java" | grep -B5 'for\s*(\|while\s*('
|
|
53
|
+
# String concatenation in loops (Python)
|
|
54
|
+
grep -rn '+=' --include="*.py" | grep -B3 'for\s\|while\s'
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Reflection and Dynamic Dispatch
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Java reflection
|
|
61
|
+
grep -rn 'getClass()\|getMethod\|getDeclaredField\|Class.forName\|\.invoke(' --include="*.java"
|
|
62
|
+
# Python dynamic attribute access
|
|
63
|
+
grep -rn 'getattr\|setattr\|__getattr__\|eval(\|exec(' --include="*.py"
|
|
64
|
+
# TypeScript runtime type checking (often unnecessary)
|
|
65
|
+
grep -rn 'eval(\|Function(' --include="*.ts" --include="*.tsx"
|
|
66
|
+
```
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Reliability — Correct Patterns
|
|
2
|
+
|
|
3
|
+
## 1. Bounded Iteration Patterns [1]
|
|
4
|
+
|
|
5
|
+
### Bounded pagination
|
|
6
|
+
```typescript
|
|
7
|
+
const MAX_PAGES = 100;
|
|
8
|
+
async function fetchAllPages(url: string) {
|
|
9
|
+
const results = [];
|
|
10
|
+
for (let page = 1; page <= MAX_PAGES; page++) {
|
|
11
|
+
const data = await fetch(`${url}?page=${page}`);
|
|
12
|
+
results.push(...data.items);
|
|
13
|
+
if (!data.nextPage) break;
|
|
14
|
+
}
|
|
15
|
+
return results;
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Bounded event consumer with context cancellation [2]
|
|
20
|
+
```go
|
|
21
|
+
func consume(ctx context.Context, ch <-chan Event) error {
|
|
22
|
+
for {
|
|
23
|
+
select {
|
|
24
|
+
case <-ctx.Done():
|
|
25
|
+
return ctx.Err()
|
|
26
|
+
case event, ok := <-ch:
|
|
27
|
+
if !ok { return nil }
|
|
28
|
+
process(event)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Retry with exponential backoff and cap [6]
|
|
35
|
+
```python
|
|
36
|
+
MAX_RETRIES = 5
|
|
37
|
+
|
|
38
|
+
def fetch_with_retry(url: str) -> Response:
|
|
39
|
+
for attempt in range(MAX_RETRIES):
|
|
40
|
+
try:
|
|
41
|
+
return requests.get(url, timeout=10)
|
|
42
|
+
except ConnectionError:
|
|
43
|
+
if attempt == MAX_RETRIES - 1:
|
|
44
|
+
raise
|
|
45
|
+
time.sleep(min(2 ** attempt, 30))
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 2. Assertion Density Patterns [1]
|
|
49
|
+
|
|
50
|
+
### Defensive validation with assertions
|
|
51
|
+
```typescript
|
|
52
|
+
function validateConfig(config: Config): Config {
|
|
53
|
+
assert(config != null, 'Config must not be null');
|
|
54
|
+
assert(config.timeout == null || config.timeout > 0, 'Timeout must be positive');
|
|
55
|
+
assert(config.retries == null || config.retries >= 0, 'Retries must be non-negative');
|
|
56
|
+
const timeout = config.timeout ?? 5000;
|
|
57
|
+
const retries = config.retries ?? 3;
|
|
58
|
+
return { ...config, timeout, retries };
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Post-condition assertions [1]
|
|
63
|
+
```go
|
|
64
|
+
func (q *Queue) Dequeue() (Item, error) {
|
|
65
|
+
if len(q.items) == 0 {
|
|
66
|
+
return Item{}, errors.New("dequeue from empty queue")
|
|
67
|
+
}
|
|
68
|
+
item := q.items[0]
|
|
69
|
+
q.items = q.items[1:]
|
|
70
|
+
assert(q.size > 0, "size invariant violated")
|
|
71
|
+
q.size--
|
|
72
|
+
return item, nil
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 3. Allocation Discipline Patterns [1]
|
|
77
|
+
|
|
78
|
+
### Pooled resources [6]
|
|
79
|
+
```java
|
|
80
|
+
private static final ObjectPool<JsonParser> PARSER_POOL =
|
|
81
|
+
ObjectPool.create(JsonParser::new, 16);
|
|
82
|
+
|
|
83
|
+
public void handleRequest(Request req) {
|
|
84
|
+
JsonParser parser = PARSER_POOL.borrow();
|
|
85
|
+
try {
|
|
86
|
+
var result = parser.parse(req.body());
|
|
87
|
+
respond(result);
|
|
88
|
+
} finally {
|
|
89
|
+
PARSER_POOL.release(parser);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Pre-sized collections
|
|
95
|
+
```python
|
|
96
|
+
def build_report(items: list[Item]) -> str:
|
|
97
|
+
parts = [f"{item.name}: {item.value}" for item in items]
|
|
98
|
+
return "\n".join(parts) # single allocation for join
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 4. Indirection Limit Patterns [1]
|
|
102
|
+
|
|
103
|
+
### Flat data structures
|
|
104
|
+
```go
|
|
105
|
+
func update(node *Node) {
|
|
106
|
+
node.Value = 42 // single dereference
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Direct ownership in Rust
|
|
111
|
+
```rust
|
|
112
|
+
struct Tree {
|
|
113
|
+
children: Vec<Tree>, // direct ownership, no double-boxing
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Flat data access
|
|
118
|
+
```typescript
|
|
119
|
+
interface Report {
|
|
120
|
+
metrics: Record<string, number>; // single level of indirection
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 5. Metaprogramming Restraint Patterns [1]
|
|
125
|
+
|
|
126
|
+
### Interface-based dispatch instead of reflection
|
|
127
|
+
```java
|
|
128
|
+
public interface Handler {
|
|
129
|
+
Object handle(Object... args);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
private final Map<String, Handler> handlers = Map.of(
|
|
133
|
+
"create", this::handleCreate,
|
|
134
|
+
"delete", this::handleDelete
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
public Object invoke(String action, Object... args) {
|
|
138
|
+
Handler h = handlers.get(action);
|
|
139
|
+
if (h == null) throw new IllegalArgumentException("Unknown: " + action);
|
|
140
|
+
return h.handle(args);
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Simple derive macros instead of nested macros
|
|
145
|
+
```rust
|
|
146
|
+
#[derive(Debug, Clone)]
|
|
147
|
+
struct Handler {
|
|
148
|
+
name: String,
|
|
149
|
+
endpoint: String,
|
|
150
|
+
}
|
|
151
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Reliability — Sources
|
|
2
|
+
|
|
3
|
+
## Primary References
|
|
4
|
+
|
|
5
|
+
| # | Source | Author(s) | Year | Access | Topics |
|
|
6
|
+
|---|--------|-----------|------|--------|--------|
|
|
7
|
+
| 1 | The Power of Ten — Rules for Developing Safety-Critical Code | Gerard J. Holzmann | 2006 | Free (NASA/JPL) | 10 rules for verifiable, reliable embedded software |
|
|
8
|
+
| 2 | NASA/JPL Coding Standard for the C Programming Language | JPL | 2009 | Free | Institutional coding rules derived from Power of Ten |
|
|
9
|
+
| 3 | MISRA C:2023 — Guidelines for the Use of the C Language in Critical Systems | MISRA | 2023 | Paid | Safety-critical C coding guidelines |
|
|
10
|
+
| 4 | SEI CERT Coding Standards | SEI Carnegie Mellon | 2024 | Free | Language-specific secure and reliable coding rules |
|
|
11
|
+
| 5 | Software Reliability Engineering | John D. Musa | 1998 | Paid | Quantitative reliability measurement and prediction |
|
|
12
|
+
| 6 | Release It! — Design and Deploy Production-Ready Software | Michael T. Nygard | 2018 | Paid | Stability patterns: circuit breakers, bulkheads, timeouts |
|
|
13
|
+
|
|
14
|
+
## Power of Ten Rules Summary [1]
|
|
15
|
+
|
|
16
|
+
| Rule | Summary | Devflow Category |
|
|
17
|
+
|------|---------|-----------------|
|
|
18
|
+
| 1 | Restrict to simple control flow — no goto, setjmp, recursion | Bounded Iteration |
|
|
19
|
+
| 2 | Fixed upper bound on all loops | Bounded Iteration |
|
|
20
|
+
| 3 | No dynamic memory allocation after initialization | Allocation Discipline |
|
|
21
|
+
| 4 | No function longer than 60 lines (single printed page) | Complexity (separate skill) |
|
|
22
|
+
| 5 | Minimum two assertions per function on average | Assertion Density |
|
|
23
|
+
| 6 | Declare data at smallest scope | Complexity (separate skill) |
|
|
24
|
+
| 7 | Check return value of every non-void function | Error Handling (engineering rule) |
|
|
25
|
+
| 8 | Limit preprocessor to includes and simple conditionals | Metaprogramming Restraint |
|
|
26
|
+
| 9 | Restrict pointers — no more than one level of dereferencing | Indirection Limits |
|
|
27
|
+
| 10 | Compile with all warnings enabled, zero warnings | Quality rule (zero warnings) |
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Reliability — Violation Examples
|
|
2
|
+
|
|
3
|
+
## 1. Bounded Iteration Violations [1]
|
|
4
|
+
|
|
5
|
+
### Unbounded pagination
|
|
6
|
+
```typescript
|
|
7
|
+
async function fetchAllPages(url: string) {
|
|
8
|
+
let page = 1;
|
|
9
|
+
const results = [];
|
|
10
|
+
while (true) { // no upper bound
|
|
11
|
+
const data = await fetch(`${url}?page=${page++}`);
|
|
12
|
+
results.push(...data.items);
|
|
13
|
+
if (!data.nextPage) break; // trusts external signal
|
|
14
|
+
}
|
|
15
|
+
return results;
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Infinite event loop
|
|
20
|
+
```go
|
|
21
|
+
func consume(ch <-chan Event) {
|
|
22
|
+
for { // no termination condition
|
|
23
|
+
event := <-ch
|
|
24
|
+
process(event)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Unbounded recursive retry
|
|
30
|
+
```python
|
|
31
|
+
def fetch_with_retry(url: str) -> Response:
|
|
32
|
+
try:
|
|
33
|
+
return requests.get(url)
|
|
34
|
+
except ConnectionError:
|
|
35
|
+
time.sleep(1)
|
|
36
|
+
return fetch_with_retry(url) # unbounded recursion
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 2. Assertion Density Violations [1]
|
|
40
|
+
|
|
41
|
+
### Zero-assertion validation function
|
|
42
|
+
```typescript
|
|
43
|
+
function validateConfig(config: Config): Config {
|
|
44
|
+
// 30 lines of transformation with no precondition checks
|
|
45
|
+
const timeout = config.timeout ?? 5000;
|
|
46
|
+
const retries = config.retries ?? 3;
|
|
47
|
+
return { ...config, timeout, retries };
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Missing invariant check after mutation
|
|
52
|
+
```go
|
|
53
|
+
func (q *Queue) Dequeue() Item {
|
|
54
|
+
item := q.items[0]
|
|
55
|
+
q.items = q.items[1:]
|
|
56
|
+
// no assertion that len(q.items) >= 0 or q.size is consistent
|
|
57
|
+
return item
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 3. Allocation Discipline Violations [1]
|
|
62
|
+
|
|
63
|
+
### Allocation per request in hot path
|
|
64
|
+
```java
|
|
65
|
+
public void handleRequest(Request req) {
|
|
66
|
+
byte[] buffer = new byte[1024 * 1024]; // 1MB per request
|
|
67
|
+
var parser = new JsonParser(); // stateless, could be reused
|
|
68
|
+
var result = parser.parse(req.body(), buffer);
|
|
69
|
+
respond(result);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### String concatenation in loop
|
|
74
|
+
```python
|
|
75
|
+
def build_report(items: list[Item]) -> str:
|
|
76
|
+
result = ""
|
|
77
|
+
for item in items:
|
|
78
|
+
result += f"{item.name}: {item.value}\n" # O(n^2) allocation
|
|
79
|
+
return result
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 4. Indirection Limit Violations [1]
|
|
83
|
+
|
|
84
|
+
### Pointer-to-pointer in Go
|
|
85
|
+
```go
|
|
86
|
+
func update(ptr **Node) {
|
|
87
|
+
(*ptr).Value = 42 // double dereference
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Nested Box in Rust
|
|
92
|
+
```rust
|
|
93
|
+
struct Tree {
|
|
94
|
+
children: Box<Vec<Box<Tree>>>, // unnecessary double boxing
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Triple-nested references
|
|
99
|
+
```typescript
|
|
100
|
+
function process(data: Map<string, Map<string, Map<string, number>>>) {
|
|
101
|
+
// three levels of indirection to reach a value
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 5. Metaprogramming Restraint Violations [1]
|
|
106
|
+
|
|
107
|
+
### Reflection-heavy dispatch
|
|
108
|
+
```java
|
|
109
|
+
public Object invoke(String methodName, Object... args) throws Exception {
|
|
110
|
+
Method m = this.getClass().getMethod(methodName,
|
|
111
|
+
Arrays.stream(args).map(Object::getClass).toArray(Class[]::new));
|
|
112
|
+
return m.invoke(this, args); // reflection instead of interface
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Multi-level macro expansion
|
|
117
|
+
```rust
|
|
118
|
+
macro_rules! define_handler {
|
|
119
|
+
($name:ident, $($field:ident),*) => {
|
|
120
|
+
macro_rules! $name { // macro defining macro
|
|
121
|
+
() => { struct Handler { $($field: String),* } }
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|