Accesslint scan
A production-grade .claude folder for Claude Code: 40 lifecycle skills, agents, commands, and hooks — with reflexive skill routing and always-on engineering disciplines (verify, no-bloat, continuous-git, memory, ship-fast).
npx -y skills add udsy19/.claude --skill accesslint-scanAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Audit a live page for accessibility issues and locate each violation precisely — pass a URL, a config target name (e.g. `accesslint:scan dev`), or nothing to use the default target from accesslint.config.json. Ensures a debuggable Chrome, runs the @accesslint/core engine via CDP, and returns a worklist of live-DOM WCAG violations grounded to each violation's DOM selector and source file:line. Locates; doesn't edit — output drives fixes by Claude. Use it for "is this page accessible", or to verify a UI change. For diffing against uncommitted changes or a branch, use the `diff` skill.
SKILL.md
2.4 KB, as published. Nobody here has run it
Audit a live page and report what's broken and where. Locate; don't fix.
$ARGUMENTS is a URL, a config target name (dev, storybook, …), or empty to audit the default target from accesslint.config.json. If it's empty and no config exists, ask for a URL or suggest npx @accesslint/cli init to set targets up.
1. Audit
PORT=$(npx -y @accesslint/chrome@latest ensure | node -e 'process.stdin.on("data",d=>process.stdout.write(""+JSON.parse(d).port))')
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --format json
<target> is the URL or config target name from $ARGUMENTS; omit it (don't pass "") to audit the config's default target. Flags as needed: --selector, --wait-for "<selector>", --include-aaa, --disable <rules> — or pin them per-target in accesslint.config.json.
2. Report
Counts by impact, then one entry per violation:
- where — selector verbatim +
file:line (symbol)ifsourceis present — never fabricate. If no violation hassource, note "source mapping unavailable — located by selector only". - evidence — contrast ratio, missing attribute, empty name
- fix — mechanical change or
NEEDS HUMAN
Don't edit. For fixes: apply mechanical ones then re-run to verify; for bulk work hand off to accesslint:audit.
3. Tear down
npx -y @accesslint/chrome@latest stop --all # skip if ensure reported "managed":false
Gotchas
ensurealways determines the port — never hardcode 9222.- CLI exit 2 = bad URL/target or page never loaded; check the dev server. An unknown target name makes the CLI list the available targets from
accesslint.config.json.