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.3"
9
+ "version": "0.2.4"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "a11y-loop",
14
14
  "source": "./",
15
- "version": "0.2.3",
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.3",
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":"Build a React modal with Tailwind CSS."}}' \
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",
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": {
@@ -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.3"
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