feat(schema): publish Verdict v1.0-rc1 envelope schema#351
Merged
Conversation
added 2 commits
June 1, 2026 02:01
Adds verdict_envelope_schema_test.go pinning cut-criterion-2 contract before the artifact lands: schema loadable from docs/schemas/verdict- 1.0.0-rc1.json, every shipped Verdict round-trips through it, ten envelope-drift falsifiers reject, and $id matches the published CDN URL contract for external SDK pinning. Fails with file-not-found until the schema artifact is published. Signed-off-by: Tri Lam <tri@maydow.com>
Publishes docs/schemas/verdict-1.0.0-rc1.json — the canonical Verdict envelope every pattern detector emits. Per-pattern detectors layer pattern-specific fields on top (gpu_id, xid_code, kind, …); per-pattern testdata schemas pin those extensions. Envelope sets additionalProperties true so per-pattern fields validate without re-listing here. Closes v1-rc1 cut criterion 2: - Schema at docs/schemas/verdict-1.0.0-rc1.json, draft 2020-12, $id https://schema.tracecore.io/verdict/1.0.0-rc1.json (matches the CDN contract third-party SDKs key off). - Envelope-conformance + ten drift-falsifier rows already landed RED in the prior commit; this commit makes them GREEN. - docs/schemas/README.md documents versioning + evolution policy and cross-links the forthcoming docs/DEPRECATION.md (criterion 4). - docs/ATTRIBUTES.md cross-links the envelope from the pattern.verdict_json column. - docs/v1-rc1-cut-criteria.md flips criterion 2 from planned to shipped with a Landed pointer. Signed-off-by: Tri Lam <tri@maydow.com>
Signed-off-by: Tri Lam <tri@maydow.com>
Contributor
Author
|
Addressed reviewer BLOCKERS in 2748007: 🔴 Fixed (3):
Root cause note: BLOCKERS 1 + 2 both trace to pattern #13 landing (#344) after this PR's RED commit was authored — fixture coverage didn't rebase forward. BLOCKER 3 traces to an aspirational 🟡 Acknowledged: ❓ Resolved: SDKs (criterion 12) ship with embedded schema copy, so Validation:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Publishes the v1.0-rc1 Verdict envelope schema and the lock test that
keeps every shipped detector honest against it. Closes v1-rc1 cut
criterion 2.
docs/schemas/verdict-1.0.0-rc1.json— canonical envelope (draft2020-12).
$id:https://schema.tracecore.io/verdict/1.0.0-rc1.json(matches the CDN URL third-party SDKs key off). Required envelope
fields:
pattern.id,headline,remediation,evidence_trail.Optional:
confidence,missing_layers.additionalProperties: trueso per-pattern fields (
gpu_id,xid_code,kind, ...) validatewithout re-listing here.
module/pkg/patterns/verdict_envelope_schema_test.go— three testgroups: (1) every shipped Verdict (8 patterns:
pod_evicted,nccl_hang,xid_correlation,hbm_ecc,thermal_throttle,pcie_aer,cuda_oom,ib_link_flap) round-trips through thepublished artifact; (2) ten envelope-drift falsifiers reject; (3)
$idpinned literally — drift surfaces immediately.docs/schemas/README.md— inventory + versioning policy (patch /minor / major SemVer semantics, when to bump, how a new pattern
adds itself) cross-linked to the forthcoming
docs/DEPRECATION.md(criterion 4).
docs/ATTRIBUTES.md— cross-link from thepattern.verdict_jsoncolumn to the envelope.
docs/v1-rc1-cut-criteria.md— criterion 2 flipped ☐ → ☑ with**Landed:**pointer.Design choice: envelope vs per-pattern split
The envelope is the union-superset of fields every pattern emits.
Per-pattern testdata schemas under
module/pkg/patterns/testdata/<pattern>_verdict.schema.jsoncontinueto pin pattern-specific shape with
additionalProperties: false.Drift in envelope-level fields surfaces on the envelope test; drift
in pattern-specific fields surfaces on the per-pattern schema. The
per-pattern schemas were intentionally not rewritten to use
$refagainst the envelope — the Go-side test is the load-bearingconformance path, and a
$refrewrite would add resolutioncomplexity without bite. Documented in
docs/schemas/README.md.TDD
Two commits, RED → GREEN, kept separate per the loop discipline.
670d19e test(schema): RED v1.0-rc1 envelope test suite— failswith
no such file or directoryon the schema artifact path.9f7a4a8 feat(schema): publish Verdict v1.0-rc1 envelope schema—artifact + docs land; test goes green.
Test plan
cd module && go test ./pkg/patterns/... -count=1cleancd module && go test ./pkg/patterns/... -racecleancd module && go vet ./...cleanbash scripts/attribute-namespace-check.shclean (82/82)bash scripts/doc-check.shclean (no dead links)