Claude-Code-Game-Studios patch-notes
Generate player-facing patch notes from git history, sprint data, and internal changelogs. Translates developer language into clear, engaging player communication.
git clone https://github.com/Donchitos/Claude-Code-Game-Studios
T=$(mktemp -d) && git clone --depth=1 https://github.com/Donchitos/Claude-Code-Game-Studios "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/patch-notes" ~/.claude/skills/donchitos-claude-code-game-studios-patch-notes && rm -rf "$T"
.claude/skills/patch-notes/SKILL.mdPhase 1: Parse Arguments
: the release version to generate notes for (e.g.,version
)1.2.0
: output style —--style
(bullet points),brief
(with context),detailed
(with developer commentary). Default:full
.detailed
If no version is provided, ask the user before proceeding.
Phase 2: Gather Change Data
- Read the internal changelog at
if it existsproduction/releases/[version]/changelog.md - Also check
for the relevant version entrydocs/CHANGELOG.md - Run
between the previous release tag and current tag/HEAD as a fallbackgit log - Read sprint retrospectives in
for contextproduction/sprints/ - Read any balance change documents in
design/balance/ - Read bug fix records from QA if available
If no changelog data is available (neither
production/releases/[version]/changelog.md
nor a docs/CHANGELOG.md entry for this version exists, and git log is empty or unavailable):
"No changelog data found for [version]. Run
first to generate the internal changelog, then re-run/changelog [version]."/patch-notes [version]
Verdict: BLOCKED — stop here without generating notes.
Phase 2b: Detect Tone Guide and Template
Tone guide detection — before drafting notes, check for writing style guidance:
- Check
for any "tone", "voice", or "style" fields or sections..claude/docs/technical-preferences.md - Check
if it exists.docs/PATCH-NOTES-STYLE.md - Check
if it exists.design/community/tone-guide.md - If any source contains tone/voice/style instructions, extract them and apply them to the language and framing of the generated notes.
- If no tone guidance is found anywhere, default to: player-friendly, non-technical language; enthusiastic but not hyperbolic; focus on what the player experiences, not what the developer changed.
Template detection — check whether a patch notes template exists:
- Glob for
anddocs/patch-notes-template.md
..claude/docs/templates/patch-notes-template.md - If found at either location, read it and use it as the output structure for Phase 4 instead of the built-in style templates (Brief / Detailed / Full). Fill in the template's sections with the categorized data.
- If not found, use the built-in style templates as defined in Phase 4.
Phase 3: Categorize and Translate
Categorize all changes into player-facing categories:
- New Content: new features, maps, characters, items, modes
- Gameplay Changes: balance adjustments, mechanic changes, progression changes
- Quality of Life: UI improvements, convenience features, accessibility
- Bug Fixes: grouped by system (combat, UI, networking, etc.)
- Performance: optimization improvements players might notice
- Known Issues: transparency about unresolved problems
Translate developer language to player language:
- "Refactored damage calculation pipeline" → "Improved hit detection accuracy"
- "Fixed null reference in inventory manager" → "Fixed a crash when opening inventory"
- "Reduced GC allocations in combat loop" → "Improved combat performance"
- Remove purely internal changes that don't affect players
- Preserve specific numbers for balance changes (damage: 50 → 45)
Phase 4: Generate Patch Notes
Brief Style
# Patch [Version] — [Title] **New** - [Feature 1] - [Feature 2] **Changes** - [Balance/mechanic change with before → after values] **Fixes** - [Bug fix 1] - [Bug fix 2] **Known Issues** - [Issue 1]
Detailed Style
# Patch [Version] — [Title] *[Date]* ## Highlights [1-2 sentence summary of the most exciting changes] ## New Content ### [Feature Name] [2-3 sentences describing the feature and why players should be excited] ## Gameplay Changes ### Balance | Change | Before | After | Reason | | ---- | ---- | ---- | ---- | | [Item/ability] | [old value] | [new value] | [brief rationale] | ### Mechanics - **[Change]**: [explanation of what changed and why] ## Quality of Life - [Improvement with context] ## Bug Fixes ### Combat - Fixed [description of what players experienced] ### UI - Fixed [description] ### Networking - Fixed [description] ## Performance - [Improvement players will notice] ## Known Issues - [Issue and workaround if available]
Full Style
Includes everything from Detailed, plus:
## Developer Commentary ### [Topic] > [Developer insight into a major change — why it was made, what was considered, > what the team learned. Written in first-person team voice.]
Phase 5: Review Output
Check the generated notes for:
- No internal jargon (replace technical terms with player-friendly language)
- No references to internal systems, tickets, or sprint numbers
- Balance changes include before/after values
- Bug fixes describe the player experience, not the technical cause
- Tone matches the game's voice (adjust formality based on game style)
Phase 6: Save Patch Notes
Present the completed patch notes to the user along with: a count of changes by category, and any internal changes that were excluded (for review).
Ask: "May I write these patch notes to
docs/patch-notes/[version].md?"
If yes, write the file to
docs/patch-notes/[version].md, creating the directory
if needed. Also write to production/releases/[version]/patch-notes.md as the
internal archive copy.
Phase 7: Next Steps
Verdict: COMPLETE — patch notes generated and saved.
- Run
to verify all other release gates are met before publishing./release-checklist - Share the patch notes draft with the community-manager for tone review before posting publicly.