Release
ユーザーが「リリースしたい」「新しいバージョンを公開したい」「リリースを作成して」などと依頼したときに使用するスキルです。変更内容のレビュー、CHANGELOGの更新、セマンティックバージョニング(semver)の決定、パッケージの公開まで、リリースに必要な一連のワークフローを包括的にサポートします。
description の原文を見る
This skill should be used when the user asks to "make a release", "create a release", "cut a release", "release a new version", "publish a release", or mentions preparing for release. Provides comprehensive workflow for reviewing changes, updating changelog, determining semver bump, and publishing.
SKILL.md 本文
リリースワークフロー
このスキルは、linear-cli プロジェクトの新しいバージョンをリリースするための体系的なワークフローを提供します。チェンジログの管理、バージョンバンプ、テスト、タグ付けを処理します。
使用する時機
linear-cli の新しいバージョンをリリースする準備をするときに、このスキルを使用します。ワークフローにより、すべての変更がドキュメント化され、テストに合格し、公開前にバージョンが適切にタグ付けされていることが保証されます。
前提条件
以下のツールが利用可能であることを確認します:
- チェンジログ管理用の
changelogスキル - バージョンバンプ用の
svbump(インストール済み) - バージョン管理操作用の
jj - リリースタスク実行用の
just
リリースワークフロー
ステップ 1: 前回のリリース以降のコミットを確認
前回のリリース以降に行われたコミットを特定します:
jj log --ignore-working-copy --git -r 'tags()..@' --no-graph
これは、最新のタグから現在のコミットまでのすべてのコミットを表示します。
ステップ 2: チェンジログエントリを追加
上で特定された各コミットについて、チェンジログエントリが必要かどうかを評価します。ユーザーに対する変更に焦点を当てます:
チェンジログに含める:
- 新機能
- バグ修正
- 破壊的変更
- 大幅な改善
- 廃止予定機能
チェンジログから除外:
- ユーザーへの影響がない内部リファクタリング
- ドキュメント専用の変更
- ビルド/CI 設定の変更
- chore コミット(重要でない場合)
changelog CLI を使用してエントリを追加します。コミット SHA で --attribute-pr を使用すると、関連する PR を自動的に検索して、schpet と schpetbot を除外して帰属を追加できます:
changelog add --type <type> "<description>" --attribute-pr <commit-sha> --exclude-users schpet,schpetbot
関連する PR がないコミット、または帰属が関連していない場合は、--attribute-pr を省略します。
タイプは Keep a Changelog カテゴリと一致します:
added- 新機能changed- 既存機能の変更deprecated- すぐに削除される機能removed- 削除された機能fixed- バグ修正security- セキュリティ改善
ステップ 3: チェンジログをユーザーと確認
すべての関連するチェンジログエントリを追加したら、CHANGELOG.md の未リリースセクションをユーザーに表示して、レビューを求めます:
- CHANGELOG.md ファイルを読む
[Unreleased]セクションを表示する- 質問:「これらのチェンジログエントリを確認してください。リリース前に変更が必要な部分はありますか?」
- 要求されたすべての調整を行う
ステップ 4: セマンティック バージョニングバンプを決定
チェンジログの変更タイプに基づいて、適切なセマンティックバージョニングバンプを決定して推奨します:
メジャー (X.0.0):
- 破壊的変更
- 削除された機能
- 重大な API 変更
マイナー (0.X.0):
- 新機能(added)
- 廃止予定機能
- 後方互換性のある機能の追加
パッチ (0.0.X):
- バグ修正
- セキュリティ修正
- 新機能なしの軽微な改善
推奨をユーザーに提示します:
チェンジログエントリに基づいて、以下の理由で <MAJOR/MINOR/PATCH> バージョンバンプを推奨します:
- [理由 1]
- [理由 2]
現在のバージョン: <current>
提案されたバージョン: <proposed>
このバージョンバンプで進めてもよろしいでしょうか?
進める前にユーザーの確認を待ちます。
ステップ 5: チェンジログリリースを実行
ユーザーがバージョンバンプを確認したら、適切なセマンティックレベルでチェンジログリリースコマンドを実行します:
changelog release <major|minor|patch>
これにより CHANGELOG.md が更新され、Unreleased セクションが版付きリリースに変換されます。
ステップ 6: タグプロセスを実行
チェンジログがリリースされた後、justfile から完全なタグプロセスを実行します。これには以下が含まれます:
-
品質チェックを実行:
deno check src/main.ts deno fmt --check deno lint deno task test -
バージョンファイルを更新:
# チェンジログから最新バージョンを取得 LATEST_VERSION=$(changelog version latest) # バージョンを deno.json に書き込む svbump write "$LATEST_VERSION" version deno.json # deno.json からバージョンを読み込み、dist-workspace.toml に書き込む DENO_VERSION=$(svbump read version deno.json) svbump write "$DENO_VERSION" package.version dist-workspace.toml -
スキルドキュメントを再生成:
# 更新されたスキルドキュメントを生成(deno.json からバージョンを含む) deno task generate-skill-docs # Claude Code プラグインバージョンを更新 FINAL_VERSION=$(svbump read version deno.json) svbump write "$FINAL_VERSION" version .claude-plugin/plugin.json svbump write "$FINAL_VERSION" version .claude-plugin/marketplace.json # marketplace.json には plugins[0] 内にもバージョンがあります — svbump はアレイパスに対応できないため、 # jq を使用するか手動で編集して一致させてください -
コミットとタグを作成:
# 最終バージョンを取得 FINAL_VERSION=$(svbump read version deno.json) # コミットを作成 jj commit -m "chore: Release linear-cli version $FINAL_VERSION" # メインブックマークを親コミットに設定 jj bookmark set main -r @- # 親コミットにタグを作成 jj tag set "v$FINAL_VERSION" -r @- -
リモートにプッシュ:
# ブックマークをプッシュ jj git push --bookmark main # タグをプッシュ(git を使用) git push origin --tags -
完了を報告:
v$FINAL_VERSION を正常にリリースしました!
エラーハンドリング
いずれかのステップが失敗した場合:
- 品質チェックが失敗: リリースを続ける前に問題を修正します。テストが失敗またはリンティングエラーがある場合は、リリースを進めないでください。
- バージョンバンプが失敗: バージョン形式とファイルが存在することを確認します。
- プッシュが失敗: 認証とリモートアクセスを確認します。
常に停止してエラーを明確に報告します。重大なステップが失敗した場合は、リリースプロセスを続けないでください。
重要な注記
- justfile の
tagレシピはライン 5-21 から完全なプロセスを処理します - すべてのバージョン管理操作に
jjを使用します(プロジェクト CLAUDE.md に従い) - 読み取り専用の jj 操作には常に
--ignore-working-copyを使用します - ワークフローは親(@-)にコミットを作成し、その後新しい作業コミットを作成します
jj git pushとgit push origin --tagsの両方が必要です(ブックマーク用に jj、タグ用に git)
リリース後
リリースが成功した後:
- タグが GitHub に表示されることを確認
- GitHub Actions リリースワークフローがトリガーされることを確認(設定されている場合)
- 新しいバージョンが公開されたことを確認
参考資料
完全なタグレシピの実装については、justfile のライン 5-21 を参照してください。
ライセンス: ISC(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- schpet
- リポジトリ
- schpet/linear-cli
- ライセンス
- ISC
- 最終更新
- 不明
Source: https://github.com/schpet/linear-cli / ライセンス: ISC
関連スキル
newsblur-cli
ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。
caveman-compress
自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」
find-skills
日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。
planning-and-task-breakdown
仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。
docx
このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。
idea-refine
アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。