---
name: release
description: colmsg のバージョンリリースを計画・準備・公開するときに、互換性判断、リリースPR、GitHub Release、配布先更新の手順を適用する。
---

# colmsg のリリース

このスキルは、colmsg の次回リリースを計画・準備・公開する依頼に使う。通常の機能PRや、リリースと無関係な変更には適用しない。

## 変更内容とバージョンを決める

- 最新のGitHub Releaseとタグを確認し、そこから現在の `main` までに入った変更を調べる。
- CLIのオプションと表示、保存ファイルの形式、公開Rust APIを利用者向けインターフェースとして扱う。これらに互換性のない変更があれば、SemVerのメジャーバージョン更新を検討する。
- 既存の `CHANGELOG.md` と過去のリリースPRを参考に、変更点、破壊的変更、利用者が必要とする移行手順をまとめる。

## リリースPRを作る

- `main` の変更を取り込んだリリースブランチを使う。ブランチ名は `release/vX.Y.Z` とする。
- `Cargo.toml` のパッケージバージョンと `Cargo.lock` の `colmsg` バージョンを一致させる。
- `CHANGELOG.md` の先頭に新バージョンの節を追加する。互換性に影響する変更と移行方法は明示する。

## GitHub Releaseを作る

- [Releaseワークフロー](../../../.github/workflows/release.yml) は `workflow_dispatch` で実行する。バージョンは `Cargo.toml` から読み取られ、ワークフローがタグとGitHub Releaseを作成するため、手動でタグを作らない。
- タグが既に存在する場合は処理を止め、既存タグとReleaseの状態を調べる。既存リリースを上書きしたり、別バージョンのタグを使ったりしない。
- 公開後、GitHub Releaseのタイトル、生成されたリリースノート、5つの配布アーカイブを確認する。自動生成ノートに破壊的変更や移行方法が載っていなければ、Release本文に追記する。

## HomebrewとAUR

- [Homebrew更新ワークフロー](../../../.github/workflows/homebrew-update.yml) と [AUR更新ワークフロー](../../../.github/workflows/aur-update.yml) は、GitHub Release公開後に個別実行する。両方とも最新Releaseを参照する。
- 更新を依頼された場合に実行する。
- GitHub Releaseの依頼だけでは、HomebrewやAURの別リポジトリ更新まで依頼されたとは扱わない。明示的な依頼がなければ、更新手順を案内して止める。

## 操作範囲

- リリースの評価・計画・PR準備だけを依頼された場合、Releaseやパッケージ更新のワークフローを実行しない。
- 公開が明示的に依頼されている場合も、まず変更内容、バージョン、CI結果を確認してから公開する。
- 作業ツリーに既存の変更がある場合は保持し、ユーザーの明示的な指示なしに破棄しない。
