claude-config-optimizer について
Nixで管理するClaude Code設定の保守担当者向けに、設定の点検、ローカル版までの変更追跡、権限や指示ファイルの整理方法をまとめたスキルです。
主な機能
- 01Nix設定管理の参照情報
- 02ローカル版までの変更履歴確認
- 03設定と権限のチェックリスト
- 04指示・スキル・エージェントの整理ガイド
- 05ドキュメントサイトをClaude Agent Skillsへ変換
活用シーン
- 01インストール済み版までの変更要約
- 02設定と権限ルールの点検
- 03CLAUDE.mdの編集と詳細ルールの分割
- 04ドキュメントサイトからClaude Agent Skillsを作成
MCP 対応
MCPサーバー設定を設定項目として扱い、MCPサーバーを含む仕様の質問ではclaude-code-guideサブエージェントを使うよう定めています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ i9wa4/ dotfiles --skill claude-config-optimizerインストール後、Claude Code で/claude-config-optimizerを入力して読み込まれたか確認します。
同梱ファイルreferences/changelog-tracking.md
詳細
Claude Config Optimizer Skill
Claude Code の設定最適化に関するルールと追跡。
1. 設定ファイルの場所
設定は Nix(programs.claude-code home-manager モジュール)で宣言的に管理されます。
信頼できる情報源:
- @~/ghq/github.com/i9wa4/dotfiles/nix/home-manager/agents/claude-code.nix
- @~/ghq/github.com/i9wa4/dotfiles/nix/home-manager/agents/
| 配置先 | ソース | 管理元 |
|---|---|---|
~/.claude/settings.json | Nix 属性から生成 | claude-code.nix |
~/.claude/CLAUDE.md | AGENTS.md と CLAUDE.md のフラグメントから生成 | instruction-artifacts.nix |
~/.claude/rules/ | nix/home-manager/agents/rules/ | claude-code.nix |
~/.claude/agents/ | nix/home-manager/agents/subagents/ | claude-code.nix |
~/.claude/scripts/ | nix/home-manager/agents/scripts/ | claude-code.nix |
~/.claude/skills/ | 複数の flake 入力とローカル | agent-skills.nix |
| MCP サーバー | nix/home-manager/agents/mcp-servers.nix | claude-code.nix |
2. CHANGELOG の取得
2.1. ローカルのバージョンを検出
必ず最初にインストール済みのバージョンを検出します。
claude --version
これにより、ローカルにインストールされたバージョン(例:2.1.72 (Claude Code))が返されます。
CHANGELOG の分析対象は、このバージョン以前に限定する必要があります。
ローカルにインストールされたバージョンより新しいバージョンの機能や変更は報告しないでください。
2.2. GitHub から取得
FILE=$(mkmd --dir tmp --label claude-code-changelog)
gh api repos/anthropics/claude-code/contents/CHANGELOG.md \
--jq '.content' | base64 -d > "$FILE"
次にファイルを読み込みますが、ローカルバージョンまで(そのバージョンを含む)のセクションのみを分析します。
3. CHANGELOG の操作
重要:以下のすべての操作は、ローカルにインストールされたバージョンを対象とします。
claude --version より新しいバージョンの CHANGELOG セクションは無視してください。
3.1. 最新リリースの概要
claude --versionでローカルバージョンを検出します- 上記のコマンドで CHANGELOG を取得します
## <local-version>セクションを抽出します(最初のセクションではありません)- 変更を以下のカテゴリに分類します:
- 新機能(Added)
- バグ修正(Fixed)
- 改善(Improved/Changed)
- 非推奨化(Deprecated)
- 簡単な説明を添えて日本語で提示します
3.2. バージョン差分
claude --versionでローカルバージョンを検出します- 開始バージョンをユーザーに尋ねます(終了バージョンの既定値はローカルバージョンです)
- 開始バージョンからローカルバージョンまで(両端を含む)のすべてのセクションを抽出します
- 累積した変更を要約します
- 破壊的変更と非推奨化を強調します
3.3. 破壊的変更の検出
claude --versionでローカルバージョンを検出します- ローカルバージョンまでのセクションから、
Deprecated、Removed、Breaking、Changedを検索します - 影響を受ける設定と移行方法を一覧表示します
- ユーザーの設定に影響を受ける項目がないか確認します
4. 仕様リファレンス
Claude Code の仕様、機能、使用方法に関する詳細な質問については:
- 必須:Task ツールを使用して
claude-code-guideサブエージェントを利用します - 質問例:フック、MCP サーバー、設定、IDE 連携
Task tool with subagent_type: claude-code-guide
5. 設定カテゴリ
| カテゴリ | 例 |
|---|---|
| 表示 | showTurnDuration、language |
| 動作 | respectGitignore、autoUpdate |
| ツール | disallowedTools、allowedTools |
| MCP | MCP サーバーの設定 |
| フック | PreToolUse、PostToolUse、Stop フック |
| プラン | plansDirectory |
6. CLAUDE.md の設計ガイドライン
- 必須:ペルソナと中核となるガイドラインのみに焦点を当てます
- 必須:詳細なルールは
rules/に分割します - 禁止:起動時に不要な情報を含めないでください (参照リンク、使用方法の詳細)
6.1. 含める情報と除外する情報
| 含める情報 | 除外する情報 |
|---|---|
| Claude が推測できない Bash コマンド | コードを読めば Claude が把握できる情報 |
| デフォルトと異なるコードスタイルのルール | Claude がすでに把握している標準的な言語規約 |
| テスト手順と推奨するテストランナー | 詳細な API ドキュメント(代わりにドキュメントへのリンクを記載) |
| リポジトリのエチケット(ブランチ名、PR の規約) | 頻繁に変更される情報 |
| プロジェクト固有のアーキテクチャ上の決定 | 長い説明やチュートリアル |
| 開発環境特有の注意点(必須の環境変数) | コードベースのファイルごとの説明 |
| よくある落とし穴やわかりにくい動作 | 「きれいなコードを書く」のような自明の慣習 |
各行について、「これを削除すると Claude は間違えるか?」と確認します。そうでなければ削除してください。
6.2. @import 構文
CLAUDE.md では追加のファイルをインポートできます。
See @README.md for project overview and @package.json for available npm
commands.
# Additional Instructions
- Git workflow: @docs/git-instructions.md
- Personal overrides: @~/.claude/my-project-instructions.md
6.3. CLAUDE.md の配置場所
| 配置場所 | 適用範囲 |
|---|---|
~/.claude/CLAUDE.md | すべての Claude セッション(グローバル) |
./CLAUDE.md | プロジェクトのルート — チームで共有する場合は git に登録 |
./CLAUDE.local.md | プロジェクトのルート — 個人用の上書き設定として .gitignore に追加 |
| 親ディレクトリ | モノレポに便利(自動で読み込まれます) |
| 子ディレクトリ | そのディレクトリ内のファイルを扱うときに必要に応じて読み込まれます |
7. 設定の用途
| 種類 | 読み込みタイミング | 用途 |
|---|---|---|
| CLAUDE.md / rules/ | 起動時にすべて読み込み | 常に適用されるグローバルルール |
| commands/ | ユーザーが明示的に実行したとき | 定義済みのプロンプト、ワークフロー |
| skills/ | 会話に応じて自動で起動 | 専門的な知識 |
| agents/ | Task ツールを介して委任 | 独立したコンテキスト |
8. 最適化チェックリスト
8.1. CLAUDE.md のレビュー
CLAUDE.md を編集するときは、以下を確認してください。
- ペルソナの定義は簡潔ですか?
- 基本ルールは本当に常時必要ですか?
- 詳細な説明を rules/ または skills/ に移せますか?
- 参照リンクを skills に移しましたか?
- 各行は「これを削除すると → Claude は間違えるか?」というテストに合格しますか?
- 大きなドキュメントのセクションは、本文に直接記載する代わりに @imports を使用していますか?
- Claude が途中に埋もれたルールを無視しないよう、ファイルは十分に短いですか?
8.2. 権限システムのレビュー
settings.json の permissions ブロックを確認してください。
- deny ルールでは、非推奨の
:*ではなく最新の構文Bash(cmd *)を使用していますか? - 重要なコマンド(git push、git rebase、git reset、rm、sudo)はブロックされていますか?
- リポジトリをまたぐ操作を防ぐために
git -C *はブロックされていますか? - defaultMode は適切ですか("plan" または "dontAsk")?
- 機密性の高いパス(secrets、.env、.ssh、keys、tokens)はブロックされていますか?
- allow ルールは必要ですか。それとも defaultMode で対応できますか?
9. スキルとエージェントの Frontmatter リファレンス
9.1. スキルの Frontmatter(SKILL.md)
---
name: skill-name
description: |
When to trigger this skill.
Use when:
- condition 1
- condition 2
disable-model-invocation: true # For workflows with side effects (manual invoke only)
---
disable-model-invocation: true— 自動起動を無効にします。ユーザーは/skill-nameで明示的に実行する必要があります。副作用のあるワークフローに使用してください。- パラメーター化されたワークフローでは
$ARGUMENTSを使用して呼び出します:/fix-issue 1234
9.2. エージェントの Frontmatter(.claude/agents/*.md)
---
name: agent-name
description: What this agent does and when to use it
tools: Read, Grep, Glob, Bash # Restrict available tools
model: opus # Optional: specify model
isolation: worktree # Run in isolated git worktree (v2.1.49+)
background: true # Always run as background task (v2.1.49+)
---
10. ファイル構成のメンテナンス
rules/、skills/、agents/、または commands/ 内のファイルを追加・削除する場合:
- 必須:CLAUDE.md のセクション 4 にある対応する表を更新してください
- 必須:表をアルファベット順または論理的なグループ順に保ってください
- 重要:変更後、実際のファイルとドキュメントが一致していることを確認してください
11. 最適化の追跡
最後に確認した Claude Code のバージョン:v2.1.94 (2026-04-09)
11.1. 適用済みの最適化
- ペルソナの定義を最小化
- ルールを rules/ ディレクトリに分割
- スキルを skills/ ディレクトリに分割
- エージェントを agents/ ディレクトリに分割
- コマンドを commands/ ディレクトリに分割
- 参照リンクをスキルに移動
-
language設定 - "English" に設定 -
ENABLE_TOOL_SEARCH環境変数 - "auto:3" に設定 - 権限システムを確認 - サンドボックスのバイパス修正を確認(v2.1.34)
- 権限拒否ルールを移行 - 非推奨の
:*から新しい*構文に変更 - 高速モード - Opus 4.6 で利用可能(v2.1.36)
- エージェントチーム -
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSで有効化 - 自動メモリ - デフォルトで有効(v2.1.32)
-
CLAUDE_CODE_ENABLE_TASKS環境変数 - 削除(タスクはデフォルトで有効) -
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを削除 - リモート コントロールと機能フラグの更新を有効化(v2.1.51+) -
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE = "70"- コンテキスト使用率 70% で自動圧縮 -
includeGitInstructions = false- 組み込みの Git 指示を無効化; カスタムのrules/github.mdのみを正式な情報源として使用(v2.1.69) -
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB = "1"- サブプロセスから認証情報を除去 (v2.1.83) -
showThinkingSummaries = true- v2.1.89 でデフォルトが変更されたため、 明示的なオプトインが必要(インタラクティブセッションでは思考の要約が デフォルトで生成されなくなりました) -
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING- 意図的に未設定 (適応型思考は有効のまま)。起動時の/effort highと組み合わせることで、 v2.1.94 で正式化された Team/Enterprise のデフォルトを再現します。詳しい 理由と HN のディスカッションリンクについては、references/changelog-tracking.md の 決定ログを参照してください。
11.2. 検討中の項目
- SQL スキーマ検証 - databricks スキルに移動(セクション 8)
- TeammateIdle/TaskCompleted フック - 将来のエージェントワークフロー自動化向け
- エージェントのメモリフロントマター - 状態を保持するエージェント向けの
memory: user|project|local - Task(agent_type) の制限 - サブエージェントの起動に対するセキュリティ強化
- WorktreeCreate/WorktreeRemove フック - ワークツリー分離向けのカスタム VCS セットアップ/ティアダウン(v2.1.50)
- ConfigChange フック - 設定変更のセキュリティ監査(v2.1.49)
- エージェント定義の
isolation: worktree- エージェントごとに Git ワークツリーを分離 (v2.1.49、v2.1.50) - PostCompact フック - 圧縮の要約をアーカイブ/分析;
compact_summaryフィールドがあります(v2.1.76) - Elicitation/ElicitationResult フック - MCP サーバーの構造化入力リクエストを インターセプト(v2.1.76)
- フックの条件付き
ifフィールド - 権限ルール構文によるフィルタリングで プロセス起動のオーバーヘッドを削減(v2.1.85) - StopFailure フック - API エラー(レート制限、認証失敗)を記録(v2.1.78)
- UserPromptSubmit フックの
hookSpecificOutput.sessionTitle(v2.1.94)- プロンプトごとの動的なセッション/tmux ペインのタイトル -
CLAUDE_CODE_NO_FLICKER=1環境変数(v2.1.89)- ちらつきのない代替画面 レンダリング;描画の不具合が確認された場合に再検討
決定ログ(「採用しない」項目)とバージョンごとの変更履歴については、 変更履歴の追跡を参照してください。
12. 応答形式(CHANGELOG)
# Claude Code vX.X.X
## New Features
- [Feature]: [Description]
## Bug Fixes
- [Fix description]
## Improvements
- [Improvement description]
## Deprecated/Removed
- [Affected settings and migration path]
---
Source: https://github.com/anthropics/claude-code
13. site2skill の使用方法
ドキュメントサイトを Claude Agent Skills に変換します。
要件:Python 3.10 以降、wget(brew install wget)
uvx --from git+https://github.com/laiso/site2skill site2skill <URL> <SKILL_NAME>
# Example
uvx --from git+https://github.com/laiso/site2skill site2skill https://docs.pay.jp/v1/ payjp
オプション:
--output, -o- 出力ディレクトリ(デフォルト:.claude/skills)--skill-output- .skill ファイルの保存先(デフォルト:現在のディレクトリ)--skip-fetch- ダウンロードをスキップ(既存のファイルを再利用)--clean- 完了後に一時ファイルを削除
既存のスキルドキュメントを更新するには、--skip-fetch を指定せずに再実行してください。
14. 参考リンク
公式ドキュメント:
- ベストプラクティス:https://code.claude.com/docs/en/best-practices.md
- ドキュメントマップ:https://code.claude.com/docs/en/claude_code_docs_map.md
コミュニティのリソース:
- Claude Code の設定: https://blog.atusy.net/2025/12/15/claude-code-user-config/
- CLAUDE.md の最小化: https://blog.atusy.net/2025/12/17/minimizing-claude-md/
- site2skill:https://github.com/laiso/site2skill
15. 権限システムのリファレンス
15.1. 権限モード
| モード | 説明 |
|---|---|
default | 各ツールの初回使用時に権限を求めます |
acceptEdits | セッション中のファイル編集権限を自動的に許可します |
plan | プランモード:分析のみで、変更は行いません |
dontAsk | 許可ルールで事前承認されていない限り、自動的に拒否します |
bypassPermissions | すべての確認をスキップします(隔離された環境でのみ使用してください) |
15.2. ルールの評価順序
ルールは deny -> ask -> allow の順に評価されます。最初に一致したルールが適用されます。
15.3. Bash のワイルドカードパターン
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git commit *)",
"Bash(* --version)",
"Bash(* --help *)"
],
"deny": ["Bash(git push *)"]
}
}
注:* の前のスペースが重要です。Bash(ls *) は ls -la に一致しますが、lsof には一致しません。
15.4. 読み取り/編集パスのパターン
| パターン | 意味 | 例 |
|---|---|---|
//path | ルートからの絶対パス | Read(//Users/alice/**) |
~/path | ホームディレクトリからのパス | Read(~/.zshrc) |
/path | 設定ファイルからの相対パス | Edit(/src/**/*.ts) |
path | 現在のディレクトリからの相対パス | Read(*.env) |
注:* は単一のディレクトリに一致し、** は再帰的に一致します。
15.5. MCP とタスクの権限
{
"permissions": {
"allow": ["mcp__puppeteer__*"],
"deny": ["Task(Explore)"]
}
}
15.6. 管理対象設定の場所
| プラットフォーム | パス |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-settings.json |
| Linux/WSL | /etc/claude-code/managed-settings.json |
| Windows | C:\Program Files\ClaudeCode\managed-settings.json |
15.7. 管理対象専用の設定
| 設定 | 説明 |
|---|---|
disableBypassPermissionsMode | バイパスモードを無効にするには「disable」に設定します |
allowManagedPermissionRulesOnly | 管理対象のルールのみを適用します |
allowManagedHooksOnly | 管理対象または SDK のフックのみを許可します |
16. インサイトに基づく推奨事項
利用状況の分析(55K 件のメッセージ、4.7K 件のセッション)に基づいています。
16.1. 適用済み
- DB 操作のスキーマ検証:「databricks」スキルのセクション 8 を参照してください
16.2. 未適用
- 完了ステータスの報告:この出力を利用するコンシューマーがありません
- SQL 用の PreToolUse フック:代わりにスキルのガイダンスで対応しています
17. 参考資料
- フックのリファレンス:
https://code.claude.com/docs/en/hooks - 権限のリファレンス:
https://code.claude.com/docs/en/permissions - スキルの動的コンテキスト:
https://code.claude.com/docs/en/skills#inject-dynamic-context - Vercel の AGENTS.md ガイド:
https://vercel.com/blog/agents-md