a11y-loop 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Makes AI coding agents decide accessibility while the work is still being planned and write accessible UI by default, then verify it in a real browser across the states they built — and say exactly what could not be checked. Ships the a11y-loop Agent Skill, a /a11y-plan command, and a plan-mode gate that declines a UI plan with no accessibility content in it.",
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.4"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "a11y-loop",
|
|
14
14
|
"source": "./",
|
|
15
|
-
"version": "0.2.
|
|
15
|
+
"version": "0.2.4",
|
|
16
16
|
"description": "Accessibility in the plan, not after the pull request. Adds §0 plan rules (conformance target, per-component criteria, the product decisions that foreclose accessibility, color tokens before components), standing WCAG 2.2 AA generation rules, and a PreToolUse hook on ExitPlanMode that declines a UI-touching plan with no accessibility content — once, handing back the section to fill in. Verification is the a11y-loop CLI: axe-core in Chromium across default, dark, forced-colors, reduced-motion and 320px passes.",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "Chan Meng",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "a11y-loop",
|
|
4
4
|
"displayName": "a11y-loop",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.4",
|
|
6
6
|
"description": "Hard-gates plan mode: a plan that changes UI has to say what it decided about accessibility before it can be approved. Ships the a11y-loop skill and a /a11y-plan command alongside it.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Chan Meng",
|
package/README.md
CHANGED
|
@@ -550,11 +550,17 @@ npm run test:integration # integration tests only (drives real Chromium)
|
|
|
550
550
|
The optional plugin layer is plain Node with no dependencies. Exercise the plan gate directly:
|
|
551
551
|
|
|
552
552
|
```bash
|
|
553
|
-
echo '{"session_id":"s1","tool_name":"ExitPlanMode","tool_input":{"plan":"
|
|
554
|
-
| node hooks/plan-gate.mjs
|
|
555
|
-
claude plugin validate . --strict
|
|
553
|
+
echo '{"session_id":"s1","tool_name":"ExitPlanMode","tool_input":{"plan":"Add a settings page in React: a modal dialog, a members table with row actions, tabs, and a dark mode toggle styled with Tailwind CSS."}}' \
|
|
554
|
+
| node hooks/plan-gate.mjs # expect a "deny" verdict
|
|
555
|
+
claude plugin validate . --strict # shape only — see AGENTS.md on why this is not proof
|
|
556
556
|
```
|
|
557
557
|
|
|
558
|
+
Silence and exit 0 is the gate's normal answer, so an example that prints nothing proves nothing:
|
|
559
|
+
the plan has to clear 40 characters and be unambiguously about UI, or you are testing the pass path
|
|
560
|
+
by accident. Re-running the *same* plan returns `defer` rather than `deny` — the loop guard spends
|
|
561
|
+
each plan's hash once, deliberately — so prefix with `CLAUDE_PLUGIN_DATA="$(mktemp -d)"` for a clean
|
|
562
|
+
verdict. See [`AGENTS.md`](AGENTS.md) for the rest of the plugin-layer gotchas.
|
|
563
|
+
|
|
558
564
|
See [`AGENTS.md`](AGENTS.md) for AI-agent-oriented project conventions, the fixture-manifest
|
|
559
565
|
testing pattern, the loop discipline expected when touching `demo/` or other UI, and the rule that
|
|
560
566
|
keeps `skill/` free of any Claude-Code-specific mechanism.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "a11y-loop",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Makes AI coding agents decide accessibility while the work is still being planned and write accessible UI by default, then proves what it can prove with a real browser audit across the states they built — and tells you exactly what it could not check.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/skill/a11y-loop/SKILL.md
CHANGED
|
@@ -28,7 +28,7 @@ compatibility: >-
|
|
|
28
28
|
The generation and honesty rules apply with or without the CLI; every step
|
|
29
29
|
that says "audit" requires it.
|
|
30
30
|
metadata:
|
|
31
|
-
"a11y-loop/version": "0.2.
|
|
31
|
+
"a11y-loop/version": "0.2.4"
|
|
32
32
|
allowed-tools: 'Bash(a11y-loop *) Bash(npx a11y-loop *) Bash(node ${CLAUDE_SKILL_DIR}/../../src/cli.js *)'
|
|
33
33
|
---
|
|
34
34
|
|