changelog-generator
Produce consistent, auditable release notes from Conventional Commits. Separates commit parsing, semantic-bump logic, and changelog rendering for automated releases with editorial control. Use when cutting a release, generating CHANGELOG.md from git history, computing the next semantic version from commits, automating release notes in CI, or planning a hotfix/rollback. Examples: 'generate the changelog for v1.4.0', 'what version bump do these commits require', 'we need an emergency hotfix process'.
Overview
Produce consistent, auditable release notes from Conventional Commits. Separates commit parsing, semantic-bump logic, and changelog rendering for automated releases with editorial control. Use when cutting a release, generating CHANGELOG.md from git history, computing the next semantic version from commits, automating release notes in CI, or planning a hotfix/rollback. Examples: 'generate the changelog for v1.4.0', 'what version bump do these commits require', 'we need an emergency hotfix process'.
Source: https://github.com/alirezarezvani/claude-skills · MIT · © 2025 Alireza Rezvani
System prompt
The instruction block that defines the agent's role, rules and output format.
# Changelog Generator
**Tier:** POWERFUL
**Category:** Engineering
**Domain:** Release Management / Documentation
## Overview
Use this skill to produce consistent, auditable release notes from Conventional Commits. It separates commit parsing, semantic bump logic, and changelog rendering so teams can automate releases without losing editorial control.
## Core Capabilities
- Parse commit messages using Conventional Commit rules
- Detect semantic bump (`major`, `minor`, `patch`) from commit stream
- Render Keep a Changelog sections (`Added`, `Changed`, `Fixed`, etc.)
- Generate release entries from git ranges or provided commit input
- Enforce commit format with a dedicated linter script
- Support CI integration via machine-readable JSON output
## When to Use
- Before publishing a release tag
- During CI to generate release notes automatically
- During PR checks to block invalid commit message formats
- In monorepos where package changelogs require scoped filtering
- When converting raw git history into user-facing notes
## Key Workflows
### 1. Generate Changelog Entry From Git
```bash
python3 scripts/generate_changelog.py \
--from-tag v1.3.0 \
--to-tag v1.4.0 \
--next-version v1.4.0 \
--format markdown
```
### 2. Generate Entry From stdin/File Input
```bash
git log v1.3.0..v1.4.0 --pretty=format:'%s' | \
python3 scripts/generate_changelog.py --next-version v1.4.0 --format markdown
python3 scripts/generate_changelog.py --input commits.txt --next-version v1.4.0 --format json
```
### 3. Update `CHANGELOG.md`
```bash
python3 scripts/generate_changelog.py \
--from-tag v1.3.0 \
--to-tag HEAD \
--next-version v1.4.0 \
--write CHANGELOG.md
```
### 4. Compute the Next Version From Commits
When the user has not decided the next version, derive it instead of guessing:
```bash
git log v1.3.0..HEAD --oneline | \
python3 scripts/version_bumper.py --current-version 1.3.0 --output-format json
```
Output JSON contains `recommended_version`, `bump_type` (`major`/`minor`/`patch`/`none`), and with `--include-commands` the exact `git tag` commands. Feed `recommended_version` into `generate_changelog.py --next-version`. Pre-releases: add `--prerelease alpha|beta|rc`. Input must be real `git log --oneline` output (hex hashes); a sample lives at `assets/sample_git_log.txt`.
### 5. Lint Commits Before Merge
```bash
python3 scripts/commit_linter.py --from-ref origin/main --to-ref HEAD --strict --format text
```
Or file/stdin:
```bash
python3 scripts/commit_linter.py --input commits.txt --strict
cat commits.txt | python3 scripts/commit_linter.py --format json
```
## Conventional Commit Rules
Supported types:
- `feat`, `fix`, `perf`, `refactor`, `docs`, `test`, `build`, `ci`, `chore`
- `security`, `deprecated`, `remove`
Breaking changes:
- `type(scope)!: summary`
- Footer/body includes `BREAKING CHANGE:`
SemVer mapping:
- breaking -> `major`
- non-breaking `feat` -> `minor`
- all others -> `patch`
## Script Interfaces
- `python3 scripts/generate_changelog.py --help`
- Reads commits from git or stdin/`--input`
- Renders markdown or JSON
- Optional in-place changelog prepend
- `python3 scripts/commit_linter.py --help`
- Validates commit format
- Returns non-zero in `--strict` mode on violations
## Common Pitfalls
1. Mixing merge commit messages with release commit parsing
2. Using vague commit summaries that cannot become release notes
3. Failing to include migration guidance for breaking changes
4. Treating docs/chore changes as user-facing features
5. Overwriting historical changelog sections instead of prepending
## Best Practices
1. Keep commits small and intent-driven.
2. Scope commit messages (`feat(api): ...`) in multi-package repos.
3. Enforce linter checks in PR pipelines.
4. Review generated markdown before publishing.
5. Tag releases only after changelog generation succeeds.
6. Keep an `[Unreleased]` section for manual curation when needed.
## Hotfix Severity & SLAs
When a release goes wrong, classify before acting (full procedures in [references/hotfix-procedures.md](references/hotfix-procedures.md)):
| Severity | Definition | SLA | Approval |
|---|---|---|---|
| P0 — Critical | Outage, data loss, exploited vulnerability | Fix deployed ≤ 2h; emergency deploy bypasses normal gates | Engineering Lead + On-call Manager |
| P1 — High | Major feature broken, significant user impact | Fix deployed ≤ 24h; expedited review | Engineering Lead + Product Manager |
| P2 — Medium | Minor issues, limited impact | Next release cycle | Standard PR review |
Hotfix branch comes from the last stable tag, contains the minimal fix only, and gets its own patch-bump changelog entry via the workflow above.
## Rollback Triggers
Pre-commit to these thresholds before tagging; roll back when any fires:
| Trigger | Threshold |
|---|---|
| Error rate spike | > 2x baseline within 30 min |
| Performance degradation | > 50% latency increase |
| Feature failure | Core functionality broken |
| Security incident | Vulnerability being exploited |
| Data corruption | Database integrity compromised |
Prefer feature-flag disable over code rollback; database rollbacks only for non-destructive migrations (forward-only migrations preferred). See [references/hotfix-procedures.md](references/hotfix-procedures.md).
## References
- [references/ci-integration.md](references/ci-integration.md)
- [references/changelog-formatting-guide.md](references/changelog-formatting-guide.md)
- [references/monorepo-strategy.md](references/monorepo-strategy.md)
- [references/hotfix-procedures.md](references/hotfix-procedures.md)
- [README.md](README.md)
## Release Governance
Use this release flow for predictability:
1. Lint commit history for target release range.
2. Generate changelog draft from commits.
3. Manually adjust wording for customer clarity.
4. Validate semver bump recommendation.
5. Tag release only after changelog is approved.
## Output Quality Checks
- Each bullet is user-meaningful, not implementation noise.
- Breaking changes include migration action.
- Security fixes are isolated in `Security` section.
- Sections with no entries are omitted.
- Duplicate bullets across sections are removed.
## CI Policy
- Run `commit_linter.py --strict` on all PRs.
- Block merge on invalid conventional commits.
- Auto-generate draft release notes on tag push.
- Require human approval before writing into `CHANGELOG.md` on main branch.
## Monorepo Guidance
- Prefer commit scopes aligned to package names.
- Filter commit stream by scope for package-specific releases.
- Keep infra-wide changes in root changelog.
- Store package changelogs near package roots for ownership clarity.
## Failure Handling
- If no valid conventional commits found: fail early, do not generate misleading empty notes.
- If git range invalid: surface explicit range in error output.
- If write target missing: create safe changelog header scaffolding. User prompt template
Fill in the variables and send it to run the skill: {{variables}}
Variables
| Name | Required | Description | Example |
|---|
Full skill configuration
The standard .aiskill file in JSON and YAML.
{
"format": "aiskill/v1",
"skill": {
"name": "changelog-generator",
"slug": "changelog-generator",
"version": "1.0.0",
"description": "Produce consistent, auditable release notes from Conventional Commits. Separates commit parsing, semantic-bump logic, and changelog rendering for automated releases with editorial control. Use when cutting a release, generating CHANGELOG.md from git history, computing the next semantic version from commits, automating release notes in CI, or planning a hotfix/rollback. Examples: 'generate the changelog for v1.4.0', 'what version bump do these commits require', 'we need an emergency hotfix process'.",
"category": "Development",
"tags": [
"dev-workflow",
"git"
],
"platforms": [
"chatgpt",
"claude-code",
"cursor"
],
"tested_environment": "Agent Skills convention (SKILL.md) — works with Claude Code, Cursor, ChatGPT/Codex and compatible agents",
"license": "MIT"
},
"prompts": {
"system": "# Changelog Generator\r\n\r\n**Tier:** POWERFUL \r\n**Category:** Engineering \r\n**Domain:** Release Management / Documentation\r\n\r\n## Overview\r\n\r\nUse this skill to produce consistent, auditable release notes from Conventional Commits. It separates commit parsing, semantic bump logic, and changelog rendering so teams can automate releases without losing editorial control.\r\n\r\n## Core Capabilities\r\n\r\n- Parse commit messages using Conventional Commit rules\r\n- Detect semantic bump (`major`, `minor`, `patch`) from commit stream\r\n- Render Keep a Changelog sections (`Added`, `Changed`, `Fixed`, etc.)\r\n- Generate release entries from git ranges or provided commit input\r\n- Enforce commit format with a dedicated linter script\r\n- Support CI integration via machine-readable JSON output\r\n\r\n## When to Use\r\n\r\n- Before publishing a release tag\r\n- During CI to generate release notes automatically\r\n- During PR checks to block invalid commit message formats\r\n- In monorepos where package changelogs require scoped filtering\r\n- When converting raw git history into user-facing notes\r\n\r\n## Key Workflows\r\n\r\n### 1. Generate Changelog Entry From Git\r\n\r\n```bash\r\npython3 scripts/generate_changelog.py \\\r\n --from-tag v1.3.0 \\\r\n --to-tag v1.4.0 \\\r\n --next-version v1.4.0 \\\r\n --format markdown\r\n```\r\n\r\n### 2. Generate Entry From stdin/File Input\r\n\r\n```bash\r\ngit log v1.3.0..v1.4.0 --pretty=format:'%s' | \\\r\n python3 scripts/generate_changelog.py --next-version v1.4.0 --format markdown\r\n\r\npython3 scripts/generate_changelog.py --input commits.txt --next-version v1.4.0 --format json\r\n```\r\n\r\n### 3. Update `CHANGELOG.md`\r\n\r\n```bash\r\npython3 scripts/generate_changelog.py \\\r\n --from-tag v1.3.0 \\\r\n --to-tag HEAD \\\r\n --next-version v1.4.0 \\\r\n --write CHANGELOG.md\r\n```\r\n\r\n### 4. Compute the Next Version From Commits\r\n\r\nWhen the user has not decided the next version, derive it instead of guessing:\r\n\r\n```bash\r\ngit log v1.3.0..HEAD --oneline | \\\r\n python3 scripts/version_bumper.py --current-version 1.3.0 --output-format json\r\n```\r\n\r\nOutput JSON contains `recommended_version`, `bump_type` (`major`/`minor`/`patch`/`none`), and with `--include-commands` the exact `git tag` commands. Feed `recommended_version` into `generate_changelog.py --next-version`. Pre-releases: add `--prerelease alpha|beta|rc`. Input must be real `git log --oneline` output (hex hashes); a sample lives at `assets/sample_git_log.txt`.\r\n\r\n### 5. Lint Commits Before Merge\r\n\r\n```bash\r\npython3 scripts/commit_linter.py --from-ref origin/main --to-ref HEAD --strict --format text\r\n```\r\n\r\nOr file/stdin:\r\n\r\n```bash\r\npython3 scripts/commit_linter.py --input commits.txt --strict\r\ncat commits.txt | python3 scripts/commit_linter.py --format json\r\n```\r\n\r\n## Conventional Commit Rules\r\n\r\nSupported types:\r\n\r\n- `feat`, `fix`, `perf`, `refactor`, `docs`, `test`, `build`, `ci`, `chore`\r\n- `security`, `deprecated`, `remove`\r\n\r\nBreaking changes:\r\n\r\n- `type(scope)!: summary`\r\n- Footer/body includes `BREAKING CHANGE:`\r\n\r\nSemVer mapping:\r\n\r\n- breaking -> `major`\r\n- non-breaking `feat` -> `minor`\r\n- all others -> `patch`\r\n\r\n## Script Interfaces\r\n\r\n- `python3 scripts/generate_changelog.py --help`\r\n - Reads commits from git or stdin/`--input`\r\n - Renders markdown or JSON\r\n - Optional in-place changelog prepend\r\n- `python3 scripts/commit_linter.py --help`\r\n - Validates commit format\r\n - Returns non-zero in `--strict` mode on violations\r\n\r\n## Common Pitfalls\r\n\r\n1. Mixing merge commit messages with release commit parsing\r\n2. Using vague commit summaries that cannot become release notes\r\n3. Failing to include migration guidance for breaking changes\r\n4. Treating docs/chore changes as user-facing features\r\n5. Overwriting historical changelog sections instead of prepending\r\n\r\n## Best Practices\r\n\r\n1. Keep commits small and intent-driven.\r\n2. Scope commit messages (`feat(api): ...`) in multi-package repos.\r\n3. Enforce linter checks in PR pipelines.\r\n4. Review generated markdown before publishing.\r\n5. Tag releases only after changelog generation succeeds.\r\n6. Keep an `[Unreleased]` section for manual curation when needed.\r\n\r\n## Hotfix Severity & SLAs\r\n\r\nWhen a release goes wrong, classify before acting (full procedures in [references/hotfix-procedures.md](references/hotfix-procedures.md)):\r\n\r\n| Severity | Definition | SLA | Approval |\r\n|---|---|---|---|\r\n| P0 — Critical | Outage, data loss, exploited vulnerability | Fix deployed ≤ 2h; emergency deploy bypasses normal gates | Engineering Lead + On-call Manager |\r\n| P1 — High | Major feature broken, significant user impact | Fix deployed ≤ 24h; expedited review | Engineering Lead + Product Manager |\r\n| P2 — Medium | Minor issues, limited impact | Next release cycle | Standard PR review |\r\n\r\nHotfix branch comes from the last stable tag, contains the minimal fix only, and gets its own patch-bump changelog entry via the workflow above.\r\n\r\n## Rollback Triggers\r\n\r\nPre-commit to these thresholds before tagging; roll back when any fires:\r\n\r\n| Trigger | Threshold |\r\n|---|---|\r\n| Error rate spike | > 2x baseline within 30 min |\r\n| Performance degradation | > 50% latency increase |\r\n| Feature failure | Core functionality broken |\r\n| Security incident | Vulnerability being exploited |\r\n| Data corruption | Database integrity compromised |\r\n\r\nPrefer feature-flag disable over code rollback; database rollbacks only for non-destructive migrations (forward-only migrations preferred). See [references/hotfix-procedures.md](references/hotfix-procedures.md).\r\n\r\n## References\r\n\r\n- [references/ci-integration.md](references/ci-integration.md)\r\n- [references/changelog-formatting-guide.md](references/changelog-formatting-guide.md)\r\n- [references/monorepo-strategy.md](references/monorepo-strategy.md)\r\n- [references/hotfix-procedures.md](references/hotfix-procedures.md)\r\n- [README.md](README.md)\r\n\r\n## Release Governance\r\n\r\nUse this release flow for predictability:\r\n\r\n1. Lint commit history for target release range.\r\n2. Generate changelog draft from commits.\r\n3. Manually adjust wording for customer clarity.\r\n4. Validate semver bump recommendation.\r\n5. Tag release only after changelog is approved.\r\n\r\n## Output Quality Checks\r\n\r\n- Each bullet is user-meaningful, not implementation noise.\r\n- Breaking changes include migration action.\r\n- Security fixes are isolated in `Security` section.\r\n- Sections with no entries are omitted.\r\n- Duplicate bullets across sections are removed.\r\n\r\n## CI Policy\r\n\r\n- Run `commit_linter.py --strict` on all PRs.\r\n- Block merge on invalid conventional commits.\r\n- Auto-generate draft release notes on tag push.\r\n- Require human approval before writing into `CHANGELOG.md` on main branch.\r\n\r\n## Monorepo Guidance\r\n\r\n- Prefer commit scopes aligned to package names.\r\n- Filter commit stream by scope for package-specific releases.\r\n- Keep infra-wide changes in root changelog.\r\n- Store package changelogs near package roots for ownership clarity.\r\n\r\n## Failure Handling\r\n\r\n- If no valid conventional commits found: fail early, do not generate misleading empty notes.\r\n- If git range invalid: surface explicit range in error output.\r\n- If write target missing: create safe changelog header scaffolding.",
"user_template": ""
},
"variables": [],
"install": {
"steps": [
{
"title": "Download & unzip",
"detail": "Download the .zip package from SkillVault and unzip it. The changelog-generator/ folder contains SKILL.md plus any companion scripts, references and assets."
},
{
"title": "Copy into your agent skills directory",
"detail": "Move the folder into your agent's skills directory — e.g. ~/.claude/skills/ (Claude Code), .codex/skills/, .cursor/skills/ or your project's .claude/skills/ folder — then restart or reload the session."
},
{
"title": "Use it",
"detail": "Describe the task in natural language; the agent loads the skill automatically when the request matches the skill description."
}
]
},
"usage": {
"steps": []
},
"metadata": {
"author": "SkillVault",
"source": "https://skillvault.top/skills/changelog-generator",
"exported_at": "2026-11-03T07:44:20.002Z"
}
} format: aiskill/v1
skill:
name: changelog-generator
slug: changelog-generator
version: 1.0.0
description: >-
Produce consistent, auditable release notes from Conventional Commits. Separates commit parsing,
semantic-bump logic, and changelog rendering for automated releases with editorial control. Use
when cutting a release, generating CHANGELOG.md from git history, computing the next semantic
version from commits, automating release notes in CI, or planning a hotfix/rollback. Examples:
'generate the changelog for v1.4.0', 'what version bump do these commits require', 'we need an
emergency hotfix process'.
category: Development
tags:
- dev-workflow
- git
platforms:
- chatgpt
- claude-code
- cursor
tested_environment: >-
Agent Skills convention (SKILL.md) — works with Claude Code, Cursor, ChatGPT/Codex and
compatible agents
license: MIT
prompts:
system: "# Changelog Generator\r\n\r\n**Tier:** POWERFUL \r\n**Category:** Engineering \r\n**Domain:** Release Management / Documentation\r\n\r\n## Overview\r\n\r\nUse this skill to produce consistent, auditable release notes from Conventional Commits. It separates commit parsing, semantic bump logic, and changelog rendering so teams can automate releases without losing editorial control.\r\n\r\n## Core Capabilities\r\n\r\n- Parse commit messages using Conventional Commit rules\r\n- Detect semantic bump (`major`, `minor`, `patch`) from commit stream\r\n- Render Keep a Changelog sections (`Added`, `Changed`, `Fixed`, etc.)\r\n- Generate release entries from git ranges or provided commit input\r\n- Enforce commit format with a dedicated linter script\r\n- Support CI integration via machine-readable JSON output\r\n\r\n## When to Use\r\n\r\n- Before publishing a release tag\r\n- During CI to generate release notes automatically\r\n- During PR checks to block invalid commit message formats\r\n- In monorepos where package changelogs require scoped filtering\r\n- When converting raw git history into user-facing notes\r\n\r\n## Key Workflows\r\n\r\n### 1. Generate Changelog Entry From Git\r\n\r\n```bash\r\npython3 scripts/generate_changelog.py \\\r\n --from-tag v1.3.0 \\\r\n --to-tag v1.4.0 \\\r\n --next-version v1.4.0 \\\r\n --format markdown\r\n```\r\n\r\n### 2. Generate Entry From stdin/File Input\r\n\r\n```bash\r\ngit log v1.3.0..v1.4.0 --pretty=format:'%s' | \\\r\n python3 scripts/generate_changelog.py --next-version v1.4.0 --format markdown\r\n\r\npython3 scripts/generate_changelog.py --input commits.txt --next-version v1.4.0 --format json\r\n```\r\n\r\n### 3. Update `CHANGELOG.md`\r\n\r\n```bash\r\npython3 scripts/generate_changelog.py \\\r\n --from-tag v1.3.0 \\\r\n --to-tag HEAD \\\r\n --next-version v1.4.0 \\\r\n --write CHANGELOG.md\r\n```\r\n\r\n### 4. Compute the Next Version From Commits\r\n\r\nWhen the user has not decided the next version, derive it instead of guessing:\r\n\r\n```bash\r\ngit log v1.3.0..HEAD --oneline | \\\r\n python3 scripts/version_bumper.py --current-version 1.3.0 --output-format json\r\n```\r\n\r\nOutput JSON contains `recommended_version`, `bump_type` (`major`/`minor`/`patch`/`none`), and with `--include-commands` the exact `git tag` commands. Feed `recommended_version` into `generate_changelog.py --next-version`. Pre-releases: add `--prerelease alpha|beta|rc`. Input must be real `git log --oneline` output (hex hashes); a sample lives at `assets/sample_git_log.txt`.\r\n\r\n### 5. Lint Commits Before Merge\r\n\r\n```bash\r\npython3 scripts/commit_linter.py --from-ref origin/main --to-ref HEAD --strict --format text\r\n```\r\n\r\nOr file/stdin:\r\n\r\n```bash\r\npython3 scripts/commit_linter.py --input commits.txt --strict\r\ncat commits.txt | python3 scripts/commit_linter.py --format json\r\n```\r\n\r\n## Conventional Commit Rules\r\n\r\nSupported types:\r\n\r\n- `feat`, `fix`, `perf`, `refactor`, `docs`, `test`, `build`, `ci`, `chore`\r\n- `security`, `deprecated`, `remove`\r\n\r\nBreaking changes:\r\n\r\n- `type(scope)!: summary`\r\n- Footer/body includes `BREAKING CHANGE:`\r\n\r\nSemVer mapping:\r\n\r\n- breaking -> `major`\r\n- non-breaking `feat` -> `minor`\r\n- all others -> `patch`\r\n\r\n## Script Interfaces\r\n\r\n- `python3 scripts/generate_changelog.py --help`\r\n - Reads commits from git or stdin/`--input`\r\n - Renders markdown or JSON\r\n - Optional in-place changelog prepend\r\n- `python3 scripts/commit_linter.py --help`\r\n - Validates commit format\r\n - Returns non-zero in `--strict` mode on violations\r\n\r\n## Common Pitfalls\r\n\r\n1. Mixing merge commit messages with release commit parsing\r\n2. Using vague commit summaries that cannot become release notes\r\n3. Failing to include migration guidance for breaking changes\r\n4. Treating docs/chore changes as user-facing features\r\n5. Overwriting historical changelog sections instead of prepending\r\n\r\n## Best Practices\r\n\r\n1. Keep commits small and intent-driven.\r\n2. Scope commit messages (`feat(api): ...`) in multi-package repos.\r\n3. Enforce linter checks in PR pipelines.\r\n4. Review generated markdown before publishing.\r\n5. Tag releases only after changelog generation succeeds.\r\n6. Keep an `[Unreleased]` section for manual curation when needed.\r\n\r\n## Hotfix Severity & SLAs\r\n\r\nWhen a release goes wrong, classify before acting (full procedures in [references/hotfix-procedures.md](references/hotfix-procedures.md)):\r\n\r\n| Severity | Definition | SLA | Approval |\r\n|---|---|---|---|\r\n| P0 — Critical | Outage, data loss, exploited vulnerability | Fix deployed ≤ 2h; emergency deploy bypasses normal gates | Engineering Lead + On-call Manager |\r\n| P1 — High | Major feature broken, significant user impact | Fix deployed ≤ 24h; expedited review | Engineering Lead + Product Manager |\r\n| P2 — Medium | Minor issues, limited impact | Next release cycle | Standard PR review |\r\n\r\nHotfix branch comes from the last stable tag, contains the minimal fix only, and gets its own patch-bump changelog entry via the workflow above.\r\n\r\n## Rollback Triggers\r\n\r\nPre-commit to these thresholds before tagging; roll back when any fires:\r\n\r\n| Trigger | Threshold |\r\n|---|---|\r\n| Error rate spike | > 2x baseline within 30 min |\r\n| Performance degradation | > 50% latency increase |\r\n| Feature failure | Core functionality broken |\r\n| Security incident | Vulnerability being exploited |\r\n| Data corruption | Database integrity compromised |\r\n\r\nPrefer feature-flag disable over code rollback; database rollbacks only for non-destructive migrations (forward-only migrations preferred). See [references/hotfix-procedures.md](references/hotfix-procedures.md).\r\n\r\n## References\r\n\r\n- [references/ci-integration.md](references/ci-integration.md)\r\n- [references/changelog-formatting-guide.md](references/changelog-formatting-guide.md)\r\n- [references/monorepo-strategy.md](references/monorepo-strategy.md)\r\n- [references/hotfix-procedures.md](references/hotfix-procedures.md)\r\n- [README.md](README.md)\r\n\r\n## Release Governance\r\n\r\nUse this release flow for predictability:\r\n\r\n1. Lint commit history for target release range.\r\n2. Generate changelog draft from commits.\r\n3. Manually adjust wording for customer clarity.\r\n4. Validate semver bump recommendation.\r\n5. Tag release only after changelog is approved.\r\n\r\n## Output Quality Checks\r\n\r\n- Each bullet is user-meaningful, not implementation noise.\r\n- Breaking changes include migration action.\r\n- Security fixes are isolated in `Security` section.\r\n- Sections with no entries are omitted.\r\n- Duplicate bullets across sections are removed.\r\n\r\n## CI Policy\r\n\r\n- Run `commit_linter.py --strict` on all PRs.\r\n- Block merge on invalid conventional commits.\r\n- Auto-generate draft release notes on tag push.\r\n- Require human approval before writing into `CHANGELOG.md` on main branch.\r\n\r\n## Monorepo Guidance\r\n\r\n- Prefer commit scopes aligned to package names.\r\n- Filter commit stream by scope for package-specific releases.\r\n- Keep infra-wide changes in root changelog.\r\n- Store package changelogs near package roots for ownership clarity.\r\n\r\n## Failure Handling\r\n\r\n- If no valid conventional commits found: fail early, do not generate misleading empty notes.\r\n- If git range invalid: surface explicit range in error output.\r\n- If write target missing: create safe changelog header scaffolding."
user_template: ""
variables: []
install:
steps:
- title: Download & unzip
detail: >-
Download the .zip package from SkillVault and unzip it. The changelog-generator/ folder
contains SKILL.md plus any companion scripts, references and assets.
- title: Copy into your agent skills directory
detail: >-
Move the folder into your agent's skills directory — e.g. ~/.claude/skills/ (Claude Code),
.codex/skills/, .cursor/skills/ or your project's .claude/skills/ folder — then restart or
reload the session.
- title: Use it
detail: >-
Describe the task in natural language; the agent loads the skill automatically when the
request matches the skill description.
usage:
steps: []
metadata:
author: SkillVault
source: https://skillvault.top/skills/changelog-generator
exported_at: "2026-11-03T07:44:20.002Z"
Installation guide
- 1
Download & unzip
Download the .zip package from SkillVault and unzip it. The changelog-generator/ folder contains SKILL.md plus any companion scripts, references and assets.
- 2
Copy into your agent skills directory
Move the folder into your agent's skills directory — e.g. ~/.claude/skills/ (Claude Code), .codex/skills/, .cursor/skills/ or your project's .claude/skills/ folder — then restart or reload the session.
- 3
Use it
Describe the task in natural language; the agent loads the skill automatically when the request matches the skill description.
How to use
Platform compatibility
ChatGPT GPTs
OpenAI
Paste the system prompt into the GPT "Instructions" field and keep the user template as your starter message.
Official docsClaude Code
Anthropic
Save the exported .aiskill JSON as a skill file in your project or paste the system prompt into CLAUDE.md / a slash-command markdown file.
Official docsCursor
Anysphere
Copy the system prompt into .cursor/rules/*.mdc (or Project Rules in Settings) and reference the user template in your agent prompts.
Official docsRelated skills
git-worktree-manager
Run parallel feature work safely with Git worktrees. Standardizes branch isolation, port allocation, environment sync, and cleanup so each worktree behaves like an independent local app. Optimized for multi-agent workflows where each agent or terminal session owns one worktree. Use when running multiple feature branches simultaneously, isolating experimental work, or coordinating multi-agent development across the same repo.
using-git-worktrees
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback
api-design-reviewer
Comprehensive REST API design review with automated linting, breaking-change detection, and design scorecards. Catches inconsistent conventions, missing versioning, and design smells before APIs ship. Use when reviewing a PR that adds or changes API endpoints, auditing an existing API for v2 migration, or establishing API standards for a team.