ase-meta-changelog
SkillFiles & storageUpdate ChangeLog entries in CHANGELOG.md files
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the ase-meta-changelog skill
What this skill tells your AI
The instructions your AI receives, as published by rse/ase in plugin/skills/ase-meta-changelog/SKILL.md and read by ahel’s review.
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
Format
The ChangeLog file is a Markdown formatted file named CHANGELOG.md,
and contains sections with headers in the style N.M.K (YYYY-MM-DD).
Each ChangeLog entry is always formatted as...
`<change-type/> [<artifact-kind/>]: <summary/>`
...where the is one of the following tags and their usual related changes:
- `FEATURE`: new functionality or configuration
- `IMPROVEMENT`: improved functionality or configuration
- `BUGFIX`: corrected functionality or configuration
- `UPDATE`: updated functionality or configuration
- `CLEANUP`: cleaned up functionality or configuration
- `REFACTOR`: refactored functionality or configuration
The is one or more of the following artifact tags,
classifying which kind of artifact the change primarily touches. If
multiple artifact kinds apply, comma-separate them
(e.g. [arch, code]):
- `spec`: requirement/specification artifacts
- `arch`: architecture/design artifacts
- `code`: source code artifacts
- `docs`: documentation artifacts
- `infr`: infrastructure/build/tooling artifacts
- `othr`: any other artifacts
The is not longer than about 60-80 characters. The ChangeLog entries for a single product release version are also always grouped and sorted according to the above list.
Processing
-
The ChangeLog file
CHANGELOG.mdis located in the current directory or one of the parent directories of the current project. Locate and read this file. Store its relative path in .You MUST NOT output anything, except the result with the following :
-
You MUST NOT output anything, except introduce the current operation with an output based on the following :
To update the entries of the most recent ChangeLog section, consult the Git commits plus the currently already staged changes in the Git index, but ignore the Git stash and still unstaged changes.
For finding the corresponding Git commits, first determine the correct baseline Git tag. Take the
N.M.Kfrom the first (most recent) level-2 header in the ChangeLog file and check whether a corresponding Git tag already exists with the commandgit tag --list N.M.K. If this command does produce output, the first section is already released/tagged, so use theN.M.Kfrom the first level-2 header as the baseline tag and insert a new, still-unreleased level-2 section (next patch version, current date) above it, which then becomes the first (most recent) section all subsequent steps operate on - the already released section MUST NOT be modified. If this command produces no output, the first section is still in-progress/untagged, so use theN.M.Kfrom the second level-2 header as the baseline tag instead. If no second level-2 header exists (very first, still untagged release), skip the baseline tag and check all Git commits with the commandgit log HEAD --numstat --pretty=format:'%h: %s'instead. Then check all Git commits betweenHEADand this baseline tag with the commandgit log N.M.K..HEAD --numstat --pretty=format:'%h: %s'.For finding the corresponding staged Git changes in the Git index, use the command
git diff --cached --numstat, but silently skip already existing changes to theCHANGELOG.mdfile itself. If still no corresponding ChangeLog entry exists for these staged Git changes, derive a meaningful one from agit diff --cachedcommand. -
You MUST NOT output anything, except introduce the current operation with an output based on the following :
Without immediately modifying the
CHANGELOG.mdfile, complete the entries in the first (most recent) section only, by adding the corresponding (most recent) Git commits and staged changes only.For each Git commit, reduce the Git commit messages to a single short sentence, not longer than 60-80 characters.
For each entry, also determine the artifact kind tag(s) from the paths of the changed files. To classify a changed file to its artifact class, call the
ase_artifact_list(kind: [ ... ])tool of theaseMCP server once, passing thekindtokens (spec,arch,code,docs,infr,othr), and read the returnedartifactsarray of{ kind, files }objects to match each changed file to its kind. Use the matched lower-cased kind directly as its tag, and comma-separate multiple tags when more than one artifact class applies.If a is too short or especially is not comprehensible enough because of too little context information, add some essential context, especially references to the class/module/package, etc. For this, if necessary, read the related source files with a corresponding
git showcommand to get a better understanding of this context. -
You MUST NOT output anything, except introduce the current operation with an output based on the following :
Without immediately modifying the
CHANGELOG.mdfile, consolidate the entries in the first (most recent) section only, by summarizing and merging closely related entries. Perform the entry consolidation per group only.Without immediately modifying the
CHANGELOG.mdfile, sort the entries in the first (most recent) section only. Instead of the chronological commit order, group the entries by the s. -
You MUST NOT output anything, except introduce the current operation with an output based on the following :
Finally, update the
CHANGELOG.mdfile with the completed, consolidated and sorted ChangeLog entries. Also, update the dateYYYY-MM-DDin theN.M.K (YYYY-MM-DD)header of the first (most recent) section.You MUST NOT output any further summary or give any further explanations.
Signals
- GitHub stars
- 52
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ase-meta-changelog- Source
- github.com/rse/ase