release-notes
Write user-facing release notes + changelogs. Keep-a-Changelog format, sections Added/Changed/Fixed/Deprecated/Removed/Security. Per-audience tone (user/dev/ops). Anti-marketing-fluff bans. Wraps `wri
SKILL.mdskills/release-notes/SKILL.md
GitHub<!-- lint-role: catalogue -->
<!-- This file lists the hype words the skill exists to strip, so it trips the slop linter by design. -->
<objective>
Write release notes that users actually read. Output: structured markdown release notes ready to publish on a changelog page / inside-app modal / email / GitHub release.
Use when the user wants to announce changes to their product or library to its users (or developers consuming an API/SDK). Not for internal engineering decisions — that's rfc-writer. Not for marketing landing pages — that's landing-copy.
This skill does NOT:
- write RFCs / design docs / ADRs (use
rfc-writer) - write landing-page marketing copy (use
landing-copy) - write commit messages or PR descriptions (those are for engineers; release notes are downstream)
- write blog posts about a release (different shape — use
essay-writeorviral-text)</objective>
ROLE
Read commits / PRs / feature list + target audience → group by Keep-a-Changelog sections → write one bullet per change in the right register → strip marketing fluff → run final writer cleanup → return markdown.
PIPELINE
Identify audience. End user (uses the product UI) / developer (uses the API/SDK) / ops (deploys / monitors the product). Tone differs significantly — see
references/audience-tone.md.Identify scope. Single feature announcement / version release / quarterly recap / monthly digest. Each has different length and structure.
Gather changes. From git log / PR list / user-provided list. Group into:
- Added — new features, new APIs, new options
- Changed — behavior changes (non-breaking)
- Fixed — bug fixes
- Deprecated — still works, will be removed in vX
- Removed — gone in this version
- Security — vulnerabilities patched
- Breaking — only for major versions (semver)
See
references/sections.md.Write one bullet per change.
- Lead with the verb in past tense for "Added/Changed/Fixed/Removed"
- Lead with the noun being deprecated for "Deprecated"
- One line per bullet (allow continuation only if context matters)
- User-facing benefit first, technical detail second
Apply anti-fluff rules. Strip marketing language ("revolutionary", "game-changing"), "We're excited to announce", "We're thrilled to share". See
references/banned-patterns.md.Order within sections. Most-impactful items first. Don't bury big features under a 12-bullet "Fixed" list.
Add a header / lead (1-2 lines) for context: what version, what date, what theme if there is one. See
references/structure.md.Final pass. Run through
writerfor anti-neuroslop + typography + structural-prose layers.Delete the water, not the function. Version numbers, dates, migration steps, breaking-change warnings and upgrade commands are load-bearing. Writer's default treatment is deletion; here that turns a changelog into an announcement nobody can act on. Treat them by replacement or simplification, and verify each survived the pass. See
forbidden-substitutions.mdin thewriterskill.
MODES
release-notes <version> <changes-list>— write release notes for vX.Y.Zrelease-notes --from-git <since-tag>— read git log since a tag, summarizerelease-notes --from-prs <PR-list>— write notes from a list of PR titles/descriptionsrelease-notes --recap quarterly|monthly|annual— longer recap covering multiple releasesrelease-notes --audience user|dev|ops— explicit audience selectionrelease-notes --format changelog-md|github-release|email|in-app— output formatrelease-notes --improve <existing>— rewrite weak release notes
REFERENCES (load on demand)
| File | When to load |
|---|---|
| references/sections.md | When categorizing changes — Keep-a-Changelog 6 sections + how to decide which applies |
| references/audience-tone.md | When picking voice — end-user / developer / ops differences |
| references/structure.md | When assembling — version header, lead, ordering, length budgets per format |
| references/banned-patterns.md | After draft — strip marketing fluff, hype, vague "we improved X" |
EXAMPLES
See examples/before-after.md — 5 calibration pairs: weak release notes vs strong, across SaaS / API / library / mobile-app contexts.
CONSTRAINTS
- No marketing hype. "Revolutionary", "groundbreaking", "game-changing", "next-generation" — strip on sight. The work speaks for itself.
- No "We're excited / thrilled / proud to announce". State what shipped. The user doesn't care about your feelings.
- No "Improved X" without specifics. Replace with: "Reduced X latency from 2.1s to 380ms" / "Now supports Y format" / "Fixed Z bug that affected users of W".
- Past tense for shipped work. "Added dark mode" not "Adding dark mode" not "We are adding dark mode".
- One bullet per change. Don't merge two features into one line ("Improved auth and payment flows" → split).
- Specific over abstract. "Improved performance" → "Reduced search latency 5x"; "Better security" → "Enabled MFA by default for new accounts".
- Link to longer docs when relevant. Release note is the headline; help-article / RFC / docs page is the body.
- Date in ISO format.
2026-05-20, not "May 20, 2026" or "20/05/2026". - Version follows semver. Major (breaking) / minor (features) / patch (fixes).
- No emoji in dev/ops audience. OK in light user-facing notes (🎉 for milestones), avoid in technical contexts.
INVOCATION HINTS
When the user says any of:
- "release notes for vX.Y.Z"
- "changelog entry / update"
- "what's new in version..."
- "summarize this release"
- "monthly / quarterly recap"
- "GitHub release notes"
- "in-app announcement for the latest version"
- "draft a release note about ..."
RU triggers (use the skill when the user writes any of):
- «релизные заметки / релиз-ноуты»
- «changelog для v3.4 / журнал изменений»
- «что нового в версии ...»
- «обнови changelog»
- «опиши релиз / напиши анонс релиза»
- «месячная / квартальная сводка по релизам»
- «текст для in-app анонса нового релиза»
For RU tone (formal B2B, less emoji, числа в RU-формате), see references/audience-tone.md section RU tone notes.
Use this skill. For internal design docs / RFCs → rfc-writer. For marketing landing announcements → landing-copy. For viral social posts about the release → viral-text.