Claude Codeは「動かすだけ」より「使いこなす」ほうが、作業効率に大きな差が出ます。
Plan Mode、拡張思考(ultrathink)、サブエージェント、CLAUDE.md。これらの機能を知るだけで、出力品質とスピードが変わります。この記事では公式ドキュメント(code.claude.com/docs)をもとに、各機能の使い方を解説します。
この記事でわかること:
- Plan Modeで「読むだけ」モードに切り替えてコードを安全に探索する方法
- ultrathinkキーワードで拡張思考を引き出す方法と設定の全体像
- サブエージェントをコンテキスト節約と並列処理に活用する方法
- CLAUDE.mdを短く・効果的に書くコツ
Plan Mode:変更なしでコードを探索・計画する
Claude Codeは通常、ファイルを読みながら編集まで進みます。しかし、影響範囲が大きいリファクタリングや未知のコードベースを扱うとき、まず「理解と計画」だけに集中したい場面は多いはずです。
Plan Modeはこの課題を解決するモードです。Claudeがread-only操作のみを行い、ファイルの変更を一切しない状態で動きます。要件をヒアリングしながら実装計画だけを作るため、「気づいたら意図しないファイルが書き変わっていた」という事態を防げます。
切り替え方
セッション中に切り替えるには Shift+Tab を使います。Normal Mode → Auto-Accept Mode → Plan Modeの順に切り替わり、Plan Modeになるとターミナル下部に ⏸ plan mode on と表示されます。
新しいセッションからPlan Modeで始めるには、--permission-mode plan フラグを使います。
claude --permission-mode plan
ヘッドレスモードでも使えます。
claude --permission-mode plan -p "認証システムを分析して改善案を提案してほしい"
計画をテキストエディタで直接編集する
Plan Modeでは Ctrl+G を押すと、Claudeが作成した計画をデフォルトのテキストエディタで開けます。計画を直接編集してからClaudeに渡せるため、「この方針で実装を始めてほしい」という意図を正確に伝えられます。
デフォルト設定への追加
.claude/settings.json にデフォルトモードを記述できます。
{
"permissions": {
"defaultMode": "plan"
}
}
拡張思考(ultrathink):深く考えさせるときの指定方法
Claude Codeは拡張思考がデフォルトで有効になっています。複雑な問題に対して、回答の前に内部で推論を行う仕組みです。
ultrathinkキーワード
プロンプトに ultrathink と含めると、そのターンでClaudeが通常より深く推論するよう指示できます。
このコードのパフォーマンスボトルネックを ultrathink で分析してほしい
think や think hard といった表現は通常のプロンプト文として扱われ、思考トークンの追加割り当ては発生しません。深い推論が必要なときは明示的に ultrathink を使います。
effortレベルで思考の深さを調整する
思考の深さは /effort コマンドで変更できます。/model メニューからも変更可能で、環境変数 CLAUDE_CODE_EFFORT_LEVEL でデフォルト値を設定できます。
思考を完全にオフにするには Option+T(macOS)または Alt+T(Windows/Linux)でトグルできます。セッションを越えたデフォルト設定の切り替えは ~/.claude/settings.json の alwaysThinkingEnabled に保存されます。
思考過程を確認する
Ctrl+O を押すとverboseモードになり、Claudeの内部推論がグレーのイタリック体で表示されます。「なぜその実装を選んだのか」を追うのに役立ちます。
サブエージェント:コンテキストを汚さずに調査・並列処理する
Claude Codeの最大のボトルネックはコンテキストウィンドウです。ファイルを読むたびにコンテキストが消費され、一定以上埋まると出力品質が低下します。
サブエージェントはこの問題に対処するための仕組みです。調査タスクを別のコンテキストウィンドウで実行し、結果のサマリーだけをメインの会話に返します。
基本的な使い方
サブエージェントを使って、認証システムのトークンリフレッシュ処理がどう動いているか調査して
これだけで、サブエージェントが関連ファイルを読み込み、メインの会話を消費せずに結果を報告します。実装後のレビューにも使えます。
サブエージェントにこのコードのエッジケースをレビューしてもらって
カスタムサブエージェントの作成
/agents コマンドを実行すると、利用可能なサブエージェントの確認と新規作成ができます。.claude/agents/ にファイルを置くことで、チーム全体で共有できます。
サブエージェントには識別子、呼び出し条件、アクセスできるツール、システムプロンプトを設定します。「セキュリティレビュー専用」「API設計専用」のように目的ごとに作っておくと再利用しやすくなります。
Worktreeと組み合わせた並列処理
サブエージェントはGit worktreeと組み合わせることで、互いに衝突しない並列作業が可能になります。カスタムサブエージェントのフロントマターに isolation: worktree を追加すると、各サブエージェントが独立したworktreeで動きます。
CLAUDE.md:毎回読み込まれる指示ファイルを正しく書く
CLAUDE.mdは、すべてのClaudeセッションの開始時に自動で読み込まれる特殊ファイルです。プロジェクト固有のルールやコマンド、コード規約を書いておけば、毎回説明する手間が省けます。
生成と配置場所
/init コマンドを実行すると、現在のプロジェクト構造を分析してCLAUDE.mdの雛形を生成してくれます。
配置場所は複数あります。~/.claude/CLAUDE.md はすべてのプロジェクト共通になります。./CLAUDE.md はプロジェクトルートに置きgitで管理します。./CLAUDE.local.md は .gitignore に追加して個人用の設定を書く場所として使います。
書くべき内容と削るべき内容
CLAUDE.mdは短くなければ意味がありません。長すぎると、Claudeが重要な指示を見落とす原因になります。
書くべきものは、Claudeが自力で判断できないBashコマンド、デフォルトと異なるコードスタイル規則、テスト実行方法、ブランチ命名規則、環境固有の注意点です。
書かなくていいものは、Claudeがコードを読めばわかる内容、標準的な言語規約、頻繁に変わる情報、詳細なAPI仕様(ドキュメントのURLを貼るだけで十分)です。
各行について「これを削除するとClaudeがミスをするか?」を問い直すのが最も効果的な整理方法です。Claudeが特定の指示を無視し続けるときは、ファイルが長くなりすぎているサインです。
ファイルのインポート構文
@path/to/import 構文で別ファイルをインポートできます。
See @README.md for project overview
# Git workflow
- Branch naming: @docs/git-instructions.md
コンテキスト管理がパフォーマンスを決める
Plan Mode、サブエージェント、CLAUDE.mdの適切な設計はすべて、コンテキストウィンドウを無駄にしないための設計でもあります。コンテキストが埋まれば、どれだけ精密な指示を書いても出力品質は落ちます。
セッションが長くなったと感じたら早めに /compact で圧縮するか、新しいセッションを開始するのが有効です。調査系のタスクはサブエージェントに任せ、メインの会話は実装と判断に集中させます。
CLAUDE.mdが長くなりすぎたら思い切って削り、hookに落とせるルールはhookに移します。こうした積み重ねが、Claude Codeを道具として使いこなす上で最も効く改善になります。