changelog

Generate or update CHANGELOG.md entries from git history, PRs, and issues using Keep a Changelog format. Triggered by requests to update changelogs, document changes, or summarize what changed between versions.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "changelog" with this command: npx skills add tilomitra/release-kit/tilomitra-release-kit-changelog

Changelog Generator

Generate CHANGELOG.md entries by analyzing code changes, PRs, and issues — not just commit messages.

Gathering Context

When asked to generate a changelog entry (e.g., for a version or tag range), collect context from multiple sources. Commit messages are often vague or useless, so prioritize richer signals.

Step 1: Determine the version range

# Get the two most recent tags
CURRENT_TAG=$(git describe --tags --abbrev=0)
PREVIOUS_TAG=$(git describe --tags --abbrev=0 "$CURRENT_TAG^")

# Or if the user specifies a version:
# CURRENT_TAG="v2.4.0"
# PREVIOUS_TAG=$(git describe --tags --abbrev=0 "$CURRENT_TAG^")

# Get the date of the previous tag for filtering PRs/issues
SINCE_DATE=$(git log -1 --format=%aI "$PREVIOUS_TAG")

Step 2: Gather signals (in order of usefulness)

PRs merged since last release:

gh pr list --state merged --search "merged:>=$SINCE_DATE" --json number,title,body,labels --limit 100

Issues closed since last release:

gh issue list --state closed --search "closed:>=$SINCE_DATE" --json number,title,body,labels --limit 100

Diff between tags:

git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- '*.ts' '*.js' '*.tsx' '*.jsx' '*.py' '*.go' '*.rs' ':!*.lock' ':!*.min.*'

Files changed:

git diff --name-only "$PREVIOUS_TAG".."$CURRENT_TAG"

New or changed test descriptions (reveal intent):

git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- '**/*.test.*' '**/*.spec.*' '**/test_*' '**/*_test.*'

Config and dependency changes:

git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- 'package.json' '*.toml' '*.yaml' '*.yml' '*.env.example' '*.config.*'

Commit messages (last resort):

git log --oneline "$PREVIOUS_TAG".."$CURRENT_TAG"

Categorizing Changes

Classify every change into one of these Keep a Changelog categories:

  • Added — new features or capabilities
  • Changed — changes to existing functionality
  • Deprecated — features that will be removed
  • Removed — features that were removed
  • Fixed — bug fixes
  • Security — vulnerability fixes

Filtering rules

  • Skip refactors, test-only changes, CI config, and code style changes unless they have user-facing impact
  • Group minor internal improvements under a single "Internal improvements" bullet if worth mentioning at all
  • Prioritize user-facing changes over developer-facing ones
  • If you can't determine the user impact of a change, omit it or group it under internal improvements

Writing Rules

  • Lead with user benefit: "Add bulk CSV export for reports" not "Implement exportToCsv utility function"
  • Never mention file names, function names, or technical internals in the output
  • Use active voice: "Add dark mode" not "Dark mode has been added"
  • Be specific: "Fix crash when opening files larger than 2GB" not "Fix file handling bug"
  • Each entry should be one line. No paragraphs.

Output Format

Write entries in Keep a Changelog format:

## [2.4.0] - 2025-01-15

### Added
- Add bulk CSV export for all report types
- Add keyboard shortcuts for common actions (Ctrl+K to search, Ctrl+N for new)

### Changed
- Improve search performance for large datasets

### Fixed
- Fix crash when opening files larger than 2GB
- Fix incorrect totals on the billing summary page

Example: Bad Commits → Good Changelog

Typical commit messages:

fix stuff
wip
update deps
refactor handler
PR #142: misc changes

What the skill produces by analyzing PRs, issues, diffs, and test descriptions:

## [1.8.0] - 2025-01-10

### Added
- Add real-time collaboration for shared documents
- Add Slack notifications for failed deployments

### Fixed
- Fix duplicate entries appearing in search results
- Fix password reset emails not sending for SSO users

Final Steps

  • If a CHANGELOG.md already exists, prepend the new entry below the header
  • If no CHANGELOG.md exists, create one with a header and the new entry
  • Show the user what was generated and ask if they want to adjust anything before writing

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

release-notes

No summary provided by upstream source.

Repository SourceNeeds Review
General

announce

No summary provided by upstream source.

Repository SourceNeeds Review
General

De-AI-fy Text Skill1.0.0

Remove AI-like features from text to make it more natural and human-like (去除AI生成文本的AI特征,使文本更自然、更接近人类写作)

Registry SourceRecently Updated
2080Profile unavailable
General

claw-backup

一键备份 OpenClaw 工作区,支持必选/可选内容,生成 ZIP 压缩包(含 SHA256 校验)

Registry SourceRecently Updated
870Profile unavailable