Six checks, in order

  1. Discovery. Fetch /.well-known/ai.json, or follow the ai-feed link relation.
  2. Strict parse. Duplicate keys, floats, and out-of-range integers are rejected before any crypto runs.
  3. Domain binding. The manifest's identity.domain must equal the host you asked for.
  4. Signature. Ed25519 over JCS-canonical bytes with the aifeed.v0.2 separation.
  5. DNS anchor. A DNS-over-HTTPS lookup of _aifeed.<host> must carry the same public key.
  6. Permissions and revocation. The usage table is read, and the registry document is checked when present.

A sample trace

PASS discovery   https://demo.aifeed.md/.well-known/ai.json
PASS parse       duplicate keys, floats, bounds clean
PASS domain      demo.aifeed.md
PASS signature   ed25519 over aifeed.v0.2
PASS anchor      v=aifeed1 · fp=sha256:NQixB-4Q…
PASS content     text/aifeed+markdown · signature verified

Honest limits

  • The verifier proves provenance, not that the markdown faithfully mirrors the HTML rendering.
  • First-contact origin+DNS compromise is undetectable without out-of-band state.
  • WebCrypto Ed25519 support is required; older browsers get a clear warning instead of a false pass.