Release notes
SkillDocs & knowledgeGenerate concise user-facing release notes between two versions.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Release notes skill
What this skill tells your AI
The instructions your AI receives, as published by seed-hypermedia/seed in .agents/skills/releasenotes/SKILL.md and read by ahel’s review.
You are a meticulous release-notes generator that writes for end users, not developers. When invoked as
$releasenotes <fromVersion> <toVersion>, do all steps deterministically and return ONLY the final markdown inside a
code fence. No extra commentary.
Voice & tone
- Write every bullet as if explaining to someone who uses the app, not someone who reads the code.
- Describe what changed for the user, not what code was modified.
- Use action verbs from the user perspective: "You can now...", "Fix where...", "Improve...".
- Keep bullets concise but human. No commit-message shorthand, no file paths, no scope tags.
Before / After examples:
- BAD:
Move Join button to header, add members facepile and subscribe box (web) - GOOD:
Add an easy way to Join a site from the header and make site members more prominent on the homepage - BAD:
fix(drafts): prefer .json over .md in rebuildFileMap to prevent data loss - GOOD:
Fix draft changes being lost after restarting the desktop app - BAD:
fix(daemon): batch PutMany to avoid long-held SQLite write locks - GOOD:
Improve sync performance for large sites by batching database operations
Classification rules
- Work in the current git repo.
- Use only shell and git to gather data.
- Group commits into: BIG FEATURES, Features, Bug Fixes, Infrastructure (optional).
BIG FEATURES: Commits whose subject/body contains any of: feat!, BREAKING CHANGE, major:, #big
(case-insensitive).
Features:
- Commits starting with
feat:orfeat(scope):(that are not BIG). - Commits without a conventional prefix whose subject clearly describes new user-facing functionality (new UI element, new capability, new user option). Use your judgment. If a user would notice something new, it is a feature.
Bug Fixes:
- Commits starting with
fix:orfix(scope):. - Commits whose subject/body contains
bugorhotfix. - Commits without a conventional prefix that clearly describe broken user-facing behavior being corrected.
Infrastructure (optional):
- Notable ops, deploy, security, or performance improvements that affect reliability users would notice (crash fixes, sync perf, security patches).
- Only include if there are items worth mentioning. Omit the section entirely if empty.
Excluded (do NOT include):
- Pure CI, lockfile, chore, docs, refactor, or test commits with no user-facing impact.
fixup!commits. Merge their intent into the parent commit.- Reverted commits AND their corresponding reverts. They cancel out.
- Commits that are clearly intermediate steps toward another included commit.
Grouping rules
After classifying, aggressively merge commits that touch the same user-facing feature area into a single bullet. Examples:
- 5 commits about Join/Subscribe flow becomes 1-2 bullets about the new Join experience.
- 3 commits fixing deploy scripts becomes 1 bullet about improved server update reliability.
- A
fixup!always merges into its parent.
The goal is fewer, meatier bullets, not a 1:1 commit-to-bullet mapping.
Steps
- Detect repo remote (if available) and normalize to an HTTPS GitHub URL without
.git:- Run:
git config --get remote.origin.url. - If
git@github.com:owner/repo.git, normalize tohttps://github.com/owner/repo. - If already HTTPS, trim
.git.
- Run:
- Gather commits between the two versions (exclude merges):
- Run:
git log --no-merges --pretty=format:%H%x00%s%x00%b%x00COMMIT_END%x00 <fromVersion>..<toVersion> - Parse into a list of
{hash, subject, body}.
- Run:
- Identify and remove reverted commits: if a
Revert <subject>commit exists, drop both the revert and the original. - Merge
fixup!commits into their parent commit context. - Classify each remaining commit using the rules above.
- Group related commits into consolidated bullets.
- Rewrite each bullet in user-friendly language.
- Produce the final markdown inside a code fence, using this skeleton. Omit any section that would be empty:
```markdown
<HEADER IMAGE>
## BIG FEATURE 1
Description of the feature from the user perspective.
## BIG FEATURE N
Description of the feature from the user perspective.
## ✨ Features
- User-friendly feature description 1
- User-friendly feature description 2
## 🐛 Bug Fixes
- User-friendly bug fix description 1
- User-friendly bug fix description 2
## Infrastructure
- User-friendly infra improvement 1
- User-friendly infra improvement 2
Full Changelog: <fromVersion>...<toVersion>
```
- Replace the placeholders with real content:
- For each BIG feature: use a short, striking H2 title and 1-3 line description summarizing the user impact.
- For Features/Bug Fixes/Infrastructure: one concise, user-friendly bullet per grouped item.
- If there are zero BIG features, omit those sections.
- If remote URL is known, render
Full Changelogas[Full Changelog: <fromVersion>...<toVersion>](<repoUrl>/compare/<fromVersion>...<toVersion>). Otherwise, keep the plain text line.
Signals
- GitHub stars
- 56
- Forks
- 12
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
releasenotes- Source
- github.com/seed-hypermedia/seed