You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[NEW-SPEC-1] Machine-checkable conformance manifest (conformance.json) to turn self-reported conformance into an enforced artifact #139
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.
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 schemaspec/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.
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".
Activity
SoundMatt commentedon Aug 21, 2026
Implemented and merged in #180 (squash commit
44357a4).What was found
Investigated the issue's original proposal against current spec state before implementing:
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
relay-conform/1manifest (§17.2), generated byrelay conform --manifest; CI MUST regenerate it and fail on drift or anyFAILentry.PASS/FAIL/SHAPE_ONLY/NOT_OBSERVABLE), deliberately distinct fromrelay conform's existingPASS/WARN/FAILfinding severities. Core rule: a manifest MUST NOT reportPASSfor a requirementrelay conformcannot actually observe.commitfield on the §12.1 version document (backward-compatible) so a manifest can populategit_sha.spec/schemas/relay-conform-manifest.json.--manifestflag +buildManifest()incmd/relay/conform.go. Only Requirements 1, 6, 7, 12 get realPASS/FAIL/SHAPE_ONLYstatuses (mirroring whatrelay conformcan actually observe black-box). Everything else — including Requirement 15's own manifest-generation entry — is honestlyNOT_OBSERVABLE.REQ-RELAY-095in.fusa-reqs.json— minted fresh rather than reusingREQ-RELAY-052, since--manifestis materially new behavior.SpecVersionbumped2.2→2.3(MINOR), matching the Requirement 13/14 precedent.Scope notes
capabilities_sha256correctness (independently cross-checked againstsha256sum),NOT_OBSERVABLEdefaults,FAILpropagation, 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 ofmainat44357a4.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).relay conform --manifestagainst a freshly built binary from the post-merge clone and asserted: valid JSON,spec_version: "2.3", all 15 requirement entries present,overall: "PASS".mainCI run for merge commit44357a4independently confirmed green (Docker build,Test,Security,Lint,go-FuSa full safety lifecycle,Self-conformanceallsuccess).Closing.