Repository navigation
v0.5.0 — changelog-bot skill
[0.5.0] - 2026-05-10
changelog-bot skill shipped — generates the CHANGELOG entries that pr-review Step 5 later checks and release-sop Step 4 later folds into a dated release. Same hard-gate philosophy: a granularity gate that bounces low-quality bullets, a Breaking special case with a mandatory migration line, and a hard red line against committing the CHANGELOG itself (it proposes; the author merges via a normal PR). Agent-agnostic markdown contract; Git-host-agnostic (GitHub / GitLab / Gitea).
Added
skills/changelog-bot/SKILL.md— generic CHANGELOG-entry drafter — takes a PR / commit-range / branch / pasted diff and produces a ready-to-paste Keep-a-Changelog entry. Six steps: Step 0 input identification + CHANGELOG house-style scan (file location, sections used, bullet conventions,[Unreleased]vs dated sections), Step 1 diff walk + classification intoBreaking/Added/Changed/Deprecated/Removed/Fixed/Securitywith non-user-facing noise (refactors, test-only, CI, formatting, behavior-neutral dep bumps) discarded — whole-PR-is-noise ⇒ a valid "no entry needed, because …" output, Step 2 per-entry drafting behind a granularity gate (every bullet must carry bolded phenomenon + root cause/trigger + fix/implementation + impact plus PR ref /fixes #N; rejects "fix a bug" / "improve performance" / "update deps"; won't fabricate root cause), Step 3 Breaking-change special case (ownBreakingsection + mandatory migration line + major-bump cross-check), Step 4 placement & output (top of[Unreleased]under the right section in Keep-a-Changelog order; never a tag commit / dated section; never auto-commits), Step 5 self-check against the exact gatespr-reviewStep 5 applies + handoff line. Includes an edge-case runbook (no CHANGELOG file, repo doesn't use one, multi-change PR, oversized diff, unknown root cause, dependency bump, pure-docs/CI/test PR, pre-existing non-compliant entry) and six red lines (never commits the CHANGELOG, never fabricates root cause/impact, no low-granularity bullets, no hiding Breaking in a normal section, never writes into a tag commit / dated section, never changes the repo's CHANGELOG format unilaterally). Explicit composition:pr-reviewStep 5 checks presence/format/granularity —changelog-botgenerates the content;release-sopStep 4 folds[Unreleased]entries into the dated release. Agent-agnostic; Git-host-agnostic.README.md—changelog-botpromoted from 🚧 planned to ✅ shipped — Skills table row rewritten; quickstart gains achangelog-botcurl one-liner; Usage section gains achangelog-bottrigger table; repo-layout tree updated forskills/changelog-bot/SKILL.mdandexamples/changelog-bot-demo.md.install.shunchanged — it auto-discovers anyskills/<name>/SKILL.md.examples/changelog-bot-demo.md— workedchangelog-bottranscript — the 6 steps run end-to-end on a hypothetical PR (fix(auth): refresh token rotation drops the new token on a slow write): Step 0 input + house-style scan, Step 1 classification into oneFixed+ oneSecuritychange (test file noted as coverage, not its own entry), Step 2 turning a would-be "fix a bug" bullet into two four-element granular entries (with a counter-example of the bounced version), Step 3 not-Breaking determination, Step 4 the ready-to-paste[Unreleased]block placed under### Fixed/### Security, Step 5 the self-check + handoff topr-reviewStep 5 /release-sopStep 4. Closes with the "pure-refactor ⇒ no entry needed" and "renamed flag ⇒ Breaking + migration line" contrasts.