Changelog and release notes management skill. Activates when user needs to create, maintain, or auto-generate changelogs and release notes. Supports Keep a Changelog format, Conventional Commits for auto-generation, audience-specific release notes (developers vs end users), breaking change communication, and migration guide generation. Triggers on: /godmode:changelog, "update changelog", "write release notes", "generate migration guide", or when preparing a release.
From godmodenpx claudepluginhub arbazkhan971/godmodeThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
/godmode:changelog/godmode:release or /godmode:ship)Examine commits, PRs, and tags since the last release:
CHANGE ANALYSIS:
Last release: <tag> (<date>)
Commands to gather data:
# Commits since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline
If not already configured, set up Conventional Commits for automatic changelog generation:
<type>(<scope>)!: <description>
[optional body]
Types:
CONVENTIONAL COMMIT TYPES:
| Type | Description | Changelog? |
# Install commitlint
npm install --save-dev @commitlint/cli @commitlint/config-conventional
Generate or update CHANGELOG.md following the Keep a Changelog standard:
# Changelog
This file documents all notable changes to this project.
CHANGELOG RULES:
1. Changelogs are for humans, not machines
2. Include an entry for every version
Use tools to generate changelog from Conventional Commits:
# Install
npm install --save-dev conventional-changelog-cli
# Option A: standard-version (local tool)
npm install --save-dev standard-version
# .github/workflows/release-please.yml
name: Release Please
on:
Write release notes tailored to who reads them:
# v2.0.0 Release Notes
## Breaking Changes
After (v2.0):
const client = createClient({
baseUrl: 'https://api.example.com',
apiKey: 'my-api-key',
Migration: See Migration Guide below.
Node.js 18 is no longer supported. Node.js 20 LTS is now the minimum.
Failed requests are now automatically retried with exponential backoff.
Configure via the retries option (default: 3).
const client = createClient({ retries: 5, retryDelay: 1000 });
New client.stream() method for Server-Sent Events:
for await (const event of client.stream('/events')) {
console.log(event.data);
}
undici to 6.x (HTTP client)node-fetch dependency (replaced by native fetch)
#### User-Facing Release Notes
```markdown
RELEASE NOTES STRUCTURE:
For developers:
When breaking changes are introduced, communicate them thoroughly:
BREAKING CHANGE COMMUNICATION PLAN:
1. ADVANCE NOTICE (1-2 releases before)
Create detailed migration guides for breaking changes:
# Migration Guide: v1.x to v2.0
## Overview
Find all occurrences of:
createClient(url, apiKey)
Replace with:
createClient({ baseUrl: url, apiKey })
Automated: Run the codemod:
npx @<package>/codemods v2-client-init
| v1.x Method | v2.0 Replacement |
|---|---|
client.get(path) | client.request('GET', path) |
client.headers | client.getHeaders() |
client.onError | client.on('error', handler) |
// Before
import { ClientOptions } from '<package>';
npm test
Check if a named import is used instead of default import:
// Wrong
import { createClient } from '<package>';
Update to Node.js 20: nvm install 20 && nvm use 20
If you need to rollback:
npm install <package>@1
### Step 8: Commit and Transition
If setting up Conventional Commits: Commit: "changelog: configure conventional commits and commitlint"
If generating changelog: Commit: "changelog: generate CHANGELOG.md for v<version>"
If writing release notes: Commit: "changelog: write release notes for v<version>"
If creating migration guide: Commit: "changelog: add migration guide for v<old> to v<new>"
Transition:
## Key Behaviors
IF breaking changes > 0: write migration guide before release.
WHEN commits don't follow conventional format: parse PR titles as fallback.
IF changelog entry count < commit count * 0.5: review for missed changes.
## Quality Targets
- Target: 100% PRs tagged with changelog category
- Generation time: <5min for release notes
- Target: 0 breaking changes without BREAKING CHANGE tag
## HARD RULES
1. **NEVER STOP** until all commits since last release are categorized and the changelog entry is written.
2. **git commit BEFORE verify** — commit the changelog/release notes, then verify formatting.
3. **Automatic revert on regression** — if the generated changelog has incorrect version numbers or dates,
revert and regenerate.
4. **TSV logging** — log every changelog generation run:
timestamp version commits_analyzed entries_generated breaking_changes status
5. **NEVER include internal-only changes** (refactor, test, chore, ci) in user-facing changelogs.
6. **NEVER backdate release entries** — use the actual publication date.
7. **ALWAYS link PRs/issues** — every entry must have a reference.
## Explicit Loop Protocol
When processing commits for changelog generation:
current_iteration = 0 unprocessed_commits = all commits since last tag changelog_entries = []
## Output Format
After each changelog skill invocation, emit a structured report:
CHANGELOG REPORT: | Last release | <tag> (<date>) |
## Keep/Discard
KEEP if: improvement verified. DISCARD if: regression or no change. Revert discards immediately.
## Stop Conditions
Stop when: target reached, budget exhausted, or >5 consecutive discards.