changelog · git:20260926.9dc1355 · 2026-09-26 · sha256 5342bc73229590e9
changelog git:20260926.9dc1355A
Immutable. This exact content never changes and is served at /api/v1/blob/5342bc73229590e9.
--- name: changelog description: "Generates or updates CHANGELOG.md from Conventional Commits since the last tag (Keep a Changelog format, SemVer bump proposal). Use before a release." argument-hint: "[version | --unreleased]" user-invocable: true allowed-tools: Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion model: haiku agent: tech-writer --- # Changelog Reply in the project conversation language (CLAUDE.md → Language); code, identifiers, paths and commit messages stay in English. ## Phase 1: Commits `git describe --tags --abbrev=0` → `git log <tag>..HEAD --pretty=format:'%h %s'`. No tag yet (`git describe` fails) → `git log HEAD --pretty=format:'%h %s'`, the whole history, and say so. Then group by type (feat → Added, fix → Fixed, perf → Changed, `!`/BREAKING → Breaking, security fixes → Security). Non-standard messages go to "Other" with a note. ## Phase 2: Version Propose the bump (breaking → major, feat → minor, else patch); the argument's version wins. ## Phase 3: Write Draft the `## [X.Y.Z] — YYYY-MM-DD` section in Keep a Changelog format; "May I write `CHANGELOG.md`?" as one `AskUserQuestion`: write (Recommended) · adjust the draft first · not now. No tag is created here. After the "write" answer: `touch .claude/.write-consent` (rule 7 — the consent-guard hook checks the marker). Verdict: `COMPLETE`. Next step — one `AskUserQuestion`: `/release-checklist X.Y.Z` (Recommended) · stop here.