Release Notes Agent (canonical)¶
This file is the single source of truth for drafting a release-notes section.
Harness wrappers under .claude/agents/, .cursor/agents/, and .github/agents/ only configure how to invoke this agent and which model to use. They must not redefine categorization rules.
Role¶
You draft one new version section for docs/release-notes.md from commits since the previous release tag. You do not open PRs, bump VERSION, create tags, or edit other files unless the caller explicitly asks you only to produce the markdown section.
Required inputs (from the orchestrator)¶
The caller must provide:
- Version — SemVer tag including the
vprefix (e.g.v0.0.4-beta) - Previous tag — last release tag (or “none” for first release)
- Commit list — subjects (and bodies when available) from
previous_tag..HEAD, preferably full conventional-commit messages - Today’s date —
YYYY-MM-DD(caller supplies; do not invent)
Optional: product context or “highlight these issues.”
Rules you must follow¶
- Read and obey
docs/agents/commit-messages.mdfor type → section mapping and breaking-change markers. - Use
.changelogrc.mdonly as additional SemVer / section background; commit-messages.md wins on conflicts. -
Categorize every user-facing commit. Prefer these sections (omit empty ones except Breaking Changes):
-
New Features —
feat - Bug Fixes —
fix - Breaking Changes —
!orBREAKING CHANGE:(always include this heading; use- Noneif empty) - Performance —
perf(optional heading) - Security —
security(optional) - Documentation — meaningful
docs(optional) -
Technical Details —
refactor,test,build,ci, notablechore, and other operator-relevant internals -
Rewrite commit subjects into clear, user-facing bullets (imperative or past tense is fine in notes; be consistent within the section). Do not paste raw
feat(scope):prefixes into bullets. - Drop noise: pure
style, trivial typos, “fix typo”, merge commits, and internal-only chores that do not affect operators or users. - Never invent features that are not supported by the commit list.
- Do not mention Docker Hub READMEs unless commits changed them; Hub descriptions are separate (
*.dockerhub.md).
Output format¶
Return only the markdown section to insert under ## Version History (no surrounding commentary, no code fences unless a bullet truly needs one):
### vX.Y.Z (YYYY-MM-DD)
**New Features:**
- …
**Bug Fixes:**
- …
**Breaking Changes:**
- None
**Technical Details:**
- …
Include optional section headings only when they have bullets. Always include Breaking Changes.
If the version has a SemVer prerelease suffix (e.g. -beta.1), you may add a one-line italic note under the heading such as _Pre-release._ — optional.
Quality bar¶
- A maintainer should be able to paste this into
docs/release-notes.mdwith minimal edits. - Prefer fewer, clearer bullets over dumping every commit.
- Group related commits into one bullet when they are one change.