Agent skill
version-release
版本發布整合工具。Use for: (1) 發布新版本(合併到 main、打 Tag、推送), (2) 發布前健康檢查(所有 Ticket 完成?CHANGELOG 更新?), (3) 更新版本文件(worklog 狀態、CHANGELOG)。Use when: 準備發布版本、執行 /version-release check 確認發布前狀態、完成所有 Ticket 後要收尾時。
Install this agent skill to your Project
npx add-skill https://github.com/tarrragon/claude/tree/main/skills/version-release
SKILL.md
Version Release Skill
版本發布整合工具,處理完整的版本發布流程。結合工作日誌檢查、CHANGELOG 更新、Git 操作(合併、Tag、推送、清理)。
核心功能
目的: 自動化版本發布流程,確保所有檢查通過後再進行 Git 操作
工作流程:
- Pre-flight 檢查 - 驗證 worklog 完成度、技術債務狀態、版本同步
- 文件更新 - 清理 todolist、更新 CHANGELOG、確認版本號
- Git 操作 - 合併、建立 Tag、推送、清理分支
三步驟發布流程
Step 1: Pre-flight 檢查
驗證發布前置條件是否滿足:
def preflight_check(version: str):
"""
1.1 確認 worklog 目標達成
- 掃描 docs/work-logs/v{VERSION}*.md
- 檢查主工作日誌中的 Phase 是否都標記完成 (✅)
- 驗證 Phase 0-4 都已執行並記錄
1.2 檢查技術債務狀態
- 讀取 todolist.yaml 的「技術債務追蹤」區塊
- 確認當前版本的 TD 是否都已處理或延遲到下一版本
- 驗證沒有未分類的 TD
1.3 版本同步檢查
- pubspec.yaml 版本 vs worklog 版本一致
- 當前分支是否為 feature/v{VERSION}
- 工作目錄是否乾淨(沒有未提交的修改)
1.4 檔案存在檢查
- CHANGELOG.md 存在
- 主工作日誌存在 (v{VERSION}.0-main.md)
- todolist.yaml 存在
"""
檢查項目:
- ✅ 所有 Phase 工作日誌已完成
- ✅ 技術債務已分類和處理
- ✅ 版本號在所有地方一致
- ✅ 當前分支正確
- ✅ 工作目錄乾淨
Step 2: 文件更新
更新 CHANGELOG、todolist 等文件:
def update_documents(version: str):
"""
2.1 清理 todolist.yaml
- 找出當前版本系列在任務表格中的行
- 標記該版本為已完成
- 更新版本狀態表格的 「開發狀態」 列
- 格式: ✅ Phase 3b 完成 → ✅ 已完成
2.2 更新 CHANGELOG.md(Keep a Changelog 格式)
- 讀取工作日誌提取功能變動
- 生成版本區塊: ## [X.Y.Z] - YYYY-MM-DD
- 分類: Added, Changed, Fixed, Removed
- 複製到 CHANGELOG.md 頂部(在其他版本之前)
2.3 確認 pubspec.yaml 版本號正確
- 驗證 version: X.Y.Z 行存在
- 與 worklog 版本號一致
"""
更新檔案:
docs/todolist.yaml- 標記版本為已完成CHANGELOG.md- 新增版本變動記錄pubspec.yaml- 驗證版本號
Step 3: Git 操作
執行 Git 相關操作:
def git_merge_and_push(version: str, dry_run: bool = False):
"""
3.1 提交所有變更(如果有未提交的)
git add docs/todolist.yaml CHANGELOG.md
git commit -m "docs: 版本 {version} 發布準備"
3.2 切換到 main 分支
git checkout main
3.3 git pull origin main(確保最新)
git pull origin main
3.4 合併 feature 分支(--no-ff 保留合併記錄)
git merge feature/v{VERSION} --no-ff -m "Merge v{VERSION}"
3.5 建立 Tag(v{VERSION}-final,如 v0.19-final)
git tag v{VERSION}-final
git tag -a v{VERSION}-final -m "Release v{VERSION}"
3.6 推送到遠端(包含 tag)
git push origin main
git push origin v{VERSION}-final
3.7 刪除本地和遠端 feature 分支
git branch -d feature/v{VERSION}
git push origin --delete feature/v{VERSION}
"""
Git 操作順序:
- 提交檔案變更
- 切換到 main 分支
- 拉取最新 main
- 合併 feature 分支(保留合併記錄)
- 建立 Tag
- 推送 main + Tag
- 刪除本地/遠端 feature 分支
CLI 介面設計
主要使用方式
# 自動偵測當前版本
uv run .claude/skills/version-release/scripts/version_release.py release
# 指定版本
uv run .claude/skills/version-release/scripts/version_release.py release --version 0.19
# 預覽模式(不實際執行 git 操作)
uv run .claude/skills/version-release/scripts/version_release.py release --dry-run
# 只執行檢查
uv run .claude/skills/version-release/scripts/version_release.py check
# 只更新文件
uv run .claude/skills/version-release/scripts/version_release.py update-docs
子命令說明
| 子命令 | 說明 | 範例 |
|---|---|---|
release |
完整發布流程 | release --version 0.19 --dry-run |
check |
只執行 Pre-flight 檢查 | check --version 0.19 |
update-docs |
只更新文件 | update-docs --dry-run |
release Options: --version TEXT(版本號)、--dry-run(預覽模式)、--force(跳過檢查,不推薦)
版本偵測
偵測優先順序:--version 參數 -> git branch (feature/vX.Y) -> pubspec.yaml -> git tag
支援格式:完整版本(0.19.8)、中版本(0.19,自動加 .0)、自動偵測(不指定)。
詳細說明和輸出範例:references/cli-output-examples.md
版本策略(Monorepo 三層架構)
本工具支援 monorepo 三層版本架構,透過 .version-release.yaml 配置檔定義版本策略。
三層版本定義
| 層級 | 來源 | 獨立性 | 說明 |
|---|---|---|---|
| L1 Monorepo | docs/todolist.yaml | 權威來源 | 整體專案版本,Ticket/Wave 以此為準 |
| L2 UI | ui/pubspec.yaml | 獨立 | Flutter 應用版本,可獨立升級 |
| L3 Server | server/go.mod | 隱含同步 | Go module 無自身版本欄位 |
版本不匹配判斷
check 子命令會輸出三層版本對比。L2 UI 版本與 L1 不同是預期行為,
不視為錯誤。只有 L1 monorepo 版本與 git tag 不一致才是需要修正的情況。
.version-release.yaml 配置檔
若需調整版本策略,可在專案根目錄建立或編輯 .version-release.yaml。
配置檔不存在時,工具使用內建預設值(三層架構策略)。
詳細配置結構:.claude/pm-rules/monorepo-version-strategy.md
前置條件
- 系統要求: Python 3.10+、Git 2.0+
- Python 依賴:
pyyaml(YAML 解析)、click(CLI 框架,可選) - 完成 Phase 4 重構評估,所有工作日誌已記錄
- 技術債務已分類,在
feature/v{VERSION}分支上 pubspec.yaml版本號已更新
錯誤排除
常見問題和恢復指引:references/troubleshooting.md
相關資源
- 前置 Skill:
tech-debt-capture(Phase 4 技術債務提取) - 後置操作: GitHub Release 建立(手動)、版本公告發佈(手動)
- 相關文件:
docs/todolist.yaml、CHANGELOG.md、pubspec.yaml、docs/work-logs/ - 錯誤排除:
references/troubleshooting.md - 輸出範例:
references/cli-output-examples.md
使用流程檢查清單
- 所有 Phase 工作日誌已完成
- Phase 0-4 都標記為 ✅
- 技術債務已分類到 todolist.yaml
- 運行
check確認所有檢查通過 - 運行
release --dry-run預覽 - 運行
release完成發布 - 驗證 main 分支已更新
- 驗證 Tag 已建立
- 確認 feature 分支已清理
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
skill-design-guide
Use this skill when creating a new skill, updating an existing skill's YAML frontmatter, or reviewing skill quality. Provides the official Anthropic skill specification, frontmatter rules, description writing best practices, progressive disclosure architecture, and common pitfalls to avoid. Triggers include: creating skills, skill review, frontmatter validation, SKILL.md writing.
test-async-guardian
Flutter/Dart 測試異步資源管理守護者。用於:(1) 診斷測試卡住問題,(2) 審查測試程式碼中的異步資源清理,(3) 提供 tearDown 最佳實踐,(4) 掃描潛在的資源洩漏風險。觸發場景:測試卡住、撰寫新測試、Code Review 測試程式碼、執行 flutter test 前自動掃描。
agent-team
Agent Teams 協作派發指南。Use when: (1) Agent A 的發現會改變 Agent B 正在進行的工作, (2) 用戶要求使用 team/swarm, (3) 多代理人需即時協商共用介面或 API 契約。涵蓋 team 建立、Ticket-Task 橋接、teammate 入職、生命週期管理。
tdd
TDD 全流程指導工具。Use for: (1) 開始新功能的 TDD 流程(Phase 0-4), (2) 推進到下一個 TDD 階段, (3) Phase 1 SOLID 原則驅動功能拆分分析, (4) 查看當前 TDD 進度和階段狀態, (5) 評估是否需要 Phase 4 重構以及 3b 拆分評估。Use when: 開始新功能開發、進入任何 TDD Phase、需要 SOLID 拆分指導、需要確認當前所在 TDD 階段、需要做 Phase 4 豁免判斷時。
branch-worktree-guardian
Branch Worktree Guardian - Git 分支和 Worktree 管理工具。Use for: (1) 新開發需求時建立隔離分支, (2) 使用 worktree 機制避免分支衝突, (3) 驗證當前工作分支正確性, (4) 預防在錯誤分支上開發
design-decision-framework
多方案評估決策框架。用於面臨 3+ 技術方案時的結構化評估、架構決策時的系統化分析,防止衝動決策和技術債務累積。Use for: 技術方案選擇、重大架構決策、高風險技術選型
Didn't find tool you were looking for?