From principled-release
Generate changelog entries from the principled documentation pipeline. Maps commits to proposals, plans, and ADRs since the last release tag, groups by category, and renders Markdown changelog sections.
How this skill is triggered — by the user, by Claude, or both
Slash command
/principled-release:changelogThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate changelog entries by mapping commits to proposals, plans, and ADRs merged since the last release. Follows Keep a Changelog conventions adapted for the principled pipeline (ADR-013).
Generate changelog entries by mapping commits to proposals, plans, and ADRs merged since the last release. Follows Keep a Changelog conventions adapted for the principled pipeline (ADR-013).
/changelog [--since <tag>] [--module <path>]
| Argument | Required | Description |
|---|---|---|
--since <tag> | No | Git tag to use as the starting point. Auto-detects latest if absent |
--module <path> | No | Scope changelog to changes within a specific module path |
gh CLI recommended for PR reference resolution (optional)Verify prerequisites. Check that gh is available:
bash scripts/check-gh-cli.sh
If not available, proceed without PR reference resolution --- rely on commit message and branch name references only.
Determine the starting tag. If --since is provided, use it. Otherwise, find the most recent tag:
git describe --tags --abbrev=0
If no tags exist, report the error and stop.
Collect changes. Run the change collector to map commits to pipeline documents:
bash scripts/collect-changes.sh --since <tag> [--module <path>]
This outputs tab-separated lines: <hash>\t<category>\t<references>\t<subject>.
Enrich with PR context. If gh is available, attempt to resolve PR descriptions for richer context:
gh pr list --state merged --search "<hash>" --json number,title,body --limit 1
Extract any additional pipeline references from PR bodies that weren't in commit messages.
Read referenced documents. For each pipeline reference (RFC-NNN, Plan-NNN, ADR-NNN), read the corresponding document's title from its frontmatter:
docs/proposals/NNN-*.mddocs/plans/NNN-*.mddocs/decisions/NNN-*.mdUse document titles to generate human-readable changelog entries.
Group by category. Organize entries into sections:
Omit empty sections.
Render the changelog. Read the template from templates/changelog-entry.md and fill in:
{{VERSION}} --- next version (or "Unreleased" if not specified){{DATE}} --- current date (YYYY-MM-DD){{FEATURES}}, {{IMPROVEMENTS}}, {{DECISIONS}}, {{FIXES}}, {{UNCATEGORIZED}} --- rendered sectionsOutput results. Display the rendered changelog section. Also report a summary:
Changelog generated (since v0.3.1):
Features: 2 entries
Improvements: 3 entries
Decisions: 2 entries (ADR-005, ADR-006)
Uncategorized: 1 entry
Total: 8 entries from 15 commits
scripts/check-gh-cli.sh --- Verify gh CLI availability and auth status (copy from principled-github canonical)scripts/collect-changes.sh --- Collect changes since a tag and map to pipeline documentstemplates/changelog-entry.md --- Changelog section template with placeholder variables for version, date, and category sectionsnpx claudepluginhub alexnodeland/principled --plugin principled-releaseGenerates Keep a Changelog release notes from git changes since a tag. Categorizes commits/PRs by semver impact, suggests version bump, includes PR links.
Generates a changelog from merged PRs since the last git tag, categorizing by conventional commit prefixes and writing to CHANGELOG.md.
Generates a formatted CHANGELOG.md from git commit history, grouped by type and ready for release.