Agent skill

Changelog Generator

by espennilsen in espennilsen/pi

Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention.

MITAuto-check passedDevelopment

Install Changelog Generator

skills CLI
$ npx skills add espennilsen/pi --skill changelog-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install espennilsen/pi changelog-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/changelog-generator .claude/skills/changelog-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
changelog-generator
GitHub stars
122
Token cost
~3.7k tokens
SKILL.md length
1,421 words
Files
1
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention.

  • Works in 5 steps: Repository Analysis → Commit Convention Detection → Commit Extraction & Categorization → …
  • — use this skill when: - User asks to generate
  • SKILL.md covers Philosophy, Workflow, Operating Modes and Handling Edge Cases, plus 3 more sections
  • Calls git; reaches github.com and keepachangelog.com

What it does

Changelog Generator is an agent skill from espennilsen/pi. Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Supports Conventional Commits, basic prefix conventions, and unstructured commit messages. Intelligently categorizes changes, detects breaking changes, links to PRs/issues, and handles both initial generation and incremental updates. Triggers — use this skill when: - User asks to "generate", "create", "update", or "write" a changelog - User mentions "CHANGELOG", "changelog", "release notes" - User says "document…

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes, Commit messages and Git workflow. It works with Git and Angular. The licence is MIT.

When your agent uses it

  • — use this skill when: - User asks to generate
  • Write a changelog - User mentions CHANGELOG
  • Release notes - User says document changes
  • What changed since last release - User wants to prepare a release and needs a changelog entry - User asks to clean up

Example prompts

  • “generate”
  • “create”
  • “update”
  • “/changelog-generator”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Repository Analysis
  2. Commit Convention Detection
  3. Commit Extraction & Categorization
  4. Entry Writing
  5. Assemble the Changelog

What it can do on your machine

Read from SKILL.md and the folder at commit 79d019b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • keepachangelog.com
    • semver.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Changelog Generator loads about 3.7k tokens when it runs. Until then it costs about 237 tokens; SKILL.md has 1,421 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~237
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from espennilsen/pi at commit 79d019b, republished under its MIT licence (© espennilsen). 1,421 words, ~3,686 tokens.

Download SKILL.mdSave it as .claude/skills/changelog-generator/SKILL.md (or your agent's skills folder).
name
changelog-generator
description
Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Supports Conventional Commits, basic prefix conventions, and unstructured commit messages. Intelligently categorizes changes, detects breaking changes, links to PRs/issues, and handles both initial generation and incremental updates. **Triggers — use this skill when:** - User asks to "generate", "create", "update", or "write" a changelog - User mentions "CHANGELOG", "changelog", "release notes" - User says "document changes", "what changed since last release" - User wants to "prepare a release" and needs a changelog entry - User asks to "clean up" or "reformat" an existing changelog **Covers:** Any git-based project. Handles Conventional Commits (feat/fix/chore), Angular convention, basic prefixes (Add/Fix/Remove), and freeform commit messages. Outputs Keep a Changelog format with optional Common Changelog enhancements.

Changelog Generator

Parse a project's git history and produce a high-quality CHANGELOG.md following the Keep a Changelog convention.

Philosophy

A changelog is for humans, not machines. It answers: "What meaningful changes happened between version X and version Y?" Raw commit logs fail at this because they contain noise — typo fixes, merge commits, CI tweaks, and refactors that don't affect users. This skill filters signal from noise and writes entries that a user or contributor can actually understand.


Workflow

Phase 1 — Repository Analysis

Before generating anything, understand the project's commit and versioning patterns.

bash
# 1. Check if we're in a git repo
git rev-parse --is-inside-work-tree 2>/dev/null

# 2. Get all tags (versions) sorted by date
git tag --sort=-creatordate | head -30

# 3. Detect versioning scheme
# SemVer: v1.2.3 or 1.2.3
# CalVer: 2025.01, 2025-01-15
# Other: named releases, build numbers
git tag --sort=-creatordate | head -10

# 4. Detect commit convention
# Sample recent commits to identify the pattern
git log --oneline -30

# 5. Check for existing changelog
cat CHANGELOG.md 2>/dev/null
cat HISTORY.md 2>/dev/null
cat CHANGES.md 2>/dev/null

# 6. Check for existing config that hints at convention
cat .commitlintrc* commitlint.config.* 2>/dev/null  # Commitlint
cat .czrc .cz.toml 2>/dev/null                       # Commitizen
cat cliff.toml 2>/dev/null                            # git-cliff
cat .versionrc* 2>/dev/null                           # standard-version

# 7. Get remote URL for PR/issue links
git remote get-url origin 2>/dev/null

# 8. Package manifest for current version
cat package.json 2>/dev/null | grep '"version"'
cat pyproject.toml 2>/dev/null | grep 'version'
cat Cargo.toml 2>/dev/null | grep '^version'

Extract from the analysis:

FactHow to determine
Commit conventionPattern match on recent commits (see detection rules below)
Versioning schemeTag format analysis
Latest version/tagMost recent tag
Remote URLgit remote get-url origin — needed for PR/issue links
Existing changelogCheck for CHANGELOG.md or variants
Unreleased commitsCommits since the latest tag
Phase 2 — Commit Convention Detection

Analyze the last 30–50 commits to detect which convention is in use. Apply these rules in order:

Conventional Commits / Angular

Pattern: ^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?:
Example: feat(auth): add OAuth2 support
Example: fix!: resolve race condition in queue

→ If >50% of commits match this pattern, use Conventional Commits parsing.

Basic Prefix

Pattern: ^(Add|Fix|Remove|Update|Change|Deprecate|Security)[: ]
Example: Add user export feature
Example: Fix login redirect loop

→ If >50% of commits match this pattern, use basic prefix parsing.

Freeform / No Convention → If neither pattern dominates, use AI-assisted categorization (see Phase 3).

Report the detected convention to the user before proceeding.

Phase 3 — Commit Extraction & Categorization

Extract commits for the target range and categorize them.

bash
# All commits since last tag (for Unreleased section)
git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD \
  --pretty=format:"%H|%s|%b|%an|%ae|%aI" 2>/dev/null

# Commits between two tags (for a specific version)
git log v1.1.0..v1.2.0 \
  --pretty=format:"%H|%s|%b|%an|%ae|%aI"

# If no tags exist, get all commits
git log --pretty=format:"%H|%s|%b|%an|%ae|%aI"

# Get PR/merge info if available
git log --merges --oneline -20
Category Mapping

Map commits to Keep a Changelog categories:

Keep a Changelog CategoryConventional Commits typesBasic prefixesDescription
AddedfeatAdd, Create, ImplementNew features
Changedrefactor, perf, styleChange, Update, Refactor, ImproveChanges to existing functionality
Deprecated— (detect from message)DeprecateSoon-to-be removed features
Removed— (detect from message)Remove, Delete, DropRemoved features
FixedfixFix, Resolve, CorrectBug fixes
Security— (detect from message)SecurityVulnerability fixes
Entries to SKIP (noise filtering)

Do NOT include these in the changelog unless they have user-facing impact:

  • Merge commits (Merge branch..., Merge pull request...) — extract the PR title instead
  • CI/CD changes (ci:, build:, changes only to .github/workflows/)
  • Chore commits (chore:, dependency bumps without breaking changes)
  • Typo fixes in code comments
  • Formatting/linting-only changes (style: that don't affect behavior)
  • Version bump commits (chore: bump version to...)
  • Commits that only touch test files (unless adding test coverage is noteworthy)
Freeform Commit Categorization

When commits don't follow a convention, categorize by analyzing the message content:

  • Contains "add", "new", "create", "implement", "introduce" → Added
  • Contains "fix", "resolve", "correct", "patch", "bug" → Fixed
  • Contains "remove", "delete", "drop" → Removed
  • Contains "deprecate" → Deprecated
  • Contains "security", "vulnerability", "CVE" → Security
  • Contains "update", "change", "refactor", "improve", "optimize" → Changed
  • If unclear, use the diff to determine: new files = Added, deleted files = Removed, modified = Changed
Breaking Change Detection

Flag breaking changes regardless of convention:

  • Conventional: ! after type/scope, or BREAKING CHANGE: in footer
  • Message content: "breaking", "incompatible", "migration required"
  • SemVer major bump between tags
  • Removal of public API functions/endpoints

Mark breaking entries with BREAKING: prefix in the changelog.

Phase 4 — Entry Writing

Transform raw commit data into human-readable changelog entries.

Writing Rules
  1. Write for the user, not the developer. "Add dark mode support" not "feat(ui): implement dark-mode toggle via CSS custom properties in ThemeProvider"
  2. Use imperative mood. "Add", "Fix", "Remove" — not "Added", "Fixed", "Removed"
  3. One entry per meaningful change. Squash related commits into a single entry
  4. Include references. Link to PR numbers and issues: (#123), ([#123](url))
  5. Credit authors for external contributions. (@username) for non-core contributors
  6. Lead with impact. Put the most important changes first within each category
  7. Be specific. "Fix crash when uploading files larger than 10MB" not "Fix upload bug"
  8. Keep entries to one line. If you need more, the change probably needs multiple entries or a migration guide
Entry Format
markdown
- Add dark mode support with automatic system preference detection (#142)
- **BREAKING:** Remove deprecated `v1/users` endpoint; use `v2/users` instead (#138)
- Fix memory leak in WebSocket connection handler (#145)
Phase 5 — Assemble the Changelog
File Format (Keep a Changelog)
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/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- Description of new feature (#PR)

### Fixed
- Description of bug fix (#PR)

## [1.2.0] - 2025-09-15

### Added
- Add OAuth2 authentication support (#89)
- Add CSV export for user data (#92)

### Changed
- Improve query performance for large datasets (#91)

### Fixed
- Fix timezone handling in scheduled reports (#88)
- Fix incorrect pagination count on filtered results (#90)

### Removed
- **BREAKING:** Remove legacy XML API endpoint (#87)

## [1.1.0] - 2025-06-01

### Added
- ...

[Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
[1.2.0]: https://github.com/user/repo/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/user/repo/compare/v1.0.0...v1.1.0
Critical Format Rules
  1. H1 for title. # Changelog — only one H1
  2. H2 for versions. ## [1.2.0] - 2025-09-15 — square brackets around version, ISO date
  3. H3 for categories. ### Added, ### Changed, etc. — only use categories that have entries
  4. Comparison links at the bottom. Every version heading must have a corresponding comparison link
  5. Unreleased section at top. Always present, even if empty (remove if the project prefers not to have it)
  6. Newest version first. Reverse chronological order
  7. ISO 8601 dates. YYYY-MM-DD — no exceptions
  8. Empty categories. Do NOT include a category heading if there are no entries under it

Operating Modes

Mode A: Generate from Scratch

No existing changelog. Generate the full history.

  1. Get all tags sorted chronologically
  2. For each tag pair (oldest to newest), extract and categorize commits
  3. Assemble full changelog
  4. If there are many tags (>10), ask the user if they want all history or just recent versions
bash
# Get tags in chronological order
git tag --sort=creatordate

# Get date of a tag
git log -1 --format=%aI v1.0.0
Mode B: Update Existing Changelog

A CHANGELOG.md already exists. Add new entries.

  1. Parse the existing changelog to find the latest documented version
  2. Determine the commit range: latest documented version → HEAD (or → new tag)
  3. Generate entries only for the new range
  4. Insert the new version section after ## [Unreleased] (or at the top if no Unreleased)
  5. Update comparison links at the bottom
  6. Preserve all existing content exactly as-is

Never modify existing entries unless the user explicitly asks for a reformat.

Show full SKILL.md (559 more words)Show less
Mode C: Reformat / Clean Up

User has a messy or inconsistent changelog. Rewrite to match the standard.

  1. Parse all existing entries
  2. Re-categorize under Keep a Changelog headings
  3. Fix date formats to ISO 8601
  4. Add missing comparison links
  5. Fix heading hierarchy
  6. Show a diff/summary of changes to the user before writing
Mode D: Prepare Release

User wants to create a changelog entry for an upcoming release.

  1. Extract commits since the last tag
  2. Categorize and write entries
  3. Ask the user for the new version number (or suggest one based on changes: major if breaking, minor if features, patch if only fixes)
  4. Move entries from ## [Unreleased] to the new version section
  5. Update comparison links
  6. Optionally suggest a SemVer bump

Handling Edge Cases

No Tags

If the project has no tags, treat all commits as unreleased. Ask the user if they want to:

  • Generate a single ## [Unreleased] section
  • Create a ## [0.1.0] retroactively from the initial commit
Monorepo

If the project is a monorepo with multiple packages:

  • Ask which package to generate for
  • Filter commits by path: git log -- packages/package-name/
  • Consider separate changelogs per package
Squash Merges

If the project uses squash merges, the PR title becomes the commit message. These are often well-written and can be used directly as changelog entries.

Very Large History

If there are >500 commits to process:

  • Process in batches by tag range
  • Ask the user if they want full history or just the last N versions
  • For initial generation, suggest starting from the latest 3-5 versions
Pre-1.0 Projects

For projects that haven't reached 1.0:

  • Minor bumps may contain breaking changes (per SemVer spec)
  • Still flag breaking changes but note the pre-1.0 context

Quality Checklist

After generating, verify:

Format
  • Single H1 (# Changelog)
  • Each version is H2 with brackets and ISO date: ## [X.Y.Z] - YYYY-MM-DD
  • Categories are H3: ### Added, ### Changed, etc.
  • No empty categories (remove heading if no entries)
  • Comparison links at bottom for every version
  • Newest version first (reverse chronological)
  • Unreleased section present at top
Content
  • Every entry starts with imperative verb
  • PR/issue references included where available
  • Breaking changes clearly marked with BREAKING:
  • No noise commits (merge commits, version bumps, CI-only changes)
  • Entries are specific and user-facing
  • Related commits are squashed into single entries
Accuracy
  • Version numbers match actual git tags
  • Dates match tag creation dates
  • Comparison links use correct tag names
  • No commits are attributed to the wrong version

Anti-Patterns to Avoid

  1. Dump of commit messages — A changelog is not git log --oneline. Curate and rewrite.
  2. "Bug fixes and improvements" — This tells the user nothing. Be specific.
  3. Including every single commit — Filter noise. Only user-facing changes matter.
  4. Inconsistent tense — Always imperative mood: "Add", "Fix", "Remove"
  5. Missing links — Always include comparison links at the bottom
  6. Invented version numbers — Only use versions that correspond to actual tags
  7. Reformatting existing entries — When updating, never touch historical entries unless asked
  8. Skipping the preamble — Always include the "format is based on" reference lines

Output

The final output should be:

  1. Convention report: What commit convention was detected, how many commits processed
  2. The CHANGELOG.md file: Written to the project root, ready to commit
  3. Summary: Number of versions documented, total entries, any commits that were ambiguous or skipped

Always write the changelog as a file so the user can review and commit it directly.

© espennilsen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/changelog-generator of espennilsen/pi.

Open the folder on GitHubat commit 79d019b

Compare with similar skills

Changelog Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Changelog Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Changelog Generator this skillespennilsen/pi122—~3.7kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills105k2 repos~3.5kAutomated safety check: NotesMIT
Git Committisfeng/Easydict15k—~535Automated safety check: PassGPL-3.0
WooCommerce Git Commitwoocommerce/woocommerce11k—~1.2kAutomated safety check: PassCustom licence
Git Changes ReporterNo-Trade-No-Life/Yuan352—~1.2kAutomated safety check: PassMIT
Shift Commit Rulesshift-editor/shift350—~1.4kAutomated safety check: NotesApache-2.0

Similar skills

  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    105k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Git Commit

    tisfeng/Easydict

    起草、创建或汇报 Angular-style 本地 Git 提交。用于明确的提交交付;分支集成使用 worktree-rebase-merge,不 push。

    15k GitHub stars~535 tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • WooCommerce Git Commit

    woocommerce/woocommerce

    Commits pending changes with short, verb-first messages that follow WooCommerce repository conventions, splitting commits only when changes are clearly unrelated.

    11k GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Git Changes Reporter

    No-Trade-No-Life/Yuan

    生成结构化 git 变更报告(JSON + Markdown)。使用此技能当用户提到"git 变更"、"commit 摘要"、"代码审查"、"release note"、"近期改动"、"每日摘要",或需要分析指定 commit 区间的代码变更。包含三元组结构(设计意图、核心代码、影响范围)的语义化报告,适用于代码审查、发布说明、团队同步、CI/CD 等场景。

    352 GitHub stars~1.2k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Shift Commit Rules

    shift-editor/shift

    Rules for writing git commits in the Shift font editor repo: Conventional Commits subjects, user-facing changelog wording, concise subjects and logical commit boundaries.

    350 GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • Version Bump and Release

    escapeWu/perplexity-ai

    Bumps a project version, updates both changelogs, builds the frontend, then commits, tags and pushes the release.

    171 GitHub stars~528 tokensUpdated 13 days ago
    DevelopmentAuto-check passed

More from espennilsen/pi

All 36 skills in this repo
  • GitHub

    espennilsen/pi

    Interact with GitHub repos, PRs, issues, CI, and notifications via the pi-github extension commands and gh CLI.

    122 GitHub stars~1k tokensUpdated 19 days ago
    Auto-check passed
  • Skill Creator

    espennilsen/pi

    Create, review, and improve skills for Pi agents. An agent skill from espennilsen/pi.

    122 GitHub stars~2.1k tokensUpdated 19 days ago
    Auto-check passed
  • Dry Code Review

    espennilsen/pi

    Perform a comprehensive DRY (Don't Repeat Yourself) code review on a codebase.

    122 GitHub stars~1.7k tokensUpdated 19 days ago
    Auto-check passed
  • Extract Design System

    espennilsen/pi

    Reverse-engineer a design system from a live website (public URL or localhost).

    122 GitHub stars~2k tokensUpdated 19 days ago
    Auto-check passed
  • PDF Reader

    espennilsen/pi

    Read and extract content from PDF files — text, tables, metadata, and images.

    122 GitHub stars~1.6k tokensUpdated 19 days ago
    Auto-check passed
  • Google Workspace

    espennilsen/pi

    Manage Google Workspace via the gws CLI — Drive, Gmail, Sheets, Docs, Slides, People, Chat, Meet, Forms, and cross-service workflows.

    122 GitHub stars~3.4k tokensUpdated 19 days ago
    Auto-check passed

Works with

Categories

Questions about Changelog Generator

What does Changelog Generator do?

Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Changelog Generator is an agent skill from espennilsen/pi.md following the Keep a Changelog convention.

When should I use Changelog Generator?

Changelog Generator fits situations like: — use this skill when: - User asks to generate; write a changelog - User mentions CHANGELOG; release notes - User says document changes; what changed since last release - User wants to prepare a release and needs a changelog entry - User asks to clean up.

How do I install Changelog Generator in Claude Code?

Run `npx skills add espennilsen/pi --skill changelog-generator -a claude-code`. Or copy the skill folder (skills/changelog-generator in espennilsen/pi) into .claude/skills/changelog-generator in your project. Claude Code loads it when a task matches its description.

How do I install Changelog Generator in Codex?

Run `npx skills add espennilsen/pi --skill changelog-generator -a codex`. Or copy the skill folder (skills/changelog-generator in espennilsen/pi) into .agents/skills/changelog-generator in your project. Codex loads it when a task matches its description.

Can I use Changelog Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add espennilsen/pi --skill changelog-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/changelog-generator, .gemini/skills/changelog-generator, .github/skills/changelog-generator and .opencode/skills/changelog-generator in your project.

What does Changelog Generator need to run?

Going by SKILL.md and its folder, Changelog Generator needs the command-line tools its instructions call (git).

Does Changelog Generator access the network?

SKILL.md names 3 domains. In commands or code: github.com, keepachangelog.com and semver.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Changelog Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Changelog Generator use?

Changelog Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Changelog Generator use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Changelog Generator?

Skills that share tags, products or a category with Changelog Generator: Git Workflow and Versioning (addyosmani/agent-skills, 105k stars), Git Commit (tisfeng/Easydict, 15k stars), WooCommerce Git Commit (woocommerce/woocommerce, 11k stars) and Git Changes Reporter (No-Trade-No-Life/Yuan, 352 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Changelog Generator?

espennilsen (a GitHub user) maintains it in espennilsen/pi, which has 122 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 21, 2026.

Source: espennilsen/pi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.