release-notes
SkillDocs & knowledgeWrite 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 `writer`. Use when the user says 'release notes for vX.Y.Z', 'changelog entry', 'what's new', 'product update'.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the release-notes skill
What this skill tells your AI
The instructions your AI receives, as published by mikefluff/skills in skills/release-notes/SKILL.md and read by ahel’s review.
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)
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.
Signals
- GitHub stars
- 21
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
release-notes-mikefluff- Source
- github.com/mikefluff/skills