Agent skill

Update Changelog

by letsrevel in letsrevel/revel-backend

Update CHANGELOG.md comprehensively based on git tags, merged PRs, and actual code diffs.

MITAuto-check: notesDevelopment

Install Update Changelog

skills CLI
$ npx skills add letsrevel/revel-backend --skill update-changelog -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install letsrevel/revel-backend update-changelog --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/letsrevel/revel-backend.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/update-changelog .claude/skills/update-changelog && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
update-changelog
GitHub stars
110
Token cost
~1.9k tokens
SKILL.md length
711 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Update CHANGELOG.md comprehensively based on git tags, merged PRs, and actual code diffs.

  • Works in 7 steps: Establish state → Gather changes between two refs → Verify impact from the diff → …
  • The user asks to update the changelog
  • SKILL.md covers Format conventions (this repo), Release model (this repo), Workflow and Anti-patterns
  • Calls git, make and gh

What it does

Update Changelog is an agent skill from letsrevel/revel-backend. Update CHANGELOG.md comprehensively based on git tags, merged PRs, and actual code diffs. Use when the user asks to "update the changelog", backfill missing versions, prepare a release, or reconcile [Unreleased] entries against shipped tags. Produces Keep-a-Changelog entries that describe user-facing impact, not implementation details.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with Git and Django. The repository describes itself as: Open-source event management, ticketing and membership platform for communities, clubs, independent venues and independent artists. The licence is MIT.

When your agent uses it

  • The user asks to update the changelog
  • Backfill missing versions
  • Prepare a release
  • Reconcile [Unreleased] entries against shipped tags

Example prompts

  • “update the changelog”
  • “/update-changelog”

Requirements

  • Pre-approved tools (allowed-tools): Bash(git:*), Bash(gh:*), Bash(grep:*), Bash(make:*), Read, Edit, Grep, Glob

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Establish state
  2. Gather changes between two refs
  3. Verify impact from the diff
  4. Categorize
  5. Write entries
  6. Insert into the file
  7. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 8333099. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(git:*)
    • Bash(gh:*)
    • Bash(grep:*)
    • Bash(make:*)
    • Read
    • Edit
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • make
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Update Changelog loads about 1.9k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 711 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~89
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:76
    env vars → check `src/revel/settings/`, `.env*`, `CLAUDE.md`.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from letsrevel/revel-backend at commit 8333099, republished under its MIT licence (© letsrevel). 711 words, ~1,927 tokens.

Download SKILL.mdSave it as .claude/skills/update-changelog/SKILL.md (or your agent's skills folder).
name
update-changelog
description
Update CHANGELOG.md comprehensively based on git tags, merged PRs, and actual code diffs. Use when the user asks to "update the changelog", backfill missing versions, prepare a release, or reconcile [Unreleased] entries against shipped tags. Produces Keep-a-Changelog entries that describe user-facing impact, not implementation details.
allowed-tools
Bash(git:*), Bash(gh:*), Bash(grep:*), Bash(make:*), Read, Edit, Grep, Glob

Update Changelog

Maintains CHANGELOG.md (Keep a Changelog format, semver) by reconciling it against git tags, merged PRs, and actual code diffs.

Format conventions (this repo)

  • Header: ## [X.Y.Z] - YYYY-MM-DD for released versions, ## [Unreleased] at the top.
  • Section order: Added, Changed, Fixed, Deprecated, Removed, Security. Omit empty sections.
  • Bullets describe user/operator/API-consumer impact, not internal refactors. Drop pure CI/test/lint commits unless they change observable behavior.
  • Major features get a bold prefix: - **VAT Support**: Complete VAT handling for ticket sales…. Optional nested sub-bullets for sub-features.
  • Bug fixes name the symptom that was fixed, not the patch ("location_maps_url max length increased from 200 to 2048 to accommodate long Google Maps URLs").
  • Dates are the tag date (committer date of the tag), not today's date.

Release model (this repo)

  • make release runs gh release create v$VERSION --generate-notes using version from pyproject.toml.
  • A "bump X.Y.Z" PR (often bundled with small fixes — e.g. chore: bundled fixes (...) + bump 1.55.0) lands on main, then make release is invoked.
  • CHANGELOG.md must be updated in the same commit that bumps pyproject.toml — write the new ## [X.Y.Z] - YYYY-MM-DD section before the bump PR is merged.

Workflow

1. Establish state
bash
git tag --sort=-v:refname | head -20             # latest tags
grep -E '^## \[' CHANGELOG.md | head -10         # versions present in changelog
grep '^version = ' pyproject.toml                 # pending version

Compare the three. Common situations:

  • Behind on tags — CHANGELOG missing released versions → backfill each gap (step 2 per gap).
  • [Unreleased] populated, pyproject bumped — promote [Unreleased] to ## [X.Y.Z] - <tag-date> and start a fresh empty [Unreleased].
  • New work since last tag — add entries to [Unreleased] only.
2. Gather changes between two refs

For each version gap vA..vB (or vLast..HEAD for unreleased):

bash
# 1. Tag date for the section header
git log -1 --format=%cs vB                          # YYYY-MM-DD

# 2. Merged PRs in the range (richest signal — PR titles are usually user-facing)
git log vA..vB --merges --format='%h %s' --first-parent

# 3. Full commit subjects on main (catch non-PR commits)
git log vA..vB --format='%h %s' --first-parent

# 4. For each non-trivial PR, read its body for the user-facing description
gh pr view <number> --json title,body,labels

Group commits by prefix (feat:, fix:, refactor:, chore:, test:, docs:, ci:) as a first pass — but do not trust the prefix alone (see step 3).

3. Verify impact from the diff

A commit message says what the author intended; the diff says what actually changed. For any entry where impact is unclear or the message is terse:

bash
git show <sha> --stat                               # which files moved
git show <sha> -- <interesting-path>                # the actual change
git diff vA..vB -- src/<app>/                       # cumulative for a subsystem

Verify the user-facing surface:

  • New endpoints / changed schemas → check events/controllers/, accounts/controllers/, */schema/, openapi.json if regenerated.
  • New models or migrations → check */models/, */migrations/00XX_*.py (squashed migrations matter for ops).
  • Settings or env vars → check src/revel/settings/, .env*, CLAUDE.md.
  • Background jobs / Celery → check */tasks.py, celery.py beat schedule.
  • Permissions / auth → check events/controllers/permissions.py, common/auth/.

If the diff is purely internal (renames, helper extraction, type hints, test reorg) and there is no observable change, drop it — even if the commit was feat:-prefixed.

4. Categorize
SectionUse for
AddedNew features, new endpoints, new models, new settings/flags, new notification channels, new file format support
ChangedBehavior changes to existing features, API contract changes (non-breaking), default-value changes, performance changes visible to users
FixedBug fixes — describe the symptom
DeprecatedFeatures still working but slated for removal
RemovedRemoved features, endpoints, settings
SecurityAuth fixes, permission tightenings, vulnerability patches (do not name the CVE if not public)

Bundle related commits into one bullet. A feature that spans 5 PRs becomes one bold-prefixed bullet, optionally with sub-bullets per sub-feature.

Show full SKILL.md (242 more words)Show less
5. Write entries

Style examples lifted from this repo's existing entries — match the voice:

markdown
### Added
- **Referral System — Full Launch**: Complete referral program with Stripe auto-payouts
  - `UserBillingProfile` model for referrer billing details (VAT ID, address, self-billing agreement)
  - Monthly payout calculation task aggregating net platform fees per referral
- VAT preview endpoint for checkout (`POST /events/{event_id}/tickets/vat-preview`) with buyer-specific VAT calculation and VIES caching (Redis, 30-minute TTL)

### Fixed
- Unbanning a user now clears the stale `BANNED` `OrganizationMember` row that the ban created.
- Follower notifications (`NEW_EVENT_FROM_FOLLOWED_ORG`) no longer sent for non-public events

Rules:

  • Lead with the what, not the how. ("Discord admin-ping channel" not "Added discord_admin_webhook_url setting and send_discord_admin_ping function").
  • Backticks for code symbols (model names, field names, env vars, endpoints).
  • Bold prefix **Name**: only for headline features that warrant top-billing.
  • One sentence per bullet; sub-bullets for multi-part features.
  • No author/PR-number/issue-number references — those live in commit history and PRs.
6. Insert into the file
  • [Unreleased] always stays at the top, even if empty (with no subsections), so future entries have a home.
  • New released sections go directly under [Unreleased], in descending version order.
  • When promoting [Unreleased] to a version: copy the content under a new ## [X.Y.Z] - <tag-date> heading and leave [Unreleased] empty.
  • Preserve any existing [Unreleased] entries — they may already document work in the new version.
7. Verify
bash
# Visual diff
git diff CHANGELOG.md

# Sanity check: every tag from vA..latest has a section
git tag --sort=-v:refname | head -20
grep -E '^## \[' CHANGELOG.md

Do not run make release or push tags — the skill only edits CHANGELOG.md. The user runs make release themselves.

Anti-patterns

  • ❌ Dumping every commit subject as a bullet. Filter, group, rewrite.
  • ❌ Using the date of editing as the section date — use the tag's commit date.
  • ❌ Trusting feat: / fix: prefixes without checking the diff.
  • ❌ Mentioning internal refactors, test additions, type fixes, or CI changes unless they affect users/operators.
  • ❌ Inventing impact you can't confirm from the diff. If unsure, ask the user or omit.
  • ❌ Overwriting existing [Unreleased] content when promoting it — merge, don't replace.
  • ❌ Editing pyproject.toml or creating tags. Out of scope for this skill.

© letsrevel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/update-changelog of letsrevel/revel-backend.

Open the folder on GitHubat commit 8333099

Compare with similar skills

Update Changelog next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Update Changelog compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Changelog this skillletsrevel/revel-backend110—~1.9kAutomated safety check: NotesMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole70k—~1.9kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills104k2 repos~3.5kAutomated safety check: NotesMIT

Similar skills

  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    70k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    104k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from letsrevel/revel-backend

  • Loki Logs

    letsrevel/revel-backend

    A skill your agent uses when investigating production behaviour from logs — a 500/error in prod, a failing or stuck Celery task, tracing one request/traceid/user across services, or confirming a…

    110 GitHub stars~918 tokensUpdated 3 days ago
    Auto-check: notes
  • Silk Debug

    letsrevel/revel-backend

    Analyze Django Silk profiling data to debug slow requests, detect N+1 queries, and optimize database performance.

    110 GitHub stars~1.2k tokensUpdated 3 days ago
    Auto-check passed
  • Whats New

    letsrevel/revel-backend

    Draft a "What's New" community update for the Revel Discord covering changes across backend, frontend, and infra over a time window.

    110 GitHub stars~1.7k tokensUpdated 3 days ago
    Auto-check passed
  • Updating Deps

    letsrevel/revel-backend

    Update Python dependencies using UV. An agent skill from letsrevel/revel-backend.

    110 GitHub stars~746 tokensUpdated 3 days ago
    Auto-check passed

Works with

Categories

Questions about Update Changelog

What does Update Changelog do?

Update CHANGELOG.md comprehensively based on git tags, merged PRs, and actual code diffs. Update Changelog is an agent skill from letsrevel/revel-backend.md comprehensively based on git tags, merged PRs, and actual code diffs.

When should I use Update Changelog?

Update Changelog fits situations like: the user asks to update the changelog; backfill missing versions; prepare a release; reconcile [Unreleased] entries against shipped tags.

How do I install Update Changelog in Claude Code?

Run `npx skills add letsrevel/revel-backend --skill update-changelog -a claude-code`. Or copy the skill folder (.claude/skills/update-changelog in letsrevel/revel-backend) into .claude/skills/update-changelog in your project. Claude Code loads it when a task matches its description.

How do I install Update Changelog in Codex?

Run `npx skills add letsrevel/revel-backend --skill update-changelog -a codex`. Or copy the skill folder (.claude/skills/update-changelog in letsrevel/revel-backend) into .agents/skills/update-changelog in your project. Codex loads it when a task matches its description.

Can I use Update Changelog in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letsrevel/revel-backend --skill update-changelog -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-changelog, .gemini/skills/update-changelog, .github/skills/update-changelog and .opencode/skills/update-changelog in your project.

What does Update Changelog need to run?

Going by SKILL.md and its folder, Update Changelog needs the command-line tools its instructions call (git, make and gh). Its frontmatter pre-approves these tools: Bash(git:*), Bash(gh:*), Bash(grep:*), Bash(make:*), Read, Edit, Grep, Glob.

Does Update Changelog access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Update Changelog safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Update Changelog use?

Update Changelog is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Update Changelog use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Update Changelog?

Skills that share tags, products or a category with Update Changelog: React Router Release Notes Prep (remix-run/react-router, 57k stars), Draft Release Notes (jamiepine/voicebox, 57k stars), Mole Release Notes Publisher (tw93/Mole, 70k stars) and Release Bump (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Changelog?

letsrevel (a GitHub organization) maintains it in letsrevel/revel-backend, which has 110 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: letsrevel/revel-backend on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.