NAC3 v2.5 -- RFC V24-01 demo

Plugin slug uniqueness gate

When the same plugin slug appears on more than one DOM root, every root MUST carry a unique data-nac-plugin-id attribute. The runtime enforces this in three layers: synchronous throw on NAC.register, boot-time fatal banner via the DOMContentLoaded validator, and a non-fatal validate_global finding for CI pipelines. Migration flag NAC.HARD_DEDUP=false opts out of the fatal pass for one release window.

plugin instances + actions

data-nac-plugin="cart" data-nac-plugin-id="cart-main"
data-nac-plugin="cart" data-nac-plugin-id="cart-mini" -- same slug, distinct id (OK)
violation surface
events + errors + findings