devflow-kit 0.9.0 → 1.1.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 +197 -29
- package/LICENSE +1 -1
- package/README.md +185 -309
- package/dist/cli.js +7 -1
- package/dist/commands/ambient.d.ts +18 -0
- package/dist/commands/ambient.js +136 -0
- package/dist/commands/init.d.ts +23 -0
- package/dist/commands/init.js +393 -571
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/memory.d.ts +22 -0
- package/dist/commands/memory.js +175 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.js +418 -78
- package/dist/plugins.d.ts +46 -0
- package/dist/plugins.js +169 -0
- package/dist/utils/cli.d.ts +5 -0
- package/dist/utils/cli.js +14 -0
- package/dist/utils/installer.d.ts +41 -0
- package/dist/utils/installer.js +177 -0
- package/dist/utils/paths.d.ts +10 -0
- package/dist/utils/paths.js +23 -3
- package/dist/utils/post-install.d.ts +80 -0
- package/dist/utils/post-install.js +508 -0
- package/dist/utils/safe-delete-install.d.ts +29 -0
- package/dist/utils/safe-delete-install.js +191 -0
- package/dist/utils/safe-delete.d.ts +12 -0
- package/dist/utils/safe-delete.js +83 -0
- package/package.json +18 -8
- package/plugins/devflow-ambient/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-ambient/README.md +49 -0
- package/plugins/devflow-ambient/commands/ambient.md +110 -0
- package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +89 -0
- package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +64 -0
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-audit-claude/README.md +46 -0
- package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
- package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
- package/plugins/devflow-code-review/README.md +73 -0
- package/plugins/devflow-code-review/agents/git.md +272 -0
- package/plugins/devflow-code-review/agents/reviewer.md +119 -0
- package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
- package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
- package/plugins/devflow-code-review/commands/code-review.md +141 -0
- package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
- package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
- package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
- package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
- package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
- package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
- package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
- package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
- package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
- package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
- package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
- package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
- package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +28 -0
- package/plugins/devflow-core-skills/README.md +50 -0
- package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +138 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
- package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
- package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
- package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
- package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
- package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
- package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
- package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
- package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
- package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
- package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +139 -0
- package/plugins/devflow-core-skills/skills/test-driven-development/references/rationalization-prevention.md +111 -0
- package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
- package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
- package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
- package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
- package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
- package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
- package/plugins/devflow-debug/README.md +65 -0
- package/plugins/devflow-debug/agents/git.md +272 -0
- package/plugins/devflow-debug/commands/debug-teams.md +231 -0
- package/plugins/devflow-debug/commands/debug.md +160 -0
- package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
- package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
- package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
- package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
- package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
- package/plugins/devflow-implement/README.md +71 -0
- package/plugins/devflow-implement/agents/coder.md +122 -0
- package/plugins/devflow-implement/agents/git.md +272 -0
- package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
- package/plugins/devflow-implement/agents/shepherd.md +94 -0
- package/plugins/devflow-implement/agents/simplifier.md +62 -0
- package/plugins/devflow-implement/agents/skimmer.md +88 -0
- package/plugins/devflow-implement/agents/synthesizer.md +204 -0
- package/plugins/devflow-implement/agents/validator.md +86 -0
- package/plugins/devflow-implement/commands/implement-teams.md +608 -0
- package/plugins/devflow-implement/commands/implement.md +426 -0
- package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
- package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
- package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
- package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
- package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
- package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
- package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
- package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
- package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
- package/plugins/devflow-resolve/README.md +65 -0
- package/plugins/devflow-resolve/agents/git.md +272 -0
- package/plugins/devflow-resolve/agents/resolver.md +131 -0
- package/plugins/devflow-resolve/agents/simplifier.md +62 -0
- package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
- package/plugins/devflow-resolve/commands/resolve.md +237 -0
- package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
- package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
- package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
- package/plugins/devflow-self-review/README.md +38 -0
- package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
- package/plugins/devflow-self-review/agents/simplifier.md +62 -0
- package/plugins/devflow-self-review/agents/validator.md +86 -0
- package/plugins/devflow-self-review/commands/self-review.md +126 -0
- package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
- package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
- package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
- package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
- package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
- package/plugins/devflow-specify/README.md +46 -0
- package/plugins/devflow-specify/agents/skimmer.md +88 -0
- package/plugins/devflow-specify/agents/synthesizer.md +204 -0
- package/plugins/devflow-specify/commands/specify-teams.md +314 -0
- package/plugins/devflow-specify/commands/specify.md +179 -0
- package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
- package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
- package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
- package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
- package/scripts/hooks/ambient-prompt.sh +48 -0
- package/scripts/hooks/background-memory-update.sh +208 -0
- package/scripts/hooks/ensure-memory-gitignore.sh +17 -0
- package/scripts/hooks/pre-compact-memory.sh +87 -0
- package/scripts/hooks/session-start-memory.sh +126 -0
- package/scripts/hooks/stop-update-memory.sh +85 -0
- package/shared/agents/coder.md +122 -0
- package/shared/agents/git.md +272 -0
- package/shared/agents/resolver.md +131 -0
- package/shared/agents/reviewer.md +119 -0
- package/shared/agents/scrutinizer.md +80 -0
- package/shared/agents/shepherd.md +94 -0
- package/shared/agents/simplifier.md +62 -0
- package/shared/agents/skimmer.md +88 -0
- package/shared/agents/synthesizer.md +204 -0
- package/shared/agents/validator.md +86 -0
- package/shared/skills/accessibility/SKILL.md +229 -0
- package/shared/skills/accessibility/references/detection.md +171 -0
- package/shared/skills/accessibility/references/patterns.md +670 -0
- package/shared/skills/accessibility/references/violations.md +419 -0
- package/shared/skills/agent-teams/SKILL.md +124 -0
- package/shared/skills/agent-teams/references/cleanup.md +104 -0
- package/shared/skills/agent-teams/references/communication.md +122 -0
- package/shared/skills/agent-teams/references/team-patterns.md +217 -0
- package/shared/skills/ambient-router/SKILL.md +89 -0
- package/shared/skills/ambient-router/references/skill-catalog.md +64 -0
- package/shared/skills/architecture-patterns/SKILL.md +153 -0
- package/shared/skills/architecture-patterns/references/detection.md +337 -0
- package/shared/skills/architecture-patterns/references/patterns.md +873 -0
- package/shared/skills/architecture-patterns/references/violations.md +575 -0
- package/shared/skills/complexity-patterns/SKILL.md +143 -0
- package/shared/skills/complexity-patterns/references/detection.md +264 -0
- package/shared/skills/complexity-patterns/references/patterns.md +487 -0
- package/shared/skills/complexity-patterns/references/violations.md +361 -0
- package/shared/skills/consistency-patterns/SKILL.md +140 -0
- package/shared/skills/consistency-patterns/references/detection.md +207 -0
- package/shared/skills/consistency-patterns/references/patterns.md +202 -0
- package/shared/skills/consistency-patterns/references/violations.md +213 -0
- package/shared/skills/core-patterns/SKILL.md +162 -0
- package/shared/skills/core-patterns/references/checklist.md +276 -0
- package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
- package/shared/skills/core-patterns/references/detection.md +303 -0
- package/shared/skills/core-patterns/references/patterns.md +576 -0
- package/shared/skills/core-patterns/references/violations.md +369 -0
- package/shared/skills/database-patterns/SKILL.md +134 -0
- package/shared/skills/database-patterns/references/detection.md +208 -0
- package/shared/skills/database-patterns/references/patterns.md +394 -0
- package/shared/skills/database-patterns/references/violations.md +332 -0
- package/shared/skills/dependencies-patterns/SKILL.md +141 -0
- package/shared/skills/dependencies-patterns/references/detection.md +181 -0
- package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
- package/shared/skills/dependencies-patterns/references/violations.md +247 -0
- package/shared/skills/docs-framework/SKILL.md +138 -0
- package/shared/skills/docs-framework/references/patterns.md +346 -0
- package/shared/skills/docs-framework/references/violations.md +221 -0
- package/shared/skills/documentation-patterns/SKILL.md +125 -0
- package/shared/skills/documentation-patterns/references/detection.md +190 -0
- package/shared/skills/documentation-patterns/references/patterns.md +189 -0
- package/shared/skills/documentation-patterns/references/violations.md +163 -0
- package/shared/skills/frontend-design/SKILL.md +254 -0
- package/shared/skills/frontend-design/references/detection.md +184 -0
- package/shared/skills/frontend-design/references/patterns.md +511 -0
- package/shared/skills/frontend-design/references/violations.md +453 -0
- package/shared/skills/git-safety/SKILL.md +122 -0
- package/shared/skills/git-safety/references/detection.md +290 -0
- package/shared/skills/git-safety/references/patterns.md +289 -0
- package/shared/skills/git-safety/references/violations.md +18 -0
- package/shared/skills/git-workflow/SKILL.md +158 -0
- package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
- package/shared/skills/git-workflow/references/commit-violations.md +77 -0
- package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
- package/shared/skills/git-workflow/references/pr-violations.md +96 -0
- package/shared/skills/github-patterns/SKILL.md +153 -0
- package/shared/skills/github-patterns/references/patterns.md +572 -0
- package/shared/skills/github-patterns/references/violations.md +298 -0
- package/shared/skills/implementation-patterns/SKILL.md +162 -0
- package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
- package/shared/skills/implementation-patterns/references/violations.md +483 -0
- package/shared/skills/input-validation/SKILL.md +148 -0
- package/shared/skills/input-validation/references/detection.md +283 -0
- package/shared/skills/input-validation/references/patterns.md +361 -0
- package/shared/skills/input-validation/references/violations.md +224 -0
- package/shared/skills/performance-patterns/SKILL.md +154 -0
- package/shared/skills/performance-patterns/references/detection.md +351 -0
- package/shared/skills/performance-patterns/references/patterns.md +503 -0
- package/shared/skills/performance-patterns/references/violations.md +354 -0
- package/shared/skills/react/SKILL.md +276 -0
- package/shared/skills/react/references/patterns.md +1331 -0
- package/shared/skills/react/references/violations.md +565 -0
- package/shared/skills/regression-patterns/SKILL.md +146 -0
- package/shared/skills/regression-patterns/references/detection.md +237 -0
- package/shared/skills/regression-patterns/references/patterns.md +226 -0
- package/shared/skills/regression-patterns/references/violations.md +225 -0
- package/shared/skills/review-methodology/SKILL.md +119 -0
- package/shared/skills/review-methodology/references/patterns.md +186 -0
- package/shared/skills/review-methodology/references/report-template.md +142 -0
- package/shared/skills/review-methodology/references/violations.md +125 -0
- package/shared/skills/security-patterns/SKILL.md +156 -0
- package/shared/skills/security-patterns/references/detection.md +287 -0
- package/shared/skills/security-patterns/references/patterns.md +507 -0
- package/shared/skills/security-patterns/references/violations.md +237 -0
- package/shared/skills/self-review/SKILL.md +149 -0
- package/shared/skills/self-review/references/patterns.md +405 -0
- package/shared/skills/self-review/references/report-template.md +253 -0
- package/shared/skills/self-review/references/violations.md +308 -0
- package/shared/skills/test-driven-development/SKILL.md +139 -0
- package/shared/skills/test-driven-development/references/rationalization-prevention.md +111 -0
- package/shared/skills/test-patterns/SKILL.md +183 -0
- package/shared/skills/test-patterns/references/detection.md +149 -0
- package/shared/skills/test-patterns/references/patterns.md +220 -0
- package/shared/skills/test-patterns/references/report-template.md +108 -0
- package/shared/skills/test-patterns/references/violations.md +221 -0
- package/shared/skills/typescript/SKILL.md +176 -0
- package/shared/skills/typescript/references/patterns.md +1105 -0
- package/shared/skills/typescript/references/violations.md +433 -0
- package/src/templates/claudeignore.template +188 -0
- package/src/templates/managed-settings.json +160 -0
- package/src/templates/settings.json +59 -0
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/src/claude/CLAUDE.md +0 -400
- package/src/claude/agents/devflow/audit-architecture.md +0 -132
- package/src/claude/agents/devflow/audit-complexity.md +0 -132
- package/src/claude/agents/devflow/audit-database.md +0 -132
- package/src/claude/agents/devflow/audit-dependencies.md +0 -132
- package/src/claude/agents/devflow/audit-documentation.md +0 -132
- package/src/claude/agents/devflow/audit-performance.md +0 -256
- package/src/claude/agents/devflow/audit-security.md +0 -259
- package/src/claude/agents/devflow/audit-tests.md +0 -132
- package/src/claude/agents/devflow/audit-typescript.md +0 -132
- package/src/claude/agents/devflow/brainstorm.md +0 -279
- package/src/claude/agents/devflow/catch-up.md +0 -345
- package/src/claude/agents/devflow/code-review.md +0 -307
- package/src/claude/agents/devflow/commit.md +0 -380
- package/src/claude/agents/devflow/debug.md +0 -476
- package/src/claude/agents/devflow/design.md +0 -491
- package/src/claude/agents/devflow/get-issue.md +0 -286
- package/src/claude/agents/devflow/pr-comments.md +0 -285
- package/src/claude/agents/devflow/project-state.md +0 -419
- package/src/claude/agents/devflow/pull-request.md +0 -493
- package/src/claude/agents/devflow/release.md +0 -1137
- package/src/claude/agents/devflow/tech-debt.md +0 -338
- package/src/claude/commands/devflow/brainstorm.md +0 -68
- package/src/claude/commands/devflow/breakdown.md +0 -125
- package/src/claude/commands/devflow/catch-up.md +0 -29
- package/src/claude/commands/devflow/code-review.md +0 -237
- package/src/claude/commands/devflow/commit.md +0 -17
- package/src/claude/commands/devflow/debug.md +0 -56
- package/src/claude/commands/devflow/design.md +0 -82
- package/src/claude/commands/devflow/devlog.md +0 -408
- package/src/claude/commands/devflow/get-issue.md +0 -16
- package/src/claude/commands/devflow/implement.md +0 -100
- package/src/claude/commands/devflow/plan.md +0 -223
- package/src/claude/commands/devflow/pull-request.md +0 -20
- package/src/claude/commands/devflow/release.md +0 -251
- package/src/claude/commands/devflow/resolve-comments.md +0 -583
- package/src/claude/scripts/statusline.sh +0 -47
- package/src/claude/settings.json +0 -6
- package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
- package/src/claude/skills/devflow/debug/SKILL.md +0 -119
- package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
- package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
- package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
- package/src/claude/skills/devflow/research/SKILL.md +0 -138
- package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: accessibility
|
|
3
|
+
description: This skill should be used when the user asks to "add accessibility", "check ARIA", "handle keyboard navigation", "add focus management", or creates UI components, forms, or interactive elements. Provides WCAG 2.1 AA patterns for keyboard navigation, ARIA roles and states, focus management, color contrast, and screen reader support.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Read, Grep, Glob
|
|
6
|
+
activation:
|
|
7
|
+
file-patterns:
|
|
8
|
+
- "**/*.tsx"
|
|
9
|
+
- "**/*.jsx"
|
|
10
|
+
- "**/*.css"
|
|
11
|
+
- "**/*.scss"
|
|
12
|
+
exclude:
|
|
13
|
+
- "node_modules/**"
|
|
14
|
+
- "**/*.test.*"
|
|
15
|
+
- "**/*.spec.*"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Accessibility Patterns
|
|
19
|
+
|
|
20
|
+
Reference for web accessibility (WCAG 2.1 AA compliance), keyboard navigation, screen reader support, and inclusive design.
|
|
21
|
+
|
|
22
|
+
## Iron Law
|
|
23
|
+
|
|
24
|
+
> **EVERY INTERACTION MUST BE POSSIBLE WITHOUT A MOUSE**
|
|
25
|
+
>
|
|
26
|
+
> If a user cannot complete an action using only keyboard, the feature is broken.
|
|
27
|
+
> Mouse-only interactions exclude users with motor disabilities, power users,
|
|
28
|
+
> and anyone navigating with assistive technology. Tab order, focus management,
|
|
29
|
+
> and keyboard shortcuts are not optional enhancements.
|
|
30
|
+
|
|
31
|
+
## When This Skill Activates
|
|
32
|
+
|
|
33
|
+
- Creating interactive UI components
|
|
34
|
+
- Building forms and inputs
|
|
35
|
+
- Working with React/JSX code
|
|
36
|
+
- Discussing focus, ARIA, or screen readers
|
|
37
|
+
- Reviewing color schemes or contrast
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Keyboard Navigation
|
|
42
|
+
|
|
43
|
+
### Focus Management
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
// CORRECT: Focus trap in modal
|
|
47
|
+
function Modal({ isOpen, onClose, children }) {
|
|
48
|
+
const firstFocusable = useRef<HTMLButtonElement>(null);
|
|
49
|
+
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (isOpen) firstFocusable.current?.focus();
|
|
52
|
+
}, [isOpen]);
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<div role="dialog" aria-modal="true" onKeyDown={(e) => {
|
|
56
|
+
if (e.key === 'Escape') onClose();
|
|
57
|
+
}}>
|
|
58
|
+
<button ref={firstFocusable}>First action</button>
|
|
59
|
+
{children}
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// VIOLATION: No focus management, no escape handler
|
|
65
|
+
function BadModal({ children }) {
|
|
66
|
+
return <div className="modal">{children}</div>;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Skip Links
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
// CORRECT: Skip to main content
|
|
74
|
+
<a href="#main-content" className="sr-only focus:not-sr-only">
|
|
75
|
+
Skip to main content
|
|
76
|
+
</a>
|
|
77
|
+
<main id="main-content" tabIndex={-1}>...</main>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## ARIA and Semantic HTML
|
|
83
|
+
|
|
84
|
+
### Prefer Semantic Elements
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
// CORRECT: Native semantics
|
|
88
|
+
<button onClick={handleClick}>Submit</button>
|
|
89
|
+
<nav aria-label="Main"><ul>...</ul></nav>
|
|
90
|
+
<article><header>...</header></article>
|
|
91
|
+
|
|
92
|
+
// VIOLATION: Div with role instead of semantic element
|
|
93
|
+
<div role="button" onClick={handleClick}>Submit</div>
|
|
94
|
+
<div role="navigation">...</div>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Live Regions
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
// CORRECT: Announce dynamic changes
|
|
101
|
+
<div aria-live="polite" aria-atomic="true">
|
|
102
|
+
{message && <p>{message}</p>}
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
// For errors (assertive)
|
|
106
|
+
<div role="alert">{errorMessage}</div>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Color and Contrast
|
|
112
|
+
|
|
113
|
+
| Element | Minimum Ratio | WCAG Level |
|
|
114
|
+
|---------|--------------|------------|
|
|
115
|
+
| Normal text (<18px) | 4.5:1 | AA |
|
|
116
|
+
| Large text (>=18px bold, >=24px) | 3:1 | AA |
|
|
117
|
+
| UI components | 3:1 | AA |
|
|
118
|
+
| Enhanced | 7:1 | AAA |
|
|
119
|
+
|
|
120
|
+
### Never Color-Only Meaning
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
// VIOLATION: Only color indicates error
|
|
124
|
+
<input style={{ borderColor: hasError ? 'red' : 'gray' }} />
|
|
125
|
+
|
|
126
|
+
// CORRECT: Icon + text + color
|
|
127
|
+
<input aria-invalid={hasError} aria-describedby="error-msg" />
|
|
128
|
+
{hasError && <span id="error-msg" role="alert">Required field</span>}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Motion and Animation
|
|
134
|
+
|
|
135
|
+
```tsx
|
|
136
|
+
// CORRECT: Respect user preferences
|
|
137
|
+
const prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
138
|
+
|
|
139
|
+
<div className={prefersReduced ? 'no-animation' : 'animate-fade'}>
|
|
140
|
+
Content
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
// CSS approach
|
|
144
|
+
@media (prefers-reduced-motion: reduce) {
|
|
145
|
+
*, *::before, *::after {
|
|
146
|
+
animation-duration: 0.01ms !important;
|
|
147
|
+
transition-duration: 0.01ms !important;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Touch and Pointer
|
|
155
|
+
|
|
156
|
+
### Minimum Target Size
|
|
157
|
+
|
|
158
|
+
```css
|
|
159
|
+
/* CORRECT: 44x44px minimum touch target */
|
|
160
|
+
.button {
|
|
161
|
+
min-width: 44px;
|
|
162
|
+
min-height: 44px;
|
|
163
|
+
padding: 12px 16px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* VIOLATION: Tiny tap targets */
|
|
167
|
+
.icon-button {
|
|
168
|
+
width: 20px;
|
|
169
|
+
height: 20px;
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Forms and Errors
|
|
176
|
+
|
|
177
|
+
```tsx
|
|
178
|
+
// CORRECT: Associated labels and error linking
|
|
179
|
+
<div>
|
|
180
|
+
<label htmlFor="email">Email</label>
|
|
181
|
+
<input
|
|
182
|
+
id="email"
|
|
183
|
+
type="email"
|
|
184
|
+
aria-invalid={!!error}
|
|
185
|
+
aria-describedby={error ? 'email-error' : undefined}
|
|
186
|
+
/>
|
|
187
|
+
{error && <span id="email-error" role="alert">{error}</span>}
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
// VIOLATION: Placeholder as label
|
|
191
|
+
<input placeholder="Enter email" />
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Extended References
|
|
197
|
+
|
|
198
|
+
For additional patterns and detection rules:
|
|
199
|
+
- `references/violations.md` - Extended accessibility violations
|
|
200
|
+
- `references/patterns.md` - Extended correct patterns
|
|
201
|
+
- `references/detection.md` - Grep patterns for finding issues
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Severity Guidelines
|
|
206
|
+
|
|
207
|
+
| Severity | Criteria |
|
|
208
|
+
|----------|----------|
|
|
209
|
+
| CRITICAL | No keyboard access, missing form labels, zero contrast |
|
|
210
|
+
| HIGH | Missing focus indicators, no skip links, color-only meaning |
|
|
211
|
+
| MEDIUM | Missing ARIA labels, poor focus order, small touch targets |
|
|
212
|
+
| LOW | Missing optional enhancements, could improve announcements |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Checklist
|
|
217
|
+
|
|
218
|
+
- [ ] All interactive elements reachable via Tab
|
|
219
|
+
- [ ] Visible focus indicators on all focusable elements
|
|
220
|
+
- [ ] Escape closes modals/dropdowns
|
|
221
|
+
- [ ] Skip link to main content
|
|
222
|
+
- [ ] All form inputs have associated labels
|
|
223
|
+
- [ ] Errors linked via aria-describedby
|
|
224
|
+
- [ ] Color contrast meets 4.5:1 (text) / 3:1 (UI)
|
|
225
|
+
- [ ] No color-only meaning
|
|
226
|
+
- [ ] prefers-reduced-motion respected
|
|
227
|
+
- [ ] Touch targets minimum 44x44px
|
|
228
|
+
- [ ] aria-live for dynamic content
|
|
229
|
+
- [ ] Semantic HTML preferred over ARIA roles
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Accessibility Detection Patterns
|
|
2
|
+
|
|
3
|
+
Grep and regex patterns for detecting accessibility issues. Use with `Grep` tool.
|
|
4
|
+
|
|
5
|
+
## Keyboard Access Issues
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# onClick without keyboard handler
|
|
9
|
+
rg 'onClick=\{[^}]+\}' --type tsx | rg -v 'onKeyDown|onKeyPress|onKeyUp|<button|<a '
|
|
10
|
+
|
|
11
|
+
# Non-focusable interactive elements
|
|
12
|
+
rg '<(div|span)\s+[^>]*onClick' --type tsx
|
|
13
|
+
|
|
14
|
+
# tabIndex with positive values (breaks natural order)
|
|
15
|
+
rg 'tabIndex=\{?[1-9]' --type tsx
|
|
16
|
+
|
|
17
|
+
# Drag-only interactions
|
|
18
|
+
rg 'onDrag(Start|End|Over)' --type tsx | rg -v 'onKey'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Missing Labels
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Input without id (likely missing label association)
|
|
25
|
+
rg '<input[^>]*>' --type tsx | rg -v 'id='
|
|
26
|
+
|
|
27
|
+
# Button with only icon (no text or aria-label)
|
|
28
|
+
rg '<button[^>]*>\s*<[A-Z][a-zA-Z]*Icon' --type tsx | rg -v 'aria-label'
|
|
29
|
+
|
|
30
|
+
# Image without alt
|
|
31
|
+
rg '<img[^>]*>' --type tsx | rg -v 'alt='
|
|
32
|
+
|
|
33
|
+
# Links without text content
|
|
34
|
+
rg '<a[^>]*>\s*<(img|[A-Z])' --type tsx | rg -v 'aria-label'
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## ARIA Misuse
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Redundant role on semantic elements
|
|
41
|
+
rg '<button[^>]*role="button"' --type tsx
|
|
42
|
+
rg '<nav[^>]*role="navigation"' --type tsx
|
|
43
|
+
rg '<a[^>]*role="link"' --type tsx
|
|
44
|
+
|
|
45
|
+
# aria-hidden on focusable elements
|
|
46
|
+
rg 'aria-hidden="true"[^>]*(tabIndex|onClick|href)' --type tsx
|
|
47
|
+
|
|
48
|
+
# Missing required ARIA attributes
|
|
49
|
+
rg 'role="slider"' --type tsx | rg -v 'aria-value(now|min|max)'
|
|
50
|
+
rg 'role="checkbox"' --type tsx | rg -v 'aria-checked'
|
|
51
|
+
rg 'role="tab"' --type tsx | rg -v 'aria-selected'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Focus Management Issues
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Focus removal (outline: none without replacement)
|
|
58
|
+
rg 'outline:\s*none' --type css --type scss | rg -v 'focus-visible|focus-ring'
|
|
59
|
+
|
|
60
|
+
# Dialogs without role or aria-modal
|
|
61
|
+
rg 'modal|dialog' --type tsx -i | rg -v 'role="dialog"|aria-modal'
|
|
62
|
+
|
|
63
|
+
# Missing escape key handler in modals
|
|
64
|
+
rg '(Modal|Dialog|Popup)' --type tsx | rg -v 'Escape|onKeyDown'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Color and Contrast
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Light gray text (potential contrast issue)
|
|
71
|
+
rg 'color:\s*#[a-fA-F0-9]{3,6}' --type css | rg -i '(#[cdef]{3}|#[cdef]{6})'
|
|
72
|
+
|
|
73
|
+
# Color-only indicators
|
|
74
|
+
rg 'color.*error|color.*success|color.*warning' --type css -i
|
|
75
|
+
|
|
76
|
+
# Placeholder as only label indicator
|
|
77
|
+
rg '<input[^>]*placeholder=' --type tsx | rg -v '<label|aria-label'
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Form Issues
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Missing error association
|
|
84
|
+
rg 'aria-invalid' --type tsx | rg -v 'aria-describedby'
|
|
85
|
+
|
|
86
|
+
# Form without noValidate (may conflict with custom validation)
|
|
87
|
+
rg '<form[^>]*>' --type tsx | rg 'onSubmit' | rg -v 'noValidate'
|
|
88
|
+
|
|
89
|
+
# Submit button without type
|
|
90
|
+
rg '<button[^>]*>Submit' --type tsx | rg -v 'type="submit"'
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Motion Issues
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Animation without reduced motion check
|
|
97
|
+
rg 'animation(-duration)?:' --type css | rg -v 'prefers-reduced-motion'
|
|
98
|
+
|
|
99
|
+
# Transition without reduced motion check
|
|
100
|
+
rg 'transition(-duration)?:' --type css | rg -v 'prefers-reduced-motion'
|
|
101
|
+
|
|
102
|
+
# Autoplay video/audio
|
|
103
|
+
rg '<(video|audio)[^>]*autoPlay' --type tsx
|
|
104
|
+
|
|
105
|
+
# Infinite animation loops
|
|
106
|
+
rg 'animation:.*infinite' --type css
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Touch Target Issues
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Small fixed dimensions
|
|
113
|
+
rg '(width|height):\s*(1[0-9]|2[0-9]|3[0-9])px' --type css
|
|
114
|
+
|
|
115
|
+
# Icon buttons without adequate sizing
|
|
116
|
+
rg '\.icon(-btn|Button)' --type css -A5 | rg '(width|height)'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Screen Reader Issues
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Generic link text
|
|
123
|
+
rg '>click here<|>here<|>read more<|>learn more<' --type tsx -i
|
|
124
|
+
|
|
125
|
+
# aria-label duplicating visible text
|
|
126
|
+
rg 'aria-label="([^"]+)"[^>]*>\1<' --type tsx
|
|
127
|
+
|
|
128
|
+
# Missing landmark regions
|
|
129
|
+
rg '<div[^>]*class="(header|footer|nav|sidebar|main)"' --type tsx | rg -v 'role='
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Live Region Issues
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Dynamic content without aria-live
|
|
136
|
+
rg '(loading|spinner|toast|notification|alert)' --type tsx -i | rg -v 'aria-live|role="alert"|role="status"'
|
|
137
|
+
|
|
138
|
+
# Missing aria-atomic on live regions
|
|
139
|
+
rg 'aria-live=' --type tsx | rg -v 'aria-atomic'
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Semantic HTML Issues
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Div/span used instead of semantic elements
|
|
146
|
+
rg '<div[^>]*role="(button|link|navigation|main|banner|contentinfo)"' --type tsx
|
|
147
|
+
rg '<span[^>]*role="(button|link)"' --type tsx
|
|
148
|
+
|
|
149
|
+
# Heading level skips (partial detection)
|
|
150
|
+
rg '<h[1-6]' --type tsx
|
|
151
|
+
|
|
152
|
+
# List items outside lists
|
|
153
|
+
rg '<li[^>]*>' --type tsx | rg -v '<ul|<ol'
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Testing Commands
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# Full accessibility audit on changed files
|
|
160
|
+
git diff --name-only HEAD~1 | xargs -I{} rg -l 'onClick|<input|<button|<a ' {} 2>/dev/null
|
|
161
|
+
|
|
162
|
+
# Count potential issues by category
|
|
163
|
+
echo "=== Potential Keyboard Issues ==="
|
|
164
|
+
rg '<(div|span)\s+[^>]*onClick' --type tsx -c
|
|
165
|
+
|
|
166
|
+
echo "=== Potential Label Issues ==="
|
|
167
|
+
rg '<input[^>]*>' --type tsx | rg -v 'id=' | wc -l
|
|
168
|
+
|
|
169
|
+
echo "=== Potential ARIA Issues ==="
|
|
170
|
+
rg '<button[^>]*role="button"' --type tsx -c
|
|
171
|
+
```
|