snapshot-push について
bonbon-aiの外側のリポジトリを、be/とfe/のサブリポジトリ内容も含めてGitLabへスナップショットとしてプッシュする専用スキルです。所定のルートを確認して既存スクリプトを実行し、コミットハッシュと変更ファイル数を報告します。
主な機能
- 01bonbon-aiのリポジトリルート限定
- 02be/とfe/の内容をスナップショットに包含
- 03内側の.gitディレクトリを一時退避して復元
- 04任意のコミットメッセージをスクリプトに渡す
- 05コミットハッシュと変更ファイル数を報告
- 06ルート違いまたはプッシュ失敗時に停止
活用シーン
- 01bonbon-ai全体のスナップショットをプッシュ
- 02外側のリポジトリへのプッシュにbe/とfe/を含める
- 03スナップショットの結果とエラーを確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rheinmir/ setup --skill snapshot-pushインストール後、Claude Code で/snapshot-pushを入力して読み込まれたか確認します。
詳細
スキル:snapshot-push
概要
目的とコンテキスト
- 目的: 外側のリポジトリ
bonbon-ai全体をスナップショットとして GitLab にプッシュします。.gitが個別にあるサブリポジトリであるbe/とfe/の内容も含みます。.gitディレクトリを自動で一時退避・復元するスクリプトscripts/snapshot-push.shを使用します。 - トリガー(使用するタイミング): 「スナップショットをプッシュ」「スナップショットのプッシュ」「スナップショットを送る」「外側のリポジトリをプッシュ」。
- 対象外:
be//fe/の各サブリポジトリを個別にプッシュすること、およびbonbon-ai以外のリポジトリへの適用。
メンタルモデル
リポジトリルート bonbon-ai → snapshot-push.sh(be/ と fe/ の .git を一時退避 → コミット+プッシュ → .git を復元)→ コミットハッシュ+変更ファイル数
入力と出力の契約
| フィールド | 必須? | 意味 | |
|---|---|---|---|
| 入力 | message | いいえ | 任意のコミットメッセージ。スクリプトに渡します |
| 出力 | プッシュ結果 | はい | コミットハッシュ+変更ファイル数をユーザーに報告します |
ルールと機能
- RULE-01(必須):スクリプトの実行前に、正しいリポジトリルート(
/Volumes/giatbhSSD(APFS)/workspace/bonbon-ai)にいることを確認します。 - 機能:既存のスクリプトを介して外側のリポジトリの Git を読み書きします。リモートの GitLab に書き込みます(プッシュ)。
失敗時の境界
- 正しいリポジトリルートにいない場合 → ブロック。スクリプトを実行しません。
- スクリプトがエラーになった場合(プッシュ失敗) → 失敗。エラーの出力をそのままユーザーに報告します。
手順
メインワークフロー
| ステップ | 種類 | 入力 | アクション | 出力/終了 | 失敗時/次の処理 |
|---|---|---|---|---|---|
| W01 | 決定的 | cwd | リポジトリルートを確認 | 正しいルート | 違う場合 → ブロック |
| W02 | 副作用あり | message | snapshot-push スクリプトを実行 | コミット+プッシュ | エラー → 失敗 |
| W03 | 決定的 | スクリプトの出力 | コミットハッシュ+変更ファイル数を報告 | 報告 | — |
各ステップの詳細(W01~W03 の正しい情報源):
- 正しいリポジトリルート(
/Volumes/giatbhSSD(APFS)/workspace/bonbon-ai)にいることを確認します。 - 実行します:
bash scripts/snapshot-push.sh "<optional message>" - 結果を報告します:コミットハッシュ+変更ファイル数
分岐
このバージョンには分岐はありません。
検証と停止
成功とは、スクリプトが rc 0 を返し、コミットハッシュを出力することです。プッシュに失敗した場合、自動で再試行しません。
例
- 成功例:
/Volumes/giatbhSSD(APFS)/workspace/bonbon-aiで「スナップショットを送る」→bash scripts/snapshot-push.sh "snapshot"→be/とfe/内のファイルを含む、コミットハッシュ+変更ファイル数を報告します。 - 境界/失敗例: cwd が
be/の状態で呼び出す → W01 でリポジトリルートではないと判断 → 停止し、ルートに移動するようユーザーに伝えます。スクリプトは実行しません。
コメント
Markdown 対応