utility-pm-changelog-curator — Claude Code skill: draft a CHANGELOG
Builds a CHANGELOG draft from git log between tags and applies the repo hygiene rules. Useful right before a release.
npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a claude-codeWhat utility-pm-changelog-curator does
The skill dispatches to the pm-changelog-curator sub-agent, which runs an eight-step flow: establish the commit range, read the hygiene rules from CLAUDE.md, check the working tree, enumerate commits, classify them, group them, rewrite the wording, and determine the target version. You get a layered draft back: the full CHANGELOG text, a status summary, and a Status YAML for maintainer review.
On Claude the skill hands your arguments to the native @agent-pm-skills:pm-changelog-curator sub-agent. On Codex CLI, Cursor, Copilot, Gemini CLI and OpenCode it reads the sub-agent definition at agents/pm-changelog-curator.md and runs that body as its operating instructions. So the client needs Bash access for git log, git describe and git status.
A dirty working tree gets refused unless you pass --committed-only. Worth remembering if you edit files while preparing a release. The compatibility notes for v2.16.0 mark Claude and Codex CLI as PRODUCTION, while Cursor, Windsurf, Copilot CLI and Gemini CLI are EXPERIMENTAL — keep a manual git log handy on those.
What it helps with
- draft CHANGELOG entries from commits between two tags
- apply repo hygiene rules without hand-editing every line
- get a status summary for release review
- run the changelog curator on a client without native sub-agent support
- keep uncommitted changes out of a release draft
Example prompts for the agent
- Draft a CHANGELOG from tag v2.15.2
- Prepare CHANGELOG entries for version 2.16.0 since the last tag
- Draft the changelog from committed changes only
How to install utility-pm-changelog-curator
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a claude-code2Manually: put the files in place
~/.claude/skills/utility-pm-changelog-curator/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/utility-pm-changelog-curator/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a codex2Manually: put the files in place
.agents/skills/utility-pm-changelog-curator/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a cursor2Manually: put the files in place
.cursor/skills/utility-pm-changelog-curator/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install product-on-purpose/pm-skills utility-pm-changelog-curator2Manually: put the files in place
.github/skills/utility-pm-changelog-curator/SKILL.md1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a gemini-cli2Platform CLI
gemini skills install https://github.com/product-on-purpose/pm-skills --path skills/utility-pm-changelog-curatorManually: put the files in place
.devin/skills/utility-pm-changelog-curator/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about utility-pm-changelog-curator
How do I install utility-pm-changelog-curator in Claude?
Run npx skills add product-on-purpose/pm-skills --skill utility-pm-changelog-curator -a claude-code. The skill file then sits at ~/.claude/skills/utility-pm-changelog-curator/SKILL.md.
What does utility-pm-changelog-curator do?
It drafts CHANGELOG entries from git log through the pm-changelog-curator sub-agent. You get a layered draft with a status summary, not a commit.
Why does the skill refuse a dirty working tree?
It checks git status and leaves uncommitted changes out so stray edits do not land in the draft. Pass --committed-only if you want to skip that check.
Source text
SKILL.md · Apache-2.0
--- name: utility-pm-changelog-curator description: Draft CHANGELOG entries from git log via the pm-changelog-curator sub-agent, applying the repo hygiene rules (describe what changed, public paths only, no attribution trailers). Returns a layered draft with a status summary for maintainer review; refuses a dirty working tree unless --committed-only is passed. Use when banking unreleased changes or preparing a release. license: Apache-2.0 metadata: classification: utility version: "1.0.1" updated: 2026-06-10 category: release frameworks: [triple-diamond] author: product-on-purpose --- <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 --> # PM Changelog Curator (Dispatch Skill) Cross-client dispatch wrapper for the `pm-changelog-curator` sub-agent. Detects runtime; dispatches to the native sub-agent on Claude Code; reads `agents/pm-changelog-curator.md` and executes inline on non-Claude clients. ## When to Use - You are preparing a release and want a CHANGELOG draft from git log between two tags - You are running on a non-Claude AI client without native pm-changelog-curator sub-agent support - You want a draft that respects pm-skills CHANGELOG hygiene rules (no internal-notes references, no em-dashes, public paths only) without manually applying them ## When NOT to Use - You want to commit CHANGELOG entries directly (this skill produces a draft for review, not a commit) - You want to review a PM artifact -> use `utility-pm-critic` instead - You want a repo-wide governance audit -> use `utility-pm-skill-auditor` - You want a full guided release flow -> use `utility-pm-release-conductor` (which chains to this skill at gate G2) ## Instructions **Runtime detection step.** Determine which AI client is invoking this skill. ### If you are running in Claude Code with the pm-skills plugin installed Invoke `@agent-pm-skills:pm-changelog-curator` with the user's arguments. Pass `--since-tag`, `--target-version`, `--committed-only` from `$ARGUMENTS` if present. Return the sub-agent's draft to the user. ### If you are running in any other AI client Codex CLI, Cursor, Windsurf, Copilot, Gemini CLI, or any other client without native pm-skills plugin sub-agent support: 1. Read the canonical sub-agent definition at `agents/pm-changelog-curator.md` 2. Execute the system prompt body in that file as your operating instructions 3. Run the 8-step drafting flow documented in the sub-agent definition (establish range -> read hygiene rules -> check working tree -> enumerate commits -> classify -> group -> rewrite -> determine target version -> emit draft) 4. Apply `--since-tag`, `--target-version`, and `--committed-only` arguments from `$ARGUMENTS` 5. Return the layered output per master plan D26 (full CHANGELOG draft + Status Summary + Status YAML) ## Cross-Client Notes The dispatch skill requires the AI client to: 1. Execute Bash for `git log`, `git describe`, and `git status` invocations 2. Read CLAUDE.md hygiene rules and existing CHANGELOG.md format reference 3. Read the canonical sub-agent definition file 4. Treat the agent body as operating instructions See [Sub-Agent Compatibility Matrix](../../docs/reference/sub-agent-compatibility.md) for the canonical cross-client status. Summary for this skill as of v2.16.0: PRODUCTION on Claude Code + Codex CLI (Codex CLI successfully ran git log + read CLAUDE.md hygiene rules + drafted clean CHANGELOG entries + correct dirty-tree refusal); EXPERIMENTAL on Cursor / Windsurf / Copilot CLI / Gemini CLI. If a client is unreliable, fall back to manual `git log` + manual drafting using CLAUDE.md as the hygiene reference. ## Reference Files - Canonical sub-agent definition: [`agents/pm-changelog-curator.md`](../../agents/pm-changelog-curator.md) - Behavioral spec: [`docs/internal/release-plans/v2.16.0/spec_pm-changelog-curator.md`](../../docs/internal/release-plans/v2.16.0/spec_pm-changelog-curator.md) - CHANGELOG hygiene rules source: `CLAUDE.md` (repo root) - Existing CHANGELOG.md format: `CHANGELOG.md` (root); v2.15.1 + v2.15.2 entries are canonical exemplars - Runtime components catalog: [`docs/reference/runtime-components.md`](../../docs/reference/runtime-components.md) - Output template: `references/TEMPLATE.md` - Worked example: `references/EXAMPLE.md`
© product-on-purpose · Apache-2.0 · product-on-purpose/pm-skills