Both demos render the same NAC3 contract: the buttons, fields, and verbs are addressable by an LLM, a voice runner, a Playwright spec, or a human cursor through the same API. Pick your framework, look at the source, ship NAC3 in your own app this afternoon.
Hooks-based registration, JSX with data-nac-* attributes, single-page reference app.
Component decorators + structural directive bindings, standalone components, signals-ready.
Open demo →
v2.5 per-RFC demos. Each RFC shipped in 2.5 has a live,
Playwright-driven demo with full evidence captured under
evidence/<rfc>/<date>/.
Across the 8 SHIPPED RFCs in v2.5 (V24-01/02/04/05 + V25-01/02/03/04):
Layer 2: 124 PASS / 0 FAIL and
Layer 3 LIVE w/ Claude: 51 PASS / 0 FAIL.
Iframe canvas+API mock decorated via 6 backends (postmessage, postmessage-listen, sdk-call, script-bridge, same-origin-window, synthetic-poll) + fallback chain + cross-backend transaction.
Open demo →context(plugin) breadcrumb + tree(plugin, rootId?) enumeration with data-nac-opens / data-nac-leaf authoring attributes. Multi-level menubar with opens-chain composition.
Open demo →Priority: aria-label > visible text > data-nac-label > nac_id. Nested addressable children excluded from parent's visible-text. The label primitive for TTS, screen readers, voice agents, audit logs.
Open demo →NAC.expect polls until state matches or times out. NAC.diff snapshots before / after an action. Closes the "silent damage" gap for assistive callers.
Open demo →Modal-backed confirm handler, request_authority TTL grants, rank rule (high > medium > low), TTL expiry, revoke idempotency.
Open demo →plugin_version / tree_version / element_state_hash gates on click(), STRICT vs relaxed, mutation-then-stale-hash, versionHistory + conformance_tier.
Open demo →register vs syncPlugin contrast, manifest replace not append, tree_version monotonic across idempotent calls, nac:plugin:invalidated firing.
Open demo →Happy 2-instance plugin, register-time throw on violation, validate_global plugin_instance_violations bucket, HARD_DEDUP migration flag.
Open demo →