Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

changelog-update

verified

Generate changelog entries from commits for any project type

View on GitHub

Marketplace

agent-skills-marketplace

jayteealao/agent-skills

Plugin

release-automation

automation

Repository

jayteealao/agent-skills

plugins/release-automation/skills/changelog-update/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/jayteealao/agent-skills/blob/main/plugins/release-automation/skills/changelog-update/SKILL.md -a claude-code --skill changelog-update

Installation paths:

Claude
.claude/skills/changelog-update/
Powered by add-skill CLI

Instructions

# Changelog Update

## Purpose

Generates changelog entries from git commits, categorizes changes into Added/Changed/Fixed/Breaking sections following configurable changelog format (default: keep-a-changelog), and updates or creates the changelog file for any project type.

## Input Context

Requires:
- **Project Configuration**: Output from `detect-project-type` skill
- **Version**: New version number (e.g., "1.2.0")
- **Custom Message** (optional): User-provided commit message overrides auto-generation
- **Last Tag**: Git tag of previous release (optional)

## Workflow

### 1. Load Changelog Configuration

Use configuration from `detect-project-type`:
- `changelog_file` - Path to changelog file (default: `CHANGELOG.md`)
- `changelog_format` - Format to use (default: `keep-a-changelog`)
- `tag_pattern` - For finding commits since last tag

### 2. Determine Changelog File Path

Use `changelog_file` from configuration:

```bash
changelog_file="CHANGELOG.md"  # from config, can be:
# - CHANGELOG.md (standard)
# - HISTORY.md (alternative)
# - CHANGES.rst (Python projects)
# - NEWS.md (GNU projects)
# - {package}/CHANGELOG.md (monorepos)
```

Check if file exists. If not, create with initial structure based on format:
```markdown
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/).
```

### 3. Gather Commits

Get commits since last release tag:
```bash
if [ -n "$last_tag" ]; then
  git log ${last_tag}..HEAD --oneline --no-merges
else
  # First release - get all commits
  git log --oneline --no-merges
fi
```

For monorepo projects, optionally filter commits by package directory:
```bash
# Filter commits that touched this package only
git log ${last_tag}..HEAD --oneline --no-merges -- packages/my-lib/
```

### 3. Categorize Commits

Parse each commit message and categorize:

**Added (new features):**
- `feat:` or `feat(scope):`
- Commit messages starting with "add", "crea

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
6730 chars