chezmoi-sync について
chezmoi-syncは、chezmoiのソースファイルとホームディレクトリの差分を確認する対話型スキルです。ドットファイルの確認、同期、変更のコミットを案内します。
主な機能
- 01chezmoiの状態と差分を確認
- 02一括またはファイル単位で同期
- 03差分を後で扱うために保留
- 04同期したファイルをコミットして確認
活用シーン
- 01同期前にドットファイルの変更を確認
- 02変更したファイルの追跡を個別に解除
- 03確認したドットファイルの更新をコミットしてプッシュ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill chezmoi-syncインストール後、Claude Code で/chezmoi-syncを入力して読み込まれたか確認します。
詳細
Chezmoi 同期(対話式)
自動 chezmoi 停止ガードの代替として、必要に応じて実行します。chezmoi のドリフトを確認し、追跡対象のドットファイルを同期したいときは、このスキルを実行してください。
自己進化型スキル:このスキルは使用を通じて改善されます。手順に誤りがある場合、パラメーターにずれが生じている場合、または回避策が必要だった場合は、先延ばしにせず、すぐにこのファイルを修正してください。実際に再現できる問題がある場合にのみ更新してください。
ワークフロー
ステップ 1:ドリフトを確認する
chezmoi status と chezmoi diff --no-pager を実行し、ソースリポジトリとホームディレクトリの間のドリフトを検出します。
chezmoi source-path && chezmoi status && echo "---" && chezmoi diff --no-pager | head -80
出力が空の場合(ドリフトなし)、"Chezmoi is clean — no drift detected" と報告して終了します。
ステップ 2:ドリフトをユーザーに提示する(AskUserQuestion)
ドリフトがある場合は、AskUserQuestion を使って、ドリフトした内容をユーザーに示し、どうするかを尋ねます。
質問 1(ヘッダー:"Drift action"):
"Chezmoi detected N drifted file(s): [list files]. What would you like to do?"
選択肢:
- すべて同期 — ドリフトしたすべてのファイルに
chezmoi re-addを実行し、コミットしてプッシュします - 1 つずつ確認 — ファイルごとに選択肢を提示し、個別に確認します
- 無視 — 同期をスキップし、後で対応します
ステップ 3a:すべて同期(選択された場合)
chezmoi re-add --verbose
chezmoi git -- add -A && chezmoi git -- commit -m "sync: dotfiles" && chezmoi git -- push
chezmoi status # Verify clean
コミットハッシュを報告し、クリーンな状態であることを確認します。
ステップ 3b:1 つずつ確認(選択された場合)
ドリフトしたファイルごとに、AskUserQuestion を使います。
質問(ヘッダー:"File action"):
"[filename] has changed. What should we do?"
選択肢:
- 同期 — このファイルを chezmoi ソースに追加します(
chezmoi add <path>) - 差分 — まず完全な差分を表示し、その後もう一度尋ねます
- 追跡を解除 — このファイルの追跡を停止します(
chezmoi forget --force <path>) - スキップ — 今はドリフトしたままにします
すべてのファイルを処理した後、同期したファイルがある場合:
chezmoi git -- add -A && chezmoi git -- commit -m "sync: dotfiles" && chezmoi git -- push
ステップ 3c:無視(選択された場合)
次のように報告します:"chezmoi の同期をスキップしました。準備ができたら /dotfiles-tools:chezmoi-sync を実行してください。"
注意事項
- TTY のプロンプトに関する問題を避けるため、常に
chezmoi forget --forceを使ってください(forget単独ではなく)。 - chezmoi のソースディレクトリは
~/gh/vjspc/dotfilesです(~/.config/chezmoi/chezmoi.tomlで設定)。
実行後の振り返り
このスキルの実行後、タスクを終了する前に振り返ってください。
- 自身の場所を確認する。 — 編集する前に、この SKILL.md の正規パスを見つけます。
- 何が失敗したか? — 原因となった指示を修正します。
- 何が予想以上にうまくいったか? — 推奨プラクティスとして取り入れます。
- 何がずれていたか? — 現実と一致しなくなったスクリプト、参照先、依存関係を修正します。
- 記録する。 — 発生のきっかけ、修正内容、根拠を進化ログに記録します。
先延ばしにしないでください。次回の実行には、ここに残した内容が引き継がれます。