feat(OSPS-BR-02.02): associate release assets with release identifiers - #445
Open
jmeridth wants to merge 3 commits into
Open
feat(OSPS-BR-02.02): associate release assets with release identifiers#445jmeridth wants to merge 3 commits into
jmeridth wants to merge 3 commits into
Conversation
jmeridth
force-pushed
the
feat/osps-br-02-02
branch
from
August 13, 2026 04:15
fef1edd to
2c45635
Compare
jmeridth
marked this pull request as draft
August 13, 2026 04:16
jmeridth
marked this pull request as ready for review
August 13, 2026 04:16
Relates to #17 What/Why Implements the remaining half of OSPS-BR-02: release asset names must carry the release identifier (tag, tag without the leading v, or an unspaced release name), with signature, checksum, attestation, and SBOM companions plus standard docs files exempt. Unrecognized identifiers surface as NeedsReview rather than Failed because the control allows another unique identifier the scanner cannot observe. Proof it works gofmt, go vet ./..., go test ./... (all packages), and go test -race on the touched packages pass locally. A 16-case table test asserts result, message, and confidence for every branch, plus helper tests for identifier-candidate derivation and companion classification. Risk + AI role Low: new single-step check plus wiring; no existing control logic modified. AI-generated end to end by Claude Fable 5 with maintainer-approved design. Review focus Control interpretation (NeedsReview over Failed for unrecognized identifiers) and the identifier-candidate rules (v-prefix stripping with the two-character guard, spaced release names skipped). Signed-off-by: jmeridth <jmeridth@gmail.com>
jmeridth
force-pushed
the
feat/osps-br-02-02
branch
from
August 14, 2026 10:34
2c45635 to
2f67f0d
Compare
6 tasks
…t catalog ID Relates to #448 What/Why Step doc comments should describe the behavior being assessed; the catalog-ID linkage lives in the dispatch map. Reword this PR's new comments so they do not re-couple logic to requirement IDs. Proof it works Comment-only change. go build clean and all evaluation_plans package tests green. Risk + AI role Low. Comment-only. AI-generated (Claude Fable 5), human-directed. Review focus Wording accuracy: the reworded comments must still say exactly what the check enforces. Signed-off-by: jmeridth <jmeridth@gmail.com>
Member
Author
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.
Closes #17
What/Why
Implements OSPS-BR-02.02, the remaining half of the parent issue (BR-02.01 already landed): release assets must be clearly associated with the release identifier or another unique identifier. The new
ReleaseAssetsAssociatedWithReleasestep checks whether each published, non-draft release's asset names embed the release identifier (tag, tag without the leadingv, or an unspaced release name), exempting signature/checksum/attestation/SBOM companions and standard docs files that are associated through the artifact they accompany. Unrecognized identifiers surface asNeedsReviewrather thanFailedbecause the control permits "another unique identifier" the scanner cannot observe (the same rationale the QA-02.02 SBOM check uses). Release gating reusesreusable_steps.HasPublishedRelease, so drafts are excluded and unobservable release data degrades toNeedsReview, with explicit confidence on every return.Proof it works
go test ./...across all packages andgo test -raceon the touched packages pass locally.Risk + AI role
Low: a new single-step check plus wiring; no existing control logic modified. AI-generated end to end with maintainer-approved design; the interpretation (naming heuristic with
NeedsReview, noFailedpath) was an explicit maintainer decision over structural-only or fail-on-missing readings.Review focus
NeedsReview-not-Failedthe right call for assets without a recognizable identifier, and is the companion-file exemption list appropriately scoped?