Releases: AccessLint/skills
Release list
v0.4.1 — Chrome auto-launch
What's new
Chrome auto-launch — no manual setup required
audit_live now auto-launches Chrome minimized when no debug session is reachable. You no longer need to start Chrome with --remote-debugging-port=9222 before running a live-DOM audit.
The fallback chain is:
- Attach to an existing Chrome CDP session (if one is running)
- Auto-launch Chrome minimized via
chrome-launcher - Fall back to
chrome-devtools-mcp(for auditing an existing authenticated browser session)
Installation
claude plugin marketplace add accesslint/claude-marketplace
claude plugin install accesslint@accesslintOr update an existing install:
claude plugin update accesslintFull changelog: CHANGELOG.md
v0.3.1 — @accesslint/mcp@0.4.1 (CDN-loaded IIFE)
v0.3.1
Patch release. Picks up @accesslint/mcp@0.4.1, which replaces the inlined @accesslint/core IIFE in audit_browser_script with a CDN-loaded bootstrap.
Why
In v0.3.0, audit_browser_script returned a ~162 KB script — the audit caller plus the full @accesslint/core IIFE inlined. Agents had to relay that 162 KB through the browser MCP's evaluate_script parameter on every audit. It was costly in tokens and brushed against MCP message-size limits, sometimes triggering the agent to balk and try to read the IIFE from disk instead of pasting the script verbatim.
What changed
audit_browser_scriptpayload: ~162 KB → ~1.4 KB (~100× smaller). The bootstrap nowfetches the IIFE fromhttps://cdn.jsdelivr.net/npm/@accesslint/core@<pinned>/dist/index.iife.jsand evaluates it in-page. Version is pinned to whatever@accesslint/coreshipped with the MCP, so behaviour stays in lock-step.- The script is now an
asyncarrow (was sync) so it canawait fetch.chrome-devtools-mcpandplaywright-mcpboth resolve the returned Promise correctly.
Known limitation
Pages with a strict Content-Security-Policy that disallows connecting to cdn.jsdelivr.net will see the bootstrap fetch fail. The static audit_html / audit_file tools are the fallback for those cases, and the audit-and-fix skill already degrades to the static flow when no browser MCP is available.
Upgrade
No action required if you install the plugin via the marketplace — npx -y @accesslint/mcp@0.4.1 resolves on first audit.
v0.3.0 — slim plugin around @accesslint/mcp@0.4.0
v0.3.0
The plugin moves to a thin orchestration layer over @accesslint/mcp@0.4.0. Most accessibility work now happens directly through the MCP's compact, filterable audit tools; the plugin keeps only the pieces that earn their context budget.
Highlights
- One focused skill:
accesslint:audit-and-fix— closes the audit → edit → verify loop. Live-DOM flow via theaudit-live-pageMCP prompt when a browser MCP is connected (chrome-devtools-mcp, playwright-mcp, puppeteer-mcp); static fallback viaaudit_diff+Editwhen not. - Slimmed reviewer agent (413 → 91 lines) — now strictly multi-file pattern detection across a codebase. Single-file or single-URL audits go straight to the MCP.
- Pinned to
@accesslint/mcp@0.4.0— addsaudit_diff,quick_check,explain_rule, compact output mode, andrules/wcagfilters across every audit tool.
What's removed
These were redundant once @accesslint/core covered the criteria directly and the live-DOM flow eliminated pseudo-transpiling:
accesslint:contrast-checker— replaced byaudit_*({ wcag: ["1.4.3", "1.4.11"] }). The engine'sdistinguishable/color-contrastrule is authoritative.accesslint:link-purpose— replaced by the engine'snavigable/link-namerule (covers WCAG 2.4.4 / 4.1.2).accesslint:use-of-color— replaced by the engine'sdistinguishable/link-in-text-blockrule for the canonical 1.4.1 case; remaining patterns are routine LLM judgment during code review.accesslint:refactor— subsumed byaccesslint:audit-and-fix, which now closes the loop properly via the MCP's diff and live-DOM tools.- The reviewer agent's chrome-devtools URL workflow and GitHub-issue triage section — the former is owned by the
audit-live-pageMCP prompt; the latter was a triage feature stapled onto a code-review tool.
Migration
If you previously invoked the deleted skills:
| Before | After |
|---|---|
Skill({ skill: "accesslint:contrast-checker" }) |
audit_html({ html, wcag: ["1.4.3", "1.4.11"], format: "compact" }) |
Skill({ skill: "accesslint:link-purpose" }) |
audit_html({ html, wcag: ["2.4.4"], format: "compact" }) |
Skill({ skill: "accesslint:use-of-color" }) |
audit_html({ html, wcag: ["1.4.1"], format: "compact" }) (or a code-review pass — the engine catches the canonical case) |
Skill({ skill: "accesslint:refactor" }) |
Skill({ skill: "accesslint:audit-and-fix" }) |
The reviewer agent still works as before for codebase sweeps. URL audits now delegate to the audit-live-page MCP prompt instead of walking through chrome-devtools manually.
Requirements
@accesslint/mcp@0.4.0(auto-installed by the plugin vianpx).- For live-DOM audits: any browser MCP exposing navigate + evaluate. Recommended: chrome-devtools-mcp.
Local development
To iterate on the upstream MCP without republishing, override the plugin's MCP entry locally via ~/.claude/settings.local.json (already gitignored):
{
"mcpServers": {
"accesslint": {
"command": "node",
"args": ["/absolute/path/to/accesslint/mcp/bin/accesslint-mcp.js"]
}
}
}Acknowledgments
The browser-script audit pattern (audit_browser_script + audit_browser_collect + audit-live-page prompt), released in @accesslint/mcp@0.3.0, made the plugin slim-down possible by eliminating the need for component-render pseudo-transpiling.