agileflow 3.3.0 → 3.4.1
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 +10 -0
- package/README.md +6 -6
- package/lib/skill-loader.js +0 -1
- package/package.json +1 -1
- package/scripts/agileflow-statusline.sh +81 -0
- package/scripts/agileflow-welcome.js +79 -0
- package/scripts/claude-tmux.sh +90 -23
- package/scripts/claude-watchdog.sh +225 -0
- package/scripts/generators/agent-registry.js +14 -1
- package/scripts/generators/inject-babysit.js +22 -9
- package/scripts/generators/inject-help.js +19 -9
- package/scripts/lib/ac-test-matcher.js +452 -0
- package/scripts/lib/audit-cleanup.js +250 -0
- package/scripts/lib/audit-registry.js +304 -0
- package/scripts/lib/configure-features.js +35 -0
- package/scripts/lib/feature-catalog.js +3 -3
- package/scripts/lib/gate-enforcer.js +295 -0
- package/scripts/lib/model-profiles.js +118 -0
- package/scripts/lib/quality-gates.js +163 -0
- package/scripts/lib/signal-detectors.js +44 -1
- package/scripts/lib/skill-catalog.js +557 -0
- package/scripts/lib/skill-recommender.js +311 -0
- package/scripts/lib/status-writer.js +255 -0
- package/scripts/lib/story-claiming.js +128 -45
- package/scripts/lib/task-sync.js +32 -38
- package/scripts/lib/tdd-phase-manager.js +455 -0
- package/scripts/lib/team-events.js +34 -3
- package/scripts/lib/tmux-audit-monitor.js +611 -0
- package/scripts/lib/tmux-group-colors.js +113 -0
- package/scripts/lib/tool-registry.yaml +241 -0
- package/scripts/lib/tool-shed.js +441 -0
- package/scripts/messaging-bridge.js +209 -1
- package/scripts/native-team-observer.js +219 -0
- package/scripts/obtain-context.js +14 -0
- package/scripts/ralph-loop.js +30 -5
- package/scripts/smart-detect.js +21 -0
- package/scripts/spawn-audit-sessions.js +877 -0
- package/scripts/team-manager.js +56 -16
- package/scripts/tmux-close-windows.sh +180 -0
- package/src/core/agents/a11y-analyzer-aria.md +155 -0
- package/src/core/agents/a11y-analyzer-forms.md +162 -0
- package/src/core/agents/a11y-analyzer-keyboard.md +175 -0
- package/src/core/agents/a11y-analyzer-semantic.md +153 -0
- package/src/core/agents/a11y-analyzer-visual.md +158 -0
- package/src/core/agents/a11y-consensus.md +248 -0
- package/src/core/agents/ads-audit-budget.md +181 -0
- package/src/core/agents/ads-audit-compliance.md +169 -0
- package/src/core/agents/ads-audit-creative.md +164 -0
- package/src/core/agents/ads-audit-google.md +226 -0
- package/src/core/agents/ads-audit-meta.md +183 -0
- package/src/core/agents/ads-audit-tracking.md +197 -0
- package/src/core/agents/ads-consensus.md +396 -0
- package/src/core/agents/ads-generate.md +145 -0
- package/src/core/agents/ads-performance-tracker.md +197 -0
- package/src/core/agents/api-quality-analyzer-conventions.md +148 -0
- package/src/core/agents/api-quality-analyzer-docs.md +176 -0
- package/src/core/agents/api-quality-analyzer-errors.md +183 -0
- package/src/core/agents/api-quality-analyzer-pagination.md +171 -0
- package/src/core/agents/api-quality-analyzer-versioning.md +143 -0
- package/src/core/agents/api-quality-consensus.md +214 -0
- package/src/core/agents/arch-analyzer-circular.md +148 -0
- package/src/core/agents/arch-analyzer-complexity.md +171 -0
- package/src/core/agents/arch-analyzer-coupling.md +146 -0
- package/src/core/agents/arch-analyzer-layering.md +151 -0
- package/src/core/agents/arch-analyzer-patterns.md +162 -0
- package/src/core/agents/arch-consensus.md +227 -0
- package/src/core/agents/brainstorm-analyzer-features.md +169 -0
- package/src/core/agents/brainstorm-analyzer-growth.md +161 -0
- package/src/core/agents/brainstorm-analyzer-integration.md +172 -0
- package/src/core/agents/brainstorm-analyzer-market.md +147 -0
- package/src/core/agents/brainstorm-analyzer-ux.md +167 -0
- package/src/core/agents/brainstorm-consensus.md +237 -0
- package/src/core/agents/completeness-consensus.md +5 -5
- package/src/core/agents/perf-consensus.md +2 -2
- package/src/core/agents/security-consensus.md +2 -2
- package/src/core/agents/seo-analyzer-content.md +167 -0
- package/src/core/agents/seo-analyzer-images.md +187 -0
- package/src/core/agents/seo-analyzer-performance.md +206 -0
- package/src/core/agents/seo-analyzer-schema.md +176 -0
- package/src/core/agents/seo-analyzer-sitemap.md +172 -0
- package/src/core/agents/seo-analyzer-technical.md +144 -0
- package/src/core/agents/seo-consensus.md +289 -0
- package/src/core/agents/test-consensus.md +2 -2
- package/src/core/commands/adr.md +1 -0
- package/src/core/commands/ads/audit.md +375 -0
- package/src/core/commands/ads/budget.md +97 -0
- package/src/core/commands/ads/competitor.md +112 -0
- package/src/core/commands/ads/creative.md +85 -0
- package/src/core/commands/ads/generate.md +238 -0
- package/src/core/commands/ads/google.md +112 -0
- package/src/core/commands/ads/health.md +327 -0
- package/src/core/commands/ads/landing.md +119 -0
- package/src/core/commands/ads/linkedin.md +112 -0
- package/src/core/commands/ads/meta.md +91 -0
- package/src/core/commands/ads/microsoft.md +115 -0
- package/src/core/commands/ads/plan.md +321 -0
- package/src/core/commands/ads/test-plan.md +317 -0
- package/src/core/commands/ads/tiktok.md +129 -0
- package/src/core/commands/ads/track.md +288 -0
- package/src/core/commands/ads/youtube.md +124 -0
- package/src/core/commands/ads.md +140 -0
- package/src/core/commands/assign.md +1 -0
- package/src/core/commands/audit.md +43 -6
- package/src/core/commands/babysit.md +315 -1266
- package/src/core/commands/baseline.md +1 -0
- package/src/core/commands/blockers.md +1 -0
- package/src/core/commands/board.md +1 -0
- package/src/core/commands/changelog.md +1 -0
- package/src/core/commands/choose.md +1 -0
- package/src/core/commands/ci.md +1 -0
- package/src/core/commands/code/accessibility.md +347 -0
- package/src/core/commands/code/api.md +297 -0
- package/src/core/commands/code/architecture.md +297 -0
- package/src/core/commands/{audit → code}/completeness.md +72 -25
- package/src/core/commands/{audit → code}/legal.md +63 -16
- package/src/core/commands/{audit → code}/logic.md +64 -16
- package/src/core/commands/{audit → code}/performance.md +67 -20
- package/src/core/commands/{audit → code}/security.md +69 -19
- package/src/core/commands/{audit → code}/test.md +67 -20
- package/src/core/commands/configure.md +1 -0
- package/src/core/commands/council.md +1 -0
- package/src/core/commands/deploy.md +1 -0
- package/src/core/commands/diagnose.md +1 -0
- package/src/core/commands/docs.md +1 -0
- package/src/core/commands/epic/edit.md +213 -0
- package/src/core/commands/epic.md +1 -0
- package/src/core/commands/export.md +238 -0
- package/src/core/commands/help.md +16 -1
- package/src/core/commands/{discovery → ideate}/brief.md +12 -12
- package/src/core/commands/{discovery/new.md → ideate/discover.md} +20 -16
- package/src/core/commands/ideate/features.md +496 -0
- package/src/core/commands/ideate/new.md +158 -124
- package/src/core/commands/impact.md +1 -0
- package/src/core/commands/learn/explain.md +118 -0
- package/src/core/commands/learn/glossary.md +135 -0
- package/src/core/commands/learn/patterns.md +138 -0
- package/src/core/commands/learn/tour.md +126 -0
- package/src/core/commands/migrate/codemods.md +151 -0
- package/src/core/commands/migrate/plan.md +131 -0
- package/src/core/commands/migrate/scan.md +114 -0
- package/src/core/commands/migrate/validate.md +119 -0
- package/src/core/commands/multi-expert.md +1 -0
- package/src/core/commands/pr.md +1 -0
- package/src/core/commands/review.md +1 -0
- package/src/core/commands/seo/audit.md +373 -0
- package/src/core/commands/seo/competitor.md +174 -0
- package/src/core/commands/seo/content.md +107 -0
- package/src/core/commands/seo/geo.md +229 -0
- package/src/core/commands/seo/hreflang.md +140 -0
- package/src/core/commands/seo/images.md +96 -0
- package/src/core/commands/seo/page.md +198 -0
- package/src/core/commands/seo/plan.md +163 -0
- package/src/core/commands/seo/programmatic.md +131 -0
- package/src/core/commands/seo/references/cwv-thresholds.md +64 -0
- package/src/core/commands/seo/references/eeat-framework.md +110 -0
- package/src/core/commands/seo/references/quality-gates.md +91 -0
- package/src/core/commands/seo/references/schema-types.md +102 -0
- package/src/core/commands/seo/schema.md +183 -0
- package/src/core/commands/seo/sitemap.md +97 -0
- package/src/core/commands/seo/technical.md +100 -0
- package/src/core/commands/seo.md +107 -0
- package/src/core/commands/skill/list.md +68 -212
- package/src/core/commands/skill/recommend.md +216 -0
- package/src/core/commands/sprint.md +1 -0
- package/src/core/commands/status/undo.md +191 -0
- package/src/core/commands/status.md +1 -0
- package/src/core/commands/story/edit.md +204 -0
- package/src/core/commands/story/view.md +29 -7
- package/src/core/commands/story-validate.md +1 -0
- package/src/core/commands/story.md +1 -0
- package/src/core/commands/tdd-next.md +238 -0
- package/src/core/commands/tdd.md +211 -0
- package/src/core/commands/team/start.md +10 -6
- package/src/core/commands/tests.md +1 -0
- package/src/core/commands/verify.md +27 -1
- package/src/core/commands/workflow.md +2 -0
- package/src/core/experts/_core-expertise.yaml +105 -0
- package/src/core/experts/analytics/expertise.yaml +5 -99
- package/src/core/experts/codebase-query/expertise.yaml +3 -72
- package/src/core/experts/compliance/expertise.yaml +6 -72
- package/src/core/experts/database/expertise.yaml +9 -52
- package/src/core/experts/documentation/expertise.yaml +7 -140
- package/src/core/experts/integrations/expertise.yaml +7 -127
- package/src/core/experts/mentor/expertise.yaml +8 -35
- package/src/core/experts/monitoring/expertise.yaml +7 -49
- package/src/core/experts/performance/expertise.yaml +1 -26
- package/src/core/experts/security/expertise.yaml +9 -34
- package/src/core/experts/ui/expertise.yaml +6 -36
- package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +424 -0
- package/src/core/knowledge/ads/ad-optimization-logic.md +590 -0
- package/src/core/knowledge/ads/ad-technical-specifications.md +385 -0
- package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +506 -0
- package/src/core/knowledge/ads/paid-advertising-research-2026.md +445 -0
- package/src/core/teams/backend.json +41 -0
- package/src/core/teams/frontend.json +41 -0
- package/src/core/teams/qa.json +41 -0
- package/src/core/teams/solo.json +35 -0
- package/src/core/templates/agileflow-metadata.json +20 -1
- package/tools/cli/commands/setup.js +85 -3
- package/tools/cli/commands/update.js +42 -0
- package/tools/cli/installers/ide/_base-ide.js +42 -5
- package/tools/cli/installers/ide/claude-code.js +71 -3
- package/tools/cli/lib/content-injector.js +160 -12
- package/tools/cli/lib/docs-setup.js +1 -1
- package/src/core/commands/skill/create.md +0 -698
- package/src/core/commands/skill/delete.md +0 -316
- package/src/core/commands/skill/edit.md +0 -359
- package/src/core/commands/skill/test.md +0 -394
- package/src/core/commands/skill/upgrade.md +0 -552
- package/src/core/templates/skill-template.md +0 -117
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Display visual kanban board with WIP limits
|
|
3
|
+
phase: pre-story
|
|
3
4
|
argument-hint: "[EPIC=<EP-ID>] [OWNER=<id>] [FORMAT=ascii|markdown|html] [GROUP_BY=status|owner|epic]"
|
|
4
5
|
model: haiku
|
|
5
6
|
type: output-only # Board display - read-only visualization, not an ongoing task
|
package/src/core/commands/ci.md
CHANGED
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-agent WCAG accessibility analysis with consensus voting for finding a11y barriers across semantic structure, ARIA, visual, keyboard, and forms
|
|
3
|
+
argument-hint: "[file|directory] [DEPTH=quick|deep|ultradeep|extreme] [FOCUS=semantic|aria|visual|keyboard|forms|all] [MODEL=haiku|sonnet|opus]"
|
|
4
|
+
compact_context:
|
|
5
|
+
priority: high
|
|
6
|
+
preserve_rules:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:code:accessibility - Multi-agent WCAG accessibility analysis"
|
|
8
|
+
- "CRITICAL: Deploy analyzers IN PARALLEL in ONE message with multiple Task calls"
|
|
9
|
+
- "CRITICAL: Wait for all results before running consensus (use TaskOutput with block=true)"
|
|
10
|
+
- "CRITICAL: Severity scale: BLOCKER | MAJOR | MINOR | ENHANCEMENT"
|
|
11
|
+
- "MUST parse arguments: TARGET (file/dir), DEPTH (quick/deep/ultradeep), FOCUS (semantic|aria|visual|keyboard|forms|all)"
|
|
12
|
+
- "Pass consensus all analyzer outputs, let it synthesize the final report"
|
|
13
|
+
state_fields:
|
|
14
|
+
- target_path
|
|
15
|
+
- depth
|
|
16
|
+
- focus_areas
|
|
17
|
+
- analyzers_deployed
|
|
18
|
+
- findings_collected
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /agileflow:code:accessibility
|
|
22
|
+
|
|
23
|
+
Deploy multiple specialized WCAG accessibility analyzers in parallel to find a11y barriers, then synthesize results through consensus voting into a prioritized Accessibility Audit Report.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Quick Reference
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
/agileflow:code:accessibility app/ # Analyze app directory (quick, all 5 analyzers)
|
|
31
|
+
/agileflow:code:accessibility . DEPTH=deep # Deep analysis - comprehensive findings
|
|
32
|
+
/agileflow:code:accessibility src/ FOCUS=keyboard,aria # Focus on specific areas
|
|
33
|
+
/agileflow:code:accessibility . DEPTH=deep FOCUS=all # Comprehensive full audit
|
|
34
|
+
/agileflow:code:accessibility . DEPTH=ultradeep # Each analyzer in its own tmux session
|
|
35
|
+
/agileflow:code:accessibility components/ FOCUS=forms # Check forms accessibility
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## How It Works
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
44
|
+
│ /agileflow:code:accessibility │
|
|
45
|
+
│ │
|
|
46
|
+
│ 1. Parse arguments (target, depth, focus) │
|
|
47
|
+
│ 2. Deploy analyzers IN PARALLEL │
|
|
48
|
+
│ 3. Collect all findings │
|
|
49
|
+
│ 4. Run consensus coordinator to validate & prioritize │
|
|
50
|
+
│ 5. Generate actionable Accessibility Audit Report │
|
|
51
|
+
└─────────────────────────────────────────────────────────────┘
|
|
52
|
+
|
|
53
|
+
┌──────────┐ ┌──────┐ ┌────────┐ ┌──────────┐ ┌───────┐
|
|
54
|
+
│ Semantic │ │ ARIA │ │ Visual │ │ Keyboard │ │ Forms │
|
|
55
|
+
└────┬─────┘ └──┬───┘ └───┬────┘ └────┬─────┘ └───┬───┘
|
|
56
|
+
│ │ │ │ │
|
|
57
|
+
└──────────┴─────────┼───────────┴────────────┘
|
|
58
|
+
▼
|
|
59
|
+
┌──────────────────────┐
|
|
60
|
+
│ Consensus Coordinator│
|
|
61
|
+
│ (validates, votes, │
|
|
62
|
+
│ maps to WCAG 2.2) │
|
|
63
|
+
└──────────────────────┘
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Arguments
|
|
69
|
+
|
|
70
|
+
| Argument | Values | Default | Description |
|
|
71
|
+
|----------|--------|---------|-------------|
|
|
72
|
+
| TARGET | file/directory | `.` | What to analyze |
|
|
73
|
+
| DEPTH | quick, deep, ultradeep | quick | quick = focus on BLOCKER/MAJOR, deep = all severities, ultradeep = separate tmux |
|
|
74
|
+
| FOCUS | semantic,aria,visual,keyboard,forms,all | all | Which analyzers to deploy |
|
|
75
|
+
| MODEL | haiku, sonnet, opus | haiku | Model for analyzer subagents |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Step-by-Step Process
|
|
80
|
+
|
|
81
|
+
### STEP 1: Parse Arguments
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
TARGET = first argument or current directory
|
|
85
|
+
DEPTH = quick (default) or deep or ultradeep
|
|
86
|
+
FOCUS = all (default) or comma-separated list
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Analyzer Selection**:
|
|
90
|
+
|
|
91
|
+
| Condition | Analyzers Deployed |
|
|
92
|
+
|-----------|-------------------|
|
|
93
|
+
| `FOCUS=all` | All 5: semantic, aria, visual, keyboard, forms |
|
|
94
|
+
| `FOCUS=semantic` | a11y-analyzer-semantic only |
|
|
95
|
+
| `FOCUS=aria` | a11y-analyzer-aria only |
|
|
96
|
+
| `FOCUS=visual` | a11y-analyzer-visual only |
|
|
97
|
+
| `FOCUS=keyboard` | a11y-analyzer-keyboard only |
|
|
98
|
+
| `FOCUS=forms` | a11y-analyzer-forms only |
|
|
99
|
+
| `FOCUS=keyboard,forms` | Deploy specified analyzers |
|
|
100
|
+
|
|
101
|
+
**DEPTH behavior**:
|
|
102
|
+
- `quick` (default): Focus on BLOCKER and MAJOR issues only.
|
|
103
|
+
- `deep`: Include MINOR and ENHANCEMENT findings.
|
|
104
|
+
- `ultradeep`: Spawn each analyzer as a separate Claude Code session in tmux.
|
|
105
|
+
|
|
106
|
+
**ULTRADEEP mode** (DEPTH=ultradeep):
|
|
107
|
+
1. Show cost estimate:
|
|
108
|
+
```bash
|
|
109
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=accessibility --target=TARGET --focus=FOCUS --model=MODEL --dry-run
|
|
110
|
+
```
|
|
111
|
+
2. Confirm with user before launching
|
|
112
|
+
3. Spawn sessions (use `--json` to capture trace ID):
|
|
113
|
+
```bash
|
|
114
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=accessibility --target=TARGET --focus=FOCUS --model=MODEL --json
|
|
115
|
+
```
|
|
116
|
+
Parse the JSON output to get `traceId`. Example: `{"ok":true,"traceId":"abc123ef",...}`
|
|
117
|
+
4. Wait for all analyzers to complete:
|
|
118
|
+
```bash
|
|
119
|
+
node .agileflow/scripts/lib/tmux-audit-monitor.js wait TRACE_ID --timeout=1800
|
|
120
|
+
```
|
|
121
|
+
- Exit 0 = all complete (JSON results on stdout)
|
|
122
|
+
- Exit 1 = timeout (partial results on stdout, `missing` array shows what's left)
|
|
123
|
+
- To check progress without blocking: `node .agileflow/scripts/lib/tmux-audit-monitor.js status TRACE_ID`
|
|
124
|
+
- To retry stalled analyzers: `node .agileflow/scripts/lib/tmux-audit-monitor.js retry TRACE_ID`
|
|
125
|
+
5. Parse `results` array from the JSON output. Pass all findings to consensus coordinator (same as deep mode).
|
|
126
|
+
6. If tmux unavailable (spawn exits code 2), fall back to `DEPTH=deep` with warning
|
|
127
|
+
|
|
128
|
+
**EXTREME mode** (DEPTH=extreme):
|
|
129
|
+
Partition-based multi-agent audit. Instead of 1 analyzer per tmux window, the codebase is split into partitions and each partition runs ALL analyzers.
|
|
130
|
+
1. Scan the target directory to understand the codebase structure:
|
|
131
|
+
- Use Glob to find top-level source directories
|
|
132
|
+
- Group related directories into 3-7 logical partitions (coherent domains: auth, api, ui, etc.)
|
|
133
|
+
- If user provided PARTITIONS=N (a number), split into exactly N partitions
|
|
134
|
+
- If user provided PARTITIONS=dir1,dir2,dir3, use those exact directories
|
|
135
|
+
2. Show the partition plan and agent count to the user, confirm before launching:
|
|
136
|
+
Example: "5 partitions x 5 analyzers = 25 agents. Estimated cost: $X. Proceed?"
|
|
137
|
+
3. Spawn sessions with partitions:
|
|
138
|
+
```bash
|
|
139
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=accessibility --target=TARGET --depth=extreme --partitions=dir1,dir2,dir3 --model=MODEL --json
|
|
140
|
+
```
|
|
141
|
+
4. Wait and collect results (same as ultradeep - use tmux-audit-monitor.js)
|
|
142
|
+
5. Run consensus on combined results from all partitions
|
|
143
|
+
|
|
144
|
+
**PARTITIONS argument** (only used with DEPTH=extreme):
|
|
145
|
+
| Value | Behavior |
|
|
146
|
+
|-------|----------|
|
|
147
|
+
| Not set | AI decides partitions (3-7 based on codebase size) |
|
|
148
|
+
| `PARTITIONS=5` | AI creates exactly 5 partitions |
|
|
149
|
+
| `PARTITIONS=src/auth,src/api,lib` | Use these exact directories |
|
|
150
|
+
|
|
151
|
+
### STEP 2: Deploy Analyzers in Parallel
|
|
152
|
+
|
|
153
|
+
**CRITICAL**: Deploy ALL selected analyzers in a SINGLE message with multiple Task calls.
|
|
154
|
+
|
|
155
|
+
**Prompt template for each analyzer**:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
TASK: Analyze the following code for {A11Y_DOMAIN} accessibility issues.
|
|
159
|
+
|
|
160
|
+
TARGET: {file_path or directory}
|
|
161
|
+
DEPTH: {quick|deep}
|
|
162
|
+
|
|
163
|
+
{For quick depth}: Focus on BLOCKER and MAJOR severity issues only. Skip enhancements.
|
|
164
|
+
{For deep depth}: Be comprehensive. Include MINOR and ENHANCEMENT findings.
|
|
165
|
+
|
|
166
|
+
Read the target files and apply your analysis methodology.
|
|
167
|
+
|
|
168
|
+
OUTPUT your findings in your standard format (FINDING-N with location, severity, confidence, WCAG SC, code, explanation, remediation).
|
|
169
|
+
|
|
170
|
+
If no issues found, output: "No {A11Y_DOMAIN} accessibility issues found in {TARGET}"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**Deploy all 5 analyzers** using these subagent types:
|
|
174
|
+
- `a11y-analyzer-semantic` - Heading hierarchy, landmarks, document structure
|
|
175
|
+
- `a11y-analyzer-aria` - ARIA roles, states, properties, live regions
|
|
176
|
+
- `a11y-analyzer-visual` - Color contrast, motion, color-only info
|
|
177
|
+
- `a11y-analyzer-keyboard` - Focus management, tab order, keyboard access
|
|
178
|
+
- `a11y-analyzer-forms` - Labels, errors, autocomplete, validation
|
|
179
|
+
|
|
180
|
+
### STEP 3: Collect Results
|
|
181
|
+
|
|
182
|
+
Wait for all analyzers to complete using TaskOutput with `block=true`.
|
|
183
|
+
|
|
184
|
+
### STEP 4: Run Consensus Coordinator
|
|
185
|
+
|
|
186
|
+
Pass all analyzer outputs to the consensus coordinator:
|
|
187
|
+
|
|
188
|
+
```xml
|
|
189
|
+
<invoke name="Task">
|
|
190
|
+
<parameter name="description">Accessibility audit consensus</parameter>
|
|
191
|
+
<parameter name="prompt">You are the Accessibility Consensus Coordinator.
|
|
192
|
+
|
|
193
|
+
TARGET: {target_path}
|
|
194
|
+
DEPTH: {depth}
|
|
195
|
+
|
|
196
|
+
## Analyzer Outputs
|
|
197
|
+
|
|
198
|
+
### Semantic Analyzer Results:
|
|
199
|
+
{semantic_output}
|
|
200
|
+
|
|
201
|
+
### ARIA Analyzer Results:
|
|
202
|
+
{aria_output}
|
|
203
|
+
|
|
204
|
+
### Visual Analyzer Results:
|
|
205
|
+
{visual_output}
|
|
206
|
+
|
|
207
|
+
### Keyboard Analyzer Results:
|
|
208
|
+
{keyboard_output}
|
|
209
|
+
|
|
210
|
+
### Forms Analyzer Results:
|
|
211
|
+
{forms_output}
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
Follow your consensus process:
|
|
216
|
+
1. Detect framework and component libraries
|
|
217
|
+
2. Parse all findings into normalized structure
|
|
218
|
+
3. Group related findings by component/area
|
|
219
|
+
4. Vote on confidence (CONFIRMED if 2+ agree, LIKELY if 1 with evidence)
|
|
220
|
+
5. Filter by framework (Radix, Headless UI, etc.)
|
|
221
|
+
6. Map findings to WCAG 2.2 success criteria
|
|
222
|
+
7. Generate the final Accessibility Audit Report
|
|
223
|
+
8. Save report to docs/08-project/a11y-audits/a11y-audit-{YYYYMMDD}.md
|
|
224
|
+
</parameter>
|
|
225
|
+
<parameter name="subagent_type">a11y-consensus</parameter>
|
|
226
|
+
</invoke>
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### STEP 5: Present Results
|
|
230
|
+
|
|
231
|
+
After consensus completes, show the report summary and offer next steps:
|
|
232
|
+
|
|
233
|
+
```xml
|
|
234
|
+
<invoke name="AskUserQuestion">
|
|
235
|
+
<parameter name="questions">[{
|
|
236
|
+
"question": "Accessibility audit complete: [N] findings ([blockers] Blockers, [major] Major). [files_count] files analyzed. WCAG Level A: [pass/fail].",
|
|
237
|
+
"header": "Next steps",
|
|
238
|
+
"multiSelect": false,
|
|
239
|
+
"options": [
|
|
240
|
+
{"label": "Fix [blockers] Blocker issues now (Recommended)", "description": "[top_issue_summary] - [WCAG SC]"},
|
|
241
|
+
{"label": "Create stories for all findings", "description": "Track [blockers] blocker + [major] major priority items in backlog"},
|
|
242
|
+
{"label": "Re-run with DEPTH=deep", "description": "Current was quick - deep includes MINOR and ENHANCEMENT findings"},
|
|
243
|
+
{"label": "Save report and done", "description": "Report saved to docs/08-project/a11y-audits/"}
|
|
244
|
+
]
|
|
245
|
+
}]</parameter>
|
|
246
|
+
</invoke>
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Example Output
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
♿ Accessibility Audit: app/
|
|
255
|
+
══════════════════════════════════════════════════════════════
|
|
256
|
+
|
|
257
|
+
Deploying 5 accessibility analyzers (quick mode)...
|
|
258
|
+
✓ Semantic Analyzer
|
|
259
|
+
✓ ARIA Analyzer
|
|
260
|
+
✓ Visual Analyzer
|
|
261
|
+
✓ Keyboard Analyzer
|
|
262
|
+
✓ Forms Analyzer
|
|
263
|
+
|
|
264
|
+
Running consensus...
|
|
265
|
+
✓ Consensus complete
|
|
266
|
+
✓ Framework detected: Next.js + shadcn/ui (Radix-based)
|
|
267
|
+
|
|
268
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
269
|
+
ACCESSIBILITY SUMMARY
|
|
270
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
271
|
+
|
|
272
|
+
| Severity | Count | WCAG Level |
|
|
273
|
+
|----------|-------|------------|
|
|
274
|
+
| Blocker | 2 | A |
|
|
275
|
+
| Major | 4 | A/AA |
|
|
276
|
+
| Minor | 3 | AA |
|
|
277
|
+
|
|
278
|
+
Total: 9 findings (3 false positives excluded - Radix handles ARIA)
|
|
279
|
+
WCAG 2.2 Level A: FAIL (2 blockers)
|
|
280
|
+
WCAG 2.2 Level AA: FAIL
|
|
281
|
+
|
|
282
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
283
|
+
FIX IMMEDIATELY
|
|
284
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
285
|
+
|
|
286
|
+
1. Modal missing focus trap [CONFIRMED by Keyboard, ARIA]
|
|
287
|
+
Location: components/Modal.tsx:28
|
|
288
|
+
SC 2.1.2 | Level A
|
|
289
|
+
Fix: Add FocusTrap component or use Dialog from Radix
|
|
290
|
+
|
|
291
|
+
2. Form inputs without labels [CONFIRMED by Forms, Semantic]
|
|
292
|
+
Location: app/settings/page.tsx:45
|
|
293
|
+
SC 1.3.1, 4.1.2 | Level A
|
|
294
|
+
Fix: Add Label components with htmlFor associations
|
|
295
|
+
|
|
296
|
+
[Full report saved to docs/08-project/a11y-audits/a11y-audit-20260301.md]
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
302
|
+
## Compact Summary
|
|
303
|
+
|
|
304
|
+
**Command**: `/agileflow:code:accessibility` - Multi-agent WCAG accessibility analysis with consensus
|
|
305
|
+
|
|
306
|
+
**Quick Usage**:
|
|
307
|
+
```
|
|
308
|
+
/agileflow:code:accessibility app/ # Quick scan (all 5 analyzers)
|
|
309
|
+
/agileflow:code:accessibility . DEPTH=deep # Comprehensive analysis
|
|
310
|
+
/agileflow:code:accessibility components/ FOCUS=keyboard # Specific area
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**What It Does**: Deploy a11y analyzers in parallel -> Each checks different WCAG areas -> Consensus validates, filters by framework, maps to WCAG 2.2 -> Actionable Accessibility Audit Report
|
|
314
|
+
|
|
315
|
+
**Analyzers (all 5)**:
|
|
316
|
+
- `a11y-analyzer-semantic` - Headings, landmarks, semantic elements
|
|
317
|
+
- `a11y-analyzer-aria` - ARIA roles, states, live regions, widget patterns
|
|
318
|
+
- `a11y-analyzer-visual` - Contrast, motion, color-only info, focus indicators
|
|
319
|
+
- `a11y-analyzer-keyboard` - Focus management, tab order, keyboard-only access
|
|
320
|
+
- `a11y-analyzer-forms` - Labels, errors, autocomplete, validation
|
|
321
|
+
|
|
322
|
+
**Severity Levels** (impact-oriented):
|
|
323
|
+
- BLOCKER: No access at all (missing keyboard support, no labels)
|
|
324
|
+
- MAJOR: Significant barrier (skipped headings, missing landmarks)
|
|
325
|
+
- MINOR: Degraded experience (redundant ARIA, missing autocomplete)
|
|
326
|
+
- ENHANCEMENT: Best practice improvement
|
|
327
|
+
|
|
328
|
+
**Output**: `docs/08-project/a11y-audits/a11y-audit-{YYYYMMDD}.md`
|
|
329
|
+
<!-- COMPACT_SUMMARY_END -->
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Boundary Rules (No Overlap)
|
|
334
|
+
|
|
335
|
+
- **vs code:security**: No XSS, injection, auth issues - those are security domain
|
|
336
|
+
- **vs code:performance**: No bundle size, rendering perf - those are performance domain
|
|
337
|
+
- **vs code:test**: No test coverage, test quality - those are test domain
|
|
338
|
+
- **Focus on WCAG conformance and assistive technology access**
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Related Commands
|
|
343
|
+
|
|
344
|
+
- `/agileflow:code:security` - Security vulnerability analysis
|
|
345
|
+
- `/agileflow:code:logic` - Logic bug analysis
|
|
346
|
+
- `/agileflow:code:performance` - Performance bottleneck analysis
|
|
347
|
+
- `/agileflow:review` - Code review (includes basic a11y checks)
|