devflow-kit 1.8.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +183 -6
- package/LICENSE +1 -1
- package/README.md +139 -219
- package/dist/cli/agents-view/index.js +9 -0
- package/dist/cli/agents-view/render.js +310 -0
- package/dist/cli/agents-view/state.js +423 -0
- package/dist/cli/agents-view/terminal.js +179 -0
- package/dist/cli/commands/agents.js +585 -0
- package/dist/cli/commands/ambient.js +231 -0
- package/dist/cli/commands/capture.js +133 -0
- package/dist/cli/commands/compliance-prompts.js +174 -0
- package/dist/cli/commands/compliance.js +337 -0
- package/dist/cli/commands/context.js +66 -0
- package/dist/cli/commands/debug.js +122 -0
- package/dist/cli/commands/flags.js +119 -0
- package/dist/cli/commands/hud.js +229 -0
- package/dist/cli/commands/init-seed.js +226 -0
- package/dist/cli/commands/init.js +1786 -0
- package/dist/cli/commands/knowledge/index.js +25 -0
- package/dist/cli/commands/knowledge/list.js +115 -0
- package/dist/cli/commands/knowledge/toggle.js +84 -0
- package/dist/cli/commands/learning.js +311 -0
- package/dist/cli/commands/legacy-hooks.js +40 -0
- package/dist/cli/commands/memory.js +349 -0
- package/dist/cli/commands/proxy.js +1435 -0
- package/dist/cli/commands/rules.js +334 -0
- package/dist/cli/commands/safe-delete.js +140 -0
- package/dist/cli/commands/security.js +179 -0
- package/dist/cli/commands/skills.js +140 -0
- package/dist/cli/commands/uninstall.js +1214 -0
- package/dist/cli.js +35 -10
- package/dist/commands/bug-analysis.md +400 -0
- package/dist/commands/code-review.md +403 -0
- package/dist/commands/debug.md +282 -0
- package/dist/commands/dynamic-build.md +972 -0
- package/dist/commands/dynamic-plan.md +383 -0
- package/dist/commands/dynamic-profile.md +206 -0
- package/dist/commands/dynamic-tickets.md +583 -0
- package/dist/commands/explore.md +208 -0
- package/dist/commands/implement.md +590 -0
- package/dist/commands/plan.md +570 -0
- package/dist/commands/release.md +206 -0
- package/dist/commands/research.md +212 -0
- package/dist/commands/resolve.md +731 -0
- package/dist/commands/self-review.md +251 -0
- package/dist/core/agent-frontmatter.js +209 -0
- package/dist/core/agent-models.js +556 -0
- package/dist/core/agent-state.js +44 -0
- package/dist/core/assets.js +39 -0
- package/dist/core/cache.js +205 -0
- package/dist/core/codex-auth-inspect.js +128 -0
- package/dist/core/compliance-compose.js +458 -0
- package/dist/core/compliance.js +165 -0
- package/dist/core/external-models.js +76 -0
- package/dist/core/feature-config.js +125 -0
- package/dist/core/flags.js +309 -0
- package/dist/core/fs-atomic.js +74 -0
- package/dist/core/git.js +61 -0
- package/dist/core/learning-queue-cleanup.js +92 -0
- package/dist/core/learning-tuning-config.js +78 -0
- package/dist/core/manifest.js +171 -0
- package/dist/core/migrations.js +330 -0
- package/dist/core/model-discovery.js +655 -0
- package/dist/core/observation-io.js +50 -0
- package/dist/core/observations.js +109 -0
- package/dist/core/orphan-sweep.js +92 -0
- package/dist/core/paths.js +48 -0
- package/dist/core/plugins.js +525 -0
- package/dist/core/project-paths.js +159 -0
- package/dist/core/proxy-log.js +165 -0
- package/dist/core/proxy-state.js +305 -0
- package/dist/core/safe-delete-install.js +191 -0
- package/dist/core/teammate-mode-cleanup.js +33 -0
- package/dist/hud/colors.js +13 -2
- package/dist/hud/components/config-counts.js +2 -2
- package/dist/hud/components/context-usage.js +2 -2
- package/dist/hud/components/learning-counts.js +92 -0
- package/dist/hud/components/session-cost.js +10 -2
- package/dist/hud/components/usage-quota.js +43 -8
- package/dist/hud/components/version-badge.js +14 -4
- package/dist/hud/config.js +4 -2
- package/dist/hud/cost-history.js +281 -0
- package/dist/hud/git.js +112 -71
- package/dist/hud/index.js +47 -4
- package/dist/hud/render.js +8 -20
- package/dist/hud/transcript.js +5 -6
- package/dist/targets/claude-code/claude-paths.js +106 -0
- package/dist/targets/claude-code/compliance-install.js +305 -0
- package/dist/targets/claude-code/hooks.js +9 -0
- package/dist/targets/claude-code/installer.js +458 -0
- package/dist/targets/claude-code/legacy.js +239 -0
- package/dist/targets/claude-code/post-install.js +971 -0
- package/package.json +23 -17
- package/src/assets/agents/code.md +244 -0
- package/src/assets/agents/design.md +113 -0
- package/src/assets/agents/diagnose.md +210 -0
- package/src/assets/agents/evaluate.md +117 -0
- package/src/assets/agents/git.md +938 -0
- package/src/assets/agents/knowledge.md +89 -0
- package/src/assets/agents/learning.md +203 -0
- package/src/assets/agents/research.md +134 -0
- package/src/assets/agents/review.md +220 -0
- package/src/assets/agents/scrutinize.md +95 -0
- package/src/assets/agents/simplify.md +108 -0
- package/src/assets/agents/skim.md +136 -0
- package/src/assets/agents/synthesize.md +402 -0
- package/src/assets/agents/test.md +155 -0
- package/src/assets/agents/triage.md +141 -0
- package/src/assets/agents/validate.md +103 -0
- package/src/assets/commands/_partials/_compliance.mds +5 -0
- package/src/assets/commands/_partials/_decisions.mds +20 -0
- package/src/assets/commands/_partials/_engine.mds +244 -0
- package/src/assets/commands/_partials/_factory.mds +216 -0
- package/src/assets/commands/_partials/_knowledge.mds +95 -0
- package/src/assets/commands/_partials/_plan_contract.mds +51 -0
- package/src/assets/commands/_partials/_preamble.mds +82 -0
- package/src/assets/commands/_partials/_publication.mds +7 -0
- package/src/assets/commands/_partials/_roster.mds +31 -0
- package/src/assets/commands/_partials/_ticket_template.mds +59 -0
- package/src/assets/commands/_partials/_wave.mds +123 -0
- package/src/assets/commands/bug-analysis.mds +353 -0
- package/src/assets/commands/code-review.mds +355 -0
- package/src/assets/commands/debug.mds +224 -0
- package/src/assets/commands/dynamic-build.mds +534 -0
- package/src/assets/commands/dynamic-plan.mds +244 -0
- package/src/assets/commands/dynamic-profile.mds +132 -0
- package/src/assets/commands/dynamic-tickets.mds +226 -0
- package/src/assets/commands/explore.mds +150 -0
- package/src/assets/commands/implement.mds +496 -0
- package/src/assets/commands/plan.mds +523 -0
- package/src/assets/commands/release.md +206 -0
- package/src/assets/commands/research.mds +164 -0
- package/src/assets/commands/resolve.mds +636 -0
- package/src/assets/commands/self-review.mds +156 -0
- package/src/assets/rules/accessibility.md +11 -0
- package/src/assets/rules/compliance.md +15 -0
- package/src/assets/rules/engineering.md +13 -0
- package/src/assets/rules/go.md +12 -0
- package/src/assets/rules/java.md +12 -0
- package/src/assets/rules/python.md +12 -0
- package/src/assets/rules/quality.md +14 -0
- package/src/assets/rules/react.md +11 -0
- package/src/assets/rules/reliability.md +12 -0
- package/src/assets/rules/rust.md +12 -0
- package/src/assets/rules/security.md +12 -0
- package/src/assets/rules/typescript.md +12 -0
- package/src/assets/rules/ui-design.md +11 -0
- package/src/assets/scripts/hooks/assets/orchestrator-charter.md +21 -0
- package/src/assets/scripts/hooks/background-memory-update +460 -0
- package/src/assets/scripts/hooks/capture-prompt +87 -0
- package/src/assets/scripts/hooks/capture-question +153 -0
- package/src/assets/scripts/hooks/capture-turn +105 -0
- package/src/assets/scripts/hooks/debug-trace +75 -0
- package/src/assets/scripts/hooks/decisions-usage-scan.cjs +131 -0
- package/src/assets/scripts/hooks/ensure-devflow-init +39 -0
- package/src/assets/scripts/hooks/ensure-proxy +294 -0
- package/src/assets/scripts/hooks/ensure-root-gitignore +116 -0
- package/src/assets/scripts/hooks/get-mtime +23 -0
- package/src/assets/scripts/hooks/git-marker +16 -0
- package/src/assets/scripts/hooks/hook-bootstrap +25 -0
- package/src/assets/scripts/hooks/hook-log-init +41 -0
- package/src/assets/scripts/hooks/json-helper.cjs +725 -0
- package/src/assets/scripts/hooks/json-parse +243 -0
- package/src/assets/scripts/hooks/learning-lock +44 -0
- package/src/assets/scripts/hooks/lib/decisions-format.cjs +301 -0
- package/src/assets/scripts/hooks/lib/mkdir-lock.cjs +106 -0
- package/src/assets/scripts/hooks/lib/project-paths.cjs +230 -0
- package/src/assets/scripts/hooks/lib/render-decisions.cjs +398 -0
- package/src/assets/scripts/hooks/lib/safe-path.cjs +29 -0
- package/src/assets/scripts/hooks/log-paths +24 -0
- package/src/assets/scripts/hooks/memory-worker +101 -0
- package/src/assets/scripts/hooks/pre-compact-memory +126 -0
- package/src/assets/scripts/hooks/preamble +77 -0
- package/src/assets/scripts/hooks/queue-append +120 -0
- package/src/assets/scripts/hooks/resolve-project-root +37 -0
- package/src/assets/scripts/hooks/run-hook +31 -0
- package/src/assets/scripts/hooks/session-start-context +180 -0
- package/src/assets/scripts/hooks/session-start-memory +318 -0
- package/src/assets/scripts/hooks/session-start-orchestrator +54 -0
- package/src/assets/scripts/hud.sh +5 -0
- package/src/assets/scripts/redact-secrets.cjs +410 -0
- package/src/assets/skills/accessibility/SKILL.md +145 -0
- package/src/assets/skills/accessibility/references/patterns.md +398 -0
- package/src/assets/skills/accessibility/references/sources.md +26 -0
- package/src/assets/skills/accessibility/references/violations.md +358 -0
- package/src/assets/skills/apply-decisions/SKILL.md +100 -0
- package/src/assets/skills/apply-feature-knowledge/SKILL.md +69 -0
- package/src/assets/skills/architecture/SKILL.md +138 -0
- package/src/assets/skills/architecture/references/patterns.md +378 -0
- package/src/assets/skills/architecture/references/sources.md +41 -0
- package/src/assets/skills/architecture/references/violations.md +314 -0
- package/src/assets/skills/boundary-validation/SKILL.md +119 -0
- package/src/assets/skills/boundary-validation/references/detection.md +283 -0
- package/src/assets/skills/boundary-validation/references/patterns.md +283 -0
- package/src/assets/skills/boundary-validation/references/sources.md +41 -0
- package/src/assets/skills/boundary-validation/references/violations.md +211 -0
- package/src/assets/skills/complexity/SKILL.md +150 -0
- package/src/assets/skills/compliance/SKILL.md +121 -0
- package/src/assets/skills/compliance/frameworks/gdpr/fragment.md +11 -0
- package/src/assets/skills/compliance/frameworks/gdpr/reference.md +50 -0
- package/src/assets/skills/compliance/frameworks/hipaa/fragment.md +11 -0
- package/src/assets/skills/compliance/frameworks/hipaa/reference.md +44 -0
- package/src/assets/skills/compliance/frameworks/iso-27001/fragment.md +10 -0
- package/src/assets/skills/compliance/frameworks/iso-27001/reference.md +45 -0
- package/src/assets/skills/compliance/frameworks/pci-dss/fragment.md +11 -0
- package/src/assets/skills/compliance/frameworks/pci-dss/reference.md +55 -0
- package/src/assets/skills/compliance/frameworks/soc2/fragment.md +10 -0
- package/src/assets/skills/compliance/frameworks/soc2/reference.md +53 -0
- package/src/assets/skills/compliance/frameworks/sox/fragment.md +10 -0
- package/src/assets/skills/compliance/frameworks/sox/reference.md +67 -0
- package/src/assets/skills/compliance/references/detection.md +108 -0
- package/src/assets/skills/compliance/references/sources.md +28 -0
- package/src/assets/skills/consistency/SKILL.md +140 -0
- package/src/assets/skills/database/SKILL.md +134 -0
- package/src/assets/skills/dependencies/SKILL.md +141 -0
- package/src/assets/skills/dependency-research/SKILL.md +133 -0
- package/src/assets/skills/dependency-research/references/evaluation-criteria.md +101 -0
- package/src/assets/skills/design-review/SKILL.md +155 -0
- package/src/assets/skills/design-review/references/anti-patterns.md +207 -0
- package/src/assets/skills/docs-framework/SKILL.md +190 -0
- package/src/assets/skills/docs-framework/references/patterns.md +381 -0
- package/src/assets/skills/docs-framework/references/violations.md +221 -0
- package/src/assets/skills/documentation/SKILL.md +126 -0
- package/src/assets/skills/feature-knowledge/SKILL.md +341 -0
- package/src/assets/skills/gap-analysis/SKILL.md +151 -0
- package/src/assets/skills/gap-analysis/references/check-layers.md +125 -0
- package/src/assets/skills/git/SKILL.md +287 -0
- package/src/assets/skills/git/references/github-api.md +666 -0
- package/src/assets/skills/git/references/patterns.md +324 -0
- package/src/assets/skills/git/references/sources.md +16 -0
- package/src/assets/skills/git/references/violations.md +128 -0
- package/src/assets/skills/go/SKILL.md +147 -0
- package/src/assets/skills/go/references/concurrency.md +335 -0
- package/src/assets/skills/go/references/patterns.md +278 -0
- package/src/assets/skills/go/references/sources.md +41 -0
- package/src/assets/skills/go/references/violations.md +262 -0
- package/src/assets/skills/java/SKILL.md +148 -0
- package/src/assets/skills/java/references/modern-java.md +335 -0
- package/src/assets/skills/java/references/patterns.md +311 -0
- package/src/assets/skills/java/references/sources.md +44 -0
- package/src/assets/skills/java/references/violations.md +257 -0
- package/src/assets/skills/patterns/SKILL.md +162 -0
- package/src/assets/skills/performance/SKILL.md +135 -0
- package/src/assets/skills/performance/references/patterns.md +516 -0
- package/src/assets/skills/performance/references/sources.md +41 -0
- package/src/assets/skills/performance/references/violations.md +417 -0
- package/src/assets/skills/python/SKILL.md +156 -0
- package/src/assets/skills/python/references/async.md +255 -0
- package/src/assets/skills/python/references/patterns.md +280 -0
- package/src/assets/skills/python/references/sources.md +41 -0
- package/src/assets/skills/python/references/violations.md +272 -0
- package/src/assets/skills/qa/SKILL.md +136 -0
- package/src/assets/skills/qa/references/browser-testing.md +97 -0
- package/src/assets/skills/qa/references/patterns.md +118 -0
- package/src/assets/skills/qa/references/scenario-templates.md +102 -0
- package/src/assets/skills/qa/references/sources.md +30 -0
- package/src/assets/skills/qa/references/violations.md +98 -0
- package/src/assets/skills/quality-gates/SKILL.md +152 -0
- package/src/assets/skills/quality-gates/references/stub-detection.md +135 -0
- package/src/assets/skills/react/SKILL.md +143 -0
- package/src/assets/skills/react/references/error-handling.md +179 -0
- package/src/assets/skills/react/references/forms.md +214 -0
- package/src/assets/skills/react/references/hooks.md +193 -0
- package/src/assets/skills/react/references/patterns.md +1336 -0
- package/src/assets/skills/react/references/sources.md +35 -0
- package/src/assets/skills/react/references/violations.md +570 -0
- package/src/assets/skills/regression/SKILL.md +146 -0
- package/src/assets/skills/reliability/SKILL.md +153 -0
- package/src/assets/skills/reliability/references/detection.md +66 -0
- package/src/assets/skills/reliability/references/patterns.md +151 -0
- package/src/assets/skills/reliability/references/sources.md +27 -0
- package/src/assets/skills/reliability/references/violations.md +125 -0
- package/src/assets/skills/research-codebase/SKILL.md +135 -0
- package/src/assets/skills/research-competitor/SKILL.md +145 -0
- package/src/assets/skills/research-external/SKILL.md +141 -0
- package/src/assets/skills/research-market/SKILL.md +145 -0
- package/src/assets/skills/research-technology/SKILL.md +180 -0
- package/src/assets/skills/review-methodology/SKILL.md +121 -0
- package/src/assets/skills/review-methodology/references/patterns.md +186 -0
- package/src/assets/skills/review-methodology/references/report-template.md +142 -0
- package/src/assets/skills/review-methodology/references/violations.md +125 -0
- package/src/assets/skills/rust/SKILL.md +148 -0
- package/src/assets/skills/rust/references/ownership.md +278 -0
- package/src/assets/skills/rust/references/patterns.md +247 -0
- package/src/assets/skills/rust/references/sources.md +46 -0
- package/src/assets/skills/rust/references/violations.md +252 -0
- package/src/assets/skills/security/SKILL.md +121 -0
- package/src/assets/skills/security/references/patterns.md +271 -0
- package/src/assets/skills/security/references/sources.md +41 -0
- package/src/assets/skills/security/references/violations.md +241 -0
- package/src/assets/skills/software-design/SKILL.md +143 -0
- package/src/assets/skills/software-design/references/checklist.md +259 -0
- package/src/assets/skills/software-design/references/code-smell-violations.md +189 -0
- package/src/assets/skills/software-design/references/patterns.md +359 -0
- package/src/assets/skills/software-design/references/sources.md +41 -0
- package/src/assets/skills/software-design/references/violations.md +341 -0
- package/src/assets/skills/test-driven-development/SKILL.md +197 -0
- package/src/assets/skills/testing/SKILL.md +139 -0
- package/src/assets/skills/testing/references/patterns.md +346 -0
- package/src/assets/skills/testing/references/sources.md +53 -0
- package/src/assets/skills/testing/references/violations.md +322 -0
- package/src/assets/skills/typescript/SKILL.md +150 -0
- package/src/assets/skills/typescript/references/async.md +333 -0
- package/src/assets/skills/typescript/references/patterns.md +440 -0
- package/src/assets/skills/typescript/references/sources.md +41 -0
- package/src/assets/skills/typescript/references/type-guards.md +333 -0
- package/src/assets/skills/typescript/references/utility-types.md +255 -0
- package/src/assets/skills/typescript/references/violations.md +285 -0
- package/src/assets/skills/ui-design/SKILL.md +144 -0
- package/src/assets/skills/ui-design/references/patterns.md +341 -0
- package/src/assets/skills/ui-design/references/sources.md +41 -0
- package/src/assets/skills/ui-design/references/violations.md +312 -0
- package/src/assets/skills/worktree-support/SKILL.md +92 -0
- package/src/targets/claude-code/templates/claudeignore.template +188 -0
- package/src/targets/claude-code/templates/settings.json +86 -0
- package/dist/cli.d.ts +0 -3
- package/dist/commands/ambient.d.ts +0 -18
- package/dist/commands/ambient.js +0 -137
- package/dist/commands/hud.d.ts +0 -22
- package/dist/commands/hud.js +0 -180
- package/dist/commands/init.d.ts +0 -16
- package/dist/commands/init.js +0 -738
- package/dist/commands/list.d.ts +0 -24
- package/dist/commands/list.js +0 -89
- package/dist/commands/memory.d.ts +0 -22
- package/dist/commands/memory.js +0 -175
- package/dist/commands/skills.d.ts +0 -11
- package/dist/commands/skills.js +0 -116
- package/dist/commands/uninstall.d.ts +0 -22
- package/dist/commands/uninstall.js +0 -558
- package/dist/hud/cache.d.ts +0 -14
- package/dist/hud/cache.js +0 -54
- package/dist/hud/colors.d.ts +0 -23
- package/dist/hud/components/config-counts.d.ts +0 -8
- package/dist/hud/components/context-usage.d.ts +0 -8
- package/dist/hud/components/diff-stats.d.ts +0 -3
- package/dist/hud/components/directory.d.ts +0 -3
- package/dist/hud/components/git-ahead-behind.d.ts +0 -3
- package/dist/hud/components/git-branch.d.ts +0 -3
- package/dist/hud/components/model.d.ts +0 -3
- package/dist/hud/components/release-info.d.ts +0 -3
- package/dist/hud/components/session-cost.d.ts +0 -3
- package/dist/hud/components/session-duration.d.ts +0 -3
- package/dist/hud/components/todo-progress.d.ts +0 -3
- package/dist/hud/components/usage-quota.d.ts +0 -3
- package/dist/hud/components/version-badge.d.ts +0 -3
- package/dist/hud/components/worktree-count.d.ts +0 -3
- package/dist/hud/config.d.ts +0 -10
- package/dist/hud/credentials.d.ts +0 -17
- package/dist/hud/credentials.js +0 -99
- package/dist/hud/git.d.ts +0 -7
- package/dist/hud/index.d.ts +0 -2
- package/dist/hud/render.d.ts +0 -7
- package/dist/hud/stdin.d.ts +0 -6
- package/dist/hud/transcript.d.ts +0 -7
- package/dist/hud/types.d.ts +0 -116
- package/dist/hud/usage-api.d.ts +0 -7
- package/dist/hud/usage-api.js +0 -84
- package/dist/plugins.d.ts +0 -46
- package/dist/plugins.js +0 -233
- package/dist/utils/cli.d.ts +0 -5
- package/dist/utils/cli.js +0 -14
- package/dist/utils/git.d.ts +0 -11
- package/dist/utils/git.js +0 -36
- package/dist/utils/installer.d.ts +0 -41
- package/dist/utils/installer.js +0 -195
- package/dist/utils/manifest.d.ts +0 -46
- package/dist/utils/manifest.js +0 -100
- package/dist/utils/paths.d.ts +0 -42
- package/dist/utils/paths.js +0 -106
- package/dist/utils/post-install.d.ts +0 -87
- package/dist/utils/post-install.js +0 -546
- package/dist/utils/safe-delete-install.d.ts +0 -29
- package/dist/utils/safe-delete-install.js +0 -191
- package/dist/utils/safe-delete.d.ts +0 -12
- package/plugins/devflow-accessibility/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-accessibility/skills/accessibility/SKILL.md +0 -229
- package/plugins/devflow-accessibility/skills/accessibility/references/patterns.md +0 -670
- package/plugins/devflow-accessibility/skills/accessibility/references/violations.md +0 -419
- package/plugins/devflow-ambient/.claude-plugin/plugin.json +0 -33
- package/plugins/devflow-ambient/README.md +0 -68
- package/plugins/devflow-ambient/agents/coder.md +0 -135
- package/plugins/devflow-ambient/agents/reviewer.md +0 -165
- package/plugins/devflow-ambient/agents/scrutinizer.md +0 -82
- package/plugins/devflow-ambient/agents/shepherd.md +0 -108
- package/plugins/devflow-ambient/agents/simplifier.md +0 -102
- package/plugins/devflow-ambient/agents/skimmer.md +0 -143
- package/plugins/devflow-ambient/agents/validator.md +0 -86
- package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +0 -145
- package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +0 -74
- package/plugins/devflow-ambient/skills/debug-orchestration/SKILL.md +0 -69
- package/plugins/devflow-ambient/skills/implementation-orchestration/SKILL.md +0 -92
- package/plugins/devflow-ambient/skills/plan-orchestration/SKILL.md +0 -71
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +0 -19
- package/plugins/devflow-audit-claude/README.md +0 -46
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +0 -134
- package/plugins/devflow-audit-claude/commands/audit-claude.md +0 -89
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +0 -38
- package/plugins/devflow-code-review/README.md +0 -73
- package/plugins/devflow-code-review/agents/git.md +0 -277
- package/plugins/devflow-code-review/agents/reviewer.md +0 -165
- package/plugins/devflow-code-review/agents/synthesizer.md +0 -211
- package/plugins/devflow-code-review/commands/code-review-teams.md +0 -285
- package/plugins/devflow-code-review/commands/code-review.md +0 -163
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +0 -153
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +0 -873
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +0 -575
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +0 -143
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +0 -140
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +0 -134
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +0 -141
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +0 -125
- package/plugins/devflow-code-review/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-code-review/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +0 -154
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +0 -503
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +0 -354
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +0 -146
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +0 -119
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +0 -186
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +0 -142
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +0 -125
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +0 -156
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +0 -507
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +0 -237
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +0 -183
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +0 -220
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +0 -221
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +0 -31
- package/plugins/devflow-core-skills/README.md +0 -50
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +0 -162
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +0 -276
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +0 -144
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +0 -576
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +0 -369
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +0 -143
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +0 -346
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +0 -221
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +0 -122
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +0 -289
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +0 -18
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +0 -158
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +0 -115
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +0 -77
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +0 -127
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +0 -96
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +0 -153
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +0 -572
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +0 -298
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +0 -148
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +0 -283
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +0 -361
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +0 -224
- package/plugins/devflow-core-skills/skills/search-first/SKILL.md +0 -133
- package/plugins/devflow-core-skills/skills/search-first/references/evaluation-criteria.md +0 -101
- package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +0 -137
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +0 -183
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +0 -149
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +0 -220
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +0 -108
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +0 -221
- package/plugins/devflow-debug/.claude-plugin/plugin.json +0 -26
- package/plugins/devflow-debug/README.md +0 -65
- package/plugins/devflow-debug/agents/git.md +0 -277
- package/plugins/devflow-debug/agents/synthesizer.md +0 -211
- package/plugins/devflow-debug/commands/debug-teams.md +0 -245
- package/plugins/devflow-debug/commands/debug.md +0 -174
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +0 -122
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +0 -290
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +0 -289
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +0 -18
- package/plugins/devflow-debug/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-debug/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-frontend-design/skills/frontend-design/SKILL.md +0 -254
- package/plugins/devflow-frontend-design/skills/frontend-design/references/patterns.md +0 -511
- package/plugins/devflow-frontend-design/skills/frontend-design/references/violations.md +0 -453
- package/plugins/devflow-go/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-go/skills/go/SKILL.md +0 -187
- package/plugins/devflow-go/skills/go/references/concurrency.md +0 -312
- package/plugins/devflow-go/skills/go/references/patterns.md +0 -232
- package/plugins/devflow-go/skills/go/references/violations.md +0 -205
- package/plugins/devflow-implement/.claude-plugin/plugin.json +0 -35
- package/plugins/devflow-implement/README.md +0 -71
- package/plugins/devflow-implement/agents/coder.md +0 -135
- package/plugins/devflow-implement/agents/git.md +0 -277
- package/plugins/devflow-implement/agents/scrutinizer.md +0 -82
- package/plugins/devflow-implement/agents/shepherd.md +0 -108
- package/plugins/devflow-implement/agents/simplifier.md +0 -102
- package/plugins/devflow-implement/agents/skimmer.md +0 -143
- package/plugins/devflow-implement/agents/synthesizer.md +0 -211
- package/plugins/devflow-implement/agents/validator.md +0 -86
- package/plugins/devflow-implement/commands/implement-teams.md +0 -620
- package/plugins/devflow-implement/commands/implement.md +0 -430
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +0 -162
- package/plugins/devflow-implement/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-implement/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-implement/skills/self-review/SKILL.md +0 -149
- package/plugins/devflow-implement/skills/self-review/references/stub-detection.md +0 -135
- package/plugins/devflow-java/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-java/skills/java/SKILL.md +0 -183
- package/plugins/devflow-java/skills/java/references/modern-java.md +0 -270
- package/plugins/devflow-java/skills/java/references/patterns.md +0 -235
- package/plugins/devflow-java/skills/java/references/violations.md +0 -213
- package/plugins/devflow-python/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-python/skills/python/SKILL.md +0 -188
- package/plugins/devflow-python/skills/python/references/async.md +0 -220
- package/plugins/devflow-python/skills/python/references/patterns.md +0 -226
- package/plugins/devflow-python/skills/python/references/violations.md +0 -204
- package/plugins/devflow-react/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-react/skills/react/SKILL.md +0 -276
- package/plugins/devflow-react/skills/react/references/patterns.md +0 -1331
- package/plugins/devflow-react/skills/react/references/violations.md +0 -565
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +0 -29
- package/plugins/devflow-resolve/README.md +0 -65
- package/plugins/devflow-resolve/agents/git.md +0 -277
- package/plugins/devflow-resolve/agents/resolver.md +0 -131
- package/plugins/devflow-resolve/agents/simplifier.md +0 -102
- package/plugins/devflow-resolve/commands/resolve-teams.md +0 -307
- package/plugins/devflow-resolve/commands/resolve.md +0 -246
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +0 -162
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +0 -1063
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +0 -483
- package/plugins/devflow-resolve/skills/knowledge-persistence/SKILL.md +0 -128
- package/plugins/devflow-resolve/skills/knowledge-persistence/references/examples.md +0 -44
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +0 -156
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +0 -287
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +0 -507
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +0 -237
- package/plugins/devflow-rust/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-rust/skills/rust/SKILL.md +0 -193
- package/plugins/devflow-rust/skills/rust/references/ownership.md +0 -242
- package/plugins/devflow-rust/skills/rust/references/patterns.md +0 -210
- package/plugins/devflow-rust/skills/rust/references/violations.md +0 -191
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +0 -26
- package/plugins/devflow-self-review/README.md +0 -38
- package/plugins/devflow-self-review/agents/scrutinizer.md +0 -82
- package/plugins/devflow-self-review/agents/simplifier.md +0 -102
- package/plugins/devflow-self-review/agents/validator.md +0 -86
- package/plugins/devflow-self-review/commands/self-review.md +0 -132
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +0 -162
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +0 -276
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +0 -144
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +0 -303
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +0 -576
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +0 -369
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +0 -149
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +0 -405
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +0 -253
- package/plugins/devflow-self-review/skills/self-review/references/stub-detection.md +0 -135
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +0 -308
- package/plugins/devflow-specify/.claude-plugin/plugin.json +0 -25
- package/plugins/devflow-specify/README.md +0 -46
- package/plugins/devflow-specify/agents/skimmer.md +0 -143
- package/plugins/devflow-specify/agents/synthesizer.md +0 -211
- package/plugins/devflow-specify/commands/specify-teams.md +0 -321
- package/plugins/devflow-specify/commands/specify.md +0 -186
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +0 -124
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +0 -104
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +0 -122
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +0 -217
- package/plugins/devflow-typescript/.claude-plugin/plugin.json +0 -21
- package/plugins/devflow-typescript/skills/typescript/SKILL.md +0 -176
- package/plugins/devflow-typescript/skills/typescript/references/patterns.md +0 -1105
- package/plugins/devflow-typescript/skills/typescript/references/violations.md +0 -433
- package/scripts/hooks/ambient-prompt +0 -50
- package/scripts/hooks/background-memory-update +0 -257
- package/scripts/hooks/ensure-memory-gitignore +0 -17
- package/scripts/hooks/pre-compact-memory +0 -87
- package/scripts/hooks/run-hook +0 -23
- package/scripts/hooks/session-start-memory +0 -165
- package/scripts/hooks/stop-update-memory +0 -85
- package/scripts/hud/cache.d.ts +0 -14
- package/scripts/hud/cache.d.ts.map +0 -1
- package/scripts/hud/cache.js +0 -54
- package/scripts/hud/cache.js.map +0 -1
- package/scripts/hud/colors.d.ts +0 -23
- package/scripts/hud/colors.d.ts.map +0 -1
- package/scripts/hud/colors.js +0 -62
- package/scripts/hud/colors.js.map +0 -1
- package/scripts/hud/components/config-counts.d.ts +0 -8
- package/scripts/hud/components/config-counts.d.ts.map +0 -1
- package/scripts/hud/components/config-counts.js +0 -91
- package/scripts/hud/components/config-counts.js.map +0 -1
- package/scripts/hud/components/context-usage.d.ts +0 -8
- package/scripts/hud/components/context-usage.d.ts.map +0 -1
- package/scripts/hud/components/context-usage.js +0 -49
- package/scripts/hud/components/context-usage.js.map +0 -1
- package/scripts/hud/components/diff-stats.d.ts +0 -3
- package/scripts/hud/components/diff-stats.d.ts.map +0 -1
- package/scripts/hud/components/diff-stats.js +0 -36
- package/scripts/hud/components/diff-stats.js.map +0 -1
- package/scripts/hud/components/directory.d.ts +0 -3
- package/scripts/hud/components/directory.d.ts.map +0 -1
- package/scripts/hud/components/directory.js +0 -10
- package/scripts/hud/components/directory.js.map +0 -1
- package/scripts/hud/components/git-ahead-behind.d.ts +0 -3
- package/scripts/hud/components/git-ahead-behind.d.ts.map +0 -1
- package/scripts/hud/components/git-ahead-behind.js +0 -16
- package/scripts/hud/components/git-ahead-behind.js.map +0 -1
- package/scripts/hud/components/git-branch.d.ts +0 -3
- package/scripts/hud/components/git-branch.d.ts.map +0 -1
- package/scripts/hud/components/git-branch.js +0 -14
- package/scripts/hud/components/git-branch.js.map +0 -1
- package/scripts/hud/components/model.d.ts +0 -3
- package/scripts/hud/components/model.d.ts.map +0 -1
- package/scripts/hud/components/model.js +0 -21
- package/scripts/hud/components/model.js.map +0 -1
- package/scripts/hud/components/release-info.d.ts +0 -3
- package/scripts/hud/components/release-info.d.ts.map +0 -1
- package/scripts/hud/components/release-info.js +0 -9
- package/scripts/hud/components/release-info.js.map +0 -1
- package/scripts/hud/components/session-cost.d.ts +0 -3
- package/scripts/hud/components/session-cost.d.ts.map +0 -1
- package/scripts/hud/components/session-cost.js +0 -9
- package/scripts/hud/components/session-cost.js.map +0 -1
- package/scripts/hud/components/session-duration.d.ts +0 -3
- package/scripts/hud/components/session-duration.d.ts.map +0 -1
- package/scripts/hud/components/session-duration.js +0 -18
- package/scripts/hud/components/session-duration.js.map +0 -1
- package/scripts/hud/components/todo-progress.d.ts +0 -3
- package/scripts/hud/components/todo-progress.d.ts.map +0 -1
- package/scripts/hud/components/todo-progress.js +0 -11
- package/scripts/hud/components/todo-progress.js.map +0 -1
- package/scripts/hud/components/usage-quota.d.ts +0 -3
- package/scripts/hud/components/usage-quota.d.ts.map +0 -1
- package/scripts/hud/components/usage-quota.js +0 -45
- package/scripts/hud/components/usage-quota.js.map +0 -1
- package/scripts/hud/components/version-badge.d.ts +0 -3
- package/scripts/hud/components/version-badge.d.ts.map +0 -1
- package/scripts/hud/components/version-badge.js +0 -80
- package/scripts/hud/components/version-badge.js.map +0 -1
- package/scripts/hud/components/worktree-count.d.ts +0 -3
- package/scripts/hud/components/worktree-count.d.ts.map +0 -1
- package/scripts/hud/components/worktree-count.js +0 -8
- package/scripts/hud/components/worktree-count.js.map +0 -1
- package/scripts/hud/config.d.ts +0 -10
- package/scripts/hud/config.d.ts.map +0 -1
- package/scripts/hud/config.js +0 -55
- package/scripts/hud/config.js.map +0 -1
- package/scripts/hud/credentials.d.ts +0 -17
- package/scripts/hud/credentials.d.ts.map +0 -1
- package/scripts/hud/credentials.js +0 -99
- package/scripts/hud/credentials.js.map +0 -1
- package/scripts/hud/git.d.ts +0 -7
- package/scripts/hud/git.d.ts.map +0 -1
- package/scripts/hud/git.js +0 -153
- package/scripts/hud/git.js.map +0 -1
- package/scripts/hud/index.d.ts +0 -2
- package/scripts/hud/index.d.ts.map +0 -1
- package/scripts/hud/index.js +0 -81
- package/scripts/hud/index.js.map +0 -1
- package/scripts/hud/render.d.ts +0 -7
- package/scripts/hud/render.d.ts.map +0 -1
- package/scripts/hud/render.js +0 -111
- package/scripts/hud/render.js.map +0 -1
- package/scripts/hud/stdin.d.ts +0 -6
- package/scripts/hud/stdin.d.ts.map +0 -1
- package/scripts/hud/stdin.js +0 -25
- package/scripts/hud/stdin.js.map +0 -1
- package/scripts/hud/transcript.d.ts +0 -7
- package/scripts/hud/transcript.d.ts.map +0 -1
- package/scripts/hud/transcript.js +0 -130
- package/scripts/hud/transcript.js.map +0 -1
- package/scripts/hud/types.d.ts +0 -116
- package/scripts/hud/types.d.ts.map +0 -1
- package/scripts/hud/types.js +0 -2
- package/scripts/hud/types.js.map +0 -1
- package/scripts/hud/usage-api.d.ts +0 -7
- package/scripts/hud/usage-api.d.ts.map +0 -1
- package/scripts/hud/usage-api.js +0 -84
- package/scripts/hud/usage-api.js.map +0 -1
- package/scripts/hud.sh +0 -5
- package/shared/agents/coder.md +0 -135
- package/shared/agents/git.md +0 -277
- package/shared/agents/resolver.md +0 -131
- package/shared/agents/reviewer.md +0 -165
- package/shared/agents/scrutinizer.md +0 -82
- package/shared/agents/shepherd.md +0 -108
- package/shared/agents/simplifier.md +0 -102
- package/shared/agents/skimmer.md +0 -143
- package/shared/agents/synthesizer.md +0 -211
- package/shared/agents/validator.md +0 -86
- package/shared/skills/accessibility/SKILL.md +0 -229
- package/shared/skills/accessibility/references/detection.md +0 -171
- package/shared/skills/accessibility/references/patterns.md +0 -670
- package/shared/skills/accessibility/references/violations.md +0 -419
- package/shared/skills/agent-teams/SKILL.md +0 -124
- package/shared/skills/agent-teams/references/cleanup.md +0 -104
- package/shared/skills/agent-teams/references/communication.md +0 -122
- package/shared/skills/agent-teams/references/team-patterns.md +0 -217
- package/shared/skills/ambient-router/SKILL.md +0 -145
- package/shared/skills/ambient-router/references/skill-catalog.md +0 -74
- package/shared/skills/architecture-patterns/SKILL.md +0 -153
- package/shared/skills/architecture-patterns/references/detection.md +0 -337
- package/shared/skills/architecture-patterns/references/patterns.md +0 -873
- package/shared/skills/architecture-patterns/references/violations.md +0 -575
- package/shared/skills/complexity-patterns/SKILL.md +0 -143
- package/shared/skills/complexity-patterns/references/detection.md +0 -264
- package/shared/skills/complexity-patterns/references/patterns.md +0 -487
- package/shared/skills/complexity-patterns/references/violations.md +0 -361
- package/shared/skills/consistency-patterns/SKILL.md +0 -140
- package/shared/skills/consistency-patterns/references/detection.md +0 -207
- package/shared/skills/consistency-patterns/references/patterns.md +0 -202
- package/shared/skills/consistency-patterns/references/violations.md +0 -213
- package/shared/skills/core-patterns/SKILL.md +0 -162
- package/shared/skills/core-patterns/references/checklist.md +0 -276
- package/shared/skills/core-patterns/references/code-smell-violations.md +0 -144
- package/shared/skills/core-patterns/references/detection.md +0 -303
- package/shared/skills/core-patterns/references/patterns.md +0 -576
- package/shared/skills/core-patterns/references/violations.md +0 -369
- package/shared/skills/database-patterns/SKILL.md +0 -134
- package/shared/skills/database-patterns/references/detection.md +0 -208
- package/shared/skills/database-patterns/references/patterns.md +0 -394
- package/shared/skills/database-patterns/references/violations.md +0 -332
- package/shared/skills/debug-orchestration/SKILL.md +0 -69
- package/shared/skills/dependencies-patterns/SKILL.md +0 -141
- package/shared/skills/dependencies-patterns/references/detection.md +0 -181
- package/shared/skills/dependencies-patterns/references/patterns.md +0 -225
- package/shared/skills/dependencies-patterns/references/violations.md +0 -247
- package/shared/skills/docs-framework/SKILL.md +0 -143
- package/shared/skills/docs-framework/references/patterns.md +0 -346
- package/shared/skills/docs-framework/references/violations.md +0 -221
- package/shared/skills/documentation-patterns/SKILL.md +0 -125
- package/shared/skills/documentation-patterns/references/detection.md +0 -190
- package/shared/skills/documentation-patterns/references/patterns.md +0 -189
- package/shared/skills/documentation-patterns/references/violations.md +0 -163
- package/shared/skills/frontend-design/SKILL.md +0 -254
- package/shared/skills/frontend-design/references/detection.md +0 -184
- package/shared/skills/frontend-design/references/patterns.md +0 -511
- package/shared/skills/frontend-design/references/violations.md +0 -453
- package/shared/skills/git-safety/SKILL.md +0 -122
- package/shared/skills/git-safety/references/detection.md +0 -290
- package/shared/skills/git-safety/references/patterns.md +0 -289
- package/shared/skills/git-safety/references/violations.md +0 -18
- package/shared/skills/git-workflow/SKILL.md +0 -158
- package/shared/skills/git-workflow/references/commit-patterns.md +0 -115
- package/shared/skills/git-workflow/references/commit-violations.md +0 -77
- package/shared/skills/git-workflow/references/pr-patterns.md +0 -127
- package/shared/skills/git-workflow/references/pr-violations.md +0 -96
- package/shared/skills/github-patterns/SKILL.md +0 -153
- package/shared/skills/github-patterns/references/patterns.md +0 -572
- package/shared/skills/github-patterns/references/violations.md +0 -298
- package/shared/skills/go/SKILL.md +0 -187
- package/shared/skills/go/references/concurrency.md +0 -312
- package/shared/skills/go/references/detection.md +0 -129
- package/shared/skills/go/references/patterns.md +0 -232
- package/shared/skills/go/references/violations.md +0 -205
- package/shared/skills/implementation-orchestration/SKILL.md +0 -92
- package/shared/skills/implementation-patterns/SKILL.md +0 -162
- package/shared/skills/implementation-patterns/references/patterns.md +0 -1063
- package/shared/skills/implementation-patterns/references/violations.md +0 -483
- package/shared/skills/input-validation/SKILL.md +0 -148
- package/shared/skills/input-validation/references/detection.md +0 -283
- package/shared/skills/input-validation/references/patterns.md +0 -361
- package/shared/skills/input-validation/references/violations.md +0 -224
- package/shared/skills/java/SKILL.md +0 -183
- package/shared/skills/java/references/detection.md +0 -120
- package/shared/skills/java/references/modern-java.md +0 -270
- package/shared/skills/java/references/patterns.md +0 -235
- package/shared/skills/java/references/violations.md +0 -213
- package/shared/skills/knowledge-persistence/SKILL.md +0 -128
- package/shared/skills/knowledge-persistence/references/examples.md +0 -44
- package/shared/skills/performance-patterns/SKILL.md +0 -154
- package/shared/skills/performance-patterns/references/detection.md +0 -351
- package/shared/skills/performance-patterns/references/patterns.md +0 -503
- package/shared/skills/performance-patterns/references/violations.md +0 -354
- package/shared/skills/plan-orchestration/SKILL.md +0 -71
- package/shared/skills/python/SKILL.md +0 -188
- package/shared/skills/python/references/async.md +0 -220
- package/shared/skills/python/references/detection.md +0 -128
- package/shared/skills/python/references/patterns.md +0 -226
- package/shared/skills/python/references/violations.md +0 -204
- package/shared/skills/react/SKILL.md +0 -276
- package/shared/skills/react/references/patterns.md +0 -1331
- package/shared/skills/react/references/violations.md +0 -565
- package/shared/skills/regression-patterns/SKILL.md +0 -146
- package/shared/skills/regression-patterns/references/detection.md +0 -237
- package/shared/skills/regression-patterns/references/patterns.md +0 -226
- package/shared/skills/regression-patterns/references/violations.md +0 -225
- package/shared/skills/review-methodology/SKILL.md +0 -119
- package/shared/skills/review-methodology/references/patterns.md +0 -186
- package/shared/skills/review-methodology/references/report-template.md +0 -142
- package/shared/skills/review-methodology/references/violations.md +0 -125
- package/shared/skills/rust/SKILL.md +0 -193
- package/shared/skills/rust/references/detection.md +0 -131
- package/shared/skills/rust/references/ownership.md +0 -242
- package/shared/skills/rust/references/patterns.md +0 -210
- package/shared/skills/rust/references/violations.md +0 -191
- package/shared/skills/search-first/SKILL.md +0 -133
- package/shared/skills/search-first/references/evaluation-criteria.md +0 -101
- package/shared/skills/security-patterns/SKILL.md +0 -156
- package/shared/skills/security-patterns/references/detection.md +0 -287
- package/shared/skills/security-patterns/references/patterns.md +0 -507
- package/shared/skills/security-patterns/references/violations.md +0 -237
- package/shared/skills/self-review/SKILL.md +0 -149
- package/shared/skills/self-review/references/patterns.md +0 -405
- package/shared/skills/self-review/references/report-template.md +0 -253
- package/shared/skills/self-review/references/stub-detection.md +0 -135
- package/shared/skills/self-review/references/violations.md +0 -308
- package/shared/skills/test-driven-development/SKILL.md +0 -137
- package/shared/skills/test-driven-development/references/rationalization-prevention.md +0 -111
- package/shared/skills/test-patterns/SKILL.md +0 -183
- package/shared/skills/test-patterns/references/detection.md +0 -149
- package/shared/skills/test-patterns/references/patterns.md +0 -220
- package/shared/skills/test-patterns/references/report-template.md +0 -108
- package/shared/skills/test-patterns/references/violations.md +0 -221
- package/shared/skills/typescript/SKILL.md +0 -176
- package/shared/skills/typescript/references/patterns.md +0 -1105
- package/shared/skills/typescript/references/violations.md +0 -433
- package/src/templates/claudeignore.template +0 -188
- package/src/templates/settings.json +0 -59
- /package/dist/{utils → core}/safe-delete.js +0 -0
- /package/{plugins/devflow-accessibility → src/assets}/skills/accessibility/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/architecture-patterns → src/assets/skills/architecture}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/complexity-patterns → src/assets/skills/complexity}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/complexity-patterns → src/assets/skills/complexity}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/complexity-patterns → src/assets/skills/complexity}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/consistency-patterns → src/assets/skills/consistency}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/consistency-patterns → src/assets/skills/consistency}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/consistency-patterns → src/assets/skills/consistency}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/database-patterns → src/assets/skills/database}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/database-patterns → src/assets/skills/database}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/database-patterns → src/assets/skills/database}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/dependencies-patterns → src/assets/skills/dependencies}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/dependencies-patterns → src/assets/skills/dependencies}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/dependencies-patterns → src/assets/skills/dependencies}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/documentation-patterns → src/assets/skills/documentation}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/documentation-patterns → src/assets/skills/documentation}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/documentation-patterns → src/assets/skills/documentation}/references/violations.md +0 -0
- /package/{plugins/devflow-core-skills/skills/git-safety → src/assets/skills/git}/references/detection.md +0 -0
- /package/{plugins/devflow-go → src/assets}/skills/go/references/detection.md +0 -0
- /package/{plugins/devflow-java → src/assets}/skills/java/references/detection.md +0 -0
- /package/{plugins/devflow-implement/skills/implementation-patterns → src/assets/skills/patterns}/references/patterns.md +0 -0
- /package/{plugins/devflow-implement/skills/implementation-patterns → src/assets/skills/patterns}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/performance-patterns → src/assets/skills/performance}/references/detection.md +0 -0
- /package/{plugins/devflow-python → src/assets}/skills/python/references/detection.md +0 -0
- /package/{plugins/devflow-implement/skills/self-review → src/assets/skills/quality-gates}/references/patterns.md +0 -0
- /package/{plugins/devflow-implement/skills/self-review → src/assets/skills/quality-gates}/references/report-template.md +0 -0
- /package/{plugins/devflow-implement/skills/self-review → src/assets/skills/quality-gates}/references/violations.md +0 -0
- /package/{plugins/devflow-code-review/skills/regression-patterns → src/assets/skills/regression}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/regression-patterns → src/assets/skills/regression}/references/patterns.md +0 -0
- /package/{plugins/devflow-code-review/skills/regression-patterns → src/assets/skills/regression}/references/violations.md +0 -0
- /package/{plugins/devflow-rust → src/assets}/skills/rust/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/security-patterns → src/assets/skills/security}/references/detection.md +0 -0
- /package/{plugins/devflow-core-skills/skills/core-patterns → src/assets/skills/software-design}/references/detection.md +0 -0
- /package/{plugins/devflow-core-skills → src/assets}/skills/test-driven-development/references/rationalization-prevention.md +0 -0
- /package/{plugins/devflow-code-review/skills/test-patterns → src/assets/skills/testing}/references/detection.md +0 -0
- /package/{plugins/devflow-code-review/skills/test-patterns → src/assets/skills/testing}/references/report-template.md +0 -0
- /package/{plugins/devflow-frontend-design/skills/frontend-design → src/assets/skills/ui-design}/references/detection.md +0 -0
- /package/src/{templates → targets/claude-code/templates}/managed-settings.json +0 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# Python Violation Examples
|
|
2
|
+
|
|
3
|
+
Extended violation patterns for Python reviews. Reference from main SKILL.md.
|
|
4
|
+
All citations reference `sources.md`.
|
|
5
|
+
|
|
6
|
+
## Type Safety Violations
|
|
7
|
+
|
|
8
|
+
### Missing Type Hints [4][17][18]
|
|
9
|
+
|
|
10
|
+
PEP 484 made type hints standard in 2014; unannotated public APIs are a code smell [4].
|
|
11
|
+
Dropbox's 4-million-line migration showed that annotations catch bugs before runtime [18]:
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
# VIOLATION: No type annotations [4]
|
|
15
|
+
def process(data, config):
|
|
16
|
+
result = transform(data)
|
|
17
|
+
return result
|
|
18
|
+
|
|
19
|
+
# VIOLATION: Partial annotations (inconsistent) [4]
|
|
20
|
+
def save(user: User, db): # db missing type
|
|
21
|
+
return db.insert(user)
|
|
22
|
+
|
|
23
|
+
# VIOLATION: Missing return type [17]
|
|
24
|
+
def calculate_total(items: list[Item]):
|
|
25
|
+
return sum(item.price for item in items)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Bare Except Clauses [2][8]
|
|
29
|
+
|
|
30
|
+
Google Style Guide prohibits bare `except:` — it catches `SystemExit` and
|
|
31
|
+
`KeyboardInterrupt`, preventing clean shutdown [8]. Slatkin's Item 87 recommends
|
|
32
|
+
specific exception types [2]:
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
# VIOLATION: Catches everything including SystemExit and KeyboardInterrupt [8]
|
|
36
|
+
try:
|
|
37
|
+
process_data()
|
|
38
|
+
except:
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
# VIOLATION: Catches too broadly and silences [2]
|
|
42
|
+
try:
|
|
43
|
+
user = fetch_user(user_id)
|
|
44
|
+
except Exception:
|
|
45
|
+
user = None # Hides real errors (network, auth, parsing)
|
|
46
|
+
|
|
47
|
+
# VIOLATION: Bare except with logging but no re-raise [8]
|
|
48
|
+
try:
|
|
49
|
+
critical_operation()
|
|
50
|
+
except:
|
|
51
|
+
logger.error("Something failed")
|
|
52
|
+
# Swallows the error — caller never knows
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Data Modeling Violations
|
|
56
|
+
|
|
57
|
+
### Raw Dicts Instead of Dataclasses [6][14][19]
|
|
58
|
+
|
|
59
|
+
PEP 557 dataclasses add typed fields and IDE support at zero runtime cost [6].
|
|
60
|
+
Viafore argues raw dicts make wrong code look right — type system cannot catch
|
|
61
|
+
misspelled keys or incorrect value types [14]. Spolsky's principle: make wrong code
|
|
62
|
+
look wrong [19]:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
# VIOLATION: Untyped dict — no IDE support, no validation [14][19]
|
|
66
|
+
user = {
|
|
67
|
+
"name": "Alice",
|
|
68
|
+
"email": "alice@example.com",
|
|
69
|
+
"age": 30,
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
# VIOLATION: Accessing dict keys without safety [19]
|
|
73
|
+
def get_display_name(user: dict) -> str:
|
|
74
|
+
return f"{user['first_name']} {user['last_name']}" # KeyError risk
|
|
75
|
+
|
|
76
|
+
# VIOLATION: Nested untyped dicts [14]
|
|
77
|
+
config = {
|
|
78
|
+
"database": {
|
|
79
|
+
"host": "localhost",
|
|
80
|
+
"port": 5432,
|
|
81
|
+
},
|
|
82
|
+
"cache": {
|
|
83
|
+
"ttl": 300,
|
|
84
|
+
},
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Mutable Default Arguments [2][3]
|
|
89
|
+
|
|
90
|
+
Slatkin's Item 24: never use mutable values as default arguments [2].
|
|
91
|
+
PEP 20's "Explicit is better than implicit" applies — the shared-state behavior is
|
|
92
|
+
invisible to callers [3]:
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
# VIOLATION: Mutable default shared across calls [2]
|
|
96
|
+
def add_item(item: str, items: list[str] = []) -> list[str]:
|
|
97
|
+
items.append(item)
|
|
98
|
+
return items
|
|
99
|
+
|
|
100
|
+
# VIOLATION: Dict default mutated in place [2]
|
|
101
|
+
def register(name: str, registry: dict[str, bool] = {}) -> None:
|
|
102
|
+
registry[name] = True
|
|
103
|
+
|
|
104
|
+
# VIOLATION: Set default [2]
|
|
105
|
+
def collect(value: int, seen: set[int] = set()) -> set[int]:
|
|
106
|
+
seen.add(value)
|
|
107
|
+
return seen
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## String Formatting Violations
|
|
111
|
+
|
|
112
|
+
### Percent Formatting [8][2]
|
|
113
|
+
|
|
114
|
+
Google Style Guide and Slatkin both require f-strings (Python 3.6+) over
|
|
115
|
+
`%` or `.format()` [8][2]:
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
# VIOLATION: Old-style % formatting [8]
|
|
119
|
+
message = "Hello %s, you have %d messages" % (name, count)
|
|
120
|
+
|
|
121
|
+
# VIOLATION: % formatting with dict — hard to read, error-prone [8]
|
|
122
|
+
log = "%(timestamp)s - %(level)s - %(message)s" % log_data
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### String Concatenation in Loops [2][10]
|
|
126
|
+
|
|
127
|
+
Slatkin Item 11 and Beazley & Jones both flag O(n²) string concatenation [2][10]:
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
# VIOLATION: O(n^2) string building [2]
|
|
131
|
+
result = ""
|
|
132
|
+
for line in lines:
|
|
133
|
+
result += line + "\n"
|
|
134
|
+
|
|
135
|
+
# CORRECT: Use join [2]
|
|
136
|
+
result = "\n".join(lines)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Global State Violations
|
|
140
|
+
|
|
141
|
+
### Module-Level Mutable State [9][3]
|
|
142
|
+
|
|
143
|
+
Cosmic Python's service layer design eliminates global mutable state — side effects
|
|
144
|
+
are in explicit service functions, not module-level variables [9]. PEP 20: "Explicit
|
|
145
|
+
is better than implicit" [3]:
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
# VIOLATION: Global mutable state [9]
|
|
149
|
+
_cache = {}
|
|
150
|
+
_connections = []
|
|
151
|
+
|
|
152
|
+
def get_cached(key: str) -> Any:
|
|
153
|
+
return _cache.get(key)
|
|
154
|
+
|
|
155
|
+
def add_connection(conn: Connection) -> None:
|
|
156
|
+
_connections.append(conn)
|
|
157
|
+
|
|
158
|
+
# VIOLATION: Global variable modified by functions [9]
|
|
159
|
+
current_user = None
|
|
160
|
+
|
|
161
|
+
def login(username: str) -> None:
|
|
162
|
+
global current_user
|
|
163
|
+
current_user = authenticate(username)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Singleton via Module Import [9][13]
|
|
167
|
+
|
|
168
|
+
Cosmic Python shows this pattern makes testing impossible — the module-level object
|
|
169
|
+
cannot be swapped for a test double [9][13]:
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
# VIOLATION: Hard-to-test singleton [9]
|
|
173
|
+
# db.py
|
|
174
|
+
connection = create_connection(os.environ["DATABASE_URL"])
|
|
175
|
+
|
|
176
|
+
# service.py
|
|
177
|
+
from db import connection # Cannot mock or swap for tests [13]
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Import Violations
|
|
181
|
+
|
|
182
|
+
### Wildcard Imports [8][3]
|
|
183
|
+
|
|
184
|
+
Google Style Guide prohibits `import *` — it pollutes the namespace and hides
|
|
185
|
+
dependencies [8]. PEP 20: "Explicit is better than implicit" [3]:
|
|
186
|
+
|
|
187
|
+
```python
|
|
188
|
+
# VIOLATION: Pollutes namespace, hides dependencies [8]
|
|
189
|
+
from os.path import *
|
|
190
|
+
from utils import *
|
|
191
|
+
|
|
192
|
+
# VIOLATION: Star import in __init__.py [8]
|
|
193
|
+
# mypackage/__init__.py
|
|
194
|
+
from .models import *
|
|
195
|
+
from .services import *
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Circular Imports [9][8]
|
|
199
|
+
|
|
200
|
+
Cosmic Python's layered architecture (domain → adapters → service layer) prevents
|
|
201
|
+
circular imports by enforcing one-way dependency flow [9]:
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
# VIOLATION: Circular dependency [9]
|
|
205
|
+
# models.py
|
|
206
|
+
from services import UserService # services imports models too
|
|
207
|
+
|
|
208
|
+
# services.py
|
|
209
|
+
from models import User # Circular!
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Testing Violations
|
|
213
|
+
|
|
214
|
+
### Assert in Production Code [2][13]
|
|
215
|
+
|
|
216
|
+
Slatkin Item 88: `assert` is disabled with Python `-O` flag — use explicit checks
|
|
217
|
+
with proper exceptions instead [2]:
|
|
218
|
+
|
|
219
|
+
```python
|
|
220
|
+
# VIOLATION: assert is stripped with -O flag [2]
|
|
221
|
+
def withdraw(account: Account, amount: float) -> None:
|
|
222
|
+
assert amount > 0, "Amount must be positive" # Disabled in production!
|
|
223
|
+
assert account.balance >= amount, "Insufficient funds"
|
|
224
|
+
account.balance -= amount
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### No pytest Fixtures [13][9]
|
|
228
|
+
|
|
229
|
+
pytest fixture composition avoids repeated setup — Cosmic Python's test patterns
|
|
230
|
+
show service fixtures built from smaller, reusable parts [13][9]:
|
|
231
|
+
|
|
232
|
+
```python
|
|
233
|
+
# VIOLATION: Repeated setup in every test [13]
|
|
234
|
+
def test_create_user():
|
|
235
|
+
db = Database(":memory:")
|
|
236
|
+
db.create_tables()
|
|
237
|
+
service = UserService(db)
|
|
238
|
+
# ... test logic
|
|
239
|
+
|
|
240
|
+
def test_update_user():
|
|
241
|
+
db = Database(":memory:") # Duplicated setup [13]
|
|
242
|
+
db.create_tables()
|
|
243
|
+
service = UserService(db)
|
|
244
|
+
# ... test logic
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Protocol Violations
|
|
248
|
+
|
|
249
|
+
### ABC Where Protocol Suffices [5][1][14]
|
|
250
|
+
|
|
251
|
+
PEP 544 Protocols provide structural subtyping without coupling the implementor
|
|
252
|
+
to the interface module [5]. Ramalho calls ABC-based designs "nominal typing" that
|
|
253
|
+
creates unnecessary coupling [1]:
|
|
254
|
+
|
|
255
|
+
```python
|
|
256
|
+
# VIOLATION: Forces third-party class to inherit from your ABC [1]
|
|
257
|
+
from abc import ABC, abstractmethod
|
|
258
|
+
|
|
259
|
+
class Serializable(ABC):
|
|
260
|
+
@abstractmethod
|
|
261
|
+
def to_dict(self) -> dict: ...
|
|
262
|
+
|
|
263
|
+
# Pydantic models can't be passed without subclassing — breaks duck typing
|
|
264
|
+
|
|
265
|
+
# CORRECT: Protocol — any class with to_dict() works [5]
|
|
266
|
+
from typing import Protocol
|
|
267
|
+
|
|
268
|
+
class Serializable(Protocol):
|
|
269
|
+
def to_dict(self) -> dict: ...
|
|
270
|
+
|
|
271
|
+
# Pydantic models, dataclasses, any class with to_dict() works automatically
|
|
272
|
+
```
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa
|
|
3
|
+
description: This skill should be used when performing scenario-based acceptance testing,
|
|
4
|
+
designing QA test plans, or validating that implementation behavior matches acceptance
|
|
5
|
+
criteria beyond unit tests.
|
|
6
|
+
user-invocable: false
|
|
7
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# QA Patterns
|
|
11
|
+
|
|
12
|
+
Scenario-based acceptance testing methodology. Ensures implementations satisfy user-observable requirements beyond what unit tests cover.
|
|
13
|
+
|
|
14
|
+
## Iron Law
|
|
15
|
+
|
|
16
|
+
> **VERIFY BEHAVIOR FROM THE USER'S PERSPECTIVE** [1][2]
|
|
17
|
+
>
|
|
18
|
+
> Test what the user asked for, not implementation details. Every acceptance criterion
|
|
19
|
+
> gets at least one scenario. Every scenario produces observable evidence. If you can't
|
|
20
|
+
> demonstrate it works from the outside, it doesn't work. [3][8]
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Scenario Types [1][2][6]
|
|
25
|
+
|
|
26
|
+
Five categories ensure comprehensive coverage:
|
|
27
|
+
|
|
28
|
+
| Type | Purpose | Example |
|
|
29
|
+
|------|---------|---------|
|
|
30
|
+
| **Happy path** | Core functionality works as described | "Add item → item appears in list" |
|
|
31
|
+
| **Boundary/edge** | Limits, empty, maximum, minimum values | "Add item with 1000-char name → truncated or rejected" |
|
|
32
|
+
| **Negative path** | Invalid inputs, missing permissions, errors | "Add item without auth → 401 returned" |
|
|
33
|
+
| **Integration** | Components work together correctly | "Add item → appears in search results" |
|
|
34
|
+
| **Regression** | Existing behavior preserved after changes | "Old items still load after schema migration" |
|
|
35
|
+
|
|
36
|
+
**Minimum coverage**: At least one scenario per acceptance criterion. At least one boundary and one negative scenario per feature. [1][6]
|
|
37
|
+
|
|
38
|
+
## Scenario Design from Acceptance Criteria [4][8][9]
|
|
39
|
+
|
|
40
|
+
Extract testable claims using Given/When/Then:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Acceptance criterion: "Users can upload files up to 10MB"
|
|
44
|
+
|
|
45
|
+
S1 (happy): Given auth user, When upload 5MB file, Then 200 + file accessible
|
|
46
|
+
S2 (boundary): Given auth user, When upload 10MB file, Then 200 (exact limit)
|
|
47
|
+
S3 (boundary): Given auth user, When upload 10.1MB file, Then 413 rejected
|
|
48
|
+
S4 (negative): Given no auth, When upload 5MB file, Then 401
|
|
49
|
+
S5 (negative): Given auth user, When upload empty file, Then 400
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Extracting criteria** [4]: If no explicit acceptance criteria, derive from the request:
|
|
53
|
+
1. What new behavior was requested? → happy path scenarios
|
|
54
|
+
2. What inputs does it accept? → boundary scenarios [7][10]
|
|
55
|
+
3. What should it reject? → negative scenarios
|
|
56
|
+
4. What existing behavior must survive? → regression scenarios
|
|
57
|
+
|
|
58
|
+
## Equivalence Partitioning & Boundary Analysis [1][6][7]
|
|
59
|
+
|
|
60
|
+
Reduce infinite inputs to representative cases:
|
|
61
|
+
|
|
62
|
+
- **Valid partition**: One representative value from each valid class
|
|
63
|
+
- **Invalid partition**: One representative from each invalid class
|
|
64
|
+
- **Boundary values**: On, just below, just above each boundary [10]
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Input: age (integer, 0-120 allowed)
|
|
68
|
+
├── Valid: 25 (mid-range), 0 (minimum), 120 (maximum)
|
|
69
|
+
├── Invalid: -1 (below min), 121 (above max), "abc" (wrong type)
|
|
70
|
+
└── Boundary: 0, 1, 119, 120
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Exploratory Testing Heuristics [2][3][11]
|
|
74
|
+
|
|
75
|
+
When acceptance criteria are vague, use structured exploration:
|
|
76
|
+
|
|
77
|
+
- **CRUD tour** [11]: Create, Read, Update, Delete — does each operation work end-to-end?
|
|
78
|
+
- **Configuration tour** [11]: Change every configurable value — does the system adapt?
|
|
79
|
+
- **Error tour** [3]: Force every error path — are messages helpful, is state clean?
|
|
80
|
+
- **Boundary tour** [3][11]: Push every input to its limits
|
|
81
|
+
|
|
82
|
+
## Evidence Collection
|
|
83
|
+
|
|
84
|
+
Every scenario must produce verifiable evidence:
|
|
85
|
+
|
|
86
|
+
| Evidence Type | How to Capture | When to Use |
|
|
87
|
+
|--------------|----------------|-------------|
|
|
88
|
+
| Exit codes | `echo $?` after command | CLI tools, scripts |
|
|
89
|
+
| Stdout/stderr | Redirect to capture | All command execution |
|
|
90
|
+
| File state | `ls -la`, `diff`, `cat` | File creation/modification |
|
|
91
|
+
| HTTP status | Response code from curl/fetch | API endpoints |
|
|
92
|
+
| Log output | Grep logs after action | Background processes |
|
|
93
|
+
|
|
94
|
+
## Browser-Based Scenarios [8][12]
|
|
95
|
+
|
|
96
|
+
When implementation includes web-facing changes (.tsx, .jsx, .html, routes, pages):
|
|
97
|
+
|
|
98
|
+
| Scenario Type | Browser Action | Evidence |
|
|
99
|
+
|--------------|---------------|----------|
|
|
100
|
+
| Page renders | Navigate → read page text | Page content, no console errors |
|
|
101
|
+
| Form works | Find fields → input → submit | Redirect or DOM state change |
|
|
102
|
+
| Validation fires | Input invalid data → check | Error messages visible in page |
|
|
103
|
+
| Console clean | Navigate → read console | No errors/warnings logged |
|
|
104
|
+
| Navigation works | Click links → verify URL change | Correct page loaded |
|
|
105
|
+
|
|
106
|
+
**Dev server lifecycle**: Check for running server first. If none, auto-start from package.json scripts, poll for readiness, kill after testing. Never kill pre-existing servers.
|
|
107
|
+
**Testability assessment**: Before designing scenarios, assess what local infrastructure is available (DB, Redis, external APIs). Mark scenarios requiring unavailable infrastructure as SKIPPED.
|
|
108
|
+
**Graceful degradation**: If browser tools or dev server unavailable, fall back to curl/API testing. Always report what was skipped and why alongside what was tested.
|
|
109
|
+
|
|
110
|
+
## Severity Classification
|
|
111
|
+
|
|
112
|
+
| Level | Meaning | Action |
|
|
113
|
+
|-------|---------|--------|
|
|
114
|
+
| **BLOCKING** | Acceptance criterion violated — feature does not work as requested | Report FAIL — Code agent must fix |
|
|
115
|
+
| **WARNING** | Edge case concern — feature works but edge behavior is unexpected | Report PASS with warnings — note for improvement |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Extended References
|
|
120
|
+
|
|
121
|
+
For additional scenario templates and anti-patterns:
|
|
122
|
+
- `references/sources.md` — Full bibliography with access details
|
|
123
|
+
- `references/patterns.md` — Correct scenario design patterns
|
|
124
|
+
- `references/violations.md` — QA anti-patterns to avoid
|
|
125
|
+
- `references/scenario-templates.md` — Templates for common feature types
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Success Criteria
|
|
130
|
+
|
|
131
|
+
- [ ] Every acceptance criterion has at least one scenario
|
|
132
|
+
- [ ] At least one boundary and one negative scenario per feature
|
|
133
|
+
- [ ] Every scenario has Given/When/Then structure
|
|
134
|
+
- [ ] Every result has captured evidence (stdout, exit code, file state)
|
|
135
|
+
- [ ] Severity correctly assigned: BLOCKING for criteria violations, WARNING for edge cases
|
|
136
|
+
- [ ] Non-testable changes (docs, config) correctly identified and skipped
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Browser Testing Procedures
|
|
2
|
+
|
|
3
|
+
Detailed procedures for dev server lifecycle and browser scenario execution in QA.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Dev Server Lifecycle
|
|
8
|
+
|
|
9
|
+
When web-facing changes detected, manage a dev server for browser testing:
|
|
10
|
+
|
|
11
|
+
### 1. Check for Already Running Server
|
|
12
|
+
|
|
13
|
+
Before starting anything, check if a dev server is already running:
|
|
14
|
+
- `lsof -i :3000 -i :5173 -i :8080 -i :4200 -i :8000 -t 2>/dev/null`
|
|
15
|
+
- If a server is already running on the expected port: USE IT (do not start another)
|
|
16
|
+
- Record whether server was pre-existing (skip cleanup if so)
|
|
17
|
+
|
|
18
|
+
### 2. Discover Server Command (if no running server)
|
|
19
|
+
|
|
20
|
+
Read `package.json` (or equivalent) to find the dev server command:
|
|
21
|
+
- Check `scripts.dev`, `scripts.start`, `scripts.serve` (in that order)
|
|
22
|
+
- For Python: look for `manage.py`, Flask/FastAPI entry points
|
|
23
|
+
- For Go: check `Makefile` or `go run` targets
|
|
24
|
+
- If no dev script found: skip browser scenarios, report "No dev server script — browser scenarios skipped"
|
|
25
|
+
|
|
26
|
+
### 3. Detect Port
|
|
27
|
+
|
|
28
|
+
Determine port from (in order):
|
|
29
|
+
- Framework config: `vite.config.ts` (server.port), `next.config.js`
|
|
30
|
+
- `.env` file: extract only `PORT` — `grep ^PORT= .env | cut -d= -f2` (do NOT read entire .env)
|
|
31
|
+
- Script definition: parse `--port` flags in the dev script
|
|
32
|
+
- Defaults by framework: Next.js→3000, Vite→5173, CRA→3000, Django→8000, Go→8080
|
|
33
|
+
|
|
34
|
+
### 4. Start Server (if not already running)
|
|
35
|
+
|
|
36
|
+
- Create a unique log file: `SERVER_LOG=$(mktemp /tmp/devflow-tester-XXXXXX.log)`
|
|
37
|
+
- Run in background: `npm run dev > "$SERVER_LOG" 2>&1 &`
|
|
38
|
+
- Record PID: `DEV_SERVER_PID=$!`
|
|
39
|
+
- Poll for readiness: `curl -s -o /dev/null -w "%{http_code}" http://localhost:{port}/`
|
|
40
|
+
- Retry up to 15 times, 2s intervals (30s max)
|
|
41
|
+
- If timeout: kill server, skip browser scenarios, report "Dev server did not become ready within 30s"
|
|
42
|
+
|
|
43
|
+
### 5. Run Browser Scenarios
|
|
44
|
+
|
|
45
|
+
(See Browser Execution section below)
|
|
46
|
+
|
|
47
|
+
### 6. Cleanup (only for servers WE started)
|
|
48
|
+
|
|
49
|
+
- Kill dev server: `kill $DEV_SERVER_PID 2>/dev/null`
|
|
50
|
+
- Kill process group: `kill -- -$DEV_SERVER_PID 2>/dev/null || true`
|
|
51
|
+
- Remove log file: `rm -f "$SERVER_LOG"`
|
|
52
|
+
- NEVER kill a pre-existing server
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Browser Execution
|
|
57
|
+
|
|
58
|
+
Requires: Chrome MCP tools available + dev server running.
|
|
59
|
+
|
|
60
|
+
1. Check Chrome availability: attempt `mcp__claude-in-chrome__tabs_context_mcp`
|
|
61
|
+
- If unavailable: skip browser scenarios, note "Chrome MCP tools not available"
|
|
62
|
+
- If available: create a new tab with `mcp__claude-in-chrome__tabs_create_mcp`
|
|
63
|
+
|
|
64
|
+
2. For each browser scenario:
|
|
65
|
+
a. Navigate: `mcp__claude-in-chrome__navigate` to the relevant page
|
|
66
|
+
b. Read content: `mcp__claude-in-chrome__get_page_text` or `mcp__claude-in-chrome__read_page`
|
|
67
|
+
c. Find elements: `mcp__claude-in-chrome__find` for buttons, forms, text
|
|
68
|
+
d. Interact: `mcp__claude-in-chrome__form_input` for form fields
|
|
69
|
+
e. Assert via JS: `mcp__claude-in-chrome__javascript_tool` for state checks
|
|
70
|
+
f. Check console: `mcp__claude-in-chrome__read_console_messages` for errors
|
|
71
|
+
g. Record evidence from each step
|
|
72
|
+
|
|
73
|
+
3. After all browser scenarios: close the tab created in step 1
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Bash Execution Constraints
|
|
78
|
+
|
|
79
|
+
When executing scenarios via Bash, these constraints are mandatory:
|
|
80
|
+
|
|
81
|
+
**NEVER execute:**
|
|
82
|
+
- Destructive filesystem commands: `rm -rf`, `rmdir`, `truncate`, `shred`
|
|
83
|
+
- Privilege escalation: `sudo`, `su`, `chown`, `chmod` on system directories
|
|
84
|
+
- Code injection vectors: `eval`, `exec`, shell substitution on untrusted input
|
|
85
|
+
- Package management: `npm install -g`, `pip install`, `brew install`, `apt-get`
|
|
86
|
+
- Network exfiltration: outbound curl/wget to external hosts not under test
|
|
87
|
+
|
|
88
|
+
**ONLY run:**
|
|
89
|
+
- Test runners: `npm test`, `pytest`, `go test`, `cargo test`, `jest`, `mocha`
|
|
90
|
+
- Build commands: `npm run build`, `go build`, `cargo build`
|
|
91
|
+
- Read-only file inspection: `cat`, `ls`, `diff`, `head`, `tail`, `grep`
|
|
92
|
+
- Readiness checks: `curl` to `localhost` only, `lsof`, `pg_isready`, `redis-cli ping`
|
|
93
|
+
- Process management for servers WE started: `kill $DEV_SERVER_PID`
|
|
94
|
+
|
|
95
|
+
**Filesystem writes restricted to:**
|
|
96
|
+
- Temporary files created via `mktemp` in `/tmp/devflow-tester-*`
|
|
97
|
+
- Project test directories (e.g., `__tests__/fixtures/`, `test/data/`)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# QA Skill — Correct Patterns
|
|
2
|
+
|
|
3
|
+
Scenario design patterns that produce reliable, maintainable acceptance tests.
|
|
4
|
+
|
|
5
|
+
## Pattern 1: Criterion-Driven Scenario Design [4][9]
|
|
6
|
+
|
|
7
|
+
Derive scenarios directly from acceptance criteria using Given/When/Then:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Criterion: "Admin users can delete any comment"
|
|
11
|
+
|
|
12
|
+
S1 (happy): Given admin user + existing comment
|
|
13
|
+
When DELETE /comments/{id}
|
|
14
|
+
Then 200 + comment removed from database
|
|
15
|
+
|
|
16
|
+
S2 (negative): Given regular user + existing comment
|
|
17
|
+
When DELETE /comments/{id}
|
|
18
|
+
Then 403 + comment still exists
|
|
19
|
+
|
|
20
|
+
S3 (negative): Given admin user + non-existent comment
|
|
21
|
+
When DELETE /comments/{id}
|
|
22
|
+
Then 404
|
|
23
|
+
|
|
24
|
+
S4 (boundary): Given admin user + already-deleted comment
|
|
25
|
+
When DELETE /comments/{id}
|
|
26
|
+
Then 404 (idempotent)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Why**: Direct criterion mapping ensures nothing is missed [4]. Every criterion generates at least one scenario.
|
|
30
|
+
|
|
31
|
+
## Pattern 2: Boundary Triplet Testing [1][6][10]
|
|
32
|
+
|
|
33
|
+
For every boundary, test three values: below, on, and above:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Constraint: "Username must be 3-20 characters"
|
|
37
|
+
|
|
38
|
+
Below minimum: "ab" (2 chars) → rejected
|
|
39
|
+
At minimum: "abc" (3 chars) → accepted
|
|
40
|
+
Above minimum: "abcd" (4 chars) → accepted
|
|
41
|
+
Below maximum: 19 chars → accepted
|
|
42
|
+
At maximum: 20 chars → accepted
|
|
43
|
+
Above maximum: 21 chars → rejected
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Why**: Most defects cluster at boundaries [1][7]. The triplet pattern catches off-by-one errors systematically.
|
|
47
|
+
|
|
48
|
+
## Pattern 3: State-Based Scenario Chains [6][7]
|
|
49
|
+
|
|
50
|
+
Test state transitions that matter to the user:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Feature: Order lifecycle
|
|
54
|
+
|
|
55
|
+
S1: Created → Paid (happy path)
|
|
56
|
+
S2: Created → Cancelled (valid transition)
|
|
57
|
+
S3: Paid → Shipped (happy path)
|
|
58
|
+
S4: Shipped → Cancelled (should this be allowed? → negative)
|
|
59
|
+
S5: Cancelled → Paid (invalid transition → error)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Why**: State machines reveal invalid transitions that happy-path testing misses [6].
|
|
63
|
+
|
|
64
|
+
## Pattern 4: Evidence-First Execution [8][12]
|
|
65
|
+
|
|
66
|
+
Capture evidence before asserting:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Execute
|
|
70
|
+
OUTPUT=$(some-command 2>&1)
|
|
71
|
+
EXIT_CODE=$?
|
|
72
|
+
|
|
73
|
+
# Evidence captured — now assert
|
|
74
|
+
echo "Exit code: $EXIT_CODE"
|
|
75
|
+
echo "Output: $OUTPUT"
|
|
76
|
+
|
|
77
|
+
# Check expectations
|
|
78
|
+
if [ $EXIT_CODE -ne 0 ]; then
|
|
79
|
+
echo "FAIL: Expected exit code 0, got $EXIT_CODE"
|
|
80
|
+
fi
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Why**: Raw evidence enables debugging when scenarios fail. Without it, you only know "it failed" but not why [8].
|
|
84
|
+
|
|
85
|
+
## Pattern 5: Regression Guard Scenarios [5][12]
|
|
86
|
+
|
|
87
|
+
After modifying existing code, verify unchanged behavior:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
Feature: New search filter added to existing search
|
|
91
|
+
|
|
92
|
+
S1 (regression): Existing search without filter still works
|
|
93
|
+
S2 (regression): Existing search results unchanged
|
|
94
|
+
S3 (happy): New filter produces expected results
|
|
95
|
+
S4 (integration): Filter + existing sort work together
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Why**: Most production bugs are regressions — features that used to work and stopped [12].
|
|
99
|
+
|
|
100
|
+
## Pattern 6: Exploratory Charters [3][11]
|
|
101
|
+
|
|
102
|
+
When criteria are vague, use structured exploration:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Charter: "Explore the file upload feature with hostile inputs"
|
|
106
|
+
Time-box: 15 minutes
|
|
107
|
+
|
|
108
|
+
Tour plan:
|
|
109
|
+
1. Upload file with special characters in name
|
|
110
|
+
2. Upload file with zero bytes
|
|
111
|
+
3. Upload file with executable extension
|
|
112
|
+
4. Simultaneous uploads of same file
|
|
113
|
+
5. Upload during network interruption (kill mid-transfer)
|
|
114
|
+
|
|
115
|
+
Record: What happened, what was surprising, what broke
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Why**: Scripted tests find expected bugs. Exploratory testing finds unexpected ones [3][11].
|