Auto-generates a changelog from git commits, sprint data, and design documents. Produces both internal and player-facing versions.
64
77%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/changelog/SKILL.mdRead the argument for the target version or sprint number. If a version is given, use the corresponding git tag. If a sprint number is given, use the sprint date range.
Verify the repository is initialized: run git rev-parse --is-inside-work-tree to confirm git is available. If not a git repo, inform the user and abort gracefully.
Read the git log since the last tag or release:
git log --oneline [last-tag]..HEADIf no tags exist, read the full log or a reasonable recent range (last 100 commits).
Read sprint reports from production/sprints/ for the relevant period to understand planned work and context behind changes.
Read completed design documents from design/gdd/ for any new features implemented during this period.
Categorize every change into one of these categories:
For each commit, check whether the message contains a task ID or story reference
(e.g. [STORY-123], TR-, #NNN, or similar). Count commits that lack any task reference
and include this count in the Phase 4 Metrics section as: Commits without task reference: [N].
# Internal Changelog: [Version]
Date: [Date]
Sprint(s): [Sprint numbers covered]
Commits: [Count] ([first-hash]..[last-hash])
## New Features
- [Feature Name] -- [Technical description, affected systems]
- Commits: [hash1], [hash2]
- Owner: [who implemented it]
- Design doc: [link if applicable]
## Improvements
- [Improvement] -- [What changed technically and why]
- Commits: [hashes]
- Owner: [who]
## Bug Fixes
- [BUG-ID] [Description of bug and root cause]
- Fix: [What was changed]
- Commits: [hashes]
- Owner: [who]
## Balance Changes
- [What was tuned] -- [Old value -> New value] -- [Design intent]
- Owner: [who]
## Technical Debt / Refactoring
- [What was cleaned up and why]
- Commits: [hashes]
## Miscellaneous
- [Change that didn't fit other categories, or vague commit message]
- Commits: [hashes]
## Known Issues
- [Issue description] -- [Severity] -- [ETA for fix if known]
## Metrics
- Total commits: [N]
- Files changed: [N]
- Lines added: [N]
- Lines removed: [N]
- Commits without task reference: [N]# What is New in [Version]
## New Features
- **[Feature Name]**: [Player-friendly description of what they can now do
and why it is exciting. Focus on the experience, not the implementation.]
## Improvements
- **[What improved]**: [How this makes the game better for the player.
Be specific but avoid jargon.]
## Bug Fixes
- Fixed an issue where [describe what the player experienced, not what was
wrong in the code]
- Fixed [player-visible symptom]
## Balance Changes
- [What changed in player-understandable terms and the design intent.
Example: "Healing potions now restore 50 HP (up from 30) -- we felt
players needed more recovery options in late-game encounters."]
## Known Issues
- We are aware of [issue description in player terms] and are working on a
fix. [Workaround if one exists.]
---
Thank you for playing! Your feedback helps us make the game better.
Report issues at [link].Output both changelogs to the user. The internal changelog is the primary working document. The player-facing changelog is ready for community posting after review.
After presenting the changelogs, ask the user:
"May I write this changelog to
docs/CHANGELOG.md? [A] Yes, append this entry (recommended if the file already exists) [B] Yes, overwrite the file entirely [C] No — I'll copy it manually"
docs/CHANGELOG.md exists before asking. If it does, default the
recommendation to [A] append.After a successful write: Verdict: CHANGELOG WRITTEN — changelog saved to docs/CHANGELOG.md.
If the user declines: Verdict: COMPLETE — changelog generated.
/patch-notes [version] to generate a styled, saved version for public release./release-checklist before publishing the changelog externally.984023d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.