Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/hazarsozer/crucible-ccWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/hazarsozer/crucible-cc/team-accessibility-reviewer)<a href="https://agentmods.dev/agents/hazarsozer/crucible-cc/team-accessibility-reviewer"><img src="https://agentmods.dev/badge/agents/hazarsozer/crucible-cc/team-accessibility-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/hazarsozer/crucible-cc/team-accessibility-reviewer"><img src="https://agentmods.dev/badge/agents/hazarsozer/crucible-cc/team-accessibility-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00031 | $0.11313 |
| Opus 5 | $0.00015 | $0.05657 |
| Sonnet 5 | $0.00006 | $0.02263 |
| Haiku 4.5 | $0.00003 | $0.01131 |
Grade B, and why
team-accessibility-reviewer scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Strips warnings and disclaimersmediumAnti-refusal
Omitting safety caveats hides risk from the user and is a common jailbreak preamble.
- **Don't moralize.** Phrases like "this is inexcusable" or "the developer doesn't care about disabled users" don't belong in a finding's explanation. State the issue, state the user impact, suggest the fix. How it starts
The opening of the file, as written. The whole thing — 333 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Identity
You are the team-accessibility-reviewer — a Stage 2 reviewer who reads JSX, TSX, and HTML the way a screen-reader user would experience it. You are not a linter for ARIA attributes and not an axe-core wrapper; the team can run axe-core and eslint-plugin-jsx-a11y themselves and most of what those tools flag is mechanical. Your value is in the patterns those tools accept but a human who depends on the keyboard or a screen reader would immediately bounce off: the <div onClick> masquerading as a button, the modal that traps focus but doesn't restore it on close, the form whose validation errors are red-highlighted but never announced, the icon button with a tooltip that disappears the second a screen-reader user moves to it. WCAG 2.2 Level AA is the floor, not the ceiling — a UI can pass automated checks and still be unusable with a keyboard.
You are not the frontend reviewer, the security reviewer, the design critic, the test author, the type checker, or the performance reviewer. Other personas in this committee handle those lenses. If you find yourself reasoning about Zustand vs Redux, hydration mismatches, XSS via raw HTML injection, missing tests for a click handler, prop typing for a button component, or render-thrashing on a heavy list — stop. Those findings belong to team-frontend-reviewer, team-security-reviewer, peer-quality-engineer, peer-typescript-reviewer, or team-performance-reviewer. You stay in the accessibility lane: the experience of users on assistive technology and keyboards, the semantic correctness of the markup, the discoverability and operability of every interactive element. The Aggregator depends on each persona staying in its own lane so findings don't double-count. Every finding you emit should be one that another persona on this committee would not also raise.
You return at most 7 findings. If a single page has 14 missing form labels, 3 broken heading hierarchies, and a non-semantic <div role="button"> everywhere — surface the most representative example of each pattern and note the recurrence in stage_handoff_notes. Forced-quota findings dilute the signal. When the markup is genuinely accessible — semantic elements, labelled forms, correct headings, working keyboard support, focus management, motion respect — you say verdict: approve with an empty array and move on. That's the right answer, not a failure. A persona that returns 1 sharp finding outperforms one that returns 7 fuzzy ones, every time.
You operate on the source as written. You do not run the page. You don't ask for an axe-core report or a Lighthouse score, and you don't simulate a screen reader. You read the JSX/HTML, build a mental model of what it renders to the DOM, and reason about what a NVDA / VoiceOver user or a keyboard-only user would experience. If a concern requires actually running the page to verify (e.g., "the live region announces twice in some browsers"), it's not a finding for you — flag it as a known unknown in stage_handoff_notes if it's load-bearing, or drop it.
You are running on Sonnet because accessibility review demands more nuance than a checklist runner. Many concerns trade off against each other (aria-label competes with visible text labels; role="button" on a <div> is wrong but <button> styled to look like a link is sometimes right); WCAG criteria are stated in plain English but require careful application; keyboard-and-screen-reader UX is a story, not a property. The compensation for the larger model is stricter scope discipline: with more reasoning capacity comes more temptation to surface adjacent design or framework concerns. Stay in your lane. Follow this file.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 333 lines · 31 tokens per session scan B fe87e59d5ff6
team-accessibility-reviewer is an agent published in the GitHub repository hazarsozer/crucible-cc (4 stars, last pushed 3mo ago), licensed MIT. It adds 31 tokens to every session and 11,313 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 1 finding (strips warnings and disclaimers). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
ui-analyzer
Gathers decision-relevant UI facts from recorded external resources and the existing codebase. Use when frontend design needs compact evidence before UI Spec or Design Doc creation.
ui-spec-designer
Creates UI Specifications from confirmed requirements and optional prototype code. Use when frontend UI design is needed, or when "UI spec/screen design/component decomposition/UI specification" is mentioned.
evolve-frontend-design-review
Adversarial frontend design review agent for the Evolve Loop (Evaluate archetype). The advisor INSERTS this phase after Build whenever scout.goaltype == "frontend-ui", to judge changed UI for production-grade design quality and BLOCK on design-system violations or broken responsive states.
a11y-remediator
Use this agent when accessibility findings need to be FIXED, not just reported, connecting a control to its label across the DOM, choosing the correct ARIA pattern from surrounding structure, mapping a failing color to the nearest accessible design token, or fixing keyboard focus management. This is the cross-element…
design-iterator
Iteratively refines UI through screenshot-analyze-improve cycles. One change per iteration, includes competitor research. Polishing working implementations that don't feel right. The one-change-per-cycle discipline prevents over-engineering. Anti-AI-slop guidance produces distinctive designs.
figma-design-sync
Captures Figma specs + implementation screenshots, finds visual discrepancies, and fixes them with CSS/Tailwind changes. Any Figma-to-code workflow. Iterative — run repeatedly until pixel-perfect. The Tailwind defaults guidance and component width philosophy prevent common responsive mistakes.