skills/changelog/SKILL.md
Use when writing, updating, or generating a CHANGELOG.md — for a new release, an unreleased section update, or drafting from git history or diff. Triggers: "update the changelog", "write release notes", "what changed since X", "generate changelog for v1.2.0", "add this to the changelog", "draft unreleased section". Not for commit messages (use commit-message skill) or internal deployment runbooks.
npx skillsauth add ahgraber/skills changelogInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Draft or update a CHANGELOG.md following Keep a Changelog conventions.
Inform the user when this skill is being invoked by name: changelog.
CHANGELOG.md for an upcoming or recent release[Unreleased] section from recent merged workcommit-message skillcode-review skillInfer target version, release date, and commit range from context. Ask only if neither the version nor the range can be determined.
git log <previous-tag>..HEAD --oneline --no-mergesgit log --oneline --no-merges[Unreleased] only: use commits since last tagged releaseCheck for an existing [Unreleased] section in CHANGELOG.md — do not duplicate entries already there.
git log <range> --oneline --no-merges
Also read the existing CHANGELOG.md to understand document structure and last version.
Exclude commits with no user-visible effect.
Retain only what matters to users.
See references/entry-guidelines.md for the full include/exclude list.
Quick exclusion rule: if a user reading the changelog would not care, cut it.
Map surviving entries to Keep a Changelog categories (in display order):
| Category | When to use | | -------------------- | -------------------------------------------------------------- | | Breaking Changes | Any change requiring user action — config, API, CLI, behavior | | Added | New features, commands, endpoints, options | | Changed | Modified behavior, performance improvements, visible refactors | | Deprecated | Things that still work but will be removed | | Removed | Deleted features, commands, options | | Fixed | Bug fixes | | Security | Vulnerability patches |
Breaking changes get their own subsection at the top of the version block.
See references/entry-guidelines.md for the Conventional Commits → category mapping.
Add X, Fix Y, Remove ZRemove X — replace with Y; see docs/migration.md)See references/changelog-format.md for the exact block structure and version comparison link format.
New release (no [Unreleased] section): insert ## [x.y.z] - YYYY-MM-DD block at the top of the file.
New release (existing [Unreleased] section):
[Unreleased] IS the release being cut: replace ## [Unreleased] with ## [x.y.z] - YYYY-MM-DD; add a fresh empty ## [Unreleased] above it.[Unreleased] contains unrelated upcoming work: insert the new versioned block between [Unreleased] and the previous version.Updating [Unreleased] only: append entries under the matching category subsection; create the subsection if absent.
Add or update the version comparison link at the bottom of the file.
YYYY-MM-DD)[Unreleased] sectionAn updated CHANGELOG.md with the new version block inserted (or [Unreleased] section updated), ready for user review before commit.
references/entry-guidelines.md — include/exclude heuristics and Conventional Commits mappingreferences/changelog-format.md — full Keep a Changelog format rules and examplesdevelopment
Use when the user wants rigorous, non-sycophantic editorial feedback on a draft, essay, blog post, or argument through back-and-forth dialogue — pressure-testing thesis, structure, argument, clarity, tone, and evidence. Triggers: "be my sparring partner", "pressure-test this draft", "poke holes in my argument", "is this ready to publish", "sharpen this post", "where is this weak". Not for one-shot copyediting, proofreading, or ghostwriting.
testing
Use when distilling the through-line gist of one or more sources — the spine, argument, tension, or recurring frame running through a set of documents, notes, research, or transcripts, OR across the ideas within a single rich piece — into a few concise paragraphs. Triggers: "synthesize", "what's the through-line/gist", "extract the insight", "pull these together". Not for faithful summary or condensation that covers what a source says, nor for comparisons or catalogs where enumeration is the deliverable.
development
Use when writing or reviewing tests in any language, or diagnosing a suite that is slow, brittle, or hard to read. Triggers: "write tests", "how should I test this", "what kind of test", "test is flaky/fragile", "should I mock this", "test is hard to read". For Python-specific guidance see `python-testing`.
development
Use when writing, debugging, or explaining Strudel live-coding music patterns — mini-notation syntax, pattern functions (fast/slow/every/off/stack), synth/sample selection, audio effects, scale/chord/voicing API, or EDM production recipes. Triggers: "write a Strudel pattern", "how do I make a bassline in Strudel", "what does .every() do", "strudel drum beat", "strudel chord voicing", any Strudel code question.