ultra11y 2.31.1 → 2.31.2

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.
@@ -10,7 +10,7 @@
10
10
  "name": "ultra11y",
11
11
  "source": "./",
12
12
  "description": "Automatic accessibility review of the code under change before every commit, push and pull request, plus full WCAG 2.2 AA / RGAA audits and conformance deliverables on demand.",
13
- "version": "2.31.1",
13
+ "version": "2.31.2",
14
14
  "author": { "name": "maxgfr" },
15
15
  "homepage": "https://github.com/maxgfr/ultra11y",
16
16
  "repository": "https://github.com/maxgfr/ultra11y",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ultra11y",
3
3
  "description": "Accessibility for WCAG 2.2 AA and country standards (RGAA…): an automatic review of the code under change before every commit, push and pull request, plus full audits and conformance deliverables on demand.",
4
- "version": "2.31.1",
4
+ "version": "2.31.2",
5
5
  "author": { "name": "maxgfr" },
6
6
  "homepage": "https://github.com/maxgfr/ultra11y",
7
7
  "repository": "https://github.com/maxgfr/ultra11y",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ultra11y",
3
3
  "description": "Accessibility for WCAG 2.2 AA and country standards (RGAA…): an automatic review of the code under change before every commit, push and pull request, plus full audits and conformance deliverables on demand.",
4
- "version": "2.31.1",
4
+ "version": "2.31.2",
5
5
  "author": { "name": "maxgfr", "url": "https://github.com/maxgfr" },
6
6
  "homepage": "https://github.com/maxgfr/ultra11y",
7
7
  "repository": "https://github.com/maxgfr/ultra11y",
@@ -27,7 +27,7 @@ import { fileURLToPath } from "node:url";
27
27
  // Ownership marker: `ultra11y install --opencode` refuses to overwrite a plugin file that
28
28
  // does not carry it, so a user's own ultra11y.js is never clobbered.
29
29
  const ULTRA11Y_OPENCODE_PLUGIN = "ULTRA11Y_OPENCODE_PLUGIN";
30
- const ULTRA11Y_PLUGIN_VERSION = "2.31.1";
30
+ const ULTRA11Y_PLUGIN_VERSION = "2.31.2";
31
31
 
32
32
  const here = dirname(fileURLToPath(import.meta.url));
33
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultra11y",
3
- "version": "2.31.1",
3
+ "version": "2.31.2",
4
4
  "description": "Audit HTML/CSS/JSX against WCAG 2.2 AA and produce a dated compliance report, or author/review accessible markup (native-HTML-first). A skills.sh agent skill: an install-free static engine (bundled, no npm install) plus the agent's judgment, with check/verify gates against hallucinated non-conformities, and pluggable in-repo standards packs (RGAA France first; Section 508 & EN 301 549 next).",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.33.0",
@@ -6,7 +6,7 @@ import { join as join45, relative as relative5, sep as sep7, dirname as dirname1
6
6
  import { fileURLToPath as fileURLToPath5, pathToFileURL as pathToFileURL3 } from "url";
7
7
 
8
8
  // src/types.ts
9
- var VERSION = "2.31.1";
9
+ var VERSION = "2.31.2";
10
10
  var SCHEMA_VERSION = 2;
11
11
 
12
12
  // src/audit.ts
@@ -5,7 +5,7 @@ when_to_use: "Invoke WITHOUT being asked whenever changed front-end code should
5
5
  allowed-tools: Bash(node ${CLAUDE_SKILL_DIR}/scripts/ultra11y.mjs *), Read, Grep, Glob
6
6
  license: MIT
7
7
  metadata:
8
- version: 2.31.1
8
+ version: 2.31.2
9
9
  ---
10
10
 
11
11
  # review-a11y — accessibility review of changed code
@@ -6,7 +6,7 @@ import { join as join45, relative as relative5, sep as sep7, dirname as dirname1
6
6
  import { fileURLToPath as fileURLToPath5, pathToFileURL as pathToFileURL3 } from "url";
7
7
 
8
8
  // src/types.ts
9
- var VERSION = "2.31.1";
9
+ var VERSION = "2.31.2";
10
10
  var SCHEMA_VERSION = 2;
11
11
 
12
12
  // src/audit.ts
@@ -4,7 +4,7 @@ description: "Use to AUDIT existing HTML/CSS/JSX against WCAG 2.2 AA accessibili
4
4
  when_to_use: "Invoke when the user asks for an accessibility AUDIT or a formal deliverable: audit a repo, site or page against WCAG 2.2 AA or a country standard (RGAA, Section 508, EN 301 549); produce a dated conformance report, a criterion grid, a PRD remediation backlog or GitHub issues; author accessible markup from scratch; wire the repo gate (init --hook/--ci) or a rendered-DOM capture pipeline. For a review of the code UNDER CHANGE (diff, branch, PR), use the `review-a11y` skill instead."
5
5
  license: MIT
6
6
  metadata:
7
- version: 2.31.1
7
+ version: 2.31.2
8
8
  ---
9
9
 
10
10
  # ultra11y — audit WCAG 2.2 AA and write accessible markup
@@ -196,3 +196,37 @@ Two surfaces come out of it:
196
196
  standard with its status on that page, and each non-conformity as the ordinary auditor block.
197
197
 
198
198
  A run with no page in scope is not a failure: the report step says so and the job carries on.
199
+
200
+ ## The action is executed in ITS OWN CI, not just parsed
201
+
202
+ `tests/action.test.ts` reads `action.yml` and gates its shape. That cannot prove the thing
203
+ works: a composite action is bash — arrays, `set -e`, quoting — and the whole file could stay
204
+ green while the action was broken for every consumer.
205
+
206
+ So `ci.yml` has an `action` job that `uses: ./` for real, twice: report-only over a
207
+ non-conforming fixture (asserting the declared outputs, the written report, and that the
208
+ per-page step DEGRADES rather than failing when nothing was scanned), then the page-by-page
209
+ path — a served two-page site, crawled, scanned, snapshotted, folded in and rendered as
210
+ per-page dossiers, asserting that each crawled page is snapshot-based and that the finding on
211
+ one page did not leak onto the clean one. Both run with `sarif: false`, so the job needs no
212
+ `security-events: write` and works on a fork's pull request.
213
+
214
+ Two traps are worth naming, because running it is what found them.
215
+
216
+ `[ cond ] && cmd` returns 1 when the condition is false, and `-e` turns that into a dead job.
217
+ A test now forbids the form in `action.yml` **and** in every CI workflow.
218
+
219
+ And **artifact names are unique per workflow RUN, not per step**. Using the action twice in
220
+ one job — the code diff, then the served pages — died on a `409 Conflict`, with the report
221
+ written and never uploaded. Pass `artifact-name` on each invocation:
222
+
223
+ ```yaml
224
+ - uses: maxgfr/ultra11y@v2
225
+ with: { since: auto, artifact-name: a11y-code }
226
+ - uses: maxgfr/ultra11y@v2
227
+ with: { crawl: http://localhost:3000, artifact-name: a11y-pages }
228
+ ```
229
+
230
+ Left unset it keeps the historical `ultra11y-<standard>`, so a single-invocation workflow is
231
+ unaffected.
232
+
@@ -6,7 +6,7 @@ import { join as join45, relative as relative5, sep as sep7, dirname as dirname1
6
6
  import { fileURLToPath as fileURLToPath5, pathToFileURL as pathToFileURL3 } from "url";
7
7
 
8
8
  // src/types.ts
9
- var VERSION = "2.31.1";
9
+ var VERSION = "2.31.2";
10
10
  var SCHEMA_VERSION = 2;
11
11
 
12
12
  // src/audit.ts
package/src/types.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  // Single source of truth for shared types + the embedded version. sync-version.mjs
2
2
  // rewrites VERSION at release time (kept in lockstep with package.json + SKILL.md).
3
- export const VERSION = "2.31.1";
3
+ export const VERSION = "2.31.2";
4
4
  export const SCHEMA_VERSION = 2;
5
5
 
6
6
  // Lang = the UI FRAME's language — the `L` localization tables each module (report,