Snodo.Compliance (snodo v0.1.0)

Copy Markdown View Source

Honest, machine-readable evidence inventory for the implemented MCP slice.

Internal contract checks, unsupported surfaces, unmeasured surfaces, and official conformance results remain separate buckets. Passing the internal contract never becomes an official conformance score.

Summary

Functions

Returns the canonical IDs that the internal contract suite must evidence.

Builds the evidence report for the 2026-07-28 profile.

Renders a report/2 map as a short Markdown summary, as mix snodo.contract --format markdown prints it.

Verifies the pinned frozen requirement artifact and its server inventory.

Functions

internal_contracts()

@spec internal_contracts() :: [String.t()]

Returns the canonical IDs that the internal contract suite must evidence.

report(profile, opts \\ [])

@spec report(Snodo.Protocol.Profile.t(), keyword()) :: map()

Builds the evidence report for the 2026-07-28 profile.

profile must have version "2026-07-28", such as Snodo.Protocol.V2026_07_28.profile(). The report is a string-keyed map with "protocolProfile" (the profile's manifest), "evidence" ("internalPass", "unsupported", "unmeasured", and "officialPass"), and "officialServerConformance" (the frozen result of the official conformance run). mix snodo.contract --format json prints this map.

Options:

  • :internal_pass - the internal contract IDs whose evidence passed, each from internal_contracts/0 and listed once. Defaults to []. Any other value raises ArgumentError.

to_markdown(report)

@spec to_markdown(map()) :: String.t()

Renders a report/2 map as a short Markdown summary, as mix snodo.contract --format markdown prints it.

verify_requirements_manifest!(path)

@spec verify_requirements_manifest!(Path.t()) :: :ok

Verifies the pinned frozen requirement artifact and its server inventory.