feat(core): bind release SBOM to manifest artifacts - #221
Draft
seonghobae wants to merge 141 commits into
Draft
Conversation
seonghobae
force-pushed
the
feat/release-manifest-artifact-contract
branch
from
August 27, 2026 07:06
72a801e to
94d5e1f
Compare
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.
Scope
Bounded partial implementation of #201, stacked on PR #219. This Draft binds one SPDX 3.0.1 JSON-LD SBOM artifact to the exact immutable release-manifest identity, binds candidate bytes to that manifest-backed SBOM SHA-256, and applies a bounded fail-closed JSON-LD envelope/file-admission verifier.
It does not generate an SBOM, certify full SPDX conformance, authenticate the producer, establish provenance, sign or publish a release, or grant install, update, or rollback authority.
Integrity contract
ReleaseSbomBindingretains the complete boundedReleaseManifest, exact manifest-backed SBOM artifact, and exact describedReleaseArtifactidentities. Missing, duplicate, case-drifted, foreign, self-described, or incomplete described-artifact inventories fail closed.ReleaseSbomFormat::Spdx30JsonLdexposes SPDX version3.0.1and the pinned global contexthttps://spdx.org/rdf/3.0.1/spdx-context.jsonld. The verifier separately admits only strict UTF-8 JSON-LD with bounded numeric lexemes, exact top-level context/graph shape, bounded graph cardinality, object-only graph entries, and exactly oneSpdxDocument. Local file admission remains direct-path, regular-file, descriptor-relative, no-follow, nonblocking, and identity-bound before, during, and after the bounded read.Diagnostics do not reflect document-controlled values, expected digest values, or candidate filesystem paths. This is metadata correspondence evidence, not producer authentication or release authority.
Exact current stack state
feat/release-manifest-artifact-contract@94d5e1f12c959243d107c6f7bfff24faf995d633;feat/release-spdx-sbom-binding@f0237159d37155da4a9b637ee860f7a06a7a8b1e;Exact-head evidence
On exact head
f0237159d37155da4a9b637ee860f7a06a7a8b1e:98820664533: success;98820664274: success, with production functions, lines, regions, and branches at 100%;98820663543: success;Previous-head and parent-head evidence is not transferred. The parent owns ADR 0016 for BAP task lifecycle authority; this child uses proposed ADR 0018 for the SBOM design and does not promote it to Accepted or protected-main truth.
Authority boundary
Digest equality proves correspondence to the manifest-declared artifact identity only. This preliminary verifier does not authenticate the producer, validate complete SPDX semantics, prove provenance or reproducibility, or grant signing, publication, installation, update, rollback, or release authority.
Protected-main
AGENTS.mdremains authoritative; this scheduled writer does not merge, self-approve, force-push, alter workflows/rulesets/secrets, tag, release, or publish.