changelog-generator
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user wants a changelog for their project, wants release notes generated from git history, or asks "make a changelog", "generate release notes", or "what changed since v1.0" — requires a git repo with conventional commit messages (feat:, fix:, refactor:, docs:).
99 other projects use a version of this.
Adopted by
Most recently taken up by
- darkweb19/skillstheir own version, first seen Nov 8, 2026
- BrightGold70/skillstheir own version, first seen Nov 8, 2026
- kazemcodes/skill-treetheir own version, first seen Nov 8, 2026
- alunadev/ald-skillstheir own version, first seen Nov 8, 2026
- myths-labs/musetheir own version, first seen Nov 6, 2026
- Sma1lboy/rovetheir own version, first seen Nov 6, 2026
Used with
Projects with it also use api-test-suite-builder, fda-consultant-specialist and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Arnav-0Skillapi-test-suite-builder
Use when the user asks to generate API tests, create integration test suites, test REST endpoints, or build contract tests.
Also in 7 projects that use this
Hussain-ElfalahSkillfda-consultant-specialist
Also in 5 projects that use this
csiddhant796-blipSkillkarpathy-coder
Use when writing, reviewing, or committing code to enforce Karpathy's 4 coding principles — surface assumptions before coding, keep it simple, make surgical changes, define verifiable goals. Triggers on "review my diff", "check complexity", "am I overcomplicating this", "karpathy check", "before I commit", or any code quality concern where the LLM might be overcoding.
Also in 5 projects that use this
Hussain-ElfalahSkillquality-manager-qmr
Also in 5 projects that use this
csiddhant796-blipSkillself-eval
Honestly evaluate AI work quality using a two-axis scoring system. Use after completing a task, code review, or work session to get an unbiased assessment. Detects score inflation, forces devil's advocate reasoning, and persists scores across sessions.
Also in 6 projects that use this
ComposioHQSkillmeeting-notes-and-actions
Turn meeting transcripts or rough notes into crisp summaries with decisions, risks, and owner-tagged action items; use for Zoom/Meet/Teams transcripts, call notes, or long meeting chats to generate share-ready outputs.
Also in 4 projects that use this
- +4 more from Hussain-Elfalah
Other versions99 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 99
- ComposioHQ/awesome-claude-skills★ 75ksame name
- ComposioHQ/awesome-codex-skills★ 17ksame name
- composio-community/awesome-codex-skills★ 16ksame name
- didi/mpx★ 4ksame name
- Prat011/awesome-llm-skills★ 1.7ksame name
- jewbetcha/openflight★ 1.2ksame name
- MoizIbnYousaf/Ai-Agent-Skills★ 1.1ksame name
- skillcreatorai/Ai-Agent-Skills★ 1.1ksame name
- MoizIbnYousaf/ai-agent-skills★ 1.1ksame name
- decebals/claude-code-java★ 763same name
89 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- api-test-suiteSkill
- ascii-artSkill
- caddy-reverse-proxySkill
- color-palette-generatorSkill
- cron-taskSkill
- csv-toolkitSkill
- discord-bot-buildSkill
- docker-umbrellaSkill
- dotfiles-manageSkill
- email-sendSkill
- env-config-managerSkill
- excalidraw-diagramSkill
- file-organizerSkill
- forgejo-self-hostSkill
- frontend-design-toolkitSkill
- generate-dockerfileSkill
- gif-searchSkill
- git-backupSkill
- github-actions-ciSkill
- hallmark-readmeSkill
- http-api-testerSkill
- invoice-generatorSkill
- json-formatterSkill
- log-analyzerSkill
- markdown-linterSkill
- markdown-to-pdfSkill
- markdown-to-slidesSkill
- mcp-server-buildSkill
- media-id-mappingSkill
- movie-catalogue-siteSkill
- movie-night-calendarSkill
- ntfy-notifierSkill
- ocr-documentsSkill
- ollama-localSkill
- openapi-generatorSkill
- password-generatorSkill
- pdf-extractSkill
- portfolio-upkeepSkill
- qr-code-generatorSkill
- regex-testerSkill
- resume-builderSkill
- rss-monitorSkill
- searxng-self-hostSkill
- skill-publishSkill
- skill-registry-catalogSkill
- skills-portfolio-scaffoldSkill
- snippet-managerSkill
- sqlite-dashboardSkill
- streaming-provider-embedsSkill
- tailscale-deploySkill
- telegram-bot-buildSkill
- tmdb-metadataSkill
- uptime-kuma-self-hostSkill
- watchlist-syncSkill
- webhook-receiverSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.
0
Common
Most of the 93 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 125
Write to CHANGELOG.md or return as string
- Distinctive: line 133
Cherry-picked commits appear twice: If the same commit is cherry-picked across branches, it has a different hash on each branch and shows …
“Common” is measured: kept by at least 6 in 10 of the 93 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
changelog-generator
Overview
Generate a formatted changelog from git commit history. The agent reads commits, categorizes them by type (feat, fix, refactor, docs), and produces a Keep a Changelog-format document.
When to Use
- The user wants a changelog for their project.
- The user wants to generate release notes from commits.
- The user says "make a changelog", "generate release notes", or "what changed since v1.0".
Prerequisites
The project must be a git repository with conventional commit messages (feat:, fix:, refactor:, docs:, chore:).
Generate from Commits
import subprocess
import re
from collections import defaultdict
def get_commits(since: str = "", repo_path: str = ".") -> list:
"""Get commits with hash, date, and message."""
cmd = ["git", "log", "--pretty=format:%H|%ai|%s"]
if since:
cmd.insert(2, f"{since}..HEAD")
result = subprocess.run(cmd, cwd=repo_path, capture_output=True, text=True)
commits = []
for line in result.stdout.strip().split("\n"):
if "|" in line:
parts = line.split("|", 2)
commits.append({
"hash": parts[0][:8],
"date": parts[1][:10],
"message": parts[2]
})
return commits
def categorize_commits(commits: list) -> dict:
"""Categorize commits by conventional commit type."""
categories = defaultdict(list)
for commit in commits:
msg = commit["message"]
match = re.match(r'(\w+)(\([^)]+\))?:\s*(.+)', msg)
if match:
cat = match.group(1)
scope = match.group(2) or ""
desc = match.group(3)
categories[cat].append({
"hash": commit["hash"],
"scope": scope.strip("()"),
"description": desc,
})
else:
categories["other"].append({
"hash": commit["hash"],
"scope": "",
"description": msg,
})
return dict(categories)
def generate_changelog(since: str = "", repo_path: str = ".") -> str:
"""Generate a Keep a Changelog formatted document."""
commits = get_commits(since, repo_path)
categorized = categorize_commits(commits)
# Category display names and order
category_map = {
"feat": "Added",
"fix": "Fixed",
"refactor": "Changed",
"docs": "Documentation",
"chore": "Maintenance",
"test": "Testing",
"perf": "Performance",
"other": "Other",
}
changelog = "# Changelog\n\n"
for cat_key in ["feat", "fix", "refactor", "perf", "docs", "test", "chore", "other"]:
if cat_key in categorized:
display = category_map.get(cat_key, cat_key)
changelog += f"## {display}\n\n"
for item in categorized[cat_key]:
scope = f"**{item['scope']}**: " if item["scope"] else ""
changelog += f"- {scope}{item['description']} ({item['hash']})\n"
changelog += "\n"
return changelogConventional Commit Types
| Type | Maps to | Description |
feat: | Added | New features |
fix: | Fixed | Bug fixes |
refactor: | Changed | Code restructuring |
perf: | Performance | Performance improvements |
docs: | Documentation | Documentation changes |
test: | Testing | Test additions/changes |
chore: | Maintenance | Build, deps, config |
Workflow
- Determine the range (since last tag, since a date, or all history)
- Get commits with
git log - Categorize by conventional commit prefix
- Format as a Keep a Changelog document
- Write to
CHANGELOG.mdor return as string
Common Pitfalls
- Non-conventional commits fall into "Other". Commits without
feat:/fix:prefixes get dumped in the catch-all bucket. Encourage the team to use conventional commits for better categorization, or the changelog will be mostly "Other". - Merge commits clutter the output. Merge commit messages (e.g. "Merge branch 'main'") add noise. Filter them with
--no-mergesin thegit logcommand before categorizing. - Squashed commits lose their history. A squash-merged PR collapses many commits into one message; the changelog reflects only the squash message, not the individual changes.
sincemust be a valid git ref. Pass a tag name (v1.0.0), a commit hash, or a date — an arbitrary string that isn't a real ref makesgit logsilently return the full history instead of erroring.- Cherry-picked commits appear twice. If the same commit is cherry-picked across branches, it has a different hash on each branch and shows up as a duplicate entry. Deduplicate by commit message text, not hash, when merging changelogs across branches.
Verification Checklist
generate_changelog()was actually run against the target repo and returned non-empty output (not just defined)- The
sinceargument, if provided, is a real tag/commit/date confirmed to exist in the repo - Merge commits were excluded (
--no-merges) unless the user wants them included - Output was spot-checked against
git log --onelinefor the same range to confirm no commits were silently dropped - Written output file (if any) matches Keep a Changelog section ordering: Added, Fixed, Changed, Performance, Documentation, Testing, Maintenance, Other
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

