Changelog
Skill Cairn-ai-tooling/agent-collab-tooling/skills/changelog
Use when recording a notable change — adds a correctly-placed entry under [Unreleased] in CHANGELOG.md (Keep a Changelog format), reusing the right ### section without duplicating headings.From its SKILL.md
npx -y skills add Cairn-ai-tooling/agent-collab-tooling --skill changelogAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, 906 tokens by cl100k_base, as published. Nobody here has run it
Changelog
Maintains CHANGELOG.md in Keep a Changelog 1.1.0
format with SemVer. Changes accumulate under ## [Unreleased] and
are cut into a version at release time (not by this skill).
The single most common bug this skill must avoid: creating a second ### <Type> heading
when one already exists. Always append to the existing subsection.
Inputs
- Entry text — what changed, user-facing, concise (include why when it isn't obvious).
- Change type — one of:
Added,Changed,Deprecated,Removed,Fixed,Security. Infer from the entry; ask only if genuinely ambiguous.
Canonical section order
### Added → ### Changed → ### Deprecated → ### Removed → ### Fixed → ### Security
When creating a missing subsection, insert it so the subsections stay in this order.
Procedure
-
Locate
CHANGELOG.mdat the repo root. If missing, scaffold it:# Changelog All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -
Sanity-check the shape. If the file exists but is clearly not Keep-a-Changelog shaped (no
# Changelog/ no## [version headings), report and stop — do not mangle an unrecognized file. -
Ensure
## [Unreleased]exists. If absent, create it directly under the header block, above the most recent released version section. -
Find or create the
### <Type>subsection within[Unreleased]:- If a
### <Type>heading already exists under[Unreleased], use it — do not add another. (This is the critical rule.) - If it doesn't exist, create it in the canonical order above, with a blank line after the heading (markdownlint MD022/MD032).
- Scope the search to the
[Unreleased]section only — a### Addedunder an older released version is unrelated and must be left alone.
- If a
-
Append the entry as a new
-list bullet at the end of that subsection. Wrap at ~100 columns; indent continuation lines to align under the text (hanging indent). -
Leave released version sections untouched. Do not commit — leave that to the user.
Worked example
Given:
## [Unreleased]
### Added
- New decision-record skill.
Running with entry "changelog skill" / type Added must produce (one ### Added, two
bullets) — not a duplicate heading:
## [Unreleased]
### Added
- New decision-record skill.
- New changelog skill.
Running with entry "fix numbering gap handling" / type Fixed adds a new subsection in
canonical order (Fixed comes after Added):
## [Unreleased]
### Added
- New decision-record skill.
- New changelog skill.
### Fixed
- Fix numbering gap handling.
Acceptance checklist
- Appending to an existing
### Addedadds a bullet and leaves a single### Addedheading (no duplicate). - A missing subsection is created in canonical order (e.g.
FixedafterAdded). - A
### Addedunder a released version is never confused with the one under[Unreleased]. - Re-running is idempotent in shape: it never creates duplicate
### <Type>headings. - A non-Keep-a-Changelog file is reported, not rewritten.
Related: pairs with [[decision-record]] when a change also warrants recording its rationale.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.