← ClaudeAtlas

generate-changelog-zh-twlisted

依據 Git 提交紀錄自動產生 CHANGELOG 區段(繁體中文),並支援 MinVer 版本號推進規格。
CloudyWing/ai-dotfiles · ★ 0 · AI & Automation · score 76
Install: claude install-skill CloudyWing/ai-dotfiles
# 產生 CHANGELOG(繁體中文) ## 格式基礎 檔名為 `CHANGELOG.md`,文件標題為 `# Changelog`。全大寫是根目錄檔名慣例(與 `README.md`、`LICENSE.md` 同類),標題屬於給人閱讀的散文層,採一般標題大小寫,兩者不共用同一套規則。[Keep a Changelog](https://keepachangelog.com/) 的規格頁範例與該專案自身的 `CHANGELOG.md` 皆採 `# Changelog`。 版本區段的結構沿用 conventional-changelog 風格,與 Keep a Changelog 規格不同,差異如下: | 項目 | 本 Skill | Keep a Changelog | | --- | --- | --- | | 版本標題 | `## v1.2.0 (2026-04-04)` | `## [1.2.0] - 2026-04-04` | | 分類名稱 | New Features/Bug Fixes/Improvements/BREAKING CHANGE | Added/Changed/Deprecated/Removed/Fixed/Security | 採 conventional-changelog 分類的理由是條目由 Conventional Commits 的 type 推導,分類與 commit type 一對一對應。版本號依 MinVer 規格推進,條目語言使用台灣用語正體中文。 ## 使用方式 ``` /generate-changelog-zh-tw [版本號] ``` 若未傳入版本號,依 MinVer 規格自動推算下一個版本號(見步驟 1)。 ## 執行步驟 ### 1. 確認版本號 **已傳入版本號**:直接使用,確認格式符合 `MAJOR.MINOR.PATCH`(可含預發布後綴如 `-preview.1`)。 **未傳入版本號**,依序嘗試以下來源: 1. **從分支名稱推算**:執行 `git branch --show-current` 取得當前分支名稱。 - 若符合 `release/vX.Y.Z` 或 `hotfix/vX.Y.Z` 格式,擷取版本號(去掉 `v` 前綴),直接使用。 - 若不符合上述格式,進入下一步。 2. **從 Git Tag 推算**:執行 `git tag --sort=-v:refname | head -1` 取得最新標籤,讀取自上次標籤以來的 commit 類型,依下列規則推算: - 有任何 `BREAKING CHANGE` → 升 MAJOR。 - 有 `feat:` 但無 Breaking Change → 升 MINOR。 - 僅有 `fix:`、`docs:`、`chore:` 等 → 升 PATCH。 3. **無任何標籤**:詢問使用者初始版本號(預設建議 `0.1.0`)。 ### 2. 取得 Commit 紀錄 執行: ```bash git log [上次標籤]..HEAD --pretty=format:"%H %s" --no-merges ``` 若無標籤,改用: ```bash git log --pretty=format:"%H %s" --no-merges ``` ### 3. 過濾與分類 Commit 依 Conventional Commits 類型分類,過濾掉非使用者可