Claude Skills Guide

Claude Skills for Automated Changelog Generation

This guide focuses on building the Claude skill files that power automated changelog generation: the .md definitions for changelog-generator, git-changelog-extractor, changelog-filter, changelog-formatter, and changelog-summarizer. If you are looking for the operational side — how to invoke the workflow, configure output formats, and wire it into CI/CD — see Claude Code Changelog Generation Workflow.

Changelogs are critical for maintaining transparent release processes, yet manually documenting every change across commits, pull requests, and issues consumes valuable development time. Claude skills enable you to automate this process entirely, generating comprehensive, well-formatted changelogs that keep your team and users informed without the manual effort. For an overview of automation workflows, visit the workflows hub.

Understanding the Changelog Generation Challenge

Modern software projects accumulate changes across multiple channels: git commits with varying quality of messages, pull request titles that may or may not describe the actual change, issue tracker entries, and informal notes scattered across team communication. Aggregating this information into a coherent changelog traditionally requires dedicated time during each release cycle.

The challenge intensifies with larger teams and more frequent releases. A project with daily deployments produces too many changes for manual documentation. Even with conventional automation tools, extracting meaningful information from commit messages and determining appropriate categorization requires context that simple regex patterns cannot provide.

Claude skills address this problem by applying the language model’s understanding of your codebase, conventional commit standards, and semantic meaning of changes.

Core Skills for Changelog Automation

Several Claude skills work together to create a complete changelog generation system. Understanding each component helps you build a customized workflow that matches your project’s conventions. The skill .md file format guide explains how to structure each skill file correctly.

The foundation skill is a custom changelog-generator skill that orchestrates the entire process. Create this file at ~/.claude/skills/changelog-generator.md:

# Changelog Generator Skill

## Instructions

When asked to generate a changelog, analyze the git history between the specified tags or commits. For each change:

1. Parse commit messages using conventional commit format (feat:, fix:, docs:, refactor:, etc.)
2. Group changes by type: Features, Bug Fixes, Breaking Changes, Documentation, Performance, Dependencies
3. Extract associated pull request numbers from commit messages
4. Include issue references when present
5. Format output using keepachangelog.com format

Generate a changelog that includes:
- Version number and release date
- Each category with bullet points
- Links to PRs and issues when available
- Migration notes for breaking changes

This base skill provides the framework that other specialized skills augment.

Extracting Changes from Git History

The first step in automated changelog generation involves extracting relevant changes from your repository. Claude can directly analyze git log output, but creating a dedicated skill for this task improves consistency.

Build a git-changelog-extractor skill:

# Git Changelog Extractor

## Instructions

When extracting changes for a changelog:

1. Use `git log --pretty=format:"%h %s %b" [range]` to get commits
2. Parse conventional commit prefixes: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
3. Identify scope from commit message (e.g., feat(auth): add login)
4. Extract PR references from merge commits: "Merge PR #123"
5. Flag breaking changes by detecting "BREAKING CHANGE:" in body
6. Return structured JSON with: hash, type, scope, message, pr, breaking flag

Invoke this skill during changelog generation to transform raw git history into structured data. The skill handles the parsing logic that would otherwise require custom scripts.

Categorizing and Filtering Changes

Not every commit deserves inclusion in your public changelog. Build a changelog-filter skill to apply your project’s conventions:

# Changelog Filter

## Instructions

When filtering commits for changelog inclusion:

- INCLUDE: feat, fix, perf, refactor (if user-facing), docs (if user-facing)
- EXCLUDE: chore, style, ci, build, test, refactor (internal only)
- CATEGORIZE:
  - feat → "Features"
  - fix → "Bug Fixes"
  - perf → "Performance Improvements"
  - docs:user-facing → "Documentation"
  - refactor:user-facing → "Improvements"
  
Prioritize changes that affect end users. Internal refactoring without user-visible impact should be excluded unless significant.

When multiple commits relate to the same feature, consolidate them into a single entry.

This skill ensures your changelog remains focused and actionable for users while excluding noise.

Integrating with Conventional Changelog Standards

The Keep a Changelog format has become an industry standard. Create a changelog-formatter skill to enforce this structure:

# Changelog Formatter

## Instructions

Format changelog entries according to keepachangelog.com:

1. Use semantic versioning: ## [1.2.0] - YYYY-MM-DD
2. Group under headers: ### Added, ### Changed, ### Deprecated, ### Removed, ### Fixed, ### Security
3. Use imperative mood: "Add user authentication" not "Added user authentication"
4. Reference issues with GitHub syntax: (#123)
5. Reference PRs: (PR #456)
6. For breaking changes, add migration guide section

If generating release notes for internal use, include commit hashes. For public releases, omit them.

Wrap at 80 characters for readability.

Running changes through this formatter before output ensures consistency across releases and makes your changelogs professional.

Practical Example: Complete Workflow

Combine these skills into a cohesive workflow. Here’s how to generate a release changelog:

# First, invoke changelog-generator
/changelog-generator

# When prompted, specify:
# - Previous version tag: v1.1.0
# - Current version: v1.2.0
# - Repository: your-org/your-project

The skill sequence produces output like:

## [1.2.0] - 2026-03-14

### Added
- User authentication with OAuth2 support (PR #45)
- Dark mode toggle in settings (Issue #32)

### Fixed
- Memory leak in data export function (#48)
- Incorrect date formatting in European locales (#46)

### Changed
- Upgrade React to v18.2 for performance improvements

### Breaking Changes
- The `exportData()` API now returns Promise<UserData[]> instead of UserData[]
- Migration: Update code using `.then()` or `await` when calling exportData()

Adding Intelligence with AI Analysis

Beyond simple parsing, Claude skills can analyze commit content to provide richer context. Create a changelog-summarizer skill:

# Changelog Summarizer

## Instructions

When generating a release summary:

1. Review all changes in the current release
2. Identify the primary themes (3-5 major features, specific bug fixes)
3. Write a 2-3 paragraph summary suitable for blog posts or release emails
4. Highlight any breaking changes prominently
5. Suggest upgrade path for users on previous versions

Use accessible language. Avoid jargon that new users might not understand.

This skill transforms the raw changelog into communication-ready content.

Automating Changelog Generation in CI/CD

Continuous integration pipelines benefit from automated changelog creation. The Claude Code GitHub Actions workflow guide covers the CI/CD integration in depth. Add a GitHub Actions workflow:

name: Generate Changelog
on:
  pull_request:
    branches: [main]
    types: [closed]
    
jobs:
  changelog:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Generate changelog
        run: |
          echo "## What's Changed" >> $GITHUB_STEP_SUMMARY
          git log --pretty=format:"- %s (%h)" \
            ${{ github.event.pull_request.base.sha }}..HEAD >> $GITHUB_STEP_SUMMARY

This workflow creates a changelog summary in every merged PR, providing instant visibility into changes.

Best Practices for Automated Changelog Generation

Maintain changelog quality by following these principles. Enforce conventional commits in your project to ensure Claude has consistent input to work with. Configure your repository to require conventional commit format in PRs.

Review generated changelogs before publication. Automation handles 90% of the work, but human oversight catches nuances that algorithms miss.

Version your changelogs alongside code. Store them in version control and maintain a CHANGELOG.md file that grows with each release.

Automate the trivial, focus on the meaningful. Use Claude skills to handle parsing and formatting while reserving human effort for strategic communication.


Built by theluckystrike — More at zovo.one