community-access/accessibility-agents
WCAG 2.2 AA enforcement across web UI, Office and PDF documents, markdown and desktop apps. Six router skills dispatch a hundred specialist and reference skills, with hooks that block UI edits until the accessibility lead has reviewed.
Changelog
All notable changes to the Accessibility Agents project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Two more checks in the testing coach's screen reader workflow: a placeholder that repeats its label, and flex or grid children that VoiceOver splits into separate stops or runs together (#259).
- Two enforced rules for accessibility reports and credits.
.github/workflows/accessibility-reports.ymlacknowledges each report, reminds the accessibility owner after 5 business days without a maintainer reply, reopens a report closed without an outcome, and invites the reporter to confirm a fix..github/workflows/accessibility-credits.ymlasks each outside contributor once how they want to be credited and records their answer;node .github/scripts/a11y-credits.mjs --since <tag>prints the release-notes block. The logic is.github/scripts/a11y-community.mjs, tested by the newcommunitygate innpm run verify. See "How we respond" and "Recognition" in ACCESSIBILITY.md.
Fixed
-
A fix that quoted markup could render as a control in the report. A finding such as "Use a
<button type="submit">inside a form" reached the Markdown report as raw HTML, so a viewer drew a real button or dropped the words.render-report.mjsnow escapes markup outside code spans, and its self-test checks it. -
run_axe_scanand the other Playwright tools returned a box-drawn banner when Playwright's browser was not installed, which a screen reader reads symbol by symbol. They now say in one sentence to runnpx playwright install chromium, and keep other errors to plain ASCII. -
Wide tables made an HTML report scroll sideways at 320 CSS pixels. The HTML standard in
kb-github-shared-instructionsandkb-github-workflow-standardsnow wraps each table in a focusabletable-scrollregion that scrolls on its own, and gives checkboxes and that region the same visible focus outline as links. -
The edit gate let every GitHub Copilot CLI edit through. Copilot's hook payload names the tool
toolNameand its argumentstoolArgs, often as a JSON string; the guard read neither, so it never learned which file was being edited (#254). It now reads both, refusesedit,create,str_replace_editor,apply_patchand shell writes to UI files, and opens on every route Copilot can load the lead by: a skill call, a read of itsSKILL.md,subagentStop, or/accessibility-leadin the prompt. Tested against the payloads GitHub documents; a live Copilot session is on the live checks list. -
check_heading_structurelisted an empty heading without reporting it. A heading with no text,aria-label,aria-labelledbyor imagealtis now anempty-headingfinding under WCAG 2.4.6, and the listing prints(empty)for it (#263). -
Audit reports said "1 findings" and "1 checks ran". Counts of one now take the singular, and the blocking list begins "Then the remaining" only when the component list it follows was printed (#257).
-
The MCP server's messages used non-ASCII characters, an ellipsis, a less-than-or-equal sign, em dashes and a warning sign, which a screen reader reads oddly or not at all. They are plain ASCII now (#268).
-
The installer ignored options it did not know.
--helpran a real install, a typo such as--dryruninstalled anyway, and--clientswith no value crashed. It now prints usage for--help, and refuses an unknown option or client id with one line and exit code 2, before writing anything (#267). -
The GitHub Action's README pinned
action@v6.0.0, the release whoseclaude-code-plugin/symlinks GitHub's ZIP download of an action cannot stage, so a workflow copied from it failed before any step ran (#164). 7.0.0 removed every symlink; the README now pinsaction@v7.1.0, and thereleasegate fails when the pin and the package version disagree. -
The edit gate ignored edits made through a shell. It watched the edit tools only, so
sed -i, a redirect, a heredoc,tee,cpor apython3 -cone-liner changed a.tsxfile without a review, and Claude Code's auto mode tells the model to prefer the shell for edits. The gate now also runs onBash(Claude Code, Codex) andrun_shell_command(Gemini CLI) and reads the command for the files it writes; reading a UI file through the shell is still allowed. A path built in a variable or a script run by name is not seen, whichdocs/reference/hooks.mdnow says. Reported by @yaheltal in #199. Codex users who installed withnpm run setupget the new manifest beside their~/.codex/hooks.jsonon the next run, to merge, unless the file is unchanged from what setup wrote. -
The hook messages pointed at
AGENTS.md, which a plugin install does not ship and a user's project does not have. They now name theaccessibility-leadskill only. Reported by @w9fyi in #219. -
verify:liveran Claude Code from this checkout, where.claude/settings.jsonsupplies the hooks and relative paths resolve, so it could not see a plugin that loaded no hooks or MCP server (#219). It now runs from an empty folder and fails unless the plugin's hooks load and its MCP server connects. -
Security: the root tooling's
re2js, pinned at 2.8.6 by markdownlint 0.42.0, carried a high advisory (GHSA-gg6h-894w-4m9c). An override holds it on 2.8.8. Development tooling only; nothing in the plugin or the MCP server uses it. -
The source currency checker opened a new issue on every run while a source stayed down: eleven "Source Unavailable: pdf-ua-1" issues and one for wxwidgets-docs, from #166 to #204. It now updates the open issue with the same title, and treats a 401, 403 or 429 as a site refusing automated requests (pdfa.org and docs.wxwidgets.org both do this to scripts), which files nothing. Its tests run in
npm run verifyasverify:sources.wxwidgets-docsnow points athttps://docs.wxwidgets.org/3.2/, the documentation for the 3.2 line wxPython 4.2 uses;pdf-ua-1moved to the current PDF/UA-1 page in 7.1.0.
Changed
-
The Claude plugin directory lists a plugin-only tree. Submitted from the repository root, the plugin carried the development tooling: the root
package.jsonand lockfile, which make Claude Code runnpm cion install, CI scripts, and over a thousand files, more than the directory inspects.scripts/build-claude-plugin.mjsbuilds the plugin alone (skills, hooks, the bundled MCP server, the manifests, README, PRIVACY and LICENSE; 423 files), with the Agent Plugins manifest and Copilot hooks as well, andplugin-branch.ymlkeeps apluginbranch equal to it on every change tomainand tags each version on it asplugin-v<version>. The Claude plugin directory follows the branch. Awesome Copilot's installer rejects a plugin at the repository root, so acopilot-pluginbranch holds the same tree inaccessibility-agents/, taggedcopilot-plugin-v<version>-<sha>per build..claude-plugin/plugin.jsonnow links the privacy policy, and the README has a privacy section naming the GLOW tools. -
The docs-site manifest workflow no longer opens a pull request when only the manifest's timestamp changed.
-
kb-design-systemwas 508 lines, over the Agent Skills specification's 500, which Awesome Copilot's lint enforces. The framework token paths moved toreferences/framework-token-paths.md, andvalidate-skillsnow fails anySKILL.mdover 500 lines. -
Skills no longer link outside their own folder. Awesome Copilot's lint rejected 82 relative links to sibling skills and repository files, and placeholder link targets such as
(url). Skills now name each other in backticks, link repository files by URL, and use example URLs; andvalidate-skillsfails on any of these. -
Four skill lines that the directory's scanner read as credential or download-and-run patterns are reworded: a CI example uses
${{ github.workspace }}instead of$PWD, an HTML example showsbrew installinstead ofcurl ... | bash, anddeveloper-hubasks for a review rather than a "pass". -
The MCP server is staged on npm, then approved. npm's 2FA-bypass tokens can no longer publish directly (from about January 2027), and the 7.1.0 release's direct publish was refused.
release-assets.ymlnow runsnpm stage publish --provenance, signing in with trusted publishing (OIDC) when npmjs.com has a trusted publisher for the workflow and with theNPM_TOKENsecret otherwise. A maintainer approves the staged release with 2FA; running the workflow again then lists it in the MCP Registry, which waits until the package is public. -
mcp-server/package.jsongivesbinandrepository.urlin the form npm publishes, so npm 11 no longer warns that it rewrote them.
[7.1.0] - 2026-10-28
A full audit of the package against current standards and each client's own documentation, checked against primary sources and reviewed independently, and the adoption of GitHub's Open Source Accessibility Framework, both in the skills and for this project. #221, then #225 to #228.
Fixed
- Plugin installs loaded no hooks and no MCP server on any client. Hooks
now ship as
hooks/hooks.json(Claude Code) andcom.github.copilot/hooks/hooks.json(Copilot CLI, VS Code);plugin.jsonandmcp.jsonvalidate against the Agent Plugins 1.0 schemas. - The MCP server could not start from a plugin install, which has no
node_modules. It now ships bundled asmcp-server/dist/stdio.mjs, and a gate checks the bundle matches the source. - The edit gate deadlocked on Claude Code: the lead runs inline as a skill
and fires no stop event. The gate now also opens on
PostToolUsefor the Skill tool and readsagent_type. Retested live, both ways. - The Codex edit gate never ran: Codex rejected
~/.codex/hooks.jsonover a$commentkey. Nowdescription; Codex loaded all six hooks it then defined. - The Codex edit gate stayed shut when the lead ran inline: it opened only
on
SubagentStop, and Codex fires that only for subagents. It now also opens onPostToolUseforBashwhen the command reads the lead'sSKILL.md, which is how Codex loads a skill (a plain read only: listing, grepping, diffing or writing the file does not count), and when the prompt names$accessibility-leador$web-accessibility-wizard. Reported by @Orinks in #168. - The Codex edit gate allowed every edit: Codex sends
apply_patchwith the patch text intool_input.commandand no path field, so the guard saw no file and let the edit through. It now reads the edited paths from the patch's file headers, and refuses the patch if any of them is user-facing. - The Gemini CLI edit gate never opened: it marked on
AfterAgent, whose payload names no skill. Gemini loads a skill withactivate_skill, so the gate now opens onAfterToolfor that tool, readingtool_input.name. - Gemini CLI never saved audit state before compression: the guard
recognised
PreCompactbut not Gemini'sPreCompress. run_axe_scannever ran (@axe-core/playwrightneeds a page from a browser context); itswcagfield now uses the findings-contract form.- The three prompts and both resource templates were registered wrongly: wrong arguments, and every resource read returned "not found".
- axe never ran 2.5.8 Target Size:
wcag22aawas missing from the default tags and from dozens of commands in the skills. - Office and ePub scan configs had no effect: the scanners now read the per-format blocks.
- The installer ran on every
npm install(nownpm run setup); its--uninstalldeleted every package's skills and Codex's own hooks file. - Routers could not run their specialists. The dispatch prompt pointed at
skills/<name>/SKILL.md, a path relative to the package, but a subagent starts in the user's project, where noskills/folder exists; and the specialist's hidden-from-catalog flag read as a reason not to run it. The prompt now carries<skills-root>, resolved to an absolute path, says that running a hidden specialist this way is intended, andrender-report.mjsruns from the same root. Found in a live Claude Code test. - Security: 1 critical and 3 high advisories in the MCP server tree (SDK 1.32.2, zod 4).
Added
- Antigravity edit gate (
hooks/antigravity.hooks.json): the gate opens when Antigravity reads the lead'sSKILL.md. Tested against the documented hook payloads; not yet in a live Antigravity session. - Codex plugin route:
codex plugin marketplace add Community-Access/accessibility-agents, thencodex plugin add accessibility-agents@community-access(skills and MCP server; Codex no longer loads plugin hooks, so the gate needsnpm run setup). - Gemini CLI extension:
scripts/build-gemini-extension.mjsbuildsaccessibility-agents.tar.gz(manifest,AGENTS.mdas context, skills, Gemini hooks, bundled MCP server), and.github/workflows/release-assets.ymlattaches it to each release. Install withgemini extensions install https://github.com/Community-Access/accessibility-agents. Validated with Gemini CLI 0.66.0; not yet tested in a live, signed-in session. - MCP server on npm and the MCP Registry: published on release as
@community-access/accessibility-agents-mcp(the bundle only, no runtime dependencies; Playwright, axe and pdf-lib are optional peers) and asio.github.Community-Access/accessibility-agents(server.json), by themcp-registryjob inrelease-assets.yml. - Plugin icon (
.claude-plugin/icon.png) and the Community Access URL in the Claude Code and Codex manifests. - Open Source Accessibility Framework adoption. Four phase skills,
osaf-foundational,osaf-workflow,osaf-testingandosaf-community, implement the framework's 24 actions in a repository, all of them or one at a time, with the framework's exact IDs, cadences and Definitions of Done, and hand parts of each action to the package skills that do them.kb-open-source-accessibility-frameworkholds the action index, the tracking issue flow and the framing.github-hubroutes "adopt OSAF", phase and action requests to them. Seedocs/standards/osaf.md. - This project's own accessibility commitment, following the framework:
ACCESSIBILITY.md(priorities, contributor expectations, how to report a barrier, severity, response and resolution targets, supported environments, known limitations), an accessibility issue form andaccessibilitylabel, an accessibility checklist in the pull request template, and an accessibility section inCONTRIBUTING.md. - Qt Widgets in
desktop-a11y-specialist: where a widget's accessible name comes from (checked against the qtbase source), and.uifile checks for unnamed icon buttons, placeholder-only fields, buddy labels,NoFocusand tab order. AtoolTipor placeholder is the Description, not the Name, even though NVDA speaks it. - Flex and grid text runs in
aria-specialist: flex and grid items split one phrase into several screen reader stops, and white space between them is dropped, gluing words together ("Ada6:37 PM"). With the matching grouping guidance for React Native, SwiftUI, UIKit and Compose inmobile-accessibility. - Codespaces:
.devcontainer/devcontainer.jsonand.vscode/mcp.json. - Live client check verified on Claude Code and Codex.
Changed
- All 108 skills audited: ADA Title II and HHS 504 dates, EN 301 549 V3.2.1 and V4.1.1, ISO/IEC 40500:2025, the WCAG 3 draft, 4.1.1, VPAT 2.5Rev, PDF/UA-2, ARIA and APG patterns, axe, Lighthouse and framework APIs.
- One scoring model, the renderer's (
merge-findings.mjs), everywhere. - About 160 documents corrected: install commands, hooks per client, conformance numbers, dead links, house style.
- Node 22 or later; the GitHub Action uses Node 24 and current action majors.
- The wiki now mirrors
docs/. The sync copied a page that was not on its fixed list only the first time it appeared, so later edits never reached the wiki, and it never removed anything, so 117 pages from 6.x and earlier lived on.scripts/sync-wiki.mjsnow writes every page whose source changed, removes pages with no source, gives the four file names that clashed their own pages, and builds Home and the sidebar from.github/wiki/. AWiki page namesgate innpm run verifystops a clash before it merges. plugin-packaging.mdandcross-platform-handoff.mdmoved from.github/docs/todocs/guides/advanced/, beside the other advanced guides; the older duplicates in.github/docs/were removed and the wiki sync points at the new paths.
Removed
- The VS Code extension (
vscode-extension/). It discovered.github/agents/*.agent.mdfiles that 7.x no longer ships. VS Code installs the package as an agent plugin instead. - Two release scripts that checked files removed in 7.0.
- Leftovers that nothing referenced or ran. About 100 pre-7.0 documents
under
docs/history/(plans, migration records, the 6.x prompt files, superseded guides); the records of 7.0 and 7.1 and the measurements the conformance dossier cites are kept. Also removed: the Go CLI and its build workflow (it inspected.claude/agents,.github/agentsand other trees that 7.0 deleted), the one-off 7.0 migration and docs-reorganization scripts, the Gemini sync check, an unrun scoring test, the optional git pre-commit hook and its installer (which failed under ESM), the config integrity check no workflow ran, the duplicate release consistency workflow (thereleasegate innpm run verifyruns the same script), the no-op ESLint job,.github/AGENTS-TEAMS.md, the 6.x Copilot review and commit-message instruction files, the MCP directory notes and the stale MCPB manifest template, the enterprise config template,ruff.toml, the v6 extensions guide, and the VS Code tasks that called removed repair scripts. Git history keeps all of it.
Contributors
Thank you to everyone whose pull requests shaped this release. Ported here, with changes:
- @w9fyi (#220):
the Claude Code Skill-tool mark and
agent_type, a stop hook that cannot loop (stop_hook_active) and gives a usable reason, and the right event name on restored context. - @AdamMagued (#215, #212): the current PDF/UA-1 source page, and the Headers/IDs exception to TH Scope (Matterhorn 15-003).
- @chrisnestrud (#210, #211, #208): keeping streaming transcripts out of live regions, its screen reader test, and placeholder guidance for labelled fields; and (#218, #209) the Qt Widgets guidance and flex and grid text runs.
- @Orinks (#169): the report and first fix for a Codex gate that stayed shut after a valid review, which the Codex skill-read mark now covers.
[7.0.3] - 2026-09-23
Every MCP tool failed on invocation in 7.0.2. Reported as #205.
Fixed
- All 39 MCP tools returned an error when called. 7.0.0 gave every tool an
outputSchema; 7.0.1 moved the SDK to 1.30.0, which validates handler output against that schema and requiresstructuredContentalongside the text. The handlers returned text only, so the server's own SDK rejected every result withMCP error -32602: Output validation error. The server started, handshook and listed all 39 tools correctly, which is why it looked healthy. Every handler now returns a payload matching its declared schema. - Results are built through
mcp-server/results.jsrather than assembled at each call site, so the schema intool-metadata.jsand the shape a handler returns cannot drift apart silently again. Failures returnisError, which the SDK exempts from output validation. fix_document_headingscalled an undefined function. It usedparseZipCd, which does not exist, so every call ended inReferenceErrorregardless of input. It now usesreadZipEntries, the parser the rest of the server uses.- Three tools declared a document-shaped output schema but return their output
inline rather than writing a file.
convert_pdf_form_to_html,generate_accessibility_statementandglow_generate_reportnow declare the status shape they actually produce.
Added
- An end-to-end
tools/callgate, covering all 36 tools that can be called without changing state on disk. This is the test whose absence let the defect ship: the existing suite exercised handler functions directly and readtools/list, so nothing ever put a result through the SDK's output validation. The gate asserts on the error text, not justisError- the SDK's rejection arrives asisErrorand is otherwise indistinguishable from a handler's own error. mcp-servernow runs the conformance test as part ofnpm test, not only through the repository'sverify:mcp.
[7.0.2] - 2026-09-21
The first end-to-end audit, and the defect it found. Full record in docs/history/2026-09-first-real-audit.md.
Fixed
- The merge deduplicated nothing across skills. It keyed on rule identifier plus location, and every specialist invents its own rule namespace, so nine specialists produced 141 findings and none merged. One div used as a button was reported eight times at the same line, under eight rule ids, and the report asked the reader to fix it eight times. Thirty-three locations carried more than one finding.
collapseSameDefectnow compares co-located findings on what they say. The same run yields 103 findings with 27 clusters merged. A merged finding keeps the worst severity and records every skill and rule id that contributed, and the similarity bar is high enough that two genuinely different defects on one line stay separate.
Added
scripts/audit-fixture.mjs, which strips the fixture's answer key and emits a line map, so an audit of it measures detection rather than reading.scripts/audit-recall.mjs, which grades an audit against the planted defects. Approximate by design and described as such.- Eight findings-contract tests covering the collapse, taken from the real run, including the case that must not merge.
[7.0.1] - 2026-09-21
Closes every high-severity dependency advisory on the default branch, and adds the gate that should have caught them. Details in docs/standards/dependencies.md.
Added
- Dependency gate (
npm run verify:deps, the fifteenth gate innpm run verify). Audits all three dependency trees against the npm advisory database and fails on high or critical. The runtime tree and the CI tooling are fatal; the deprecated extension is reported only. Offline exits 2 rather than printing a pass it has not earned. docs/standards/dependencies.md, describing the three trees, why their thresholds differ, and each override with the range its parent asks for.
Fixed
- 24 high-severity advisories, all of them transitive.
mcp-server: eight runtime advisories infast-uri(five),honoandip-address. The MCP SDK moved from 1.27.1 to 1.30.0, which was not enough, so each is pinned underoverridesto its first patched release, inside the range its parent asks for.mcp-server: three further advisories in@hono/node-server,body-parserandqs, cleared bynpm audit fix.vscode-extension: sixteen advisories in the packaging toolchain (undici,js-yaml,form-data,linkify-it,brace-expansion,fast-uri), all build-time, cleared bynpm audit fix.
All three trees now report zero vulnerabilities at every severity, and the MCP server's 71 tests still pass.
[7.0.0] - 2026-09-21
One package on the open agent standards, replacing six hand-maintained per-client trees. Always-on context cost falls 84 to 93 percent depending on client; dispatching a specialist falls from 26,929 tokens to 100.
Full detail in modern.md; evidence in docs/MODERNIZATION-CONFORMANCE.md.
Added
-
One skills package at
skills/, 108 skills conforming to the Agent Skills specification and read natively by Claude Code, Codex, Copilot, Gemini and Antigravity. Four tiers: six model-invocable routers, 57 specialists, 16 helpers, 29 reference skills. Only the routers cost the model anything. -
Findings schema at
skills/a11y-core/schemas/findings.schema.json. Every scanning skill returns JSON against it, so a finding means the same thing whichever skill produced it. -
Report renderer (
render-report.mjs) producing all seven required sections, the score and grade, and a delta against the previous run. Reports embed their merged findings so the next comparison is free. -
WCAG 2.2 criterion list (
wcag22-criteria.json) checked against every finding, so an audit cannot cite a criterion that does not exist or claim the wrong conformance level. The obsoleted 4.1.1 Parsing is caught specifically. -
One enforcement guard (
hooks/guard.mjs) with four client manifests, replacing four scripts in three languages. Twenty-two tests. -
MCP tool annotations and output schemas on all 39 tools. Twenty-nine read-only scanners can now be auto-approved, so a bulk scan stops asking once per document.
-
render_accessibility_reportMCP tool, so clients without a shell produce byte-identical reports. -
Eleven verification gates behind
npm run verify, each naming the standard it checks and what a failure would cost a person. -
Context measurement (
measure-context.mjs) reporting per-client cost, with budgets enforced in continuous integration. -
New installer (
scripts/install.mjs), 8 KB replacing 215 KB of shell and PowerShell. Detects installed clients, refuses to overwrite a hooks file or a skill the user has edited. -
Live gates on three clients.
npm run verify:livenow measures Claude Code, Codex and Copilot in real sessions, reading what each client emits rather than asking a model. All three show exactly the six routers. -
Generated dispatch matrices. Each router's roster is derived from skill frontmatter by
scripts/build-dispatch-matrices.mjs; CI fails if one drifts, so adding a specialist cannot leave it unreachable. -
Generated reference pages. The skills catalog and the MCP tools table are built from source by
scripts/build-docs.mjsand checked in CI. -
scripts/new-skill.mjsscaffolds a skill that passes every gate on its first run, including the Codex policy file and an example findings payload. -
scripts/dev-link.mjspoints a checkout's.agents/skillsatskills/so every client reads edits directly, with a copy fallback where the volume allows neither junctions nor symlinks. -
Documentation framework.
docs/now has an index and six sections: getting started, guides, reference, standards, architecture and history. Every standard the package conforms to has its own page with version, clauses, checks and deviations. One hundred historical documents moved todocs/history/with a banner; no present-tense page references a deleted directory. -
ROADMAP.mdrewritten for what comes after 7.0, with the reservations about 7.0 stated first. -
Table descriptions for 707 tables, written from each table's own column headers so a screen reader user knows what a row is before entering table navigation.
Changed
AGENTS.mdis the only always-on instruction file.CLAUDE.mdis one line importing it.GEMINI.mdandcopilot-instructions.mdare gone.- Routers dispatch by name, not by pasting. A router previously read a specialist's body into its own context and pasted it into the prompt, paying for it twice.
- The edit gate opens on the lead's completion, not its launch. A cancelled review previously unlocked every edit for the rest of the session.
- The reminder injects once per session, capped at sixty words, rather than roughly 570 tokens on every prompt.
- The MCP server reads its version from its manifest. It had hard-coded "4.6.0" in three places while its manifest said 6.0.0.
- Nine tool descriptions cut to one sentence, which is what a client shows in a picker.
- Copilot's path-scoped instruction files survive as
kb-path-instructions, one reference each, opened only when working on a matching file.
Fixed
- 21 agents carried a paragraph or section verbatim twice, from copy drift.
- 16 skill bodies carried multiple H1 headings.
- 279 bare URLs where a descriptive link was meant.
- 53 links that resolved to nothing from either the old or the new location.
- 2 unquoted YAML descriptions containing a colon, which a strict parser rejects, found by the specification's own validator.
- 2 MCP tools marked local that call a remote service.
- Build output, tests and dependencies were gated as if they were a user's interface.
- Codex child-session and parent-thread identifiers are now treated as one session, so a valid review is no longer invisible to the edit gate.
- Codex listed all 29 reference skills in its model catalog because they had
no
agents/openai.yaml; Codex decides catalog membership from that file, not from frontmatter. Found by the live probe. Every non-router now carries it. - The Codex context budget was counted by user-invocability and overstated by about 1,300 tokens; it is now counted by the policy file, and Codex carries the same 1,500-token target as every other client.
- The markdown linter scanned the editor's local history, a gitignored private directory, inflating its findings by 228 duplicates of files already checked at their real paths.
- 63 code fences closed with a
textinfo string, which opens a new block rather than closing the old one, so everything after them was read as code. - 24 headings carried emoji, which a screen reader announces by Unicode name before the words that matter.
- The
md-table-descrule demanded markdown that GitHub does not render as a table. Fixing it cleared 939 false warnings without editing a document.
Removed
.claude/agents,.claude/specialists,.claude/hooks,claude-code-plugin,codex-skills,codex-plugin,.codex,.gemini,.github/agents,.github/skills,.github/prompts,.github/instructions,.github/hooks: 843 files, every one a copy of something now inskills/.gemini-extension.json,GEMINI.md,plugin.yaml,.github/copilot-instructions.md,.a11y-agent-manifest.- 21 scripts and workflows whose subject no longer exists, including
check-platform-parity.js(one tree replaced six),install.shandinstall.ps1. - Eight continuous integration workflows, folded into one.
- Root clutter: generated lint output, a 282 KB results file, three scratch
files, a stray file named
C, and two sample audit outputs.
Deprecated
vscode-extension/is superseded by native Agent Plugins support in VS Code. The source is kept so a final version can point existing users at the package.
[6.0.0] - 2026-06-15
Added
- Native Codex plugin distribution with router skills, Codex custom subagents, lazy specialist references, and built-in extension manifests.
- Codex web accessibility router that starts
accessibility-lead, selects relevant specialists, passes skill context, and falls back to root-session specialist dispatch when nested dispatch is unavailable. - Codex lifecycle hook guard for UI work:
UserPromptSubmitinjects the lead-plus-specialists dispatch requirement.SubagentStartandSubagentStoptrack lead and specialist lifecycle.PreToolUseblocks UI edits untilaccessibility-leadstarts.Stopblocks final answers until the lead and required specialists complete.
- Codex dispatch smoke test (
scripts/codex-accessibility-dispatch-smoke.mjs) with source checks and optional live verification that lead and specialists spawn and complete. - Built-in extension registry for core, web, documents, markdown, GitHub, and developer-tools domains, using the same manifest structure intended for third-party extensions.
- Extension marketplace groundwork for reviewed community extensions, contributor-facing extension documentation, and private administrator review workflow separation.
Changed
- Universal installer Codex support now installs the Codex plugin payload, router skills, custom subagents, built-in extensions, compatible model-stamped agents, plugin marketplace entry, and a single user-level hook guard in
~/.codex/hooks.json. - Codex hook registration now uses the installer-managed user-level hook path only, avoiding duplicate
UserPromptSubmitcontext from plugin-bundled and user-level hook registration. - Codex subagent model handling no longer hard-pins legacy role templates to
gpt-5; installed Codex agents are stamped with the configured compatible model. - Release readiness now includes Codex plugin structure validation and Codex accessibility dispatch source smoke checks.
- Release consistency validation now checks
manifest.jsonalongsideplugin.yaml,gemini-extension.json, andmcp-server/package.json.
Fixed
- Fixed Codex sessions that loaded the web accessibility skill but continued locally without dispatching
accessibility-lead. - Fixed partial-dispatch behavior where Codex spawned the lead but finalized before specialist review completed.
- Fixed duplicate Codex hook context caused by registering the same hook through both the plugin manifest and
~/.codex/hooks.json. - Fixed Codex hook marker matching when subagent lifecycle events use child session or parent thread identifiers different from the parent edit hook.
- Fixed targeted ARIA review prompts such as "look for extraneous ARIA regions" not triggering the accessibility dispatch hook.
- Fixed overly broad specialist selection where targeted ARIA review language could fan out to the full web audit team.
[5.4.0] - 2026-05-06
Added
- CI integrity guard workflow:
.github/workflows/ci-integrity-guards.ymlvalidates workflow invariants, config/schema integrity, and documentation version pin freshness on every push and PR. - Guard scripts:
scripts/validate-workflow-invariants.mjs- asserts CI job ordering and required stepsscripts/validate-config-integrity.mjs- verifies scan config templates against JSON schemasscripts/validate-doc-version-pins.mjs- detects stale version references in documentationscripts/release-readiness-check.mjs- aggregated pre-release check that runs all three validators
- Playwright high-impact workflow:
.github/workflows/playwright-high-impact-check.ymladds runtime accessibility checks targeting the highest-severity failure classes. - Playwright high-impact runner:
mcp-server/scripts/playwright-high-impact-check.mjsscans at four viewports (320/768/1024/1440), checks keyboard trap heuristics, overflow, and touch targets, and outputs JSON and markdown artifacts. - Office/PDF/EPUB JSON schemas under
.github/schemas/(office-config.schema.json,pdf-config.schema.json,epub-config.schema.json) wired into all template files and VS Codesettings.jsonfor in-editor validation. - Branch hygiene workflow:
.github/workflows/branch-hygiene-report.ymlreports stale long-lived release branches. - New guides:
docs/guides/playwright-high-impact-checks.mddocs/guides/ci-integrity-guards.mddocs/guides/release-communications-checklist.md
- Playwright integration doc:
docs/tools/playwright-integration.mdcovers setup, configuration, and CI integration patterns.
Changed
- PR template release checklist expanded with version alignment, release notes structure, and action tag freshness checks.
- Template schema references for Office/PDF/EPUB profiles now point to local repository schema files.
- Release communications checklist updated to include CI integrity guard and branch hygiene steps.
- Documentation refresh across
README.md,docs/getting-started.md,docs/USER_GUIDE.md, andprd.mdto cover new CI guard rails and high-impact Playwright checks.
[5.3.0] - 2026-05-07
Added
- Regression-only CI mode for markdown scanner:
--regressionflag scopes the scan to files changed in the current git diff (git diff --name-only <baseline-ref> -- "*.md" "*.mdx"). Falls back to full scan when the ref is unavailable. Controlled viaA11Y_REGRESSION_MODEenv var andregression_modeworkflow dispatch input. - SARIF upload to GitHub Code Scanning:
a11y-check.ymlmarkdown-lint job now uploads SARIF findings to the Code Scanning UI viagithub/codeql-action/upload-sarif@v3(categorymarkdown-accessibility) in addition to storing it as a workflow artifact. - JSON schema validation for config files:
loadConfig()now callsvalidateConfigSchema()which emits::warningannotations for unknown top-level keys, wrong types onignoredDirs,maxIssuesPerRule,failOn,output, and per-ruleenabled/severityfields. Validation never throws and never blocks the scan. - JSON Schema definition:
.github/schemas/markdown-config.schema.json(JSON Schema draft-07) documenting all valid fields for.a11y-markdown-config.jsonwith descriptions, types, and enums. $schemareference intemplates/markdown-config-moderate.jsonpointing to the new schema for editor intellisense.- Markdown scanner unit tests:
scripts/test-markdown-scanner.mjswith 18 test cases covering clean file, missing alt, multi-H1, heading skip, ambiguous link, emoji heading, code-block skip, config rule disable, gate modes, SARIF output, front-matter skip, config schema warnings, and regression mode behavior. - Orchestrator validator integration tests:
scripts/test-orchestrator-validator.mjswith 25 tests verifying script existence, all 7 required orchestrators, non-empty specialist directory, passing exit code, Read patterns, and Task references. - Release consistency guard workflow:
.github/workflows/release-consistency-guard.ymldetects version drift acrossplugin.yaml,gemini-extension.json,mcp-server/package.json, andmanifest.jsonon every push/PR to main. Also errors when CHANGELOG lacks an entry for the current version. - Test steps in CI:
validate-orchestrator-contracts.ymlnow runs both test suites (test-markdown-scanner.mjsandtest-orchestrator-validator.mjs) and triggers on changes to those scripts and the scanner itself. - VS Code JSON schema bindings:
.vscode/settings.jsonnow maps.a11y-markdown-config.json,.a11y-office-config.json, and.a11y-pdf-config.jsonto their respective schemas for editor intellisense and validation.
Changed
a11y-check.ymlSARIF upload step now hascontinue-on-error: trueso a clean run (no SARIF file generated) does not fail CI.- Release consistency guard CHANGELOG check promoted from warning to error: missing CHANGELOG entries now fail the workflow with
exit 1. a11y-check.ymlmarkdown-lintjob now haspermissions: security-events: write, contents: read,fetch-depth: 2for git diff support, and conditionally passes--regressionwhenA11Y_REGRESSION_MODE=true.validate-orchestrator-contracts.ymlworkflow name updated and path triggers expanded to include both test scripts and the scanner file.runScannerRawhelper intest-markdown-scanner.mjsswitched fromexecSynctospawnSyncto capture stderr on successful (exit 0) runs, enabling config schema warning assertions.
[5.2.0] - 2026-05-06
Added
- Markdown scanner config support via
.a11y-markdown-config.jsonin.github/scripts/markdown-a11y-lint.mjswith per-rule enable/disable, severity overrides, ignore directory control, and configurable per-rule output limits. - SARIF export support for markdown accessibility findings (
--format sarif|both,--output) to enable machine-readable CI artifacts. - New template:
templates/markdown-config-moderate.jsonfor fast adoption of markdown scanning defaults. - Orchestrator dispatch contract validator:
scripts/validate-orchestrator-dispatch.jsto enforce requiredSpecialist Dispatchsections and verify specialist file references exist. - New CI workflow:
.github/workflows/validate-orchestrator-contracts.ymlto run dispatch contract validation on PRs and pushes. - New documentation guide:
docs/guides/metadata-markup-conventions.mddefining recommended metadata and markup conventions for agents, skills, and instruction files.
Changed
a11y-check.ymlmarkdown lint job now supports gate modes (none|error|warning) and output modes (text|sarif|both) through workflow dispatch inputs and repo variables (A11Y_MARKDOWN_FAIL_ON,A11Y_MARKDOWN_FORMAT).web-severity-scoringskill upgraded with v2 guidance: scoring profiles, calibration coefficients, confidence-drift guardrails, normalized trend metric, and recommended scoring metadata fields.docs/getting-started.mdupdated with markdown scanner config examples, CI gate mode behavior, and SARIF usage patterns.AGENTS.mdexpanded with recommended metadata frontmatter conventions for agents and skills, plus instruction markup conventions.README.mddocumentation index now includes the metadata and markup conventions guide.
Fixed
- Markdown lint CI resilience improved by making scanner behavior configurable without code changes.
- Orchestrator-specialist drift risk reduced by adding CI-enforced dispatch contract validation.
[5.1.0] - 2026-05-03
Added
Claude Code Specialist Architecture (Resolves #111)
- 73 Claude Code specialists moved to
.claude/specialists/— On-demand specialists are no longer registered in the Claude Code schema, cutting per-turn schema serialization from ~12,000-16,000 tokens to ~1,500 tokens. Specialists are loaded at runtime viaRead+Taskdispatch when orchestrators need them. - Read+Task dispatch pattern — All 7
.claude/agents/orchestrators now include a## Specialist Dispatchsection documenting the two-step invocation pattern: read the specialist file body withRead(".claude/specialists/<name>.md"), then invokeTask(description="<purpose>", prompt="<specialist_body>\n\n<task_context>"). .claude/AGENTS.mdupdated — Two-directory structure (agents/for 7 registered orchestrators,specialists/for 73 on-demand files) is fully documented with rationale and usage examples.
New GitHub Skills
severity-mappingskill — Canonical severity level definitions and cross-domain normalization for web, document, and markdown audits. Score impact ranges, WCAG conformance alignment, and cross-format normalization. Now used by both web-severity-scoring and report-generation flows.- 25 skills synced to
.gemini/extensions/a11y-agents/skills/— Full Gemini CLI parity for all GitHub Copilot skill knowledge modules.
New Instruction Files
agent-terminology.instructions.md— Glossary of agent-specific terminology applied to all.mdand.agent.mdfiles. Ensures consistent vocabulary (specialist vs. orchestrator, dispatch vs. invoke, etc.) across the entire agent library.
Changed
Structural Fixes: All 80 .github/agents/ Files
- Fixed all structural gaps identified by
scripts/validate-agents.js: missingtools:fields, empty body sections, description length violations, and emoji in prose content. accessibility-regression-detector.agent.md— Added missing## MCP Toolsseparator and blank lines around lists.document-accessibility-wizard.agent.md— Filled empty## Authoritative Sourcessection, added blank lines around lists.- All 7 instruction files (
.github/instructions/) — Fixed MD001, MD022, MD031, MD032, and MD058 markdownlint violations. .github/prompts/README.md— Fixed all heading/table/fence blank-line errors (MD022, MD031, MD058)..github/skills/markdown-accessibility/SKILL.md— Fixed MD032 blank-line-around-list violation..github/skills/severity-mapping/SKILL.md— Shortened description to spec-compliant under 200 characters.
Fixed
- All pre-commit checks pass — 0 validator errors, 0 markdownlint errors, 0 warnings across 80/80
.github/agents/files. - Claude Code token cost — Specialist migration resolves #111: schema serialization reduced from ~12-16k tokens/turn to ~1.5k tokens/turn.
- GitHub Skills spec compliance — All skill descriptions are under 200 characters per the agentskills.io specification.
[5.0.0] - 2026-04-16
Added
New Documentation
docs/subagent-architecture.md— Comprehensive guide covering VS Code 1.113 agent orchestrator patterns, delegation rules, coordinator-worker architecture, explicit allowlisting validation, nested subagent policy (disabled by default), framework integration (Chat Customizations, Agent Debug Log, MCP compatibility), integration patterns for different platforms (Copilot, Claude Code, Copilot CLI, Codex), and troubleshooting guide for orchestration issues.docs/troubleshooting.md— Detailed troubleshooting guide covering MCP server issues (List Servers command, trust prompts, workspace vs profile configuration, version checking), agent configuration problems (agent picker, frontmatter syntax validation errors, coordinator allowlist validation), platform-specific debugging (Windows/macOS/Linux), performance optimization, and common accessibility workflow issues.
New Validation & CI Tools
- Coordinator allowlist validation rule — Added to
scripts/validate-agents.js: agents using the 'agent' tool must now declare an explicitagents:frontmatter field listing which specialist agents they can invoke. This prevents unintended delegation and enforces the explicit coordinator-worker pattern. scripts/check-release-consistency.js— New CLI tool that verifies version alignment across all release manifests (CHANGELOG.md, plugin.yaml, mcp-server/package.json, gemini-extension.json). Returns zero exit code if all versions match, nonzero if drift detected. Used for pre-release validation and CI checks..github/workflows/check-release-consistency.yml— GitHub Actions workflow that automatically runscheck-release-consistency.json every push to main and pull request to main, catching version drift before merge.
Changed
Documentation & Messaging
- Updated README.md with links to new
docs/subagent-architecture.mdanddocs/troubleshooting.mdin the documentation table for improved discoverability. - Refreshed
manifest.jsontimestamp to 2026-03-26 to reflect release date. - Enhanced marketplace and setup guidance with explicit VS Code 1.113 baseline call-outs, including MCP server bridging to Copilot CLI and Claude agents, Chat Customizations editor support, nested subagent defaults, and Agent Debug Log enhancements.
Version Consistency
- Corrected
CHANGELOG.mdversion entry from## [4.50]to## [4.5.0]to follow semantic versioning (X.Y.Z format, not X.YZ). - Updated all platform manifest versions (mcp-server/package.json, plugin.yaml, gemini-extension.json) from v4.0.0 to v4.5.0 for consistency.
Agent Orchestration & Validation
- Enhanced
scripts/validate-agents.jswith new coordinator allowlist validation rule that flags agents using the 'agent' tool without anagents:frontmatter field, ensuring explicit delegation constraints per 1.113 best practices. - Reorganized reference documentation: moved AGENTS.md and code-review-standards.md from
.github/agents/to.github/root directory to clarify that these are reference documents, not agent definitions.
Fixed
- Fixed version drift across release manifests by implementing version consistency validation and automated CI checking to catch misalignment at the point of commit/push.
- Fixed agent validation to enforce coordinator allowlist pattern, preventing unintended nested subagent invocations that could exceed 1.113 depth limits.
- Fixed agent directory organization by moving non-agent reference documents (AGENTS.md, code-review-standards.md) out of the agents directory, reducing validator false positives and improving clarity.
[4.5.1] - 2026-04-09
Added
- Replaced the experimental Codex plugin and marketplace path with a direct
codex-skills/pack covering the full 80-skill catalog. - Updated the Codex installers to copy skills directly into
.codex/skills/or~/.codex/skills/. - Added Codex setup documentation describing the plugin marketplace research, what worked in testing, and why direct skill installation is now the primary recommendation.
Changed
- Updated Codex setup docs to make the direct skills-pack install the primary Codex distribution path.
- Simplified experimental Codex role messaging so the optional TOML role layer no longer references the removed
.codex/AGENTS.mdbaseline.
Removed
- Removed the repo-local Codex marketplace and plugin files from the primary distribution path.
- Removed the obsolete
.codex/AGENTS.mdbaseline in favor of the direct Codex skills pack.
[4.10.0] - 2026-03-24
CLI And Modernization Additions
Enhanced Agent Validator (scripts/validate-agents.js)
- Official tool alias table validation — Tool names are now validated against the official GitHub Copilot custom-agents configuration reference. Covers all canonical tools (
execute,read,edit,search,agent,web,todo) and their documented aliases (shell/bash/powershell→execute,grep/glob→search,task→agent, etc.) - VS Code qualified tool validation — Validates
toolSet/toolNamepatterns (edit/createFile,search/codebase,execute/runInTerminal,web/fetch, etc.) against the complete VS Code built-in tool list - MCP namespace pattern validation — Validates
<server>/*and<server>/<tool>patterns, flags unknown MCP server namespaces with info-level messages - Frontmatter property validation — All YAML frontmatter keys are validated against the official schema (
name,description,tools,model,target,user-invocable,disable-model-invocation,handoffs,agents,hooks,mcp-servers,metadata,argument-hint). Unknown properties are flagged. - Deprecated property detection —
infer:flagged with migration guidance touser-invocable+disable-model-invocation targetvalue validation — Validates againstvscodeandgithub-copilot- Boolean property validation — Ensures
user-invocable,disable-model-invocation, andinferaretrueorfalse - Conflicting property detection — Warns when
infercoexists with its replacement properties - Prompt body size check — Warns when prompt body exceeds 30,000 chars (GitHub.com coding agent limit); skipped for
target: vscodeagents - Duplicate tool detection — Flags duplicate entries in tools lists
- Claude Code tool validation — Validates Claude agents' tools including
MCP(...)wrapper syntax andGitHubbuilt-in tool - Claude Code plugin agents — Now scans
claude-code-plugin/agents/in addition to.claude/agents/ --strictflag — Treats warnings as errors (exit code 1 on any warning). Used by pre-commit hook and CI.--quietflag — Suppresses warnings and info, shows only errors--filesflag — Validates specific files only (for pre-commit hooks), avoids scanning all 265+ files on every commit
Pre-commit Hook
scripts/pre-commit— Git pre-commit hook that validates only staged agent/skill files before allowing commit. Runs in--strictmode to block commits with validation warnings. Bypass withgit commit --no-verify.scripts/install-hooks.js— Cross-platform hook installer. Backs up any existing pre-commit hook before installing. Runnode scripts/install-hooks.jsafter cloning.
CI/CD
- Strict CI validation —
validate-agents.ymlworkflow now runs with--strictflag - Extended trigger paths — CI workflow now triggers on
claude-code-plugin/agents/**changes
Installer improvements
- MCP server dependency installation —
install.ps1andinstall.shnow auto-install MCP server npm dependencies when Node.js is available update.ps1/update.sh— Updated with MCP dependency handling
Documentation
- MCP Server setup guide — Added setup instructions, tool reference table, and troubleshooting to
docs/getting-started.md
Fixed
user-invokable→user-invocable— Fixed typo in 16 agent files (property name and description text) that caused the property to be silently ignored by Copilot- Removed deprecated
infer: true— Removed from 16 agent files. The default behavior (user-invocable: true,disable-model-invocation: false) is equivalent toinfer: true, so no behavioral change. - Duplicate
searchtool inrepo-manager— Removed duplicate entry from tools list - Oversized prompt bodies — Added
target: vscodeto 5 agents (document-accessibility-wizard,daily-briefing,issue-tracker,pr-review,web-accessibility-wizard) whose prompt bodies exceed GitHub.com's 30,000 character limit. These agents are designed for VS Code and use large inlined skill content. - Broken links — Repaired broken URLs and hardened verification (from v4.0.0 follow-up)
4.0.0 - 2026-03-22
Added
New Agents
- CI accessibility agent (
ci-accessibility.agent.md) — Conversational agent for CI/CD accessibility pipeline setup with 5-phase workflow: detection, configuration, baseline management, PR annotation, and monitoring. Supports GitHub Actions, Azure DevOps, GitLab CI, CircleCI, and Jenkins. Includes SARIF integration and threshold configuration. - Screen reader lab agent (
screen-reader-lab.agent.md) — Interactive screen reader simulation for education and debugging. 4 simulation modes: reading order traversal, tab/focus navigation, heading navigation, and form navigation. Includes accessible name computation algorithm walkthrough. - WCAG 3.0 preview agent (
wcag3-preview.agent.md) — Educational agent for WCAG 3.0 Working Draft changes. Covers APCA contrast algorithm, new conformance model (Bronze/Silver/Gold vs A/AA/AAA), outcome-based testing, and delta analysis mode for existing audit reports. Includes critical disclaimer about draft status. - WCAG AAA agent (
wcag-aaa.agent.md) — Dedicated agent for AAA-level conformance checking beyond the standard AA target. Complete AAA criteria reference tables organized by WCAG principle (Perceivable: 8, Operable: 12, Understandable: 8 criteria). Prerequisite AA compliance check before AAA analysis. - i18n/RTL accessibility agent (
i18n-accessibility.agent.md) — Internationalization accessibility auditing. 5 audit areas: document language, text direction, bidirectional text, RTL layout patterns, and form direction. BCP 47 tag reference table. Covers WCAG 3.1.1/3.1.2. - PDF remediator agent (
pdf-remediator.agent.md) — Extends PDF audit with programmatic fixes. Auto-fixable table (8 issues via pdf-lib/qpdf/ghostscript) and manual-fix table (6 issues requiring Acrobat Pro). Generates shell scripts for batch remediation and step-by-step Acrobat instructions. - Email accessibility agent (
email-accessibility.agent.md) — HTML email accessibility under email client rendering constraints. Covers table-based layout, inline styles, image fallbacks, bulletproof buttons, dark mode, MJML/Foundation patterns, and screen reader compatibility across Outlook/Gmail/Apple Mail. - Media accessibility agent (
media-accessibility.agent.md) — Video and audio accessibility auditing. Covers captions (WebVTT/SRT/TTML), audio descriptions, transcripts, media player ARIA patterns, and WCAG 1.2.x compliance. - Web component specialist agent (
web-component-specialist.agent.md) — Shadow DOM and custom element accessibility. Covers ElementInternals, cross-shadow ARIA delegation, form-associated custom elements, focus delegation, and slot-based content projection. - Compliance mapping agent (
compliance-mapping.agent.md) — Maps audit results to legal frameworks including Section 508, EN 301 549, EAA, ADA, and AODA. Generates VPAT 2.5 reports in INT, EU, and WCAG editions. - Data visualization accessibility agent (
data-visualization-accessibility.agent.md) — Chart, graph, and dashboard accessibility. Covers SVG ARIA, data table alternatives, color-safe palettes, keyboard interaction patterns, and charting library APIs (Highcharts, Chart.js, D3, Recharts). - Performance accessibility agent (
performance-accessibility.agent.md) — Intersection of web performance and accessibility. Covers lazy loading impact, skeleton screens, CLS effects on assistive technology, code splitting, and progressive enhancement patterns. - Accessibility statement generator (
accessibility-statement.agent.md) — Generates W3C or EU model accessibility statements from audit results. Includes conformance claims, known limitations, feedback mechanism, and enforcement procedure sections. - Accessibility regression detector (
accessibility-regression-detector.agent.md) — Detects regressions by comparing audit results across commits or branches. Tracks score trends, classifies issues as new/fixed/persistent/regressed, and integrates with CI pipelines. - Office remediator agent (
office-remediator.agent.md) — Programmatic Office document (Word/Excel/PowerPoint) remediation via python-docx, openpyxl, and python-pptx. Auto-fixable and manual-fix tables for each format, Python script generation, PowerShell COM automation alternative, and 4-phase remediation process. - Projects manager agent (
projects-manager.agent.md) — GitHub Projects v2 management with full board, view, custom field, and iteration support. Screen reader-accessible output with structured tables and ARIA-friendly formatting. - Actions manager agent (
actions-manager.agent.md) — GitHub Actions workflow run management including logs, re-runs, artifact downloads, and CI debugging. Structured output optimized for assistive technology consumption. - Security dashboard agent (
security-dashboard.agent.md) — Dependabot, code scanning, and secret scanning alert triage. Priority-scored vulnerability tables with screen reader-friendly severity indicators. - Release manager agent (
release-manager.agent.md) — Release lifecycle management including tags, assets, and release note generation. Accessible changelog formatting with proper heading hierarchy. - Notifications manager agent (
notifications-manager.agent.md) — GitHub notification inbox management with filtering, bulk operations, and subscription control. Structured notification summaries designed for screen reader navigation. - Wiki manager agent (
wiki-manager.agent.md) — Wiki page creation, editing, search, and organization. Enforces accessible markdown patterns in wiki content with heading structure validation.
New MCP Tools
fix_document_metadata— Fix title, language, or author in Office document metadata by generating PowerShell/Bash scripts for OOXML manipulationfix_document_headings— Analyze and report heading structure issues in .docx files by parsing document.xml heading stylescheck_audit_cache— Check.a11y-cache.jsonfor changed, new, and unchanged files using size+mtime hash comparisonupdate_audit_cache— Write scan results (hash, findings count, timestamp) to.a11y-cache.jsonfor incremental scanning
New Skills
- CI integration skill (
ci-integration/SKILL.md) — axe-core CLI reference, WCAG 2.2 tag set, baseline file schema, comparison logic, CI/CD templates for GitHub Actions/Azure DevOps/GitLab CI, SARIF integration, gating strategies, severity mapping - Testing strategy skill (
testing-strategy/SKILL.md) — Automated vs manual testing coverage matrix, browser+AT compatibility reference, regression detection patterns, acceptance criteria templates for accessibility testing - Legal compliance mapping skill (
legal-compliance-mapping/SKILL.md) — Section 508, ADA, EN 301 549, EAA, AODA framework mapping tables, VPAT 2.5 edition differences (INT/EU/WCAG), non-WCAG legal requirements reference - Email accessibility skill (
email-accessibility/SKILL.md) — Email client rendering constraints reference, table-based layout patterns, bulletproof button techniques, dark mode handling, MJML/Foundation template accessibility - Media accessibility skill (
media-accessibility/SKILL.md) — WebVTT/SRT/TTML caption format reference, caption quality metrics, audio description requirements, media player ARIA patterns, WCAG 1.2.x criterion mapping - Data visualization accessibility skill (
data-visualization-accessibility/SKILL.md) — Chart accessibility patterns, SVG ARIA reference, charting library accessibility APIs (Highcharts/Chart.js/D3/Recharts), color-safe palette generation, keyboard interaction models - Office remediation skill (
office-remediation/SKILL.md) — Office document OOXML manipulation patterns for accessibility remediation. Covers python-docx, openpyxl, python-pptx API references, PowerShell COM automation snippets, and direct OOXML XML manipulation.
New Instructions
- CSS accessibility instruction (
css-accessibility.instructions.md) — Always-on instruction that fires on*.cssand*.scssfiles. Enforces focus visibility, motion safety (prefers-reduced-motion), high contrast support, touch target sizing, and preventsoutline: nonewithout alternatives. - Testing accessibility instruction (
testing-accessibility.instructions.md) — Always-on instruction that fires on test files (*.test.*,*.spec.*). Guides test authors to include accessibility assertions (axe-core checks, keyboard navigation, ARIA state verification, screen reader announcement testing). - Document generation instruction (
document-generation.instructions.md) — Always-on instruction that fires on*.py,*.js,*.ts,*.mjs,*.cjsfiles. Catches imports of document generation libraries (python-docx, openpyxl, python-pptx, docx, pdfkit, etc.) and enforces accessibility metadata, heading structure, alt text, table headers, and language settings at the code level.
New Prompts
- Component library audit prompt (
component-library-audit.prompt.md) — Per-component accessibility scorecard across an entire component directory. 5-phase workflow: discovery, per-component audit, scorecard generation, cross-component analysis, and report. - Training scenario prompt (
training-scenario.prompt.md) — Interactive accessibility training with 4 modes: bad examples, quizzes, WCAG criterion explanations, and before/after comparisons. Covers 10 common UI patterns. - Audit native app prompt (
audit-native-app.prompt.md) — Accessibility audit for React Native, Expo, iOS, and Android applications with platform-specific checks. - Web CI/CD setup prompt (
setup-web-cicd.prompt.md) — One-click workflow for configuring automated web accessibility scanning pipelines with axe-core, SARIF output, baseline management, and PR annotations - PR accessibility check prompt (
a11y-pr-check.prompt.md) — Analyzes pull request diffs for accessibility regressions against WCAG 2.2 AA requirements - Team onboarding prompt (
onboard-team.prompt.md) — Generates role-specific accessibility onboarding documents for developers, designers, QA engineers, product managers, and content authors - Email template audit prompt (
audit-email-template.prompt.md) — Audits HTML email templates for accessibility under email client rendering constraints including table layout, inline styles, and screen reader compatibility - Media content audit prompt (
audit-media-content.prompt.md) — Audits video and audio media for captions, audio descriptions, transcripts, and media player control accessibility - Accessibility dashboard prompt (
accessibility-dashboard.prompt.md) — Aggregates all audit reports (web, document, markdown) into a unified dashboard view with overall score, trends, and cross-format issue patterns - Accessibility statement generator prompt (
generate-accessibility-statement.prompt.md) — Generates W3C or EU model accessibility statements from audit results with conformance claims, known limitations, and feedback mechanisms - PDF remediator prompt (
pdf-remediator.prompt.md) — Guided PDF remediation with programmatic and manual fix options - Document conversion audit prompt (
audit-document-conversion.prompt.md) — Compares source Office document against exported PDF for accessibility preservation, detecting conversion losses - Document training prompt (
document-training.prompt.md) — Generates role-specific accessibility training materials for document authors, editors, designers, and managers - CI accessibility prompt (
ci-accessibility.prompt.md) — One-click workflow for CI/CD accessibility pipeline setup and configuration - Screen reader lab prompt (
screen-reader-lab.prompt.md) — Launch interactive screen reader simulation on a file - WCAG 3.0 preview prompt (
wcag3-preview.prompt.md) — Quick access to WCAG 3.0 draft education and comparison - WCAG AAA prompt (
wcag-aaa.prompt.md) — One-click AAA conformance audit beyond standard AA target - Scaffold NVDA addon prompt (
scaffold-nvda-addon.prompt.md) — Scaffold a new NVDA screen reader addon project - Audit desktop accessibility prompt (
audit-desktop-a11y.prompt.md) — Desktop application accessibility audit covering platform APIs, keyboard, and high contrast - Test desktop accessibility prompt (
test-desktop-a11y.prompt.md) — Create a desktop accessibility test plan with screen reader test cases - Scaffold wxPython app prompt (
scaffold-wxpython-app.prompt.md) — Scaffold an accessible wxPython desktop application - Package Python app prompt (
package-python-app.prompt.md) — Package a Python application for distribution - i18n accessibility prompt (
i18n-accessibility.prompt.md) — Audit internationalization and RTL accessibility - Web component specialist prompt (
web-component-specialist.prompt.md) — Audit Shadow DOM and custom element accessibility - Performance accessibility prompt (
performance-accessibility.prompt.md) — Audit performance-accessibility intersection - Data visualization accessibility prompt (
data-visualization-accessibility.prompt.md) — Audit chart and dashboard accessibility - Accessibility regression detector prompt (
accessibility-regression-detector.prompt.md) — Compare audit results across commits or branches - Wiki manager prompt (
wiki-manager.prompt.md) — Manage GitHub Wiki pages with accessibility enforcement
Infrastructure
-
Multi-language support guide (
docs/guides/multi-language-support.md) — Architecture for translating agent instructions. Locale-suffix convention, 3-tier translation priority, BCP 47 codes, translation workflow, and contributing guide. -
Enterprise packaging — Configurable enterprise configuration schema (
templates/enterprise-config.schema.json) and example configuration (templates/enterprise-config-example.json). Supports custom WCAG targets, design token paths, issue tracker routing (GitHub/Jira/Azure DevOps/Linear), scanning profiles, report formats, and CI gating thresholds. -
Anthropic directory manifest (
mcp-server/anthropic-directory.json) — Directory manifest for Claude Desktop auto-distribution. Lists all 24 tools, 3 prompts, 3 resources with stdio and HTTP transport configurations. -
Nexus / GitHub Hub differentiation — Nexus is now the auto-routing orchestrator (infers intent silently); GitHub Hub is the guided/menu-driven variant (presents options and lets users choose)
-
MCP Server Test Suite — 52 tests covering all tools, prompts, and resources
- Uses Node built-in test runner (
node --test) - Tests: path validation (6), contrast (5), headings (5), links (5), forms (5), guidelines (9), createServer (2), Office scanning (2), PDF scanning (2), batch scanning (2), metadata (1), prompts (4), resources (4)
npm testscript in package.json,prepublishOnlyruns tests before publish
- Uses Node built-in test runner (
-
MCP Prompts — 3 pre-built prompt templates for accessibility workflows
audit-page— Structured WCAG audit instruction with tool sequence and scoringcheck-component— Component-specific review using built-in guidelinesexplain-wcag— WCAG criterion explanation with examples and testing guidance
-
MCP Resources — 3 read-only data endpoints
a11y://guidelines/{component}— Component accessibility guidelines (9 components)a11y://tools— Auto-generated list of all registered toolsa11y://config/{profile}— Scan configuration templates (strict/moderate/minimal)
-
npm Publishability — MCP server package is now publish-ready
- Removed
"private": true, addedbin,files,keywords,repository,license - Shebang lines on entry points for
npx @a11y-agent-team/mcp-serverusage prepublishOnlyruns test suite before publishnpm pack --dry-runproduces 23.8 KB package with 9 files
- Removed
-
VS Code Extension publish readiness
- Fixed
engines.vscodeto match@types/vscodeversion (^1.110.0) - VSIX builds cleanly via
npx @vscode/vsce package(24.33 KB) - TypeScript compiles with zero errors
- Fixed
-
Accessibility PR Gate workflow (
.github/workflows/a11y-pr-gate.yml)- Required status check that blocks PRs with accessibility violations
- Checks: missing alt text, positive tabindex, div role=button, outline removal, missing form labels
- Runs axe-core on changed HTML files
- Posts summary comment on PR with pass/fail verdict and issue counts
- Only triggers on UI file changes (HTML, JSX, TSX, Vue, Svelte, Astro, CSS)
-
Server-based MCP Server - New
mcp-server/directory with HTTP-based MCP server- Replaces the old stdio-only
desktop-extension/with a proper server architecture - Supports Streamable HTTP transport (with SSE fallback) for remote clients
- Retains stdio mode (
stdio.js) for backward-compatible Claude Desktopmcp.jsonuse - Stateful (sessions + SSE) and stateless (per-request, CI/CD-friendly) modes
- 16 accessibility tools: contrast, guidelines, headings, links, forms, Office scanning, PDF scanning, metadata extraction, batch scanning, axe-core, a11y tree, keyboard navigation, contrast scanning, viewport reflow, veraPDF, PDF form conversion
- Binds to 127.0.0.1 by default for security; configurable via environment variables
- Health check endpoint at
/health
- Replaces the old stdio-only
-
Gemini python-development skill - Added missing knowledge skill for Python/wxPython development reference data
Cross-Platform Sync
- 6 new agents synced to Claude Code — ci-accessibility, screen-reader-lab, wcag3-preview, wcag-aaa, i18n-accessibility, pdf-remediator added to
.claude/agents/ - 6 new agents synced to Claude Code Plugin — Same 6 agents copied to
claude-code-plugin/agents/ - 7 new Gemini skills — ci-accessibility, screen-reader-lab, wcag3-preview, wcag-aaa, i18n-accessibility, pdf-remediator (agent skills) + ci-integration (knowledge skill) added to
.gemini/extensions/a11y-agents/skills/ - 8 gap-analysis agents synced across all platforms — email-accessibility, media-accessibility, web-component-specialist, compliance-mapping, data-visualization-accessibility, performance-accessibility, accessibility-statement, accessibility-regression-detector added to Copilot (
.github/agents/), Claude Code (.claude/agents/), Plugin (claude-code-plugin/agents/), and Gemini (.gemini/extensions/a11y-agents/skills/) — 32 new files - 6 GitHub workflow agents synced across all platforms — projects-manager, actions-manager, security-dashboard, release-manager, notifications-manager, wiki-manager added to Copilot (
.github/agents/), Claude Code (.claude/agents/), Plugin (claude-code-plugin/agents/), and Gemini (.gemini/extensions/a11y-agents/skills/) — 24 new files - 5 new knowledge skills synced to Gemini — testing-strategy, legal-compliance-mapping, email-accessibility, media-accessibility, data-visualization-accessibility added as Gemini extension skills
- Office remediator synced across all platforms — office-remediator added to Copilot (
.github/agents/), Claude Code (.claude/agents/), Plugin (claude-code-plugin/agents/), and Gemini (.gemini/extensions/a11y-agents/skills/) — 4 new files - Office remediation knowledge skill synced to Gemini — office-remediation added as Gemini extension skill
Documentation
- Comprehensive User Guide (
docs/USER_GUIDE.md) — Instructor-style ecosystem guide covering all 80 agents, 25 skills, 134 prompts, 9 instructions, and 24 MCP tools. Collapsible per-platform sections for GitHub Copilot, Claude Code, Gemini, Codex, and Claude Desktop. Includes team overviews, exhaustive agent reference with sample prompts, skill catalog, prompt directory, MCP server interaction guide, file-based workflows, common workflow recipes, platform comparison, troubleshooting, and glossary. - 6 GitHub workflow agent documentation pages — projects-manager, actions-manager, security-dashboard, release-manager, notifications-manager, wiki-manager added to
docs/agents/with feature descriptions, usage examples, and API scope requirements - 4 new agent documentation pages — office-remediator, pdf-remediator, compliance-mapping, accessibility-statement added to
docs/agents/ - 1 new skill documentation page — office-remediation added to
docs/skills/ - 3 new prompt documentation pages — pdf-remediator, audit-document-conversion, document-training added to
docs/prompts/documents/ - Platform parity check script (
scripts/check-platform-parity.js) — Automated script that verifies all agents exist on all 4 platforms (Copilot, Claude Code, Plugin, Gemini) and reports missing entries - 12 new agent documentation pages — ci-accessibility, screen-reader-lab, wcag3-preview, wcag-aaa, nexus, i18n-accessibility, web-component-specialist, performance-accessibility, data-visualization-accessibility, email-accessibility, media-accessibility, accessibility-regression-detector added to
docs/agents/
Metadata Sync
- Comprehensive count updates across 20+ project files — Updated agent count (80), skill count (25), prompt count (134), instruction count (9), MCP tool count (24), and Gemini skill count (98) across: AGENTS.md, CLAUDE.md, GEMINI.md, copilot-instructions.md, plugin.yaml, manifest.json, prd.md, MARKETPLACE_SUBMISSION.md, install.sh, docs/getting-started.md, docs/architecture.md, docs/guides/agent-debug-panel.md, docs/advanced/plugin-packaging.md, docs/skills/github-workflow-standards.md, mcp-server/package.json, mcp-server/server.js, mcp-server/anthropic-directory.json, .claude-plugin/marketplace.json, .claude-plugin/plugin.json, claude-code-plugin/README.md, docs/USER_GUIDE.md, vscode-extension/README.md
Fixed
fix_document_headingsMCP tool — Was reading raw .docx bytes as UTF-8 string, which fails because .docx files are ZIP archives. Fixed to useparseZipCd()+getZipXml()to properly extractword/document.xmlfrom the OOXML ZIP archive before regex matching.- MCP server test suite — Added 4 missing tools (
fix_document_metadata,fix_document_headings,check_audit_cache,update_audit_cache) to theregisters all expected toolstest. All 52 tests pass. - Markdownlint compliance — Full markdownlint pass across all markdown files in the repository, fixing heading levels, list formatting, and trailing whitespace.
- MCP server dependency installation — MCP server dependencies are now installed automatically during setup, preventing missing-module errors on first run.
- Installer manifest initialization — Fixed
install.shto initialize the manifest helper function before the Codex install path, preventing undefined-function errors. - wxPython
SetName()misuse — Replaced incorrectSetName()calls on wxPython controls withStaticTextlabels for proper NVDA and VoiceOver screen reader announcement. - USER_GUIDE completeness — Fixed coverage gaps in
docs/USER_GUIDE.md— added missingoffice-remediatoragent entry,css-accessibilityanddocument-generationinstructions,office-remediationskill, and 17 prompts not listed in any prompt table. - Stale counts and team members — Fixed outdated agent/tool counts and added missing team member entries across multiple documentation files. Expanded
.gitignorefor common editor and OS artifacts.
Removed
- Desktop Extension - Previous
desktop-extension/folder and.vscode/mcp.jsonreplaced bymcp-server/
GitHub Copilot CLI Additions
GitHub Copilot CLI Support
--cliinstaller flag for bothinstall.shandinstall.ps1- Copies agents to
~/.copilot/agents/for global CLI access - Copies skills to
~/.copilot/skills/for global CLI access - Project install (
--project --cli) uses.github/agents/which CLI reads directly
- Copies agents to
- Copilot CLI Setup documentation in
docs/getting-started.md- Discovery path reference (repository, user, organization)
- Installation options (global vs project)
- Tool compatibility notes
- CLI Troubleshooting Guide at
docs/guides/copilot-cli-troubleshooting.md- Agents not appearing in
/agentpicker - Skills not loading
- Tool name compatibility
- Platform-specific issues
- Agents not appearing in
- Tool Alias Reference in
docs/configuration.md- Cross-platform tool name mappings (CLI vs Claude Code vs VS Code)
- Which properties CLI ignores (
argument-hint,handoffs,modelarrays)
- Cross-Platform Tool Mapping Guide at
docs/cross-platform-tool-mapping.md- Canonical tool names per platform (Claude Code, Copilot CLI, VS Code, Codex, Gemini)
- Migration checklist for normalizing agent files
- Validation commands for checking tool name consistency
- Fixed missing YAML frontmatter in
playwright-testingskill SKILL.md
Repository Modernization (AgentRC Compliance)
AGENTS.md- AI agent guidance file for repository- Documents all 59 agents, team structure, conventions
- Required by AgentRC readiness framework
.github/dependabot.yml- Automated dependency updates- GitHub Actions workflows (monthly)
- npm packages in desktop-extension, vscode-extension (weekly)
- pip packages in scripts directory (weekly)
scripts/validate-agents.js- Agent/skill validation script- Validates YAML frontmatter in all agent files
- Checks tool name CLI compatibility
- Verifies skill SKILL.md format
- Exit code 1 on errors, 0 on warnings-only
.github/workflows/validate-agents.yml- CI validation workflow- Runs on PRs and pushes affecting agent/skill files
- Ensures tool name compatibility across platforms
Agent Enhancements
- testing-coach - Added modern Playwright patterns
- Violation fingerprinting for handling known issues (from Playwright docs)
- Complete WCAG 2.2 tag set for axe-core (
wcag22aa) - WCAG 2.2-specific rules coverage (Target Size 2.5.8, Focus Not Obscured 2.4.11)
- playwright-scanner - Added advanced scanning patterns
- Component-level scanning with
AxeBuilder.include() - WCAG 2.2 new criteria detection (Focus Not Obscured)
- Component-level scanning with
- aria-specialist - Added WAI-ARIA 1.3 draft reference for upcoming features
Changed
- Normalized all 59 Copilot agent tool declarations to use CLI-compatible names:
readFile→readeditFiles→edittextSearch/fileSearch→searchrunSubagent→agent- Affected: All agents in
.github/agents/including GitHub workflow agents (analytics, contributions-hub, daily-briefing, github-hub, insiders-a11y-tracker, issue-tracker, lighthouse-bridge, nexus, pr-review, repo-admin, repo-manager, scanner-bridge, team-manager, template-builder)
VS Code 1.112 Platform Feature Support
- Monorepo customization discovery documentation in
docs/advanced/advanced-scanning-patterns.mdchat.useCustomizationsInParentRepositoriessetting guidance- Example monorepo structures and recommended setup
- Agent debugging enhancements in
docs/guides/agent-debug-panel.md/troubleshootskill documentation- Export/import sessions as JSONL
- Agent Flow Chart visualization
- Summary view and attach debug events
- Integrated browser testing in testing-coach agents
editor-browserdebug type for zoom/reflow testing- launch.json configuration examples
- WCAG 1.4.4/1.4.10 testing workflows
- Native image analysis in alt-text-headings agents
chat.imageSupport.enabledworkflow- Analyze actual images to suggest accurate alt text
- Permission level guidance in
docs/configuration.md- Autopilot, Bypass Approvals, Default modes
- Recommendations for read-only vs. fix-applying workflows
Additional VS Code 1.112 Updates
- Updated
insiders-a11y-trackeragents (Copilot + Claude Code) with VS Code 1.112 features section - Added VS Code 1.112 features overview to CLAUDE.md, .github/copilot-instructions.md, and GEMINI.md
CI & Dependencies
- actions/checkout — Bumped from v4 to v6
- actions/github-script — Bumped from v7 to v8
- peter-evans/create-pull-request — Bumped from v7 to v8
- actions/setup-node — Bumped from v4 to v6
- actions/setup-python — Bumped from v4 to v6
- @types/node — Bumped from 25.3.3 to 25.5.0 (vscode-extension)
- @types/vscode — Bumped from 1.109.0 to 1.110.0 (vscode-extension)
- Removed leftover lint process artifacts from repository
3.2.0 - 2026-03-13
Added
Playwright Integration (MCP Tools)
- 5 new Playwright-based accessibility scanning tools for Claude Desktop MCP extension
keyboard_scan- Automated keyboard navigation testingstate_scan- ARIA state and property validationviewport_scan- Responsive layout accessibility checkscontrast_scan- Automated color contrast analysisa11y_tree- Accessibility tree inspection
playwright-tools.jsexternal module with graceful degradation when Playwright is not installed- URL validation (http/https only) and CSS selector sanitization for security
Playwright Agent Ecosystem
- playwright-scanner agent (Copilot + Claude Code) - Orchestrates Playwright-based scanning
- playwright-verifier agent (Copilot + Claude Code) - Verifies fixes against live pages
- playwright-testing skill - Patterns and examples for Playwright accessibility testing
- Integration docs and cross-platform handoff updates
veraPDF PDF/UA Validator
verapdf-tools.jsMCP tool with Matterhorn Protocol severity mapping- Uses
execFile(notexec) for command injection prevention - Path validation with symlink resolution and 500MB file size limit
PDF Form-to-HTML Converter
pdf-form-tools.jsusing pdf-lib (pure JS, MIT licensed)- XSS prevention via
escapeHtmlon all dynamic values - Accessible HTML5 output with labels, fieldsets, ARIA attributes, and focus styles
Test Generation
generate-a11y-testsprompt for CI pipeline scaffolding- GitHub Actions template for Playwright accessibility tests (
docs/templates/a11y-tests-ci.md)
askQuestions Integration (all 59 agents)
- Fixed 31 Claude Code agents:
ask_questionsrenamed toaskQuestions(camelCase) - Added
askQuestionsto 10 agent tool lists - Added domain-specific
askQuestionsbody instructions to 39 agents shared-instructions.md: comprehensiveaskQuestionssection for 12 GitHub agents- Hub agents (developer-hub, github-hub, nexus):
askQuestionsprinciples and examples
Wizard and Fixer Integration
- web-accessibility-wizard Playwright phase integration
- web-issue-fixer and cross-page-analyzer Playwright support
- Severity scoring updates for Playwright findings
Changed
- Agent count: 57 to 59 (added playwright-scanner and playwright-verifier)
- Prompt count: 104 to 106
- Skill count: 17 to 18 (added playwright-testing)
- All version numbers bumped to 3.2.0
Fixed (v3.0.0 to v3.2.0)
- Plugin distribution drift fixed with symlinks for docs, templates, and example directories (PR #57)
- Added
.gitattributesfor Windows symlink compatibility - Added Windows clone instructions (
git clone -c core.symlinks=true) to CONTRIBUTING.md - NVDA addon specialist: version alignment to 2025.1.0, table introductions, source citations (PR #62)
- Codex CLI: experimental multi-agent TOML roles support (PR #59)
- Gemini CLI hooks: five lifecycle hook scripts added
- Broken URLs and Deque help links migrated to Accessibility Insights
3.0.0 - 2026-03-05
Added
Phase 1A: Context Compaction Guidance (2.5h) - Completed March 7, 2026
-
Context Management Guide - New guide for managing long accessibility audits
- Added
docs/guides/context-management.mdwith/compactcommand best practices - Guidance for web audits, document audits, and markdown audits
- Example summaries by audit type with severity breakdown templates
- When-to-compact rules: 7+ turns, large file counts, accumulated findings
- Added
-
Agent Context Nudges - Three orchestrator agents now guide users to
/compactwhen neededweb-accessibility-wizard- After Phase 6, suggest compaction if 6+ turnsdocument-accessibility-wizard- After Phase 4, suggest compaction if 3+ documents processedmarkdown-a11y-assistant- After Phase 2, suggest compaction if 20+ files reviewed
Phase 1B: Source Citation Policy & Currency Automation (15h) - Completed March 14, 2026
-
Authoritative Sources Citations - All 114 agents now cite official W3C, vendor, and platform documentation
- 57 GitHub Copilot agents (
.github/agents/*.agent.md) cite WCAG 2.2, ARIA 1.2, axe-core, platform APIs, and vendor docs - 57 Claude Code agents (
claude-code-plugin/agents/*.md) cite the same authoritative sources - Sources organized by domain: web (WCAG/ARIA), documents (PDF/UA, Office, EPUB), markdown (CommonMark), GitHub (REST/GraphQL API), developer tools (Python, wxPython, platform accessibility APIs)
- 57 GitHub Copilot agents (
-
Citation Policy Framework - Infrastructure for source validation and authority hierarchy
- 6-tier authority hierarchy: Normative specs (Tier 1) → Community consensus (Tier 6)
- Tier 1 (Normative): W3C specifications (WCAG 2.2, ARIA 1.2, HTML Living Standard)
- Tier 2 (Informative): Understanding WCAG, ARIA APG
- Tier 3 (Vendor): Microsoft Learn, Apple Developer, wxPython Docs
- Tier 4 (AT): NVDA, JAWS, VoiceOver documentation
- Tier 5 (Community): Deque University, WebAIM, Adrian Roselli
- Tier 6 (Compliance): Section 508, EN 301 549
-
Automated Source Currency Verification - GitHub Actions workflow for weekly source monitoring
.github/workflows/verify-sources.yml- Runs daily at 9 AM UTC.github/scripts/verify_sources.py- Python script verifies 20+ authoritative source URLs- SHA-256 fingerprinting tracks source content changes
- Auto-creates GitHub issues when sources change or break
SOURCE_REGISTRY.jsonmaintains authoritative source metadata
Phase 1C: Agent Plugins & Plugin Packaging (3h) - Completed March 21, 2026
-
Marketplace Plugin Packaging - Created
plugin.yamlmanifest for VS Code Marketplace (awesome-copilot registry)- Bundled 57 agents, 17 skills, 104 prompts, 5 workspace instructions for one-click discovery
- All agent files include YAML frontmatter with tools, model preferences, handoffs
- Marketplace installation guide added to README
- Ready for immediate submission to awesome-copilot and copilot-plugins registries
-
Custom Skills Development Guide - New guide for extending the agent ecosystem
- Added
docs/guides/create-custom-skills.mdwith step-by-step instructions - README "Extending the Platform" section with community examples
- Agent nudges in accessibility-lead, web-accessibility-wizard, document-accessibility-wizard, developer-hub
- Domain-specific skill examples: fintech compliance, healthcare standards, framework patterns
- Added
Phase 3: Agentic Browser Tools (13h) - Completed March 5, 2026
-
Browser Tool Integration - Agents can now autonomously verify accessibility fixes in integrated browser
docs/AGENTIC-BROWSER-TOOLS.md- 14-section design guide (4500+ words)docs/BROWSER-TOOLS-TESTING.md- 18-section testing guide with 10 playable test scenarios- 6 browser tool capabilities:
screenshot(),click(),type(),navigate(),evaluate(),inspect() - 5 usage patterns: Fix Verification, Visual Verification, Interaction Testing, Failure Handling, Graceful Degradation
- 4 failure modes with solutions: browser unavailable, page timeout, element not found, analysis fails
-
Agent Updates for Browser Verification
web-accessibility-wizardPhase 12: Browser-Assisted Verification workflow fully documentedweb-issue-fixerPost-fix screenshot capture and analysis capability- Cross-framework testing protocols: React, Vue, vanilla HTML
- Performance metrics framework: capture, analysis, and reporting times
Phase 4: Lifecycle Hooks (7h) - Completed March 5, 2026
-
Cross-Platform Hook Implementation - Lifecycle hooks enforce accessibility during agent sessions
.github/hooks/scripts/- 5 Python hook scripts (session-start, detect-web-project, enforce-edit-gate, mark-reviewed, session-end).github/hooks/hooks-consolidated.json- VS Code hook configuration (6 events).claude/hooks/hooks-consolidated.json- Claude Code hook configuration with matchers- Hook scripts work identically on Windows and macOS (Python 3.8+)
-
Hook Capabilities
- Session Start: Platform detection, context injection, welcome message
- Web Project Detection: Recognize UI work, inject accessibility reminder
- Edit Gate Enforcement: Block UI file edits until accessibility-lead reviews (
.jsx,.tsx,.vue,.html,.css) - Review Marker: Create
.github/.a11y-reviewedmarker to unlock edits after review - Session End: Clean up markers for next session (both
StopandSessionEndevents)
-
Hook Documentation
docs/hooks-guide.md- Complete hooks guide with configuration, customization, securitydocs/guides/hooks-troubleshooting.md- 10 common issues with solutionsdocs/HOOKS-CROSS-PLATFORM-STRATEGY.md- 56-page implementation strategy (Phase 4 planning document)
-
Cross-Platform Compatibility
- VS Code 1.110+: 8 hook events supported (Preview feature)
- Claude Code: 18 hook events supported (full matchers, type: prompt/agent/command)
- Python-based scripts avoid shell/bash/PowerShell compatibility issues
- Dual event names:
Stop(VS Code) +SessionEnd(Claude Code) call same script
Phase 5: VS Code 1.110 High Priority Features (4h) - Completed March 5, 2026
-
Agent Debug Panel Integration - Real-time visibility into agent behavior and three-hook enforcement
docs/guides/agent-debug-panel.md- 400+ line comprehensive troubleshooting guide- Debug panel references added to
docs/hooks-guide.mdfor hook troubleshooting - Verification steps added to
docs/getting-started.mdfor installation confirmation - Troubleshooting section added to README.md with debug panel workflows
- Guidance for verifying 57 agents loaded, checking hook execution order, tracking tool calls
-
Session Forking Guidance - Explore alternative approaches without losing audit work
docs/guides/context-management.md- New "Forking Sessions" section with/forkcommand usage- Fork suggestions added to
web-accessibility-wizard(after Phase 6 for alternative remediation strategies) - Fork suggestions added to
document-accessibility-wizard(for template vs batch fix approaches) - Fork suggestions added to
developer-hub(for exploring debugging hypotheses in parallel)
-
getDiagnostics Tool Integration - Leverage existing linting errors for smarter accessibility review
accessibility-lead.agent.md- AddedgetDiagnosticsto tools list, new "Tools" section with usage guidancearia-specialist.agent.md- Check for jsx-a11y ARIA rule violations before comprehensive reviewforms-specialist.agent.md- Check for label and autocomplete linting errors before form auditkeyboard-navigator.agent.md- Check for tabindex and keyboard event linting errors before keyboard review- All specialist agents prioritize fixing existing diagnostics before running comprehensive reviews
-
VS Code 1.110 Feature Analysis - Comprehensive evaluation of new capabilities
docs/VS-CODE-1.110-RECOMMENDATIONS.md- 7 features already implemented, 10+ new features identified- Implementation roadmap for v3.1 (quick wins) and v3.2 (research & design)
- Feature prioritization: High (Debug Panel, Fork, getDiagnostics), Medium (usages/rename tools, notifications), Low (custom thinking phrases)
Phase 6: VS Code 1.110 Remaining Features (3h) - Completed March 5, 2026
-
Built-in Accessibility Skill Comparison - Document how Accessibility Agents complement VS Code's built-in skill
docs/guides/vscode-builtin-skill-comparison.md- New comprehensive comparison guide- Explains layered approach: VS Code for real-time guidance, Accessibility Agents for comprehensive audits
- Domain specialization table: 9 web specialists, 6 document specialists, 2 mobile specialists, 2 desktop specialists
- WCAG 2.2 conformance comparison: Built-in covers 2.1 AA principles, Agents cover complete 2.2 AA SC-by-SC
- Tool integration comparison: axe-core CLI, Lighthouse CI, GitHub A11y Scanner, Office Checker, PDF/UA validators
- Clear "When to Use Each" guidance with example workflows
-
OS Notifications for Long-Running Audits - Help users stay informed during lengthy operations
docs/getting-started.md- New "OS Notifications for Long-Running Audits" section with recommended settings- Settings documented:
chat.notifyWindowOnResponseReceived,chat.notifyWindowOnConfirmation,accessibility.signals.chatUserActionRequired - Use cases: Document audits (100+ files), web wizard audits (10+ minutes), GitHub briefings, cross-page analysis
- Accessibility benefit: Screen reader audio signals prevent missed questions during context switches
- Step-by-step configuration instructions for VS Code users
-
AI Co-Author Attribution - Transparency for AI contributions to accessibility code
docs/getting-started.md- New "AI Co-Author Attribution" section with recommended git settings- Setting documented:
git.addAICoAuthorwith optionschatAndAgent,all,never - Benefits explained: Transparency, compliance with emerging standards, clear audit trail for accessibility fixes
- Example commit with
Co-authored-by: GitHub Copilot <copilot@github.com>trailer - Step-by-step configuration instructions for VS Code users
-
Inline Chat Session Continuity - Agent context flows seamlessly into inline edits
docs/guides/context-management.md- New "Inline Chat Session Continuity" section- Explains VS Code 1.110+ change: Inline chat now queues into existing session instead of isolated changes
- Accessibility benefit: Inline fixes maintain full audit context, reference previous findings automatically
- Example workflow: Full audit → inline fixes reference WCAG violations by number and severity
- Best practice: Complete audit first, use inline chat for all subsequent fixes in same session
-
Collapsible Terminal Tool Calls - Reduce visual noise from command output
docs/guides/context-management.md- New "Terminal Tool Calls are Collapsible" section- Explains VS Code 1.110+ feature: Terminal commands appear collapsed by default
- When to expand: Troubleshooting failed commands, verifying file lists, checking CLI output, copying for reports
- Agents that use terminal commands: document-accessibility-wizard, web-accessibility-wizard, github-hub, developer-hub
- Reduces chat clutter for commands with long output (file discovery, scan results, API responses)
-
Custom Thinking Phrases - Optional fun enhancement for accessibility-themed loading text
README.md- New "Optional Customization" section with "Custom Thinking Phrases" subsection- Setting documented:
chat.agent.thinking.phraseswithappendorreplacemode - Accessibility-themed phrases: "Checking contrast ratios...", "Testing with screen readers...", "Verifying keyboard navigation..."
- Why it matters: Reinforces accessibility focus, reminds team members, makes wait time engaging
- Step-by-step configuration instructions and community contribution invitation
-
Removed VS Code 1.110 Recommendations File - All recommendations implemented and documented
docs/VS-CODE-1.110-RECOMMENDATIONS.md- Deleted after all features implemented- High priority features (4 items): Completed in Phase 5
- Medium priority features (6 items): Completed in Phase 6
- Low priority features (3 items): Documented as skip or deferred to v3.2
- All implementation work now tracked in CHANGELOG.md and prd.md
Changed
-
Version Numbers - Project version 2.6.0 → 3.0.0 across all manifests and installers
vscode-extension/package.jsonandpackage-lock.json→ 3.0.0desktop-extension/package.json,package-lock.json,manifest.json→ 3.0.0- Installer comments updated from "v2.5 → v2.6" to "v2.x → v3.0"
- README community contribution example updated to v3.0
-
Agent Credibility - All agents now ground recommendations in published standards instead of "AI-generated" advice
- Every agent includes
## Authoritative Sourcessection with inline citations - Source tiers clearly documented in CITATION_POLICY.md
- Weekly currency check ensures sources remain accessible and unchanged
- Every agent includes
-
Documentation Architecture - Professional packaging for enterprise distribution
prd.mdnow single source of truth for v3.0 implementation status- Removed
PLAN.md(strategic planning document - content migrated to prd.md) - Added
MIGRATION-AUDIT.mddocumenting content migration - Added
v3.0 Release Managementsection in prd.md with testing checklists, success metrics, version history
-
System Requirements Documentation - Critical version currency warnings across all documentation entry points
README.md- New "System Requirements" section (88+ lines) with tool version table, 5 reasons why currency matters, update workflowsdocs/getting-started.md- Version currency WARNING boxes in all 5 platform prerequisites (Claude Code, GitHub Copilot, Claude Desktop, Codex CLI, Gemini CLI)CONTRIBUTING.md- New "Testing Requirements" section requiring contributors test with latest tool versions before PRs- Version check commands documented for all platforms and tools
- "Why Version Currency Matters" explanations: platform API changes, accessibility features, bug fixes, security, WCAG evolution
Fixed
- Trust Gap - Users can now verify agent recommendations by following inline citations to official documentation
- Context Budget Exhaustion - Orchestrator agents now guide users to compact long audits before hitting limits
- Accessibility Bypassing - Lifecycle hooks enforce review before UI file edits
- Manual Fix Verification - Browser tools automate verification of accessibility fixes
Performance
- Hook Timeouts - All hooks complete in <5 seconds (session-start: 10s)
- Browser Tool Degradation - Gracefully falls back to code review when browser unavailable
- Source Currency Check - Automated weekly (configurable to monthly/quarterly for stable sources)
2.6.0 - 2026-03-03
Added
- Initial public release with 113 accessibility agents across 5 teams
- Web Accessibility team (17 agents)
- Document Accessibility team (7 agents)
- GitHub Workflow team (11 agents)
- Developer Tools team (7 agents)
- Cross-platform support: Claude Code, GitHub Copilot, Gemini CLI, Claude Desktop (MCP), Codex CLI