Skip to content
Back to skills

Generating Game Changelogs

ASecurity

Generates player-facing game changelogs from implementation plans and git history. Covers thematic intros, system-grouped sections, and concise flavor descriptions. Use when generating a game changelog, writing game release notes, or preparing an update post for itch.io or Steam

  • 5 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 29, 2026
ai-agentsgitdocumentation

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add RiccardoGrin/skills --skill generating-game-changelogs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generating Game Changelogs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Generating Game Changelogs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/riccardogrin-generating-game-changelogs/badge)](https://www.skillsdirectory.com/skills/riccardogrin-generating-game-changelogs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: generating-game-changelogs
description: Generates player-facing game changelogs from implementation plans and git history. Covers thematic intros, system-grouped sections, and concise flavor descriptions. Use when generating a game changelog, writing game release notes, or preparing an update post for itch.io or Steam
---

# Generating Game Changelogs

Generate a player-facing game changelog from a completed implementation plan and git history.

## Reference Files

| File | Read When |
|------|-----------|
| `references/changelog-format.md` | Writing the changelog entry — contains the format template, emoji mapping, tone rules, approved sample, and non-game adaptation guidance |

## Workflow

Copy this checklist and work through it:

```
- [ ] Phase 1: Gather sources
- [ ] Phase 2: Extract & classify changes
- [ ] Phase 3: Version & theme
- [ ] Phase 4: Group into sections
- [ ] Phase 5: Write the entry
- [ ] Phase 6: Save & verify
```

### Phase 1: Gather Sources

Collect all inputs before synthesizing anything.

1. **Read `IMPLEMENTATION_PLAN.md`** (or equivalent plan file) in the project root.
   This is the primary source — it has richer descriptions than git commits.
2. **Read git log** since the last release tag or the previous changelog entry.
   Use `git log --oneline` to get a quick summary; dig into individual commits when the plan doesn't cover something.
3. **Read existing `CHANGELOG.md`** if it exists.
   Note the previous version number and format so the new entry stays consistent.
4. **Check for a project changelog mechanism.** Some projects have their own
   user-facing changelog store beyond the repo file — e.g. a DB-backed in-app
   "What's new" feed with an authoring CLI (like a `scripts/add-changelog-entry.mjs`).
   Look for a Changelog section in the project's `CLAUDE.md`/`AGENTS.md` and for
   changelog-named scripts. If one exists, read its conventions (script flags,
   draft/publish states, tone of recent entries) — Phase 6 publishes through it.

If no implementation plan exists, fall back to git history as the sole source.

### Phase 2: Extract & Classify Changes

Walk the plan section by section:

- **Completed tasks only** — items marked `[x]`, `✅`, or with status `✅ Done` become changelog candidates.
  Skip anything marked `[ ]`, `⏳`, or `🔄`.
- **Cross-reference git** — check if any commits introduce changes not captured in the plan.
  Add those as additional entries.
- **Filter non-user-facing items** — exclude:
  - Internal refactors with no visible effect
  - Build/tooling changes (CI, linting, dev dependencies)
  - Code comments, documentation-only changes
  - Sprite/asset pipeline details (describe the feature, not how it was made)
- **Classify each item** as one of:
  - **New** — entirely new feature, system, or content
  - **Changed** — existing feature modified, improved, or rebalanced
  - **Fixed** — bug fix or correction

### Phase 3: Version & Theme

**Version number:**

1. Check `package.json` for a `version` field
2. Check git tags (`git tag --sort=-v:refname | head -5`)
3. Check the previous entry in `CHANGELOG.md`

**Subtitle:**

Come up with a short, evocative subtitle that captures the update's theme (e.g., "Dissolution Expands", "The Deeper Dark", "The Final Frontier").
This becomes the quoted string after the version: `v0.2.0 "Dissolution Expands"`.

**Thematic summary:**

Draft 1–2 sentences that capture the feel of the update.
Focus on what players will experience, not what was implemented.
Write in present tense, active voice.

### Phase 4: Group into Sections

Group changes by game system or project area — whatever feels natural for what players/users care about.
For games, think in terms of world, combat, crafting, farming, creatures, abilities, etc.
For non-game projects, see the adaptation guidance in `references/changelog-format.md`.

**Grouping rules:**

1. Group by the system or area where the user experiences the change.
2. Minimum 2 items per section — merge small sections into the closest related one.
3. Maximum ~7 sections — combine if you have too many.
4. **Fixes & Improvements** is always the last section.
5. Order sections by impact — most exciting changes first.
6. Each item appears in exactly one section.

**Spotlight intros:**

For major sections (3+ items, significant new content), write a one-sentence intro line below the section header.
Keep it flavorful and user-facing.
Skip intros for small sections or Fixes & Improvements.

### Phase 5: Write the Entry

Read `references/changelog-format.md` for the full format template.

**Key rules (inline for speed):**

- **Player-facing tone** — describe what the player sees, does, or encounters.
  Not: "Added BiomeManager class with config-driven spawning."
  But: "Four new regions beyond the void ring, each with unique wildlife and resources."
- **No stats** — don't include HP, damage numbers, cooldowns, or growth times.
  Not: "Shadow King has 500 HP and deals 25 damage per bolt."
  But: "A multi-phase boss lurking in the dark forest."
- **No implementation details** — don't mention file names, class names, config changes, or asset pipelines.
- **No empty sections** — if a section has no items after grouping, omit it entirely.
- **Bold item names** — each bullet starts with a bolded feature name, then a dash, then the description.
- **Sub-items use italics** — for lists within a feature (e.g., biome names), use `*italic*` names with a dash and brief description.
- **One emoji per section header** — placed before the section title, not on individual items.

**Format structure:**

```
**{ProjectName} — v{Version} "{Subtitle}"**

_{Thematic summary}_

### {Emoji} {Section Title}
{Optional spotlight intro}

- **{Feature Name}** — {Player-facing description}
  - *{Sub-item}* — {Brief description}

### 🔧 Fixes & Improvements
- {Fix description}
```

### Phase 6: Save & Verify

1. If `CHANGELOG.md` exists, **prepend** the new entry above existing content (keep a blank line separator).
2. If `CHANGELOG.md` doesn't exist, **create it** with the entry.
3. **Read the file back** to verify it was written correctly.
4. **If the project has its own changelog mechanism** (found in Phase 1 step 4 —
   e.g. a DB-backed in-app changelog with an authoring script), publish the SAME
   entry through it as well. The in-app/DB changelog is the surface users actually
   see; `CHANGELOG.md` is the more internal, in-repo record — keep both updated.
   Follow the mechanism's own conventions (body via file, version/date flags,
   draft vs published), and where the project's `CLAUDE.md` gives changelog rules
   that conflict with this skill, the project rules win.

## Anti-Patterns

| Avoid | Do Instead |
|-------|------------|
| Including HP, damage, cooldown numbers | Describe the experience: "tough multi-phase boss" |
| Mentioning file paths or class names | Describe the feature players interact with |
| "Added ShadowKingBoss.js with 3 phases" | "A new boss lurks in the dark forest" |
| Empty sections with "None this update" | Omit sections that have no items |
| Listing every commit message | Synthesize related commits into cohesive feature descriptions |
| Mentioning sprite generation or AI tools | Describe the visual result: "new hand-crafted item sprites" |
| Dev diary tone ("We worked hard on...") | Direct, present-tense descriptions of what's new |
| Repeating the same change in multiple sections | Each item appears in exactly one section |

Files in this skill

  • SKILL.md7.4 KB
  • references/changelog-format.md10.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.