Context
The release process is only trustworthy if a tag cannot be pushed with a stale
or missing changelog section. CI's job here is to verify, never to write —
a workflow that commits back to main takes release notes out of review and
races with concurrent merges. See
docs/dx_1/002_changelog.md §7.
Scope
- A workflow triggered on
v* tags that runs the full gate from AGENTS.md §1,
then asserts: .changelog/unreleased/ is empty, CHANGELOG.md contains a
section whose version equals the tag, and its date is within a day of the tag.
- On success, publish a GitHub Release whose body is that version's section,
extracted by the DX-005 parser.
- Fail with a message naming exactly which assertion failed and how to fix it.
- Document the release procedure in
CONTRIBUTING.md.
Acceptance criteria
Out of scope
- Publishing packages to any registry, or bumping workspace versions.
Spec: docs/dx_1/002_changelog.md §7 · Depends on: DX-024
Context
The release process is only trustworthy if a tag cannot be pushed with a stale
or missing changelog section. CI's job here is to verify, never to write —
a workflow that commits back to
maintakes release notes out of review andraces with concurrent merges. See
docs/dx_1/002_changelog.md§7.Scope
v*tags that runs the full gate fromAGENTS.md§1,then asserts:
.changelog/unreleased/is empty,CHANGELOG.mdcontains asection whose version equals the tag, and its date is within a day of the tag.
extracted by the DX-005 parser.
CONTRIBUTING.md.Acceptance criteria
CHANGELOG.mdsection exactly.CONTRIBUTING.mddocuments the procedure end to end.Out of scope
Spec:
docs/dx_1/002_changelog.md§7 · Depends on: DX-024