mcpField
C
chezmoi-sync

chezmoi-sync

github.com/terrylica開発276 回インストール1 日前に更新
リポジトリ

chezmoi-sync について

chezmoi-syncは、chezmoiのソースファイルとホームディレクトリの差分を確認する対話型スキルです。ドットファイルの確認、同期、変更のコミットを案内します。

主な機能

  1. 01chezmoiの状態と差分を確認
  2. 02一括またはファイル単位で同期
  3. 03差分を後で扱うために保留
  4. 04同期したファイルをコミットして確認

活用シーン

  1. 01同期前にドットファイルの変更を確認
  2. 02変更したファイルの追跡を個別に解除
  3. 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 で設定)。

実行後の振り返り

このスキルの実行後、タスクを終了する前に振り返ってください。

  1. 自身の場所を確認する。 — 編集する前に、この SKILL.md の正規パスを見つけます。
  2. 何が失敗したか? — 原因となった指示を修正します。
  3. 何が予想以上にうまくいったか? — 推奨プラクティスとして取り入れます。
  4. 何がずれていたか? — 現実と一致しなくなったスクリプト、参照先、依存関係を修正します。
  5. 記録する。 — 発生のきっかけ、修正内容、根拠を進化ログに記録します。

先延ばしにしないでください。次回の実行には、ここに残した内容が引き継がれます。

コメント