Release Har Skill
汎用的なリリース自動化スキル。任意のプロジェクトで使用可能。
Quick Reference
- "リリースして" →
/release-har - "バージョンを上げて" →
/release-har patch - "マイナーリリース" →
/release-har minor
Execution Flow
Step 1: 現在の状態確認
以下を並列で実行:
# 未コミットの変更
git status
# 変更ファイル一覧
git diff --stat
# 最近のコミット履歴
git log --oneline -10
# 既存タグの確認
git tag --sort=-v:refname | head -5
Step 2: バージョン決定
Semantic Versioning に基づいてバージョンを決定:
| バージョン | 変更内容 |
|---|---|
| patch (x.y.Z) | バグ修正、軽微な改善 |
| minor (x.Y.0) | 新機能(後方互換性あり) |
| major (X.0.0) | 破壊的変更 |
ユーザーに確認: "次のバージョンは? (例: 1.2.3)"
Step 3: CHANGELOG 更新(存在する場合)
プロジェクトに CHANGELOG.md があれば更新:
## [X.Y.Z] - YYYY-MM-DD
### Added
- 新機能
### Changed
- 変更点
### Fixed
- バグ修正
CHANGELOG が存在しない場合はスキップ
Step 4: バージョンファイル更新(プロジェクト依存)
プロジェクトの構成に応じてバージョンファイルを更新:
| ファイル | 更新方法 |
|---|---|
package.json |
"version": "X.Y.Z" |
pyproject.toml |
version = "X.Y.Z" |
VERSION |
内容を直接更新 |
Cargo.toml |
version = "X.Y.Z" |
該当ファイルがなければスキップ
Step 5: コミットとタグ
# ステージング
git add -A
# コミット(変更がある場合のみ)
git commit -m "chore: release vX.Y.Z"
# タグ作成
git tag -a vX.Y.Z -m "Release vX.Y.Z"
Step 6: プッシュ
# ブランチをプッシュ
git push origin $(git branch --show-current)
# タグをプッシュ
git push origin vX.Y.Z
Step 7: GitHub Release(オプション)
ユーザーに確認後、GitHub Release を作成:
gh release create vX.Y.Z \
--title "vX.Y.Z - タイトル" \
--notes "$(cat <<'EOF'
## What's Changed
- 変更内容1
- 変更内容2
**Full Changelog**: https://github.com/OWNER/REPO/compare/vPREV...vX.Y.Z
EOF
)"
オプション
| オプション | 説明 |
|---|---|
patch |
パッチバージョンを自動インクリメント |
minor |
マイナーバージョンを自動インクリメント |
major |
メジャーバージョンを自動インクリメント |
--dry-run |
実行せずに確認のみ |
プロジェクト固有の対応
Node.js (package.json)
npm version patch --no-git-tag-version
Python (pyproject.toml)
手動で version = "X.Y.Z" を更新
Rust (Cargo.toml)
手動で version = "X.Y.Z" を更新
Related Skills
x-release-harness- Harness プラグイン専用リリース(ローカルのみ)verify- リリース前の検証