ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

Claude Code ベストプラクティスが公式ドキュメント化されたので日本語訳した

今朝、Claude Code の公式ドキュメントサイトにベストプラクティスのページが作成されているのに気づきました。

code.claude.com

ただ、日本語版がなかったので、Claude Code に日本語に翻訳してもらいました。 その生成物を貼り付けただけのメモのような記事になります。

※ 公式で日本語版が追加されたら、そちらを参照してください。

※ 翻訳の正確性については保証できません。原文を確認することをお勧めします。

※ 公式ドキュメントは更新される可能性があります(翻訳日: 2026年1月22日)

Anthropic の AI コーディングツール Claude Code を効果的に使うためのパターンと戦略をまとめた包括的ガイドです。

概要

Claude Code は、ファイル読み取り、コマンド実行、変更適用、問題の自律的解決を行う AI コーディングツールです。本ガイドは、Anthropic の内部チームと、さまざまなコードベース、言語、環境で Claude Code を使用するエンジニアの実績に基づいたパターンをカバーしています。

基本的な制約

会話履歴の管理が最も重要です。Claude の会話履歴には、すべてのメッセージ、読み取ったすべてのファイル、すべてのコマンド出力が保持されます。履歴が満たされるにつれてパフォーマンスが低下します。単一のデバッグセッションで数万トークンを消費する可能性があります。


重要なプラクティス

1. Claude に作業を検証する方法を提供する (最も効果的)

テスト、スクリーンショット、期待される出力を含めることで、Claude が自己チェックできるようにします。これは最も効果的な手段です。

Claude は自分の作業を検証できる時(テストの実行、スクリーンショットの比較、出力の検証)に劇的に性能が向上します。明確な成功基準がなければ、Claude は正しく見えても機能しないものを生成する可能性があります。あなたが唯一のフィードバックループになってしまいます。

検証戦略

戦略 改善前 改善後
検証基準を提供 "メールアドレスを検証する関数を実装して" "validateEmail 関数を書いて。テストケースの例: [email protected] は true、invalid は false、[email protected] は false。実装後にテストを実行して"
UI 変更を視覚的に検証 "ダッシュボードをもっと良く見せて" "[スクリーンショットを貼り付け] このデザインを実装して。結果のスクリーンショットを撮って、オリジナルと比較して。違いをリストして修正して"
症状ではなく根本原因に対処 "ビルドが失敗している" "このエラーでビルドが失敗します: [エラーを貼り付け]。修正してビルドが成功することを確認して。根本原因に対処して、エラーを抑制しないで"

UI 変更は Chrome 拡張機能の Claude を使用して検証できます。これはブラウザを開き、UI をテストし、コードが機能するまで反復します。検証はテストスイート、リンター、または出力をチェックする Bash コマンドでも可能です。検証を堅牢にすることに投資してください。


2. 最初に探索、次に計画、そしてコーディング

調査と計画を実装から分離して、間違った問題を解決することを避けます。

Claude にコーディングに直接飛び込ませると、間違った問題を解決するコードを生成する可能性があります。計画モードを使用して探索と実行を分離してください。

推奨される 4 段階の流れ

1. 探索(計画モード)

claude (計画モード)

Claude に質問: /src/auth を読んで、セッションとログインをどのように処理しているか理解して。
また、秘密情報用の環境変数をどのように管理しているか見て。

2. 計画(計画モード)

claude (計画モード)

Claude に質問: Google OAuth を追加したいです。どのファイルを変更する必要がありますか?
セッションフローは?計画を作成して。

3. 実装(通常モード)

claude (通常モード)

Claude に質問: あなたの計画から OAuth フローを実装して。コールバックハンドラーの
テストを書いて、テストスイートを実行して、失敗を修正して。

4. コミット(通常モード)

claude (通常モード)

Claude に質問: 説明的なメッセージでコミットして、PR を開いて

計画をスキップすべき時

計画モードはオーバーヘッドを追加します。小規模で範囲が明確なタスク(タイポ修正、ログ行の追加、変数のリネーム)の場合は、Claude に直接依頼してください。計画が最も有用なのは以下の場合です:

  • アプローチが不確実な場合
  • 変更が複数ファイルを修正する場合
  • 修正するコードに不慣れな場合

差分を一文で説明できるなら、計画をスキップしてください。


3. プロンプトに具体的な情報を提供する

指示が正確であればあるほど、修正が少なくて済みます。

Claude は意図を推測できますが、あなたの心を読むことはできません。特定のファイルを参照し、制約を述べ、例示パターンを指摘してください。

情報提供の戦略

戦略 改善前 改善後
タスクの範囲を明確に "foo.py のテストを追加して" "foo.py のテストを書いて、ユーザーがログアウトした時のエッジケースをカバーして。モックは避けて。"
情報源を指摘 "なぜ ExecutionFactory はこんなに変な API を持っているの?" "ExecutionFactory の git 履歴を見て、API がどのように現在の形になったか要約して"
既存パターンを参照 "カレンダーウィジェットを追加して" "ホームページで既存のウィジェットがどのように実装されているか見て、パターンを理解して。HotDogWidget.php が良い例です。そのパターンに従って、ユーザーが月を選択して前後にページネーションして年を選択できる新しいカレンダーウィジェットを実装して。コードベースですでに使われているもの以外のライブラリを使わずにゼロから構築して。"
症状を説明 "ログインのバグを修正して" "セッションタイムアウト後にログインが失敗するとユーザーが報告しています。src/auth/ の認証フローをチェックして、特にトークンリフレッシュを。問題を再現する失敗するテストを書いて、それから修正して"

曖昧なプロンプトは探索時に有用で、軌道修正の余地がある場合に役立ちます。「このファイルで何を改善しますか?」のようなプロンプトは、考えもしなかったことを表面化させることができます。


4. 豊富な情報を提供する

@ を使用してファイルを参照し、スクリーンショット/画像を貼り付けるか、データを直接パイプします。

豊富な情報を提供する方法

  • @ でファイルを参照:コードの場所を説明する代わりに使用。Claude は応答前にファイルを読み取ります。
  • 画像を直接貼り付け:画像をコピー&ペーストまたはドラッグ&ドロップします。
  • URL を提供:ドキュメントと API リファレンス用。/permissions を使用して頻繁に使用するドメインを許可リストに追加します。
  • データをパイプインcat error.log | claude を実行してファイル内容を直接送信します。
  • Claude に必要なものを取得させる:Bash コマンド、MCP ツール、またはファイル読み取りを使用して、Claude 自身に情報を取得させます。

環境を設定する

いくつかのセットアップステップにより、Claude Code がすべてのセッションで大幅に効果的になります。

効果的な CLAUDE.md を書く

/init を実行して現在のプロジェクト構造に基づいたスターター CLAUDE.md ファイルを生成し、時間をかけて改良します。

CLAUDE.md は Claude がすべての会話の開始時に読み取る特別なファイルです。Bash コマンド、コードスタイル、作業の流れを含めます。これにより Claude にコードだけでは推測できない永続的な情報を提供します。/init スラッシュコマンドは、コードベースを分析してビルドシステム、テストフレームワーク、コードパターンを検出します。

CLAUDE.md の例

# コードスタイル
- CommonJS (require) ではなく ES モジュール (import/export) 構文を使用
- 可能な限りインポートを分割代入 (例: import { foo } from 'bar')

# 作業の流れ
- 一連のコード変更を完了したら型チェックを必ず実行
- パフォーマンスのため、全テストスイートではなく単一テストの実行を優先

含めるべきものと除外すべきもの

✅ 含めるべき:

  • Claude が推測できない Bash コマンド
  • デフォルトと異なるコードスタイルルール
  • テスト指示と優先されるテストランナー
  • リポジトリのルール(ブランチ命名、PR 規約)
  • プロジェクト固有の設計判断
  • よくある落とし穴や自明でない動作
  • 開発環境の特徴(必要な環境変数)

❌ 除外すべき:

  • Claude がコードを読むことで理解できるもの
  • Claude がすでに知っている標準的な言語規約
  • 詳細な API ドキュメント(代わりにドキュメントにリンク)
  • 頻繁に変更される情報
  • 長い説明やチュートリアル
  • コードベースのファイル単位の説明
  • 「クリーンなコードを書く」などの自明な実践

CLAUDE.md のベストプラクティス

  • 簡潔に保つ。各行について「これを削除すると Claude が間違いを犯すか?」と自問してください。
  • 肥大化した CLAUDE.md ファイルは Claude があなたの実際の指示を無視する原因になります
  • CLAUDE.md をコードとして扱う:問題が発生したらレビューし、定期的に整理する
  • Claude の動作が実際に変わるかどうかを観察して変更をテストする
  • 守ってほしいことには強調(例:「重要」または「必ず」)を使用する
  • CLAUDE.md を git にチェックインして、チームが貢献できるようにする

追加ファイルの読み込み

CLAUDE.md は @path/to/import 構文を使用して追加ファイルを読み込めます:

プロジェクト概要は @README.md を、利用可能な npm コマンドは @package.json を参照。

# 追加の指示
- Git の流れ: @docs/git-instructions.md
- 個人的な設定: @~/.claude/my-project-instructions.md

CLAUDE.md の場所

  • ホームフォルダ(~/.claude/CLAUDE.md:すべての Claude セッションに適用
  • プロジェクトルート(./CLAUDE.md:チームと共有するために git にチェックイン、または CLAUDE.local.md と命名して .gitignore に追加
  • 親ディレクトリ:モノレポに有用で、root/CLAUDE.mdroot/foo/CLAUDE.md の両方が自動的に取り込まれます
  • 子ディレクトリ:Claude はそれらのディレクトリ内のファイルを操作する際に、子 CLAUDE.md ファイルをオンデマンドで取り込みます

パーミッションを設定する

/permissions を使用して安全なコマンドを許可リストに追加するか、/sandbox で OS レベルの分離を行います。これにより、制御を維持しながら中断を減らします。

デフォルトでは、Claude Code はシステムを変更する可能性のあるアクション(ファイル書き込み、Bash コマンド、MCP ツールなど)に対して許可を要求します。これは安全ですが面倒です。10 回の承認後、実際にレビューしているわけではなく、クリックしているだけです。

中断を減らす方法

  • パーミッション許可リスト:安全とわかっている特定のツールを許可(npm run lintgit commit など)
  • サンドボックス化:ファイルシステムとネットワークアクセスを制限する OS レベルの分離を有効にし、Claude が定義された範囲内でより自由に作業できるようにする
  • --dangerously-skip-permissions:lint エラーの修正や定型コードの生成などの限定された作業のために、すべての許可チェックをバイパス

⚠️ 警告:Claude に任意のコマンドを実行させることは、データ損失、システム破損、またはプロンプトインジェクションによるデータ流出を引き起こす可能性があります。--dangerously-skip-permissions は、インターネットアクセスのないサンドボックス内でのみ使用してください。

パーミッションの設定サンドボックス化の有効化について詳しく読む。


CLI ツールを使用する

外部サービスと対話する際に、ghawsgcloudsentry-cli などの CLI ツールを使用するよう Claude Code に指示します。

CLI ツールは外部サービスと対話する最も効率的な方法です。GitHub を使用する場合は、gh CLI をインストールしてください。Claude はそれを使用して issue の作成、pull request の開設、コメントの読み取りを行う方法を知っています。gh がない場合、Claude は GitHub API を使用できますが、認証されていないリクエストはレート制限に達することがよくあります。Claude はまだ知らない CLI ツールを学習することにも効果的です。次のようなプロンプトを試してください:'foo-cli-tool --help' を使って foo ツールについて学び、それから A、B、C を解決するために使って。


MCP サーバーを接続する

claude mcp add を実行して、Notion、Figma、またはデータベースなどの外部ツールを接続します。

MCP サーバーを使用すると、Claude に以下を依頼できます:

  • issue トラッカーから機能を実装
  • データベースをクエリ
  • モニタリングデータを分析
  • Figma からデザインを統合
  • 作業の流れを自動化

カスタムスラッシュコマンドを作成する

繰り返される作業の流れを、プロジェクトレベルのコマンドとして .claude/commands/ に、またはすべてのセッションで利用可能なグローバルコマンドとして ~/.claude/commands/ に、markdown ファイルとして保存します。

カスタムスラッシュコマンドは、特別なキーワード $ARGUMENTS を含めてコマンド呼び出しからパラメータを渡すか、位置引数として $1$2 などを使用できます。

例:.claude/commands/fix-github-issue.md

---
description: GitHub issue を修正
---
GitHub issue を分析して修正してください: $ARGUMENTS

以下の手順に従ってください:
1. `gh issue view` を使用して issue の詳細を取得
2. issue に記載された問題を理解
3. 関連ファイルをコードベースで検索
4. issue を修正するために必要な変更を実装
5. 修正を検証するテストを書いて実行
6. コードがリントと型チェックをパスすることを確認
7. 説明的なコミットメッセージを作成
8. プッシュして PR を作成

これで /fix-github-issue 1234 を実行できます。カスタムスラッシュコマンドのドキュメントで詳細を読む。


プラグインをインストールする

/plugin を実行してマーケットプレイスを閲覧します。プラグインは設定なしでコマンド、ツール、統合を追加します。

プラグインは、コミュニティと Anthropic からの事前構築された機能で Claude Code を拡張します。すべてを自分で設定する代わりに、プラグインをインストールすればすぐに機能します。プラグインは以下を追加できます:

  • カスタムコマンド:特定の作業用の新しいスラッシュコマンド(例:/deploy/review/migrate
  • MCP サーバー:外部ツール(データベース、API、SaaS 製品)への事前設定された接続
  • サブエージェント:セキュリティレビュー、ドキュメント、またはテストなどのタスク用の専門アシスタント
  • スキル:Claude が関連する場合に自動的に適用する知識

プラグインのドキュメントで詳細を読む。


フックを設定する

/hooks を使用して Claude Code の動作に対する確実な制御を提供します。Claude がアクションを実行することを期待するのではなく、フックは毎回それが起こることを保証します。

フックは Claude の作業の特定のポイントでスクリプトを自動的に実行します:

  • 自動フォーマット:すべての編集後に .ts ファイルに prettier を、.go ファイルに gofmt を実行
  • リンティング:変更されたファイルを自動的にリントしてエラーを表面化
  • ガードレール.envsecrets/、または本番環境設定への変更をブロック
  • ログ記録:コンプライアンスまたはデバッグのために実行されたすべてのコマンドを追跡
  • 通知:Claude が入力を待っている時にアラートを取得

Claude はあなたのためにフックを書くことができます。次のようなプロンプトを試してください:

  • "すべてのファイル編集後に eslint を実行するフックを書いて"
  • "migrations フォルダへの書き込みをブロックするフックを書いて"

対話的な設定には /hooks を実行するか、.claude/settings.json を直接編集します。

フック vs. CLAUDE.md:

  • 例外なく毎回起こる必要があるもの(フォーマット、リンティング、機密ファイルへの書き込みブロック)の場合は、フックを使用
  • 判断が必要なガイダンス(コードスタイルの好み、設計パターン)の場合は、CLAUDE.md を使用
  • フックは確実、CLAUDE.md は助言

フックのドキュメントで詳細を読む。


カスタムサブエージェントを作成する

.claude/agents/ で専門アシスタントを定義し、Claude が仕事を任せられるようにします。各サブエージェントは独自の会話履歴、ツール、指示を持ちます。

明示的に呼び出すスラッシュコマンド(プロンプトテンプレート)とは異なり、サブエージェントは独自の許可されたツールセットを持つ独自の環境で実行されます。スクリプト化された作業ではなく、任せられたアシスタントです。

例:.claude/agents/security-reviewer.md

---
name: security-reviewer
description: コードのセキュリティ脆弱性をレビュー
tools: Read, Grep, Glob, Bash
model: opus
---
あなたはシニアセキュリティエンジニアです。以下についてコードをレビューしてください:
- インジェクション脆弱性(SQL、XSS、コマンドインジェクション)
- 認証と認可の欠陥
- コード内の秘密情報や認証情報
- 安全でないデータ処理

具体的な行参照と推奨される修正を提供してください。

サブエージェントを使用すべき時

  • コードレビュー:レビュアーサブエージェントがメインの会話にバイアスをかけずに作業をチェック
  • 調査:メインの会話履歴を消費せずに不慣れなコードを探索
  • 専門タスク:セキュリティレビュー、ドキュメント生成、テスト作成
  • 検証:メインエージェントの作業が正しいかどうかをサブエージェントにチェックさせる

サブエージェントを明示的に使用するよう Claude に伝えます:「このコードをセキュリティ問題についてレビューするためにサブエージェントを使用してください。」

サブエージェントのドキュメントで詳細を読む。


エージェントスキルを追加する

.claude/skills/ に markdown ファイルを作成して、Claude が自動的に適用する知識を与えます。スラッシュコマンドとは異なり、スキルは明示的な呼び出しではなく、状況によってトリガーされます。

スキルは、プロジェクト、チーム、または分野に固有の情報で Claude の知識を拡張します。Claude はスキルを読み、手元のタスクに基づいて自律的にそれらをいつ適用するかを決定します。

例:.claude/skills/api-conventions.md

---
name: api-conventions
description: サービスの REST API 設計規約
---
# API 規約
- URL パスには kebab-case を使用
- JSON プロパティには camelCase を使用
- リストエンドポイントには常にページネーションを含める
- URL パスで API をバージョン管理 (/v1/, /v2/)

スキル vs. その他のカスタマイズ

機能 トリガー 最適な用途
CLAUDE.md 常に読み込まれる プロジェクト全体の情報
スラッシュコマンド 明示的な /command 繰り返し可能な作業
スキル 状況(自動) 分野の知識
サブエージェント 任せる 分離されたタスク

スキルのドキュメントで詳細を読む。


効果的にコミュニケーションする

Claude Code とのコミュニケーション方法は、結果の品質に大きく影響します。

コードベースについて質問する

シニアエンジニアに質問するような質問を Claude にします。

新しいコードベースに慣れる際、学習と探索に Claude Code を使用します。他のエンジニアに質問するような質問を Claude にすることができます:

  • ログはどのように機能しますか?
  • 新しい API エンドポイントを作成するにはどうすればよいですか?
  • foo.rs の 134 行目の async move { ... } は何をしますか?
  • CustomerOnboardingFlowImpl はどのようなエッジケースを処理しますか?
  • このコードが 333 行目で bar() ではなく foo() を呼び出すのはなぜですか?

Claude Code をこのように使用することは効果的な学習方法であり、立ち上がり時間を改善し、他のエンジニアへの負荷を軽減します。特別なプロンプトは不要です:直接質問してください。


Claude にあなたをインタビューさせる

より大きな機能の場合、まず Claude にあなたをインタビューさせます。最小限のプロンプトから始めて、Claude に AskUserQuestion ツールを使用してあなたをインタビューさせます。

Claude は、技術的実装、UI/UX、エッジケース、トレードオフを含む、あなたがまだ考慮していないかもしれないことについて質問します。

[簡単な説明] を構築したいです。AskUserQuestion ツールを使用して詳細にインタビューしてください。

技術的実装、UI/UX、エッジケース、懸念事項、トレードオフについて質問してください。
明白な質問はしないで、私が考慮していないかもしれない難しい部分を掘り下げてください。

すべてをカバーするまでインタビューを続けて、それから完全な仕様を SPEC.md に書いてください。

仕様が完成したら、新しいセッションを開始して実装します。新しいセッションは実装のみに完全に焦点を当てたクリーンな会話履歴を持ち、参照する書面の仕様があります。


セッションを管理する

会話は永続的で元に戻せます。これを利用してください!

早期に頻繁に軌道修正する

Claude が軌道を外れていることに気づいたらすぐに修正します。

最良の結果は、タイトなフィードバックループから生まれます。Claude が初回で完璧に問題を解決することもありますが、迅速に修正することで、一般的により良い解決策をより早く生み出します。

  • EscEsc キーで Claude の動作を途中で停止します。会話履歴は保持されるため、方向を変えられます。
  • Esc + Esc または /rewindEsc を 2 回押すか /rewind を実行して巻き戻しメニューを開き、以前の会話とコード状態を復元します。
  • "それを元に戻して":Claude に変更を元に戻させます。
  • /clear:無関係なタスク間で会話履歴をリセットします。無関係な会話履歴を持つ長いセッションはパフォーマンスを低下させる可能性があります。

1 つのセッションで同じ問題について Claude を 2 回以上修正した場合、会話履歴は失敗したアプローチで乱雑になっています。/clear を実行し、学んだことを組み込んだより具体的なプロンプトで新しく始めます。より良いプロンプトを持つクリーンなセッションは、累積された修正を持つ長いセッションをほぼ常に上回ります。


会話履歴を積極的に管理する

無関係なタスク間で /clear を実行して会話履歴をリセットします。

Claude Code は、会話履歴の上限に近づくと自動的に圧縮します。これにより、重要なコードと決定を保持しながらスペースを解放します。長いセッション中、Claude の会話履歴は無関係な会話、ファイル内容、コマンドで満たされる可能性があります。これによりパフォーマンスが低下し、時には Claude が気を散らされることがあります。

  • タスク間で頻繁に /clear を使用して会話履歴を完全にリセット
  • 自動圧縮がトリガーされると、Claude は最も重要なこと(コードパターン、ファイル状態、主要な決定を含む)を要約します
  • より細かい制御には、/compact <instructions> を実行します。例:/compact API の変更に焦点を当てて

調査にサブエージェントを使用する

"X を調査するためにサブエージェントを使用して" で調査を任せます。サブエージェントは別の会話履歴で探索し、メインの会話を実装のためにクリーンに保ちます。

会話履歴が基本的な制約であるため、サブエージェントは利用可能な最も強力なツールの 1 つです。Claude がコードベースを調査すると、多くのファイルを読み取り、すべてがあなたの会話履歴を消費します。サブエージェントは別の会話履歴で実行され、要約を報告します:

サブエージェントを使用して、認証システムがトークンリフレッシュをどのように処理するか、
そして再利用すべき既存の OAuth ユーティリティがあるかどうかを調査してください。

サブエージェントはコードベースを探索し、関連ファイルを読み取り、発見を報告します。すべてメインの会話を乱雑にすることなく行われます。Claude が何かを実装した後の検証にもサブエージェントを使用できます:

このコードをエッジケースについてレビューするためにサブエージェントを使用して

チェックポイントで巻き戻す

Claude が行うすべてのアクションがチェックポイントを作成します。会話、コード、またはその両方を以前のチェックポイントに復元できます。

Claude は変更前に自動的にチェックポイントを作成します。Escape をダブルタップするか /rewind を実行してチェックポイントメニューを開きます。以下を復元できます:

  • 会話のみ(コード変更を保持)
  • コードのみ(会話を保持)
  • 両方

すべての動きを慎重に計画する代わりに、Claude にリスクのあることを試すよう伝えることができます。うまくいかなければ、巻き戻して別のアプローチを試してください。チェックポイントはセッション間で持続するため、ターミナルを閉じても後で巻き戻すことができます。

⚠️ 注意:チェックポイントは Claude によって行われた変更のみを追跡し、外部プロセスは追跡しません。これは git の代替ではありません。


会話を再開する

claude --continue を実行して中断したところから再開するか、--resume で最近のセッションから選択します。

Claude Code は会話をローカルに保存します。タスクが複数のセッションにまたがる場合(機能を開始し、中断され、翌日戻ってくる)、状況を再説明する必要はありません:

claude --continue    # 最新の会話を再開
claude --resume      # 最近の会話から選択

/rename を使用してセッションに説明的な名前("oauth-migration""debugging-memory-leak")を付けて、後で見つけられるようにします。セッションをブランチのように扱います。異なる作業ストリームは、別々の永続的な会話履歴を持つことができます。


自動化と規模拡大

1 つの Claude で効果的になったら、並列セッション、ヘッドレスモード、ファンアウトパターンで出力を倍増させます。

ヘッドレスモードを実行する

CI、pre-commit フック、またはスクリプトで claude -p "prompt" を使用します。ストリーミング JSON 出力には --output-format stream-json を追加します。

claude -p "your prompt" を使用すると、対話なしで Claude をヘッドレスで実行できます。ヘッドレスモードは、CI パイプライン、pre-commit フック、または任意の自動化された作業に Claude を統合する方法です。出力形式(プレーンテキスト、JSON、ストリーミング JSON)により、プログラム的に結果を解析できます。

# 一回限りのクエリ
claude -p "このプロジェクトが何をしているか説明して"

# スクリプト用の構造化出力
claude -p "すべての API エンドポイントをリストして" --output-format json

# リアルタイム処理用のストリーミング
claude -p "このログファイルを分析して" --output-format stream-json

複数の Claude セッションを実行する

開発をスピードアップし、分離された実験を実行し、または複雑な作業を開始するために、複数の Claude セッションを並列実行します。

並列セッションを実行する主な方法は 2 つあります:

  • Claude Desktop:複数のローカルセッションを視覚的に管理。各セッションは独自の分離されたワークツリーを取得します。
  • Web 上の Claude Code:Anthropic の安全なクラウドインフラ上の分離された VM で実行。

作業を並列化する以外に、複数のセッションは品質重視の作業を可能にします。新鮮な会話履歴は、Claude が書いたばかりのコードにバイアスがかからないため、コードレビューを改善します。たとえば、ライター/レビュアーパターンを使用します:

セッション A(ライター) セッション B(レビュアー)
API エンドポイント用のレートリミッターを実装して @src/middleware/rateLimiter.ts のレートリミッター実装をレビューして。エッジケース、競合状態、既存のミドルウェアパターンとの一貫性を探して。
これがレビューフィードバックです: [セッション B の出力]。これらの問題に対処して。

テストでも同様のことができます:1 つの Claude にテストを書かせ、別の Claude にそれらを通過するコードを書かせます。


ファイル間で並列実行する

各タスクに対して claude -p を呼び出すループを作成します。一括操作の許可範囲を制限するには --allowedTools を使用します。

大規模な移行や分析の場合、多くの並列 Claude 呼び出しに作業を分散できます:

ステップ 1:タスクリストを生成

Claude に移行が必要なすべてのファイルをリストさせます(例:移行が必要なすべての 2,000 個の Python ファイルをリストして

ステップ 2:リストをループするスクリプトを書く

for file in $(cat files.txt); do
  claude -p "$file を React から Vue に移行して。OK または FAIL を返して。" \
    --allowedTools "Edit,Bash(git commit:*)"
done

ステップ 3:いくつかのファイルでテストし、次に規模を拡大して実行

最初の 2〜3 ファイルで何が間違っているかに基づいてプロンプトを改良し、その後フルセットで実行します。--allowedTools フラグは Claude ができることを制限します。これは無人実行時に重要です。

Claude を既存のデータ/処理パイプラインに統合することもできます:

claude -p "<your prompt>" --output-format json | your_command

開発中のデバッグには --verbose を使用し、本番環境ではオフにします。


安全な自律モード

claude --dangerously-skip-permissions を使用してすべての許可チェックをバイパスし、Claude を中断なしで作業させます。これは、lint エラーの修正や定型コードの生成などの作業でうまく機能します。

⚠️ 警告:Claude に任意のコマンドを実行させることはリスクがあり、データ損失、システム破損、またはデータ流出(例:プロンプトインジェクション攻撃による)を引き起こす可能性があります。これらのリスクを最小限に抑えるには、インターネットアクセスのないコンテナで --dangerously-skip-permissions を使用してください

サンドボックス化を有効にすると(/sandbox)、より良いセキュリティで同様の自律性が得られます。サンドボックスは、すべてのチェックをバイパスするのではなく、事前に境界を定義します。


一般的な失敗パターンを回避する

これらは一般的な間違いです。早期に認識することで時間を節約できます:

ごちゃ混ぜセッション

1 つのタスクから始めて、無関係なことを Claude に尋ね、その後最初のタスクに戻ります。会話履歴は無関係な情報で満たされています。

修正:無関係なタスク間で /clear


何度も修正する

Claude が何か間違ったことをし、修正し、まだ間違っていて、再度修正します。会話履歴は失敗したアプローチで汚染されています。

修正:2 回の失敗した修正の後、/clear して学んだことを組み込んだより良い初期プロンプトを書きます。


肥大化した CLAUDE.md

CLAUDE.md が長すぎると、重要なルールがノイズの中で失われるため、Claude はその半分を無視します。

修正:容赦なく整理します。Claude が指示なしですでに正しく行っている場合は、削除するかフックに変換します。


信頼してから検証のギャップ

Claude はもっともらしく見える実装を生成しますが、エッジケースを処理していません。

修正:常に検証(テスト、スクリプト、スクリーンショット)を提供します。検証できない場合は、出荷しないでください。


無限の探索

範囲を定めずに何かを「調査」するよう Claude に依頼します。Claude は何百ものファイルを読み取り、会話履歴を満たします。

修正:調査を狭く範囲指定するか、サブエージェントを使用して探索がメインの会話履歴を消費しないようにします。


直感を磨く

このガイドのパターンは絶対的なものではありません。一般的にうまく機能する出発点ですが、すべての状況で最適であるとは限りません。

時には、1 つの複雑な問題に深く取り組んでおり、履歴が価値あるため、会話履歴を蓄積させるべき場合もあります。時には、タスクが探索的であるため、計画をスキップして Claude に理解させるべき場合もあります。時には、問題を制約する前に Claude がどのように解釈するかを見たいため、曖昧なプロンプトが正しい選択である場合もあります。

何がうまくいくかに注意を払ってください。Claude が優れた出力を生成した時、何をしたかに注目してください:プロンプト構造、提供した情報、使用していたモード。Claude が苦戦した時、なぜかを尋ねてください。会話履歴が雑多すぎましたか?プロンプトが曖昧すぎましたか?タスクが一回で大きすぎましたか?

時間の経過とともに、ガイドが捉えられない直感を磨くでしょう。いつ具体的にし、いつ広く尋ねるか、いつ計画し、いつ探索するか、いつ会話履歴をクリアし、いつ蓄積させるかがわかるようになります。


まとめ

Claude Code はチャットボットとは根本的に異なります。自律的に探索、計画、実装できます。成功は会話履歴の管理、検証の仕組みの提供、短いフィードバックループの使用に由来します。

このガイドは、Anthropic の内部チームと、さまざまなコードベース、言語、環境で Claude Code を使用するエンジニアの実績に基づいています。これらのパターンを出発点として使用し、自分に最も効果的なものを見つけるために実験してください。

お問い合わせプライバシーポリシー制作物