> changelog-generator
Changelog Generator
curl "https://skillshub.wtf/alirezarezvani/claude-skills/changelog-generator?format=md"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
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
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
python3 scripts/generate_changelog.py \
--from-tag v1.3.0 \
--to-tag HEAD \
--next-version v1.4.0 \
--write CHANGELOG.md
4. Lint Commits Before Merge
python3 scripts/commit_linter.py --from-ref origin/main --to-ref HEAD --strict --format text
Or file/stdin:
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,choresecurity,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
- Reads commits from git or stdin/
python3 scripts/commit_linter.py --help- Validates commit format
- Returns non-zero in
--strictmode on violations
Common Pitfalls
- Mixing merge commit messages with release commit parsing
- Using vague commit summaries that cannot become release notes
- Failing to include migration guidance for breaking changes
- Treating docs/chore changes as user-facing features
- Overwriting historical changelog sections instead of prepending
Best Practices
- Keep commits small and intent-driven.
- Scope commit messages (
feat(api): ...) in multi-package repos. - Enforce linter checks in PR pipelines.
- Review generated markdown before publishing.
- Tag releases only after changelog generation succeeds.
- Keep an
[Unreleased]section for manual curation when needed.
References
- references/ci-integration.md
- references/changelog-formatting-guide.md
- references/monorepo-strategy.md
- README.md
Release Governance
Use this release flow for predictability:
- Lint commit history for target release range.
- Generate changelog draft from commits.
- Manually adjust wording for customer clarity.
- Validate semver bump recommendation.
- 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
Securitysection. - Sections with no entries are omitted.
- Duplicate bullets across sections are removed.
CI Policy
- Run
commit_linter.py --stricton all PRs. - Block merge on invalid conventional commits.
- Auto-generate draft release notes on tag push.
- Require human approval before writing into
CHANGELOG.mdon 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.
> related_skills --same-repo
> change-management
Framework for rolling out organizational changes without chaos. Covers the ADKAR model adapted for startups, communication templates, resistance patterns, and change fatigue management. Handles process changes, org restructures, strategy pivots, and culture changes. Use when announcing a reorg, switching tools, pivoting strategy, killing a product, changing leadership, or when user mentions change management, change rollout, managing resistance, org change, reorg, or pivot communication.
> challenge
/em -challenge — Pre-Mortem Plan Analysis
> cfo-advisor
Financial leadership for startups and scaling companies. Financial modeling, unit economics, fundraising strategy, cash management, and board financial packages. Use when building financial models, analyzing unit economics, planning fundraising, managing cash runway, preparing board materials, or when user mentions CFO, burn rate, runway, fundraising, unit economics, LTV, CAC, term sheets, or financial strategy.
> ceo-advisor
Executive leadership guidance for strategic decision-making, organizational development, and stakeholder management. Use when planning strategy, preparing board presentations, managing investors, developing organizational culture, making executive decisions, fundraising, or when user mentions CEO, strategic planning, board meetings, investor updates, organizational leadership, or executive strategy.