groove-admin-update について
最新リリースのインストール、ローカル状態の未適用マイグレーションの順次実行、プラットフォーム別スキルのシンボリックリンク更新を行う Groove メンテナンススキルです。Groove のメンテナーや既存環境を更新するユーザー向けです。
主な機能
- 01最新 GitHub リリースの確認
- 02再試行を伴うインストールとバージョン照合
- 03バージョン順のマイグレーション適用
- 04ローカル Groove バージョンの更新
- 05プラットフォーム別スキルリンクの更新
活用シーン
- 01新リリース後の Groove 更新
- 02既存ローカル Groove 状態の移行
- 03更新後のプラットフォーム別スキルリンク修復
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ andreadellacorte/ groove --skill groove-admin-updateインストール後、Claude Code で/groove-admin-updateを入力して読み込まれたか確認します。
詳細
groove-admin-update
メンテナー(andreadellacorte/groove リポジトリ): 新しい GitHub リリースを公開した後、チェックアウト済みの .agents/skills/groove* が npx skills add andreadellacorte/groove でインストールされるものと一致するように、groove リポジトリのルートでこれを実行してください。詳しくは CONTRIBUTING.md の「リリースの公開」を参照してください。そのために skills/ から手動で rsync を実行しないでください。
結果
保留中のすべてのマイグレーションが、ユーザーのローカル groove 状態にバージョン順で適用されます。.groove/index.md には、現在インストールされている groove のバージョンが反映されます。
受け入れ条件
- 更新後、
.groove/index.mdのgroove-version:がskills/groove/SKILL.mdのversion:と一致している - 保留中の各マイグレーションが順番どおりに適用されている
- マイグレーションが成功するたびに
groove-version:が更新される(途中までの進行状況から復旧可能) - すでに最新の場合、明確に報告して終了する
- 正しい情報源の確認:「最新」と報告するのは、インストール済みスキルのバージョンが最新の GitHub リリースと一致する場合のみです。追加の手順で古いバージョンがディスクに残った場合(キャッシュやデフォルトブランチなど)、ユーザーに警告し、修正方法を伝えます
手順
https://api.github.com/repos/andreadellacorte/groove/releases/latestから最新のリリースタグを取得します(tag_name。先頭のvは除去)。これが対象バージョンです。API 呼び出しに失敗した場合は、バージョン確認をスキップし、対象バージョンを指定せずに続行します。- 再試行しながらインストール:
npx skills add andreadellacorte/groove --yesを実行します(@tagは付けません。CLI はタグ構文に対応していません)。完了後、skills/groove/SKILL.mdのversion:を読み取り、対象バージョンと比較します。インストール済みバージョンが対象バージョンより古いままの場合は、10 秒待ってからnpx skills add andreadellacorte/groove --yesを再試行します。合計で最大 3 回まで繰り返します。すべての試行で対象バージョンをインストールできなかった場合は、「インストール済みは v ですが、最新リリースは v です —npx skills addが古いバージョンをキャッシュしている可能性があります。後でもう一度お試しください。」と報告して終了します。- インストールに成功したら、続行する前に、この SKILL.md(
skills/groove-admin-update/SKILL.md)をディスクから再読み込みします。スキルの更新によって更新コマンド自体も更新されている可能性があるため、以降の手順には最新バージョンの内容を反映する必要があります
- インストールに成功したら、続行する前に、この SKILL.md(
.groove/index.mdからgroove-version:を読み取ります。キーが存在しない場合は0.1.0とみなし、書き込みますskills/groove/SKILL.mdのversion:からインストール済みバージョンを読み取ります(手順 2 ですでに対象バージョンと一致することを確認済みです)- ローカルバージョンとインストール済みバージョンが一致する場合は、「groove は最新です(v)」と報告して終了します
skills/groove/migrations/index.mdを読み取り、マイグレーション表を解析します- 表の順序どおりに、
Toがローカルバージョンより大きく、かつインストール済みバージョン以下の行を抽出します。Fromフィールドは参考情報のみで、実行可否の判断には使用しません - バージョンが異なるのにマイグレーションが見つからない場合は、
.groove/index.mdのgroove-version:をインストール済みバージョンに直接更新し、「状態のマイグレーションは不要です — バージョンを v に更新しました」と報告します - 保留中の各マイグレーションについて、次を行います。
a. 「 → を適用中:」と報告します
b. マイグレーションファイルを読み取り、実行します
c.
.groove/index.mdのgroove-version:をToバージョンに更新します d. 「✓ → を適用しました」と報告します - 概要を報告します:N 件のマイグレーションを適用し、現在のバージョンは v です
- 更新後にプラットフォームのシンボリックリンクを再同期します。
.agents/skills/内でgrooveから始まる各ディレクトリについて、次を行います。.claude/skills/<name>が../../.agents/skills/<name>を指すシンボリックリンクであることを確認します(古い場合は作成または更新).cursor/skills/が存在する場合は、.cursor/skills/<name>が../../.agents/skills/<name>を指すシンボリックリンクであることを確認します
.agents/skills/に存在しなくなった.claude/skills/groove-*または.cursor/skills/groove-*の項目を削除します(削除済みスキルの古いシンボリックリンク)- 次を実行します:
for skill in .agents/skills/groove*; do name=$(basename "$skill"); ln -sfn "../../.agents/skills/$name" ".claude/skills/$name"; done - 既存のディレクトリシンボリックリンク内にネストしたシンボリックリンクが作られるのを防ぐため、
ln -sfn(参照先をたどらない)を使用します - 「✓ プラットフォームのシンボリックリンクを更新しました」と報告します
制約
- 「最新」の信頼できる情報源は GitHub のリリースです —
npx skills addは古いバージョンをキャッシュすることがあります。ステップ 1~2 では最新のリリースタグを取得し、正しいバージョンがインストールされるよう、最大 3 回までインストールを再試行します。 - マイグレーションをスキップしないでください —
Fromがローカルのバージョンと正確に一致しない場合でも、該当するすべてのマイグレーションを表の順序どおりに適用します groove-version:は最後にまとめてではなく、個々のマイグレーションの適用後に更新します- マイグレーションに失敗した場合:停止し、失敗内容と現在のバージョンを報告して、続行しないでください
- スキルファイルは変更しないでください — その処理は
npx skills updateが行います。このコマンドはローカル状態のみをマイグレーションします - ローカル状態には、
.groove/index.mdの設定キー、メモリディレクトリの構造、AGENTS.md のセクションが含まれます - 各マイグレーションファイルは冪等です — 一部失敗した後に再実行しても安全です
コメント
Markdown 対応