Skip to content

[NEW-SPEC-1] Machine-checkable conformance manifest (conformance.json) to turn self-reported conformance into an enforced artifact #139

Closed

Description

@SoundMatt

Problem. RELAY conformance today is black-box CLI-shape observation (§17's own prose, confirmed at
current HEAD, explicitly narrates which requirements relay conform can and cannot verify from
outside the binary). This addresses THEME-A (version drift), THEME-B (capabilities divergence), and
THEME-I (CI gates that don't gate) at once by converting the currently-prose conformance story into a
pinned, diffable artifact.

Proposal. Add a new §17.13 (and extend §11.1/§20.1): relay conform MUST emit a relay-conform/1
manifest enumerating every §17 requirement (1-12) with a {status, verifier, evidence_ref} triple,
plus the targeted spec_version, the git SHA of the built binary, the SHA-256 of the capabilities
document, and (once NEW-SPEC-2 lands) the pinned vector-set hash. Each conformant port MUST commit this
manifest, and CI MUST regenerate it and FAIL the build on any diff or any FAIL entry. This converts
REL-SPEC-9's proposed lookup table (filed separately in this batch) from prose into an enforced
artifact, and closes the "prints conformant but isn't actually gated" hole THEME-I documents.


Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.

Activity

  1. SoundMatt commented on Aug 21, 2026

    @SoundMatt
    OwnerAuthor

    Implemented and merged in #180 (squash commit 44357a4).

    What was found

    Investigated the issue's original proposal against current spec state before implementing:

    • §17 had already grown to 14 numbered requirements (not "1-12" as the issue text speculated), so the new manifest entry became Requirement 15.
    • relay conform's own CLI flags were already informally deferred design space per existing spec text — §11.1 did not need editing.

    What was implemented

    • New §17 Requirement 15 — Conformance manifest. Implementations MUST commit a relay-conform/1 manifest (§17.2), generated by relay conform --manifest; CI MUST regenerate it and fail on drift or any FAIL entry.
    • New §17.2 defines the manifest JSON shape and a 4-value status vocabulary (PASS/FAIL/SHAPE_ONLY/NOT_OBSERVABLE), deliberately distinct from relay conform's existing PASS/WARN/FAIL finding severities. Core rule: a manifest MUST NOT report PASS for a requirement relay conform cannot actually observe.
    • New optional commit field on the §12.1 version document (backward-compatible) so a manifest can populate git_sha.
    • New §20.1 CI gate for manifest regeneration/diffing.
    • New embedded schema spec/schemas/relay-conform-manifest.json.
    • Reference implementation: --manifest flag + buildManifest() in cmd/relay/conform.go. Only Requirements 1, 6, 7, 12 get real PASS/FAIL/SHAPE_ONLY statuses (mirroring what relay conform can actually observe black-box). Everything else — including Requirement 15's own manifest-generation entry — is honestly NOT_OBSERVABLE.
    • New REQ-RELAY-095 in .fusa-reqs.json — minted fresh rather than reusing REQ-RELAY-052, since --manifest is materially new behavior.
    • SpecVersion bumped 2.2 → 2.3 (MINOR), matching the Requirement 13/14 precedent.

    Scope notes

    • Fixed a stray "§17.13" → "§17.2" citation left over from drafting.
    • 7 new tests cover manifest schema validity, capabilities_sha256 correctness (independently cross-checked against sha256sum), NOT_OBSERVABLE defaults, FAIL propagation, and CLI exit codes.

    Verification (double-checked, both before and after merge)

    • go build ./... && go vet ./... && go test ./... — clean, both pre-merge and from a fresh post-merge clone of main at 44357a4.
    • gofmt -l . — clean (caught and fixed one alignment issue that failed CI's Lint check on the first push).
    • gofusa check (pinned v0.48.0, matching CI): 0 errors.
    • gofusa trace -req-coverage 100: 100% (95/95 requirements traced).
    • Manually ran relay conform --manifest against a freshly built binary from the post-merge clone and asserted: valid JSON, spec_version: "2.3", all 15 requirement entries present, overall: "PASS".
    • All 7 CI checks green on PR feat: add relay conform --manifest (relay-conform/1), spec §17.2, Requirement 15 #180, and the main CI run for merge commit 44357a4 independently confirmed green (Docker build, Test, Security, Lint, go-FuSa full safety lifecycle, Self-conformance all success).

    Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions