Skip to content

Standalone Conformance Suite

This page describes how to use the standalone Universal Manifest conformance suite as an external adopter.

The conformance suite is implementation-neutral. You can run it against any runtime or language as long as your implementation can be invoked through the suite adapter contract.

The specification remains the normative source of truth:

The standalone suite operationalizes those requirements into portable fixtures and expected outcomes so different implementations can prove equivalent behavior.

After WO-0053, the suite is expected at these repository paths:

  • conformance/README.md
  • conformance/v0.1/expected.json
  • conformance/v0.2/expected.json
  • conformance/schema/conformance-report.schema.json
  • conformance/schema/conformance-status.schema.json
  • conformance/runner/ (reference CLI runner)
  • conformance/adapters/typescript/ (reference adapter)

Your implementation should expose a simple adapter that receives fixture input and returns an accept or reject decision with a reason.

Expected response shape:

{
"fixture": "v0.1/invalid/missing-context.jsonld",
"result": "reject",
"reason": "missing @context field"
}

You can implement this contract in any language and integrate it with the suite runner (or an equivalent internal runner that follows the same expected results).

  1. Select the target version set (v0.1, v0.2, or both).
  2. Run all fixtures for each selected version.
  3. Compare results to the corresponding expected.json.
  4. Emit a conformance report JSON.
  5. Validate the report JSON against conformance-report.schema.json.

Reference runner invocation (non-normative):

Terminal window
cd /path/to/universalmanifest/conformance/runner
node cli.mjs --adapter <adapter-path-or-endpoint> --report report.json
  • v0.1-baseline — passes all v0.1 valid and invalid fixtures
  • v0.2-baseline — passes all v0.2 valid and invalid fixtures (including signature profile checks)
  • v0.2-extended — passes v0.2 baseline plus revocation-aware fixtures (when included by suite policy)