sync-dotfiles について
ai-env リポジトリとホームディレクトリ間で dotfiles を同期するスキルです。差分確認、ローカル変更の取り込み、設定の反映、スキルのインストールを `sync.sh` のサブコマンドに対応させ、方向が曖昧な場合は先に差分を表示します。
主な機能
- 01リポジトリとホームのファイル比較
- 02追跡対象ファイル一覧の表示
- 03ローカル変更のリポジトリへの反映
- 04リポジトリ設定のホームへの反映
- 05ロックファイルからのスキル導入
活用シーン
- 01設定の差分確認
- 02ローカル設定変更のリポジトリ保存
- 03端末へのリポジトリ設定の反映
- 04ロックファイルからのグローバルスキル導入
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ camacho/ ai-skills --skill sync-dotfilesインストール後、Claude Code で/sync-dotfilesを入力して読み込まれたか確認します。
同梱ファイルsync.sh
詳細
実行するタイミング
- ユーザーが「dotfiles を同期」「設定を取得」「設定を反映」「差分を確認」と言った場合
- 権限やフックを変更したセッションの後
- ai-env をクローンした新しいマシンで
サブコマンド
ユーザーの意図を sync.sh のサブコマンドに対応付けます。
| 意図 | コマンド | 内容 |
|---|---|---|
| 「違いを確認する」 | sync.sh diff | リポジトリとホームディレクトリ間の差分を表示 |
| 「追跡対象を確認する」 | sync.sh status | ファイルのレジストリを表示 |
| 「ローカルの変更を取り込む」 | sync.sh pull | ホームディレクトリ → リポジトリ(ホームディレクトリ側を優先) |
| 「リポジトリの設定を反映する」 | sync.sh push | リポジトリ → ホームディレクトリ(リポジトリ側を優先) |
| 「スキルをインストールする」 | sync.sh skills-push | dotfiles/skills-lock.json からグローバルスキルをインストール |
| 「同期する」(曖昧) | まず差分を表示し、次にどちらの方向に同期するか確認 | 安全なデフォルト |
sync.sh の実行
同期スクリプトは、このスキルと同じディレクトリにある sync.sh として同梱されています。
そのまま実行してください。スクリプトが ai-env リポジトリを自動的に検出します。
/path/to/skill/sync.sh <subcommand>
スクリプトは、以下の検出手順に基づいて AI_ENV_ROOT を自動設定します。上書きする場合:
AI_ENV_ROOT=/custom/path/to/ai-env /path/to/skill/sync.sh push
AI_ENV_ROOT の検出
スクリプトは ai-env リポジトリ(dotfiles/ がある場所)を自動的に検出します。
$AI_ENV_ROOTが設定されており、$AI_ENV_ROOT/dotfilesが存在する場合:そこを使用- スクリプトが ai-env の git リポジトリ内にある場合(例:シンボリックリンク経由で実行):そのリポジトリのルートを使用
~/projects/camacho/ai-envが存在する場合:そこを使用- GitHub 経由で
camacho/ai-envを一時ディレクトリにクローン - クローンに失敗した場合:
AI_ENV_ROOTを設定する手順を示してエラー終了
pull の後
git diff dotfiles/ を表示し、コミットを提案します:chore: sync dotfiles
push の後
sync.sh status を実行して確認し、欠けているファイルがあれば警告します。
コメント
Markdown 対応