Blocks the OpenSSF Best Practices silver criterion signed_releases ("MUST cryptographically sign releases intended for widespread use, and there MUST be a documented process explaining how users obtain the public signing keys and verify the signatures"). Answered Unmet in .bestpractices.json.
The gap
.github/workflows/release.yml was added by #37 and merged 2026-07-25 (d38171f). The latest release, v2.7.1, was cut by hand on 2026-07-24 (0d136b0), one day earlier.
So every published release artifact predates the signing pipeline. The workflow is correct as far as review can tell (it tests, builds, fingerprints ui/, emits a CycloneDX SBOM, checksums every asset, and calls actions/attest-build-provenance before upload), but it has never executed. An untested release path is not a control, and SECURITY.md currently describes the verification step as though a user could perform it today. They cannot: there is no attested asset to verify.
The Scorecard Signed-Releases check reports -1 (inconclusive) for the same reason.
What closes it
Cut v2.7.2 through the workflow and verify the output end to end:
Related
Consider signing the version tag itself as well (git tag -s): the silver version_tags_signed criterion is SUGGESTED, and no current tag is signed (git tag -v v2.7.1 reports a non-tag commit object).
Blocks the OpenSSF Best Practices silver criterion
signed_releases("MUST cryptographically sign releases intended for widespread use, and there MUST be a documented process explaining how users obtain the public signing keys and verify the signatures"). AnsweredUnmetin.bestpractices.json.The gap
.github/workflows/release.ymlwas added by #37 and merged 2026-07-25 (d38171f). The latest release, v2.7.1, was cut by hand on 2026-07-24 (0d136b0), one day earlier.So every published release artifact predates the signing pipeline. The workflow is correct as far as review can tell (it tests, builds, fingerprints
ui/, emits a CycloneDX SBOM, checksums every asset, and callsactions/attest-build-provenancebefore upload), but it has never executed. An untested release path is not a control, andSECURITY.mdcurrently describes the verification step as though a user could perform it today. They cannot: there is no attested asset to verify.The Scorecard
Signed-Releasescheck reports-1(inconclusive) for the same reason.What closes it
Cut v2.7.2 through the workflow and verify the output end to end:
v2.7.2pushed,Releaseworkflow completes greencortex-viz.cdx.json,cortex-viz-ui-manifest.sha256, and a.sha256companion for eachgh attestation verify cortex-viz-ui-manifest.sha256 --repo cdeust/cortex-vizsucceeds from a clean checkout, run by someone followingSECURITY.mdverbatimui/(98 JS files plus HTML/CSS)SECURITY.mdnames the first release for which verification actually works.bestpractices.jsonsigned_releases_statusflips toMetRelated
Consider signing the version tag itself as well (
git tag -s): the silverversion_tags_signedcriterion is SUGGESTED, and no current tag is signed (git tag -v v2.7.1reports a non-tag commit object).