changelog-generator
kumaran-is/claude-code-onboarding/.claude/skills/changelog-generator/SKILL.md
This skill should be used when preparing releases, writing app store updates, or maintaining a CHANGELOG.md. It parses conventional commits and outputs polished release notes.
Skill35 starsChanged 4 months ago
What's in it
- Changelog Generator Skill
- High-Level Process
- Key Rules
- Output Destinations
- Automation Tip
- Anti-Patterns
- Error Handling
Tools it asks for
- Bash
- Read
- Write
- Edit
--- name: changelog-generator description: This skill should be used when preparing releases, writing app store updates, or maintaining a CHANGELOG.md. It parses conventional commits and outputs polished release notes. allowed-tools: Bash, Read, Write, Edit metadata: triggers: changelog, release notes, CHANGELOG.md, git log, release preparation, conventional commits, app store update, version release related-skills: pr-review, documentation-generation, verification-before-completion domain: workflow role: specialist scope: analysis output-format: document last-reviewed: "2026-03-15" --- **Iron Law:** Never generate a changelog without reading actual git history or diff; always base entries on verified commits, not assumptions. # Changelog Generator Skill Transform git commit history into polished, user-friendly changelogs. Works with any tech stack by auto-detecting the project structure. ## High-Level Process 1. **Detect project structure** - Scan repo for platform markers (Java, Node, Python, Angular, Flutter, etc.) and build a platform label map 2. **Determine commit range** - Use tags, dates, or commit count. Ask user if unclear 3. **Extract commits** - Pull structured log: `git log "$LAST_TAG"..HEAD --pretty=format:"%h|%ai|%an|%s" --no-merges` 4. **Categorize** - Map conventional commit prefixes to user-facing categories (feat -> New Features, fix -> Bug Fixes, perf -> Performance). Skip refactor/test/chore/ci/build/style 5. **Rewrite** - Translate technical commits to user-friendly language. Lead with user benefit, strip jargon 6. **Assemble** - Format changelog for the target destination 7. **Output** - Write to CHANGELOG.md, GitHub Release, App Store, Slack, or internal format For detailed step-by-step workflow (project detection scripts, commit parsing, categorization table, rewriting rules, assembly format) -> Read [reference/changelog-workflow.md](reference/changelog-workflow.md) For output format examples (App Store, Keep a Changelog, internal/technical, Slack/email) -> Read [reference/changelog-workflow.md](reference/changelog-workflow.md) ## Key Rules - Read `CLAUDE.md` first if it exists -- it describes the project's tech stack and conventions - Always include: `feat:`, `fix:`, `perf:`, `security:`, `BREAKING CHANGE` - Always skip: `refactor:`, `test:`, `chore:`, `ci:`, `build:`, `style:` - Non-conventional commits: categorize by intent, include under "Improvements" if ambiguous - Multi-platform repos: prefix entries with platform label (e.g., **Mobile App**, **Web App**, **Backend**) - Single-platform repos: skip the label entirely ## Output Destinations | Destination | Action | |-------------|--------| | `CHANGELOG.md` | Prepend to existing file (newest on top) | | GitHub Release | Output as Markdown block ready to paste | | App Store | Shorter format, no emoji, plain language, max 4000 chars | | Slack / Email | Condensed summary with highlights only | | Internal | Include technical details and commit hashes | ## Automation Tip Suggest to the user: add a `pre-release` hook or CI step that runs this skill automatically when tagging a new version. Pair with the `/changelog` command for quick manual runs. For tool configuration (`cliff.toml`, `release.config.js`, GitHub Actions release workflow) -> Read [reference/changelog-automation-tools.md](reference/changelog-automation-tools.md) ## Anti-Patterns > ❌ **Don't invent entries.** Never add changelog items that have no backing commit. Every line must map to a real commit hash. > ❌ **Don't expose internals.** "Refactored UserService to use factory pattern" is not user-facing. Rewrite as the benefit, or skip it. > ❌ **Don't copy commit messages verbatim.** Raw messages like `fix: typo in auth handler` become noise. Rewrite to user-facing language or drop it. > ❌ **Don't include chore/ci/test/build commits** in user-facing changelogs. They belong in internal/technical format only. ## Error Handling **Empty git log (no commits in range)**: ```bash git log "$LAST_TAG"..HEAD --oneline # returns nothing ``` Stop. Do not generate an empty changelog. Report: "No commits found between `$LAST_TAG` and HEAD. Confirm the tag name or provide a date range." **`git log` command fails (no tags exist)**: ```bash git describe --tags --abbrev=0 # fatal: No names found, cannot describe anything. ``` Fall back to full history: `git log --pretty=format:"%h|%ai|%an|%s" --no-merges`. Warn the user that the range is unbounded (all commits since repo init). **No conventional commits found**: Verify commit messages follow `type:` prefix format. Fall back to manual changelog if history is inconsistent. **Ambiguous scope**: When a commit touches multiple features, split the changelog entry by affected area.
More agent context in kumaran-is/claude-code-onboarding
157 other files this repository gives its agents, the first 60 shown.
CLAUDE.md
Skill
- a2ui-angular.claude/skills/a2ui-angular/SKILL.md
- accessibility-audit.claude/skills/accessibility-audit/SKILL.md
- adk-deploy-guide.claude/skills/adk-deploy-guide/SKILL.md
- adk-dev-guide.claude/skills/adk-dev-guide/SKILL.md
- adk-eval-guide.claude/skills/adk-eval-guide/SKILL.md
- adk-observability-guide.claude/skills/adk-observability-guide/SKILL.md
- agentic-ai-coding-standard.claude/skills/agentic-ai-coding-standard/SKILL.md
- agentic-ai-dev.claude/skills/agentic-ai-dev/SKILL.md
- ai-audit.claude/skills/ai-audit/SKILL.md
- ai-chat.claude/skills/ai-chat/SKILL.md
- ai-decision-record.claude/skills/ai-decision-record/SKILL.md
- ai-incident-response.claude/skills/ai-incident-response/SKILL.md
- ai-launch-check.claude/skills/ai-launch-check/SKILL.md
- ai-playbook.claude/skills/ai-playbook/SKILL.md
- angular-best-practices.claude/skills/angular-best-practices/SKILL.md
- angular.claude/skills/angular/SKILL.md
- angular-spa.claude/skills/angular-spa/SKILL.md
- angular-ui-patterns.claude/skills/angular-ui-patterns/SKILL.md
- api-design-principles.claude/skills/api-design-principles/SKILL.md
- app-store-optimization.claude/skills/app-store-optimization/SKILL.md
- architect-review.claude/skills/architect-review/SKILL.md
- architecture-decision-records.claude/skills/architecture-decision-records/SKILL.md
- architecture-design.claude/skills/architecture-design/SKILL.md
- asc-cli-usage.claude/skills/asc-cli-usage/SKILL.md
- asc-crash-triage.claude/skills/asc-crash-triage/SKILL.md
- asc-id-resolver.claude/skills/asc-id-resolver/SKILL.md
- asc-release-flow.claude/skills/asc-release-flow/SKILL.md
- asc-signing-setup.claude/skills/asc-signing-setup/SKILL.md
- asc-submission-health.claude/skills/asc-submission-health/SKILL.md
- asc-testflight-orchestration.claude/skills/asc-testflight-orchestration/SKILL.md
- browser-testing.claude/skills/browser-testing/SKILL.md
- claude-actions-auditor.claude/skills/claude-actions-auditor/SKILL.md
- clean-code.claude/skills/clean-code/SKILL.md
- codebase-onboarding.claude/skills/codebase-onboarding/SKILL.md
- code-explainer.claude/skills/code-explainer/SKILL.md
- code-reviewer.claude/skills/code-reviewer/SKILL.md
- code-simplifier.claude/skills/code-simplifier/SKILL.md
- comment-analyzer.claude/skills/comment-analyzer/SKILL.md
- database-schema-designer.claude/skills/database-schema-designer/SKILL.md
- ddd-architect.claude/skills/ddd-architect/SKILL.md
- decision-frameworks.claude/skills/decision-frameworks/SKILL.md
- dedup-code-agent.claude/skills/dedup-code-agent/SKILL.md
- deployment-ci-cd.claude/skills/deployment-ci-cd/SKILL.md
- design-system.claude/skills/design-system/SKILL.md
- docker.claude/skills/docker/SKILL.md
- documentation-generation.claude/skills/documentation-generation/SKILL.md
- domain-finder.claude/skills/domain-finder/SKILL.md
- error-detective.claude/skills/error-detective/SKILL.md
- eval-guide.claude/skills/eval-guide/SKILL.md
- feature-forge.claude/skills/feature-forge/SKILL.md
- firebase-basics.claude/skills/firebase-basics/SKILL.md
- firebase-hosting-basics.claude/skills/firebase-hosting-basics/SKILL.md
- fixing-accessibility.claude/skills/fixing-accessibility/SKILL.md
- fixing-motion-performance.claude/skills/fixing-motion-performance/SKILL.md
- flutter-animations.claude/skills/flutter-animations/SKILL.md
- flutter-genui.claude/skills/flutter-genui/SKILL.md
- flutter-mobile.claude/skills/flutter-mobile/SKILL.md
- flutter-security-expert.claude/skills/flutter-security-expert/SKILL.md
- frontend-design.claude/skills/frontend-design/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

