Claude Codeを導入したものの、設定ファイルの置き場所に悩んだり、急に挙動が変わって困惑したりした経験があるはずだ。ターミナル上で圧倒的な開発体験をもたらすツールだが、適切な運用方法を知らなければ本来のパワーを発揮できない。
この記事では、1人SaaS開発で培ったClaude Codeの最適運用術を体系的にまとめる。設定ファイルの階層管理からHooksによるセルフレビュー自動化、ハーネスの最適化まで、エンジニアが実務で遭遇する詰まりポイントをすべて解消する手順を提示する。
SNS運用を自動化しませんか?
ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。
開発を始める前の前提知識
Claude Codeの運用をスムーズに進めるためには、事前の準備と基本的な考え方を押さえる必要がある。複雑な環境構築は不要だが、以下の環境と心構えを用意する。
* 動作環境: Node.jsが動作するターミナル環境(macOSやLinux、WSL2など)
* アカウント: Anthropicのアカウントおよび適切なAPIアクセス権限
* 基本姿勢: ツール任せにするのではなく、設定とコンテキスト(ハーネス)を定期的にメンテナンスする意識
これらを用意した上で、具体的な運用ノウハウの解説に入る。
Claude Code完全運用術7選
運用術1:設定ファイルの階層と優先順位をマスターする
Claude Codeの設定ファイルである settings.json は、置く場所によって適用範囲(スコープ)が変わる。設定の衝突が起きた場合、どのファイルが優先されるかを理解することが運用の第一歩だ。
優先順位は高い順に以下の通りとなる。
- Managed: システム管理者による制限(最優先・上書き不可)
- CLI Flags: コマンド実行時の引数指定(その場限りの設定)
- Local: .claude/settings.local.json(個人専用のローカル設定)
- Project: .claude/settings.json(リポジトリ共通のチーム設定)
- User: ~/.claude/settings.json(全プロジェクトで共通の個人設定)
基本的には、上位のスコープに書かれた設定が下位の設定を上書き(オーバーライド)する仕組みだ。例えば、UserスコープとProjectスコープで同じ設定項目があれば、Projectスコープの記述が有効になる。
まずは自分全体のデフォルトとしてホームディレクトリ内のUserスコープを設定し、プロジェクト固有のルールはリポジトリ直下のProjectスコープに記述するのが鉄則だ。この階層構造を意識するだけで、設定が効かないトラブルの9割は防げる。
運用術2:permissionsの合算マージ仕様でセキュリティを固める
設定ファイルの中で特に重要なのが、ツール実行の許可や拒否を制御する permissions(権限設定)だ。ここで一つ、非常に重要な例外仕様が存在する。
通常のキーは上位スコープが優先して上書きされるが、permissions だけは各スコープの設定が合算(マージ)される。
たとえば、Userスコープで特定のテストコマンドを許可し、Projectスコープでリントコマンドを許可した場合、両方のコマンドが実行可能になる。この仕様を理解しておくと、組織や個人のセキュリティ対策が格段にやりやすくなる。
具体的には、以下のポリシーで運用するといい。
* Userスコープ(~/.claude/settings.json): 全プロジェクトで共通して許可する安全なコマンド(npm run test など)を登録する。さらに、.env や secrets 関連の秘匿ファイルを誤って読み込まないよう、deny(拒否ルール)を固めておく。
* Projectスコープ(.claude/settings.json): そのリポジトリ固有のビルドコマンドや特定スクリプトの実行許可を追加する。
deny で指定した拒否ルールは強力であり、プロジェクト側で安易に解除できない安全策として機能する。事故を防ぐためにも、秘匿情報の読み込み拒否設定は真っ先にUserスコープへ記述する。
運用術3:PostToolUse Hooksでセルフレビューを自動化する
Claude Codeを運用していると、特定のファイル(例えば .claude/rules 配下のルール定義など)を編集した際に、記述フォーマットをうっかり間違えることがある。これらを指示文書だけで守らせるのは限界があるため、Hooks(フック)メカニズムを活用して機械的にチェックさせるのがスマートだ。
Hooksとは、特定のイベントが発生した際にシェルスクリプトなどを自動実行する仕組みだ。LLMの判断に頼らず、決定論的に処理を強制できる点が最大のメリットだ。
セルフレビュー自動化の流れは以下のようになる。
- フックスクリプトの準備: .claude/hooks/review-format.sh のような実行スクリプトを作成する。指定のパスが変更された場合、標準出力経由でレビュー指示(additionalContext)をJSON形式で吐き出すロジックを組む。
- settings.jsonへの登録: PostToolUse イベントの監視対象として上記スクリプトを登録する。ファイルの編集操作(Edit や Write)が行われた直後に発火するよう設定する。
この仕組みを導入すると、ファイルが書き換えられた瞬間にフックが発火し、Claude自身のコンテキストに「フォーマットが正しいか確認せよ」というシステムリマインダーが挿入される。結果として、人間が毎回手動で指示を打つ手間がなくなる。
運用術4:tmuxを使ったセッションの永続化と自動再接続
リモートコントロール機能を使って、離れた場所からPCのClaude Codeを操作する機会は多い。しかし、Wi-Fiの切り替えやPCのスリープなどにより、通信が数十秒切断されるとセッションが終了してしまう問題に直面する。
手動で毎回コマンドを打ち直すのは非効率だ。この問題を根本解決するのが、tmux(ターミナルマルチプレクサ)を活用したセッションの永続化だ。
tmuxの内部でClaude Codeを稼働させておけば、ネットワーク通信がどれだけ切断されようと、バックグラウンドでClaude Codeのプロセスは生存し続ける。
運用を自動化するために、以下のような対話起動専用のシェル関数を .zshrc や .bashrc に仕込んでおくと便利だ。
* 標準コマンドのバイパス: claude doctor や claude update などの単発コマンドはそのまま直接実行させる。
* 対話セッションの分離: 引数なしの claude 実行時のみ、カレントディレクトリ名に基づいたユニークなtmuxセッションを自動生成してその内部でアタッチする。
この設定を入れておけば、万が一接続が切れた場合でも、再度ターミナルを開いてコマンドを打つだけで、作業途中の状態へと一瞬で復帰できる。
運用術5:ハーネス(CLAUDE.md/memory)を断捨離して精度を維持する
Claude Codeを使っていると、プロジェクトのルールを書き込む CLAUDE.md や、自動で記憶される memory/ フォルダ内のメモが増えていく。メモを増やすほどAIが賢くなると考えがちだが、これは誤った認識だ。
コンテキストウィンドウに長すぎる情報が詰まると、モデルの注意力が分散して重要な指示を見落とすContext Rot(コンテキストの劣化)という現象が発生する。
精度を高く維持するためには、以下の「ハーネス管理方針」を徹底する。
* 「記録」と「ルール」を分離する: 過去に起きたトラブルの詳細な経緯やログは CLAUDE.md にダラダラ書かない。そうした歴史は別ファイルに退避させ、CLAUDE.md には「〜すること」「〜は禁止」という結論としてのルールだけを簡潔に書く。
* 定期的なスクラップ・アンド・ビルド: 肥大化したメモは定期的に見直し、使われていないルールや誤った記憶ファイルを削除する。
「最近Claudeの回答精度が落ちた」「同じミスを繰り返す」と感じた時は、モデルのせいにせず、まず自分の作成した CLAUDE.md や memory/ を疑い、不要な文章を削ぎ落とす断捨離を実行する。
運用術6:設定診断コマンド claude doctor を毎回実行する
設定ファイル settings.json はJSON形式で記述するが、カンマの押し忘れや括弧の閉じ忘れといった単純な構文エラーがあると、エラーメッセージを出さずに設定が無視されることがある。
「設定を書いたはずなのに反映されない」と悩む時間の多くは、この記述ミスが原因だ。これを防ぐために用意されているのが claude doctor コマンドだ。
このコマンドを実行すると、以下の項目が即座に診断される。
* 各スコープの設定ファイルの読み込み状況
* JSONの構文エラー(シンタックスエラー)の有無
* 指定されたファイルパスや実行権限の整合性
設定ファイルやルールを変更した後は、必ずターミナルで claude doctor を実行する習慣をつける。数秒の確認で、無駄なハマり時間をゼロに抑えられる。
運用術7:settings.local.json で個人環境とチーム設定を完全分離する
複数人のチームでGitリポジトリを共有して開発を行う場合、設定ファイルのコミット運用に注意が必要だ。チーム全員で共有したいルールと、自分だけの開発環境の設定が混ざってしまうからだ。
この問題は、設定ファイルの役割分担を明確にすることで解決できる。
* .claude/settings.json: チーム共通の設定。プロジェクトのビルドスクリプトや共通のリントルールなどを記述し、Gitの管理対象としてコミットする。
* .claude/settings.local.json: 個人専用の設定。自分だけのローカルツール連携や個人のAPIキー、特殊な環境変数などを記述し、必ず .gitignore に追加して除外する。
この2層構造を徹底すれば、誤って個人的な環境設定や秘匿情報をリポジトリにコミットするリスクを排除しつつ、チーム全体の開発規律を保てる。
しんたろーのリアルな運用体験
ここで、僕自身が普段のSaaS開発でClaude Codeを使い倒す中で感じている生の所感を共有する。
しんたろー:
僕が普段の1人開発で一番助けられているのは、間違いなくtmuxと連携させた自動再接続の仕組みだ。外出先からスマホで指示を出して、移動中に接続が切れても、デスクに戻った瞬間に何事もなかったかのように作業を再開できる安定感は一度味わうと抜け出せない。
ここまで読んだあなたに
今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。
運用設定・機能比較一覧表
ここまで紹介した各種設定や運用の仕組みについて、それぞれの特徴と推奨スコープをまとめる。運用の設計時に役立ててほしい。
| 運用手法・設定項目 | 主な役割・メリット | 推奨スコープ・置き場所 | 導入難易度 |
| :--- | :--- | :--- | :--- |
| User Settings | 全プロジェクト共通の安全ルール策定 | ~/.claude/settings.json | ★☆☆(容易) |
| Project Settings | チーム共有のプロジェクト固有ルール定義 | .claude/settings.json | ★☆☆(容易) |
| permissions | コマンド実行やファイル読み込みの制限 | 全スコープ(合算適用) | ★★☆(中級) |
| PostToolUse Hooks | ファイル変更時の自動レビュー・指示挿入 | .claude/hooks/ | ★★★(上級) |
| tmux連携 | セッション永続化とリモート接続切れ対策 | シェル設定(.zshrcなど) | ★★☆(中級) |
| CLAUDE.md最適化 | コンテキスト劣化(Context Rot)の防ぐ | リポジトリ直下 | ★☆☆(容易) |
| claude doctor | 設定ファイルの構文エラー・パス検証 | CLIコマンド | ★☆☆(容易) |
初心者がハマりやすい3つのつまずきポイント
Claude Codeの運用を開始した直後に、多くのエンジニアが一度は遭遇する「罠」とその対策を整理した。
罠1:JSONの記述ミスで設定が無視される
設定ファイルを手動で編集した際、末尾のカンマ忘れやダブルクォーテーションの欠落により、設定全体が読み込まれなくなる現象だ。エラーが目立たないため原因特定が遅れやすい。
* 対策: スキーマ宣言($schema)を設定ファイルの先頭に記述してエディタの補完を効かせる。そして変更後は必ず claude doctor で構文診断を行う。
罠2:CLAUDE.mdにログを書きすぎて回答精度が落ちる
開発中に発生したエラーのスタックトレースや試行錯誤の履歴をそのまま CLAUDE.md に追記し続けると、ファイルが数百行に膨れ上がり、AIが重要な制約を無視し始める。
* 対策: CLAUDE.md は「現在有効なルールのみ」を箇条書きで短く残す場所と割り切る。経緯や学習ログは別のアーカイブファイルへ移動させる。
罠3:ローカル専用の設定を誤ってGitにコミットしてしまう
個人の端末だけで使っているツールパスや秘匿な設定を .claude/settings.json に直接書いてしまい、チームの共有リポジトリを汚してしまうケースだ。
* 対策: 個人固有の設定は最初から .claude/settings.local.json に記述し、プロジェクト作成時に即座に .gitignore へ記載する癖をつける。
しんたろー:
僕も最初はCLAUDE.mdにエラーのメモを全部書き込んでしまい、どんどん挙動がおかしくなる経験をした。メモを増やせば賢くなるわけではない。「ルールは短くシンプルに保つ」のが、Claude Codeと長くうまく付き合う最大のコツだ。
よくある質問(FAQ)
Q1:settings.jsonが反映されないときはどうすればいい?
まずは claude doctor を実行して、JSONの構文エラーやファイルパスの読み込み状況を確認する。次に、設定がUserスコープ(~/.claude/)とProjectスコープ(.claude/)のどちらに書かれているかを確認し、優先順位で上書きされていないかチェックする。特にpermissionsはマージされる仕様なので、予期せぬ制限がかかっていないかも確認が必要だ。
Q2:CLAUDE.mdに何を書けばいいかわからない
「詳細な経緯」ではなく「簡潔なルール」を書く。例えば「特定のライブラリを使うときはこのコマンドを優先する」「このディレクトリは編集禁止」といった、守るべき制約を箇条書きにする。肥大化するとモデルが読み飛ばすため、定期的に古い情報を削除し、常に最新のルールだけが残るようにメンテナンスする。
Q3:リモートコントロールがすぐ切れるのはなぜ?
公式仕様として、通信が途絶えてから約30秒前後でセッションが打ち切られるためだ。Wi-Fiの切り替えやスリープで簡単に切断される。これを防ぐには、tmux内でClaude Codeを起動し、セッションを永続化させる運用が最も効果的だ。これにより、接続が切れてもtmux経由で即座に再接続が可能になる。
Q4:Claude Codeの挙動が昨日と違う気がする
モデルのアップデートよりも、自分のハーネス(CLAUDE.md や memory/)の肥大化や矛盾を疑う。コンテキストが長すぎるとモデルの注意力が散漫になる。まずはハーネスの内容を整理し、ルールが簡潔になっているか確認する。それでも直らない場合は、Claude Codeのバージョンアップによる仕様変更を確認する。
Q5:チームで設定を共有するベストな方法は?
プロジェクト直下の .claude/settings.json をGitで共有する。ここにチーム共通のルールや許可コマンドを記述し、コミットする。個人の環境固有の設定(APIキーや特定のパス)は .claude/settings.local.json に書き、.gitignore に含めることで、チームの規律と個人の利便性を両立できる。
まとめと次のステップ
Claude Codeのポテンシャルを最大限に引き出すためのポイントを整理する。
* 階層と優先順位の理解: UserとProjectのスコープを使い分け、権限はマージされる特性を活かす。
* 自動化とガードレール: Hooksを使ってルール違反を決定論的にブロックする。
* セッションの永続化: tmuxを活用して接続切れのストレスから解放される。
* ハーネスの軽量化: CLAUDE.md は常に断捨離し、簡潔なルール集として維持する。
道具に使われるのではなく、適切な「ハーネス」と「設定」を構築することこそが、1人開発やチーム開発の生産性を高める鍵だ。
まずはターミナルを開き、claude doctor コマンドで現在の自分の設定状況を診断することから始める。

この記事が参考になったら、ThreadPostを試してみませんか?
投稿作成・画像生成・スケジュール管理まで、AIがサポートします。
ThreadPostをもっと知る