# GSD Core をアップデートする方法 既存の GSD Core インストールを最新リリースに更新し、コミット前に変更履歴をプレビューし、アップデートによって上書きされるローカルカスタマイズを回復します。 **必要なもの:** GSD がインストールされているのと同じランタイム。アップデートコマンドは内部でインストーラを再実行するため、Node.js と npx が利用可能である必要があります(元のインストールと同じ要件)。 --- ## 標準的なアップデート手順 AI ランタイム内から以下を実行します。 ```bash /gsd-update ``` GSD は以下を実行します。 1. インストール済みバージョンとインストールスコープ(グローバルまたはローカル)を検出する。 2. `@opengsd/gsd-core` の最新リリースを npm で確認する。 3. 変更履歴を取得し、インストール済みバージョンと最新バージョンの差分を表示する。 4. 何も触れる前に確認を求める。 5. GSD 管理ディレクトリ内に見つかったユーザーが追加したファイルを `gsd-user-files-backup/` にバックアップする。 6. インストーラを実行する(`npx @opengsd/gsd-core@latest -- --`)。 7. アップデートチェックキャッシュをクリアしてステータスラインのインジケーターをリセットする。 8. ローカルで変更された GSD ファイルが `gsd-local-patches/` にバックアップされたかどうかを報告する。 アップデート後にランタイムを再起動して、新しいコマンドとエージェントを読み込んでください。 --- ## フラグ | フラグ | 動作 | |------|--------------| | `--sync` | アップデート後に GSD レジストリからスキルを同期する | | `--reapply` | アップデート後に `gsd-local-patches/` からローカルで変更された GSD ファイルをマージして戻す | ```bash /gsd-update --sync # アップデートしてスキルを同期する /gsd-update --reapply # アップデートしてローカルパッチを再適用する ``` --- ## アップデート前に変更履歴を確認する `/gsd-update` は確認を求める前に、インストール済みバージョンと最新バージョン間の変更履歴差分を常に表示します。GitHub を別途確認する必要はありません。出力は以下のようになります。 ```text ## GSD Update Available Installed: 1.39.0 Latest: 1.41.0 ### What's New ──────────────────────────────────────────────────────────── [changelog entries for 1.40.0 and 1.41.0] ──────────────────────────────────────────────────────────── Proceed with update? [Yes, update now / No, cancel] ``` 変更履歴を取得できない場合(ネットワークアクセスなし、npm の障害)、アップデートは確認後も続行されます。変更履歴の利用可能性でブロックされることはありません。 --- ## ローカルカスタマイズの回復 ### GSD 管理ディレクトリ内に追加したファイル GSD が所有するディレクトリ内にカスタムファイルを配置した場合(例:`gsd-` プレフィックスのカスタムエージェント、`commands/gsd/` への追加ファイル)、インストーラはそれらを検出し、ディレクトリを削除する前に `gsd-user-files-backup/` にコピーします。アップデート後、そのバックアップ場所から手動で復元してください。 GSD 管理ディレクトリの外に配置したファイル(`gsd-` プレフィックスのないカスタムエージェント、`commands/gsd/` 外のカスタムコマンド、`CLAUDE.md` ファイル、カスタムフック)はインストーラによって一切変更されません。 ### GSD がインストールしたファイルへの直接変更 GSD がインストールしたファイルを編集した場合(例:エージェントのシステムプロンプトの調整)、インストーラはマニフェストのハッシュ比較で変更を検出し、ファイルを `gsd-local-patches/` にバックアップしてから新しいバージョンで置き換えます。アップデート後: ```bash /gsd-update --reapply ``` これにより、新しくインストールされたファイルに `gsd-local-patches/` からの変更がマージして戻されます。 以前のアップデート後に `--reapply` をスキップしてパッチを今すぐ適用したい場合: ```bash /gsd-update --reapply ``` `--reapply` は新しいダウンロードをトリガーせずに単独で実行しても安全です。すでに最新バージョンであれば、GSD はインストールステップをスキップして直接パッチの再適用に進みます。 --- ## npm が利用できない場合 ネットワーク制限、npm の障害、またはソースリポジトリから作業しているため `npx @opengsd/gsd-core@latest` が失敗する場合は、[docs/manual-update.md](../../manual-update.md) の手動アップデート手順を使用してください。そのドキュメントには、最新コミットの取得、フックの dist のビルド、`node bin/install.js` の直接実行が記載されています。 --- ## すでに最新バージョンの場合 `/gsd-update` は確認メッセージとともに早期終了します。ダウンロード、インストール、再起動は不要です。 --- ## インストーラの移行 各 GSD リリースには、管理ファイルの名前変更、移動、廃止を行うインストーラ移行が含まれる場合があります。移行レイヤーは新しいパッケージペイロードが書き込まれる前に自動的に実行されます。変更したファイルに影響する移行はサイレントに実行されず、確認が求められます。設計の詳細とランタイム設定コントラクトレジストリについては、[docs/installer-migrations.md](../../installer-migrations.md) を参照してください。 --- ## Related - [ランタイムにインストールする](install-on-your-runtime.md) - [コマンドリファレンス](../COMMANDS.md) - [手動アップデート](../../manual-update.md) - [インストーラ移行](../../installer-migrations.md) - [ドキュメント一覧](../README.md)