Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · accessibility (Library)
page:library-accessibilitya5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
II.
Page JSON

page:library-accessibility

Structured · live

accessibility (Library) json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/library/accessibility.mdCluster · wiki
Record JSON
{
  "id": "page:library-accessibility",
  "_kind": "Page",
  "_file": "wiki/library/accessibility.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "title": "accessibility (Library)",
    "displayName": "accessibility (Library)",
    "slug": "library/accessibility",
    "articlePath": "wiki/library/accessibility.md",
    "article": "\n# accessibility\n\nThe **first accessibility specialization** in the library (verified: none existed anywhere\nunder `library/`). It carries a real product through a full agentic WCAG audit-to-conformance\nlifecycle with routed human approvals on every action that commits engineering effort or\nleaves the org boundary. It **consolidates the previously scattered near-misses** by\nreferencing them as seeds rather than duplicating their content, and **supersedes** the\npre-bar `web-development/accessibility-audit-remediation.js` (now `@deprecated`).\n\n## Flagship process: wcag-audit-remediation\n\n`wcag-audit-remediation.js` (`@process accessibility/wcag-audit-remediation`) walks one\ntarget and its surfaces from scope to a published conformance statement:\n\n| Phase | What happens |\n|---|---|\n| 0 | `kipRecall` of known WCAG issues for the target across its surfaces (`kipEnabled`, kind `accessibility`) — an empty store is a fresh brain, threaded into scope + audit prompts |\n| 1 | Audit scope definition (`acc.scope-definition`) — enumerate surfaces, resolve the WCAG success-criteria set, assistive-tech matrix, per-surface approach (sparse: no breakpoint) |\n| 2 | **Parallel per-surface audit via `ctx.parallel.all`** — for every surface, two concurrent tasks: executed axe scan (`acc.axe-scan`) + manual expert audit (`acc.manual-audit`). An unscannable surface records `executed:false` with a reason, never a fabricated pass |\n| 3 | Prioritized findings register (`acc.findings-register`) — dedupe axe + manual findings, map each to a WCAG criterion + level, prioritize; every finding carries an `evidenceRef` |\n| 4 | **Policy-gated remediation-plan sign-off** (`acc.remediation-plan` + `remediation-plan-signoff` breakpoint, engineering-lead) — a rejection ends the run `success:false` before any fix work |\n| 5 | Remediation implementation (`acc.remediation-implementation`) — fixes per the APPROVED register only; runs solely on `approved===true` |\n| 6 | **Adversarial WCAG conformance re-audit gate** — `adversarialGate` (`accessibility.conformance-reaudit`) whose critics RE-RUN axe / manual checks on the remediated surfaces (executed evidence); **a failed gate returns `success:false` before any statement is drafted or published** |\n| 7 | Regression-guard capture (`acc.regression-guard-capture`) — jest-axe / playwright-axe tests wired into CI so fixed findings cannot silently regress |\n| 8 | Conformance/VPAT statement draft (`acc.conformance-statement-draft`) + **policy-gated publish** (`acc.publish-conformance-statement` + `conformance-statement-publish` breakpoint, accessibility-lead) |\n| 9 | `kipAssert` at close — per-surface conformance outcome, register summary, remediation + gate outcomes, publish decision |\n\n**Inputs:** `{ target: { name, surfaces: [{ id, kind:'page'|'component', url?, path?, description? }] (required, non-empty), assistiveTech?: string[] } (required), wcagLevel?='AA', repoRoot?='.', artifactsDir?, maxFixAttempts?=2, kipEnabled?=true, kipDir?='.a5c/kip', kipModel?='sonnet' }`\n\n**Outputs:** `{ success, scope, priorKnowledge, audits, findingsRegister, remediationPlan, remediation, conformanceGate, regressionGuard, conformanceStatement, gatedActions, kipFactsAsserted, artifacts, metadata }` — `success = conformanceGate.passed && gatedActions.remediationPlanSignoff.approved && (statement not required OR gatedActions.conformanceStatementPublish.approved === gatedActions.conformanceStatementPublish.executed) && regressionGuard.captured`.\n\n## Policy-gated actions\n\nAll approvals go through `routedBreakpoint`; for both policy-gated actions the `breakpointId`\n**equals** the actionId and tags are `['policy-gated','accessibility']`. Fail-closed: the\nexecutor task runs **only** on `approved === true` — a rejection is honored, recorded, and\nnever worked around.\n\n| actionId | expert | when | fail-closed behavior |\n|---|---|---|---|\n| `remediation-plan-signoff` | engineering-lead | always, after `acc.remediation-plan` (before implementation) | implementation runs only on `approved===true`; a rejection ends the run with `success:false` before any fix work |\n| `conformance-statement-publish` | accessibility-lead | only when the conformance re-audit gate passed AND a statement is requested | `acc.publish-conformance-statement` runs only on `approved===true`; a rejection leaves the draft unpublished and records the decision |\n\nAdditional (non-gated) breakpoint on the surface:\n\n- `accessibility.conformance-reaudit.gate-escalation` — raised **internally** by the\n  `adversarialGate` combinator on fix-budget exhaustion (expert `owner`, combinator-fixed);\n  the process does not re-declare it, but operators should know it is part of the surface.\n\n`outputs.gatedActions` records **every** decision — `{ actionId, required, approved,\nautoApproved, response, executed }` per action, including non-interactive auto-approvals\n(recorded raw from the BreakpointResult) and skipped / not-required gates\n(`{ required:false, approved:false, autoApproved:false, response:null, executed:false }` —\nnever omitted). `metadata.breakpointsHit` logs every raised breakpointId in order.\n\n## Quality bar\n\n- **adversarialGate with EXECUTED axe re-scan evidence** — the conformance-reaudit gate's\n  critics must RE-RUN axe on each remediated surface and re-perform the manual keyboard/AT\n  checks; file-read / diff citations alone do not satisfy the gate, and `passed:true` with\n  an empty evidence array is a protocol failure enforced by the combinator (IRON LAW: at\n  least one executed axe re-scan per remediated surface).\n- **Reviewer independence** — critic agent names (`wcag-conformance-critic`,\n  `assistive-tech-critic`) are distinct from the implementer\n  (`accessibility-remediation-engineer`); the combinator fans critics out in parallel — no\n  self-review.\n- **Bounded fix loop** — the built-in `gateFixerTask` edits the remediation for up to\n  `maxFixAttempts` rounds between critic rounds, then the combinator escalates to the owner.\n- **No fallbacks** — a target with an empty/absent `surfaces[]` throws before any work; an\n  unscannable surface records `executed:false` with a reason (never a fabricated clean pass);\n  a rejected `remediation-plan-signoff` ends the run with `success:false` before any fix\n  work; a failed conformance re-audit gate ends the run before any statement is drafted or\n  published; policy-gated executors run strictly on `approved===true`.\n\n## kip integration\n\n`kipRecall` at scope (topic: known WCAG issues for the target across its surfaces, kind\n`accessibility`) and `kipAssert` at close (per-surface conformance outcome, register summary,\nremediation outcome, gate outcome, conformance-statement decision), per\n`shared/skills/kip-librarian`. An empty store is a fresh brain, never an error; assert\nfailures are reported by the librarian task, never swallowed.\n\n## Near-miss consolidation map\n\nThis specialization consolidates the previously scattered accessibility work. The seeds stay\nin place and are **referenced, not duplicated**; the pre-bar web-development process is\n**superseded**.\n\n| Path | Role | Disposition |\n|---|---|---|\n| [`../ux-ui-design/wcag-compliance.js`](../ux-ui-design/wcag-compliance.js) | WCAG success-criterion coverage reference | seed — referenced, not duplicated |\n| [`../ux-ui-design/accessibility-audit.js`](../ux-ui-design/accessibility-audit.js) | manual audit / assistive-tech checklist reference | seed — referenced, not duplicated |\n| [`../qa-testing-automation/accessibility-testing.js`](../qa-testing-automation/accessibility-testing.js) | axe-core / jest-axe / playwright-axe automation feeding the regression-guard phase | seed — referenced, not duplicated |\n| [`../web-development/accessibility-audit-remediation.js`](../web-development/accessibility-audit-remediation.js) | pre-bar linear audit→plan→fix→loop process (single unrouted owner approval, dead 3-attempt loop, no executed evidence, no policy gating, no kip) | **superseded** — header-only `@deprecated` pointing here; sound WCAG domain content harvested into the flagship |\n\n## Usage\n\n```bash\nbabysitter run:create \\\n  --process library/specializations/accessibility/wcag-audit-remediation.js \\\n  --inputs '{\n    \"target\": {\n      \"name\": \"checkout-flow\",\n      \"surfaces\": [\n        { \"id\": \"cart-page\", \"kind\": \"page\", \"url\": \"https://app.example.com/cart\" },\n        { \"id\": \"payment-form\", \"kind\": \"component\", \"path\": \"src/components/PaymentForm.tsx\" }\n      ],\n      \"assistiveTech\": [\"VoiceOver\", \"NVDA\", \"keyboard-only\"]\n    },\n    \"wcagLevel\": \"AA\",\n    \"maxFixAttempts\": 2\n  }'\n```\n\n## Files\n\n- [`wcag-audit-remediation.js`](./wcag-audit-remediation.js) — the flagship process (9\n  `acc.*` Style-A agent tasks + orchestration).\n- Combinators: [`../common-utilities/routed-gate-combinators.js`](../common-utilities/routed-gate-combinators.js)\n  — `routedBreakpoint`, `adversarialGate`, `kipRecall`, `kipAssert`, `gateFixerTask`.\n- Seeds (referenced, not duplicated): [`../ux-ui-design/wcag-compliance.js`](../ux-ui-design/wcag-compliance.js),\n  [`../ux-ui-design/accessibility-audit.js`](../ux-ui-design/accessibility-audit.js),\n  [`../qa-testing-automation/accessibility-testing.js`](../qa-testing-automation/accessibility-testing.js).\n",
    "documents": [
      "specialization:accessibility"
    ]
  },
  "outgoingEdges": [
    {
      "from": "page:library-accessibility",
      "to": "specialization:accessibility",
      "kind": "documents"
    }
  ],
  "incomingEdges": [
    {
      "from": "page:index",
      "to": "page:library-accessibility",
      "kind": "contains_page"
    }
  ]
}

Shortcuts

Back to overview
Open graph tab