How Reverter works

Three surfaces. One @ariada/core-engine. Every fix request answers four questions: deterministic? cached? adaptive context? validated?

Where Reverter sits

The Ariada family covers eight scanner layers (L0 axe-core baseline through L7 governance). Reverter owns Layer 4 — Remediation. The Ariadne purple thread between layers is the shared @ariada/core engine.

  1. Governance & dashboards ariada.ai
  2. Visualisation & comms draculascan / Patent K
  3. CI gate clamper.ai / Patent B
  4. Remediation reverter.ai / Patent A
  5. Attribution blamer.ai / Patent G + H
  6. Cross-domain mapping shared in core
  7. Single-pass DOM iteration ariada engine / Patent J
  8. axe-core baseline shared in core

The pipeline (Patent A IC1)

DETECT -> CLASSIFY -> FETCH/GENERATE -> VALIDATE -> DIFF

  Finding (from axe-core via @ariada/core scan)
    -> Tier 1 deterministic rule engine        (zero LLM cost)
      -> Tier 2 signature cache lookup        (~$0.0001 / Redis)
        -> Cache miss: adaptive context -> LLM (Claude / GPT-4 class)
          -> PII layer: detect, swap placeholders, restore  (Patent A IC8)
            -> Validate: parser must accept patched text
              -> Unified diff or in-IDE applyEdits
                -> Source code changes (NOT runtime overlay) (Patent A IC4)
    

Tiered remediation (Patent A IC1)

Tier What it does Cost per fix Coverage target
Tier 1 — deterministic lang="en", decorative alt="", for/id, aria-required-attr, duplicate-id, meta-viewport $0 (pure code) 35–50% of axe findings
Tier 2 cache hit Signature key matches a prior remediation; reuse the diff template ~$0.0001 (Redis lookup) 80–90% of Tier 2 calls after warm-up
Tier 2 cache miss Adaptive context window → LLM → candidate fix → validate $0.005–$0.05 per fix residual ~5–10% of all violations
Tier 2 needs-review LLM produces a TODO marker plus diff; human reviews semantic content (alt text, link text, headings) same as cache miss 10–15% of all violations

Patent A IC1 reads on the cascade itself: "classifying identified accessibility violations by complexity into processing tiers, wherein deterministic violations are remediated by a rule-based engine without invoking a generative language model." Cost figures are per-fix order-of-magnitude estimates from the Patent A spec.

MVP codemod library

Top-10 axe rules by real-world frequency. Phase 2 expands to 30 rules; Phase 3 to the full axe rule set.

# axe rule Tier Risk Patent A IC binding
1color-contrastTier 2needs-reviewIC1, IC2, IC3
2image-altTier 2needs-reviewIC1, IC2, IC3
3labelTier 1safeIC1, IC4
4html-has-langTier 1safeIC1, IC4
5link-nameTier 2needs-reviewIC1, IC2, IC3
6button-nameTier 2needs-reviewIC1, IC2, IC3
7heading-orderTier 2needs-reviewIC1, IC2, IC3
8duplicate-idTier 1safeIC1, IC4
9aria-required-attrTier 1safeIC1, IC4
10meta-viewportTier 1safeIC1, IC4

Three delivery surfaces

1. VS Code Extension

Microsoft Marketplace install. Squiggly underlines on violation locations; severity mapping critical/serious → Error, moderate → Warning, minor → Info. Lightbulb code-action proposes a unified diff the developer accepts or rejects.

  • Activation: TS/JS/JSX/TSX/HTML/CSS/SCSS/Vue/Svelte/Astro
  • Triggers: command palette / optional onSave opt-in via .ariada.yml
  • Local mode by default; cloud LLM is workspace-opt-in
  • Bundle target < 5 MB VSIX (chromium lazy-installed, not bundled)
  • Telemetry: zero by default; opt-in PostHog records crash + activation only (never code or scan data)
  • Patent A binding: IC1, IC2, IC3, IC4

2. MCP Server (@ariada/mcp)

npx @ariada/mcp — STDIO transport (default) or --transport sse --port 8765. Two-line config in Claude Desktop, Cursor, Claude Code, or any other MCP-aware agent.

{
  "mcpServers": {
    "ariada": {
      "command": "npx",
      "args": ["-y", "@ariada/mcp"]
    }
  }
}

Tool surface (P0):

  • scan_url — run @ariada/core scan against a URL
  • scan_local — serve and scan a local static-files directory
  • get_fix_suggestion — propose without applying
  • apply_fix — apply codemod to source file (supports dry_run)
  • explain_rule — WCAG criterion + plain-language explanation
  • list_supported_codemods — enumerate codemod IDs with risk levels

All tool inputs validated via zod; logs to stderr only (STDIO transport reserves stdout for JSON-RPC); rate-limited via in-process LRU. Patent A IC6 binds the entire endpoint set.

3. CLI (ariada fix)

Local + CI/CD invocation; SARIF input/output for pipeline integration.

npx @ariada/cli fix ./src
npx @ariada/cli fix --input nightly.sarif --severity moderate-up
npx @ariada/cli fix --dry-run
  • Output formats: unified diff (default), JSON, applied-files summary
  • Exit codes: 0 = all fixes applied cleanly, 1 = some rejected, 2 = scan error
  • GitHub Action wrapper ariada/fix-action@v1 (planned)
  • PII layer (IC8) always on for cloud LLM; bypassed for self-host LLM
  • Patent A binding: IC4 + IC8

Installation

Reverter is in early access. Public packages will publish to npm and the Microsoft Marketplace once the early-access programme closes. Contact us for the early-access list.

PII-safe preprocessing (Patent A IC8)

Input DOM
  v
Microsoft Presidio + spaCy NER scan
  v
For each PII span: replace with type-preserving placeholder
  (Erik Andersson -> [NAME_1], [email protected] -> [EMAIL_1], ...)
  v
Sanitised DOM -> adaptive context window -> LLM
  v
LLM returns remediation referencing placeholders (or none)
  v
Restore: every [NAME_N] / [EMAIL_N] / [ADDRESS_N] swapped back
  v
Audit log: { prompt_redacted, restored_count, leakage_check: pass | fail }

Round-trip non-PII byte-diff is zero by construction; PII never enters the LLM prompt (verified via prompt audit-log assertion). Patent A IC8 covers the round-trip; the leakage bound is expressible as a function of the PII detector's false-negative rate (Patent A spec, §IC8 disclosure).

Validation evidence

Patent A's methodology is grounded in a four-phase pre-filing whitespace audit: Phase 1A/1C confirmed Patent A's four independent claims (IC1 tiered, IC2 multi-tool with confidence, IC3 version-aware, IC4 PDF document remediation) return 0 results across approximately 11.4 M arXiv + DBLP papers for the four-element conjunction; Phase 2B CPC density analysis confirmed 100% accessibility whitespace in the G06F40/00 NLP zone across 295 utility patents; Phase 4B independent NPL re-sweep confirmed Fernández-Navarro & Chicano (Universidad de Málaga, arXiv:2602.17887, Feb 2026) is the closest single-paper prior art worldwide and lacks every distinguishing feature of Patent A's pipeline (no tiered processing, no signature cache, no adaptive context, no PII layer, no MCP).

End-to-end Reverter accuracy on production customer code is pending Patent A PoC v1.0 — the industrial-scale validation runs against AccessGuru 3,500-pair corpus, the WebAIM Million 5K subset, and ACT Rules. We do not claim "validated on N customer sites".

See pricing →