nix-settings-drift

star 126

Detect and fix settings.json drift from Nix-managed state. Use when settings.json has been modified outside of Nix (e.g., plugin install, /config changes) and needs to be persisted to the correct source file.

mozumasu By mozumasu schedule Updated 3/25/2026

name: nix-settings-drift description: Detect and fix settings.json drift from Nix-managed state. Use when settings.json has been modified outside of Nix (e.g., plugin install, /config changes) and needs to be persisted to the correct source file. allowed-tools: Read, Bash, Edit, Write, Grep, Glob

概要

~/.config/claude/settings.json が Nix 管理の状態(.settings.json.nix-managed)から変更されていないか確認し、差分を適切なソースファイルに反映する。

手順

  1. diff <(jq -S . ~/.config/claude/settings.json) <(jq -S . ~/.config/claude/.settings.json.nix-managed) を実行して差分を確認
  2. 差分がなければ「差分なし」と報告して終了
  3. 差分がある場合は、以下の振り分けルールに従って適切なファイルに反映

振り分けルール

プライベートマーケットプレイスの判定

~/.config/claude/.private-marketplaces.json を読み、extraKnownMarketplaces のキー一覧からプライベートマーケットプレイス名を取得する。

反映先の判定

変更内容 反映先
プラグイン名の @ 以降がプライベートマーケットプレイス名と一致する enabledPlugins sops-nix(user-secrets.yamlclaude-private-marketplaces
extraKnownMarketplaces のキーがプライベートマーケットプレイス名と一致 同上
上記以外の enabledPluginsextraKnownMarketplaces ~/dotfiles/.config/nix/home-manager/claude-code.nixpublicSettings
hookspermissionsmodel 等その他の設定変更 claude-code.nixpublicSettings
一時的な変更(temperaturemaxTokens の微調整など) 無視してよい

sops-nix ファイルの編集方法

sops で暗号化されたファイルは直接編集できない。以下のコマンドで編集する:

sops ~/dotfiles/.config/nix/secrets/user-secrets.yaml

claude-private-marketplaces キーの値は JSON 文字列。jq で整形してから編集内容を確認すること。

重要

  • darwin-rebuild switch の実行はユーザーに任せること(自動実行しない)
  • 変更後はユーザーに 何を変更したかdarwin-rebuild switch の実行が必要 であることを報告すること
Install via CLI
npx skills add https://github.com/mozumasu/dotfiles --skill nix-settings-drift
Repository Details
star Stars 126
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator