← ClaudeAtlas

changeloglisted

Generate a Keep-a-Changelog style CHANGELOG.md from git history using Conventional Commits. Supports per-repo and unified multi-repo aggregation. Use when the user says '/changelog', 'generate changelog', 'what changed since v1.2.0', or before tagging a release.
Maximumsoft-Co-LTD/claude-flightdeck · ★ 2 · AI & Automation · score 78
Install: claude install-skill Maximumsoft-Co-LTD/claude-flightdeck
# /changelog — Generate from Git History ## Token budget (MANDATORY) - Bound `git log` by the tag range — do not log the entire history. - Use `--oneline --no-merges` to keep the output small. - Read the existing `CHANGELOG.md` once to preserve prior entries; never re-Read it per commit. ## Usage - `/changelog` — generate changelog for the current repo from git log since last tag - `/changelog --unified` — aggregate all per-repo changelogs into the platform `CHANGELOG.md` - `/changelog --all` — generate per-repo changelogs for every repo + unified - `/changelog --dry-run` — preview without writing files ## How it works ### Step 1 — Detect context Determine which repo you're in: - Inside a service / component repo → generate for that repo - At platform root with `--unified` → aggregate all repos - At platform root without `--unified` → ask user to clarify ### Step 2 — Find version range ```bash LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") if [ -z "$LATEST_TAG" ]; then RANGE="HEAD" else RANGE="${LATEST_TAG}..HEAD" fi ``` ### Step 3 — Parse git log ```bash git log ${RANGE} --oneline --no-merges ``` Parse each commit per Conventional Commits: `<type>(<scope>): <description>`. ### Step 4 — Map to Keep-a-Changelog categories | Conventional Commit Type | Changelog Category | |---|---| | `feat` | Added | | `fix` | Fixed | | `refactor`, `perf` | Changed | | `docs` | Changed | | `deprecate` (or message contains "deprecate") | Deprecated | | `rev