| name | changelog |
| description | Survey and update CHANGELOG.md from unreleased commits and undocumented releases (conventional, renovate, chore, pin/finalize subjects, and git tags). Use when the user asks to check, review, or update the changelog, or when automation supplies commit/release detect JSON. Default is survey only; edit CHANGELOG.md only when the user explicitly requests a fix or automation sets may_edit in Constraints. |
| license | Apache-2.0 |
| metadata | {"author":"y-miyazaki","version":"2.0.3"} |
UTILITY SKILL โ changelog survey and patch, not release tagging.
Input
- Interactive: natural-language request; run this skill's detect script with
--scope all (or --scope range --since <ref>) unless detect JSON is already in context โ parse per category-input-schema.md
- Automation: detect JSON in prompt; read
may_edit, write_target, and report_file (when write_target: report) from ## Constraints per category-automation-envelope.md
Path allowlist, when present, arrives in ## Constraints.
Output Specification
Changelog report per common-output-format.md. Survey shape when changelog_file is not edited; apply shape when edited โ within category-scope.md.
Execution Scope
USE FOR:
- Survey unreleased commits and undocumented releases; emit Candidates under
## [Unreleased]
- Create
CHANGELOG.md from the Keep a Changelog template when changelog_exists is false and edits are allowed
- Group detect
commits[] into Keep a Changelog sections under ## [Unreleased]
- Promote detect
releases[] into ## [x.y.z] - date sections and move matching bullets out of ## [Unreleased]
- Preserve existing released version sections and formatting
DO NOT USE FOR:
- Create git tags or cut releases in CI outside the changelog file
- Run detection when the caller already supplied complete detect JSON (automation path)
Reference Files Guide
Workflow
Resolve may_edit before mapping commits:
| Source | may_edit |
|---|
| Interactive โ default | false โ survey only; do not edit changelog_file |
| Interactive โ fix language in the same request | true โ examples: ไฟฎๆญฃใใฆ, update the changelog, apply these entries |
| Interactive โ follow-up after a prior survey in the session | true when the user asks to fix, apply, or update the changelog |
Automation โ ## Constraints | may_edit: true or may_edit: false from category-automation-envelope.md |
When may_edit is true, resolve write_target: on the interactive path use fix (this skill); on the automation path read write_target from ## Constraints. Do not branch on other caller metadata outside ## Constraints.
- Run this skill's detect script (interactive) or parse detect JSON per category-input-schema.md. On non-zero exit, read stdout and stop.
- On the automation path, read category-automation-envelope.md for Constraints, PR templates, and Session Metrics.
- If
skip or both commits and releases are empty, emit survey no-op; on automation path append ## Session Metrics per category-automation-envelope.md; stop.
- Map commits and releases per common-checklist.md.
- When
may_edit is false, emit survey shape with ### Candidates; on automation path load assets/pr-body-template-survey.md at synthesis and append ## Session Metrics per category-automation-envelope.md; stop โ do not edit changelog_file.
- When
may_edit is true and write_target is not fix โ emit survey shape; note expected write_target: fix in Overview; stop โ do not edit changelog_file.
- When
may_edit is true and write_target is fix, edit only changelog_file per category-scope.md; emit apply shape with ### Changes and ## Verification; on automation path load assets/pr-body-template.md at synthesis and append ## Session Metrics per category-automation-envelope.md.
Error Handling
| Condition | Severity | Action |
|---|
Detect script non-zero exit or status: "error" | Fatal | Read stdout; stop โ do not treat as success-path detect JSON |
skip or empty commits/releases | Info | Report skip outcome; stop |
changelog_file outside scope | Recoverable | Defer; note in report |
Fix requested but may_edit is false | Info | Survey only; note that edits require an explicit fix request or may_edit: true |
may_edit true with write_target not fix | Recoverable | Survey only; note expected write_target: fix |
changelog_exists false and may_edit is true | Recoverable | Create Keep a Changelog template, then add bullets |