Produce consistent, auditable release notes from Conventional Commits. Separates commit parsing, semantic-bump logic, and changelog rendering for automated rele
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-changelog-generator-56c9313480e2 ,按照其中的说明把「changelog-generator」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Tier: POWERFUL
Category: Engineering
Domain: Release Management / Documentation
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.
major, minor, patch) from commit streamAdded, Changed, Fixed, etc.)python3 scripts/generate_changelog.py \
--from-tag v1.3.0 \
--to-tag v1.4.0 \
--next-version v1.4.0 \
--format markdown
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
CHANGELOG.mdpython3 scripts/generate_changelog.py \
--from-tag v1.3.0 \
--to-tag HEAD \
--next-version v1.4.0 \
--write CHANGELOG.md
When the user has not decided the next version, derive it instead of guessing:
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.
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
Supported types:
feat, fix, perf, refactor, docs, test, build, ci, choresecurity, deprecated, removeBreaking changes:
type(scope)!: summaryBREAKING CHANGE:SemVer mapping:
majorfeat -> minorpatchpython3 scripts/generate_changelog.py --help
--inputpython3 scripts/commit_linter.py --help
--strict mode on violationsfeat(api): ...) in multi-package repos.[Unreleased] section for manual curation when needed.When a release goes wrong, classify before acting (full procedures in 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.
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.
Use this release flow for predictability:
Security section.commit_linter.py --strict on all PRs.CHANGELOG.md on main branch.