/gaia-test-a11y
user-facingWhat it does
Executes post-deploy accessibility smoke tests via axe-core, pa11y, or Lighthouse adapters. Applies the shared WCAG rubric for consistent severity classification across planning, pre-merge, and deployment phases.
When to use it
- You need to run accessibility tests against a deployed page to verify WCAG compliance.
Prerequisites
- An a11y adapter must be installed (axe-core, pa11y, or Lighthouse).
Orchestration mode
When /gaia-test-a11y starts in subagent mode (Mode A -- the default), the framework emits a one-shot warning to your conversation. The warning text:
────────────────────────────────────────────────────────────────────────────
GAIA orchestration: running in subagent mode (Mode A)
The skill you're invoking belongs to a class (heavy-procedural or
conversational) whose output benefits from cross-step context. Mode A
dispatches each sub-agent in its own forked context, so context may
be lossy between steps — sub-agents return summaries, not full reasoning.
For the full-fidelity experience, enable Mode B (Agent Teams):
1. Set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in your environment.
2. Add orchestration.mode: team to .gaia/config/project-config.yaml.
Mode B uses persistent teammates that preserve in-conversation state
across dispatches.
This warning is shown once per session.
────────────────────────────────────────────────────────────────────────────
Why Mode B is better for this command
The /gaia-test-a11y skill declares orchestration_class: heavy-procedural in its SKILL.md frontmatter. Heavy-procedural skills produce output that benefits from cross-step context -- under Mode A every sub-agent dispatch runs in its own forked context and can only return a summary back to the orchestrator, losing the full reasoning trace of every prior step. Mode B uses persistent teammates that retain in-conversation state across dispatches, so each agent's contribution can build on what was said before instead of receiving only a summary.
How to enable Mode B
Both steps are required. If either is missing, the framework falls back silently to Mode A and the warning fires again on the next session.
Step 1 -- set the environment variable:
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Add this to your shell rc file to persist across sessions, or set it in Claude Code's settings.json.
Step 2 -- add the YAML block to .gaia/config/project-config.yaml:
orchestration:
mode: team
One-shot semantics
The warning is emitted once per Claude Code session. A marker file at _memory/checkpoints/orchestration-warning-shown.<session-id> suppresses the warning for the rest of the session. Starting a new session re-emits the warning once.
How to invoke
/gaia-test-a11y E3-S7
/gaia-test-a11y --adapter axe-core
/gaia-test-a11y --target-url https://staging.example.com
/gaia-test-a11y --wcag-level AA
/gaia-test-a11y E3-S7 --adapter pa11y --target-url https://staging.example.com --wcag-level AAAWhat it does step by step
See the description above for the high-level flow. The command handles all steps automatically.
Inputs
| Input | Source | Description | Example |
|---|---|---|---|
story-key | Positional argument (optional) | Links the run to a story's Review Gate. | /gaia-test-a11y E3-S7 |
--adapter | Argument (optional) | Override the configured a11y adapter (axe-core, pa11y, lighthouse). | /gaia-test-a11y --adapter axe-core |
--target-url | Argument (optional) | Override the target URL to test. | /gaia-test-a11y --target-url https://staging.example.com |
--wcag-level | Argument (optional) | WCAG conformance level: A, AA, or AAA. | /gaia-test-a11y --wcag-level AA |
Outputs
Structured verdict with WCAG violation findings. Review Gate updated if a story key is provided.
Example session
> /gaia-test-a11y --target-url https://staging.example.com
Running...
(Command output varies by project and configuration.)What to run next
Follow the suggestions displayed at the end of the command output.
Troubleshooting
Check that prerequisite files and tools are in place. The command provides specific error messages with guidance when something is missing.
I keep seeing the GAIA orchestration warning every time I start this command
The warning is shown once per session, so if it fires again that's a new session -- not a per-skill repeat. If you want to silence it entirely, enable Mode B (full-fidelity orchestration via Agent Teams). Both of these conditions must be true:
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSreturns1(not empty).gaia/config/project-config.yamlcontains:orchestration: mode: team
If either is missing the framework silently uses Mode A and re-emits the warning each session.