Skip to content

Conformance tracking

Point-by-point implementation status for every targeted specification (emergent ADR-0028), on top of conform-ed’s published Coverage Maps (ADR-0013). The generated index.md is the bird’s-eye view; this README is the how-to.

  • maps/ — pinned, sha-locked Coverage Maps vendored from @conform-ed/coverage (the literal-published-schema denominator). Generated; do not edit.
  • overlays/ — the hand-authored L3 product status (YAML): per conformance requirement / item, status declared-with-cited-evidence + gotchas.
  • *.md — generated render. Do not edit; run conformance:render.

Tooling lives in ../../tools/scripts/conformance/.

Terminal window
bun run conformance:render # regenerate the Markdown from maps + overlays
bun run conformance:check # gate; warns on evidence it cannot verify locally

The gate runs four checks: referential integrity vs the pinned map (sha + keys), evidence verified against actual test pass/fail, untriaged conformance- requirement / silent-gap detection, and render freshness.

done/partial claims cite evidence keys that a passing [covers: <key>]-tagged test must prove. Any integration/conformance lane can emit the JUnit the gate reads by setting EMERGENT_INTEGRATION_JUNIT_OUTFILE:

Terminal window
# 1. run the lane(s) in their ephemeral Podman stack, emitting JUnit
EMERGENT_INTEGRATION_JUNIT_OUTFILE=tmp/agents/conformance/ob.junit.xml \
bun run test:ob:conformance
# 2. gate the overlay against what actually passed
bun run conformance:check --require-proof --reports "tmp/agents/conformance/*.xml"

Without --require-proof (local dev) unverifiable evidence is a warning; in CI, run with --require-proof after the suite so an unproven or red done fails the build. The Open Badges 3.0 lane is proven this way end-to-end (the lane boots its own throwaway Postgres + Supabase stack — it never touches a dev database).