At the interaction checkpoint
Observe the declared disclosure in the initial page state before any configured interaction is performed.
disclosure.before-interactionOpen-source v0.4.0 technical preview
Regression-test declared AI disclosures, initial-render visibility, basic accessible-name checks, and configured C2PA provenance in the experience people actually receive.
No legal compliance verdicts. No customer-media uploads. No silent telemetry.
Or inspect a real production report$ npx art50-ci audit
PASSdisclosure observed in initial state
PASSbasic accessible-name check
FAILlabel covered by cookie overlay
FAILC2PA manifest missing from delivered asset
2 failed · evidence saved to .art50-ci/reports
Configured assertions only · not a legal conclusion
Local-firstRuns with your build
Delivered-pathTests the real URL and bytes
InspectableJSON, HTML, screenshots, hashes
Deliberately narrowTechnical conditions, not legal scope
No account · no upload · five minutes
Enter one public product URL and the disclosure your team selected. The command is assembled entirely in this browser and runs locally on your machine.
Founding offer · 30-day monitored launch
The open-source software remains free to self-serve. €500 buys delivery and accountability—not access to the code.
Each browser disclosure assertion, optional first-interaction control, or C2PA provenance item counts as one check.
Public 60-second fit check. No product URLs, media, repository access, private details, or payment. Preliminary fit or no-fit comes first; private intake requires explicit opt-in. Daily or weekly monitoring is asynchronous, with no on-call or response-time SLA. Engineering delivery only: no legal advice or certification, C2PA creation or embedding, trust determination, or product fixes. Evidence is handed off; hosted custody is not included.
Real release evidence
This public schema-v2 report was produced by the released v0.4.0 CLI against the production site. It checked the declared result boundary at a 1440 × 1000 viewport and retained hashes and the exact release commit. Screenshots were disabled for this public run.
PASS means only that the configured technical condition was observed at the recorded time. It is not certification or a legal-compliance conclusion.
npm consumer audit limitation: npm does not propagate a dependency package's overrides. Projects installing the CLI can therefore still see four high-severity audit findings in the @contentauth/c2pa-node install-time unzipper@0.10.14 dependency chain. The tagged Action and repository lockfile use unzipper@0.12.5.
c2132e161663d1de543…70b08The delivery path is the product
Design files and policy documents do not test the configured viewport, sampled obstruction, or bytes after delivery transformations. art50-ci does.
Observe the declared disclosure in the initial page state before any configured interaction is performed.
disclosure.before-interactionCatch copy drift, off-viewport labels, sampled overlay obstruction, and missing accessible names.
label.initial-viewportCheck whether the source C2PA manifest label appears in the manifest chain of the bytes delivered by your CDN.
c2pa.source-manifest-in-chainC2PA is one configurable metadata implementation. Article 50 and the Code of Practice do not require it by name, and this preview is not complete Article 50(2) marking or detection coverage.
See the public C2PA delivery pass/fail proofOne file. One command. Release evidence.
Record the selectors, text, asset URLs, and provenance expectations your governance owner selected.
Test a preview before merge and schedule the same check against production.
Archive time-bound results, screenshots, byte hashes, and precise failure codes with the release.
version: 1
project:
name: acme-ai-product
surfaces:
- id: public-assistant
target: https://app.example.com
firstInteraction:
selector: "[data-chat-input]"
disclosures:
- id: ai-notice
selector: "[data-ai-disclosure]"
expectedText: "AI system"
inViewport: true
unobstructed: true
accessible: true
provenance:
- id: launch-poster
source: ./poster.png
delivered: https://cdn.example.com/poster.png
requireManifest: true
requireSourceManifestInDeliveredChain: trueA sharp result boundary
Article 50 includes scope questions and fact-specific exceptions that browser automation cannot responsibly decide. art50-ci starts after those decisions and tests the observable mechanics.
Why now
The relevant Article 50 transparency obligations apply from 2 August 2026, subject to scope and exceptions. Use the primary sources; never treat this tool as a substitute.
€500 one time
The open-source software remains free to self-serve. €500 buys delivery and accountability—not access to the code.
Each browser disclosure assertion, optional first-interaction control, or C2PA provenance item counts as one check.
Check monitored launch fit Read the exact delivery scopePublic 60-second fit check. No product URLs, media, repository access, private details, or payment. Preliminary fit or no-fit comes first; private intake requires explicit opt-in. Daily or weekly monitoring is asynchronous, with no on-call or response-time SLA. Engineering delivery only: no legal advice or certification, C2PA creation or embedding, trust determination, or product fixes. Evidence is handed off; hosted custody is not included.