agentleFS
darkweb19darkweb19/skills/changelog-generator/SKILL.md

changelog-generator

Skill0 starsChanged 28 days agoApache-2.0View on GitHub

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'.

99 other projects use a version of this, 4 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use fda-consultant-specialist, quality-manager-qmr and 4 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.
  • Hussain-ElfalahSkill

    fda-consultant-specialist

    Also in 5 projects that use this

  • Hussain-ElfalahSkill

    quality-manager-qmr

    Also in 5 projects that use this

  • ComposioHQSkill

    meeting-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

  • ComposioHQSkill

    pr-review-ci-fix

    Automated PR review and CI auto-fix for GitHub and GitLab using the Composio CLI. Pulls diffs, fetches failing job logs, posts review comments, and loops fix commits until checks go green.

    Also in 4 projects that use this

  • CloudChefSkill

    information-security-manager-iso27001

    ISO 27001 ISMS implementation and cybersecurity governance for HealthTech and MedTech companies. Use for ISMS design, security risk assessment, control implementation, ISO 27001 certification, security audits, incident response, and compliance verification. Covers ISO 27001, ISO 27002, healthcare security, and medical device cybersecurity.

    Also in 5 projects that use this

  • +1 more from Hussain-Elfalah

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 13 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 92 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill to produce consistent, auditable release notes from Conventional Commits.

    line 14
  2. Distinctive:

    Before publishing a release tag

    line 27
  3. Distinctive:

    When converting raw git history into user-facing notes

    line 31
  4. Distinctive:

    When the user has not decided the next version, derive it instead of guessing:

    line 66
  5. Distinctive:

    Keep commits small and intent-driven.

    line 126
  6. Very specific:

    Keep an [Unreleased] section for manual curation when needed.

    line 131
  7. Distinctive:

    When a release goes wrong, classify before acting (full procedures in references/hotfix-procedures.md):

    line 135
  8. Distinctive:

    Prefer feature-flag disable over code rollback.

    line 157
  9. Distinctive:

    Use this release flow for predictability:

    line 169
  10. Very specific:

    Run commit_linter.py --strict on all PRs.

    line 187
  11. Distinctive:

    Prefer commit scopes aligned to package names.

    line 194
  12. Distinctive:

    Keep infra-wide changes in root changelog.

    line 196
  13. Distinctive:

    If no valid conventional commits found: fail early, do not generate misleading empty notes.

    line 201
  14. Distinctive:

    If git range invalid: surface explicit range in error output.

    line 202
  15. Distinctive:

    If write target missing: create safe changelog header scaffolding.

    line 203

“Common” is measured: kept by at least 6 in 10 of the 92 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.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. Compute the Next Version From Commits

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.

5. 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, 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):

SeverityDefinitionSLAApproval
P0 — CriticalOutage, data loss, exploited vulnerabilityFix deployed ≤ 2h; emergency deploy bypasses normal gatesEngineering Lead + On-call Manager
P1 — HighMajor feature broken, significant user impactFix deployed ≤ 24h; expedited reviewEngineering Lead + Product Manager
P2 — MediumMinor issues, limited impactNext release cycleStandard 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:

TriggerThreshold
Error rate spike> 2x baseline within 30 min
Performance degradation> 50% latency increase
Feature failureCore functionality broken
Security incidentVulnerability being exploited
Data corruptionDatabase 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

  • references/ci-integration.md
  • references/changelog-formatting-guide.md
  • references/monorepo-strategy.md
  • references/hotfix-procedures.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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.