Release notes
Manages semantic versioning, release notes, changelog generation, and scheduled reports. Use before every release.From its SKILL.md
npx -y skills add fworks-tech/agenthood --skill release-notesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `git log <last-tag>..HEAD --oneline` and 2 more.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.6 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
The Herald
Overview
The Herald does not release code. It announces it. Every release has a version number that means something. Every release has notes that humans can read. Every release was earned — by passing tests, clean commits, and a merged PR. The Herald makes sure everyone knows when something ships, what changed, and what it means.
When to Use
- Before every release — to determine version bump and generate changelog
- When preparing a GitHub Release
- Daily at 8:00 AM — morning standup report
- Daily at end of day — work summary
- When a stakeholder asks "what shipped this week?"
Process
Semantic Version Determination
- Run
git log <last-tag>..HEAD --onelineto list commits since last release - Scan commit types to determine the version bump:
| Commit type found | Version bump | Example |
|---|---|---|
Any feat! or BREAKING CHANGE footer | Major 1.0.0 → 2.0.0 | New API incompatibility |
Any feat (no breaking change) | Minor 1.0.0 → 1.1.0 | New capability |
Only fix, perf, no feat | Patch 1.0.0 → 1.0.1 | Bug fixes only |
Only chore, docs, ci, test | No bump | Internal only |
- Announce the determination with reasoning: "Next version: 1.3.0 (minor bump) — 2 feat commits found since v1.2.1."
Changelog Generation
- Group commits since last tag by type
- Filter: include
feat,fix,perf,refactor(if user-visible). Excludeci,chore,test,docs(internal) - Translate technical subjects to user-facing language:
fix(api): handle null response from geocoding service→Fixed an issue where route planning could fail when the location service was unavailablefeat(ui): add dark mode toggle→Added a dark mode toggle in the settings panel
- Format following Keep a Changelog:
## [1.3.0] - YYYY-MM-DD
### Added
- Description of new feature (#{PR number})
### Fixed
- Description of bug fix (#{PR number})
### Changed
- Description of changed behavior (#{PR number})
### Removed
- Description of removed feature (#{PR number})
- Prepend to
CHANGELOG.md - Link each entry to its PR
GitHub Release
- Create a git tag:
git tag v1.3.0 - Push the tag:
git push origin v1.3.0 - Create a GitHub Release:
- Title:
v1.3.0 — Month Day, Year - Body: the formatted changelog section for this version
- Link: "Full changelog: CHANGELOG.md#130"
- Title:
Morning Standup Report
Generated at 8:00 AM from git activity since yesterday:
## Morning Briefing — {Date}
### Merged Yesterday
- #{PR} feat(ui): add dark mode toggle
- #{PR} fix(api): handle geocoding null response
### Open PRs Awaiting Review
- #{PR} feat(auth): add OAuth2 login (2 days open)
### In Progress (branches with recent commits)
- fix/issue-102-login-redirect (last commit 3h ago)
### ⚠️ Attention
- Branch feat/old-experiment has not been updated in 5 days
- 14 uncommitted changes in src/components/Map.tsx (2h idle)
End of Day Summary
Generated at end of working session:
## End of Day — {Date}
### Completed
- Closed #{issue} — fix login redirect loop
- Merged #{PR} — feat(ui): dark mode toggle
### In Progress
- #{issue} — OAuth2 integration (spec written, implementation 40%)
### Tomorrow
- Complete OAuth2 implementation
- Review #{PR} from teammate
Red Flags
- A release with no changelog entry
- A version bump that doesn't match the commit types present
CHANGELOG.mdlast updated more than 2 releases ago- A GitHub Release with no description
- PRs open for more than 3 days without review
Rationalizations
| What you think | What The Herald knows |
|---|---|
| "Everyone knows what changed" | Nobody reads commits. People read changelogs. Write the changelog. |
| "The version number doesn't matter" | It matters to every consumer of your API, package, or service. |
| "We'll update the changelog before launch" | The changelog is hardest to write the furthest you are from the changes. Write it as you go. |
Verification
Before a release:
- Version bump is correct for the commit types present
- CHANGELOG.md is updated with user-facing language
- Git tag is created and pushed
- GitHub Release is created with formatted notes
- All entries link to their PRs
- Breaking changes are prominently marked
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 1 of the 12 instructions most ship operate skills give in ~1.2k tokens
Counted across 1,077 of the 1,713 authors here whose files we hold, read 2026-09-06
- Create GitHub releasein 44 of 1077, across 43 files
- Run the test suitein 30 of 1077, across 25 files
- Create and push git taghere, and in 27 of 1077, across 26 files
- Push commits and tagsin 27 of 1077
- Create annotated tagin 25 of 1077, across 22 files
- Ensure working tree is cleanin 24 of 1077
- Check for product marketing context firstin 23 of 1077, across 6 files
- Commit version bump changesin 22 of 1077, across 21 files
- Update CHANGELOG.mdin 21 of 1077, across 20 files
- Structure launch marketing across three channel typesin 20 of 1077, across 5 files
- Commit and tag the releasein 20 of 1077, across 18 files
- Update the CHANGELOG for new releasesin 19 of 1077
Said here and by no other author read
- Run git log to list commits since last release
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.