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
An audit used this repo as the reference template for release-readiness of another project. It's a strong template, but some gaps against a "gold standard" release bar surfaced. This issue tracks those remaining gaps.
Config drift — RESOLVED, no longer in scope
All five originally-filed drift items are closed out as of 113f472:
Repo homepage points at the wrong slug — satisfied. gh api repos/dean0x/mdscript reports homepage: https://github.com/dean0x/mdscript#readme.
.github/ISSUE_TEMPLATE/config.yml links to /discussions while Discussions is disabled — satisfied. No /discussions link remains anywhere in .github/ISSUE_TEMPLATE/ (grep exits 1), and has_discussions: false — so the templates and the repo settings now agree.
SECURITY.md supported-versions table is stale (0.1.x) — satisfied. No 0.1.x row remains; SECURITY.md:23-28 now carries the rolling statement instead of a version table, so it can't rot again.
CODE_OF_CONDUCT.md still missing — struck from this issue. Tracked standalone in Add CODE_OF_CONDUCT.md (Contributor Covenant 2.1) #38, which is already scheduled on Wave 1. Folding it in here only duplicated the tracking.
(a) Every public claim is CI-verified — declared MSRV is checked (✅ already done here), claimed commit conventions are enforced, docs can't silently drift from settings.
(b) Supply chain — all actions SHA-pinned with Dependabot keeping pins fresh; OIDC trusted publishing (no long-lived registry tokens); npm provenance; cargo-deny gating advisories/licenses.
(c) Release integrity — checksummed release artifacts + build-provenance attestations; a dry-run path exercising the full build matrix (✅ already done here); idempotent, safely re-runnable publish steps.
(d) Self-consistency — repo settings, templates, and health files agree with each other (✅ now satisfied — see the resolved drift items above).
(e) Protection that doesn't fight automation — branch protection with the release path designed around it (✅ now satisfied — tag-driven release).
Against that bar, the remaining work:
Registry auth uses long-lived secrets (CARGO_REGISTRY_TOKEN, NPM_TOKEN); both crates.io and npm support OIDC trusted publishing — switch, then delete the tokens.
GitHub Releases carry no artifacts or checksums — attach a SHA256SUMS (and optionally the platform artifacts), and add build-provenance attestations (actions/attest-build-provenance).
publish-crates waits on the index with sleep 30 between mds-core and mds-cli — replace with a poll of the crates.io index for the exact version.
Publish failures are downgraded to warnings ("may already exist") — replace with explicit idempotency checks (query the registry for the exact version; skip if present, hard-fail on anything else).
Conventional Commits are claimed in CONTRIBUTING and the PR template but not enforced — add a PR-title lint or soften the claim.
What changed:
CODE_OF_CONDUCT.md) is removed from this issue: Add CODE_OF_CONDUCT.md (Contributor Covenant 2.1) #38 remains the actionable standalone issue and is already on Wave 1. It should not be tracked here.An audit used this repo as the reference template for release-readiness of another project. It's a strong template, but some gaps against a "gold standard" release bar surfaced. This issue tracks those remaining gaps.
Config drift — RESOLVED, no longer in scope
All five originally-filed drift items are closed out as of
113f472:Repo homepage points at the wrong slug— satisfied.gh api repos/dean0x/mdscriptreportshomepage: https://github.com/dean0x/mdscript#readme.— satisfied. No.github/ISSUE_TEMPLATE/config.ymllinks to/discussionswhile Discussions is disabled/discussionslink remains anywhere in.github/ISSUE_TEMPLATE/(grep exits 1), andhas_discussions: false— so the templates and the repo settings now agree.— satisfied. NoSECURITY.mdsupported-versions table is stale (0.1.x)0.1.xrow remains;SECURITY.md:23-28now carries the rolling statement instead of a version table, so it can't rot again.— struck from this issue. Tracked standalone in Add CODE_OF_CONDUCT.md (Contributor Covenant 2.1) #38, which is already scheduled on Wave 1. Folding it in here only duplicated the tracking.CODE_OF_CONDUCT.mdstill missing— satisfied. release: workflow_dispatch path fails GH006 on protected main (prepare can't push) #127 is closed,workflow_dispatchrelease path broken against protectedmain(release: workflow_dispatch path fails GH006 on protected main (prepare can't push) #127)release.ymlno longer has apreparejob, andworkflow_dispatch: {}is dry-run-only (builds + A3 gate, publishes nothing). The failure mode was designed out in favor of the tag-driven flow.Gold-standard gaps
The bar used for the audit:
Against that bar, the remaining work:
CARGO_REGISTRY_TOKEN,NPM_TOKEN); both crates.io and npm support OIDC trusted publishing — switch, then delete the tokens.SHA256SUMS(and optionally the platform artifacts), and add build-provenance attestations (actions/attest-build-provenance).publish-crateswaits on the index withsleep 30betweenmds-coreandmds-cli— replace with a poll of the crates.io index for the exact version.Tracked elsewhere — not part of this issue
uses:floating on major tags; only the composite action's internals are pinned) → ci: SHA-pin GitHub Actions + assert lockfile version in verify-versions.mjs #163.cargo-deny/cargo-auditadvisory + license gating, and license attribution → ci: add cargo-deny / cargo-audit supply-chain gate #136.Do not re-add either of those to this checklist; close them in their own issues.