[{"data":1,"prerenderedAt":1508},["ShallowReactive",2],{"content-/claude-code-best-practices":3,"all-pages-for-dir":1486,"related-/claude-code-best-practices":1487,"og-image-/claude-code-best-practices":1507},{"id":4,"title":5,"body":6,"category":1470,"concepts":1470,"description":1471,"extension":1472,"meta":1473,"navigation":405,"ogImage":1470,"path":1474,"project_name":1470,"published":1475,"publishedAt":1476,"seo":1477,"source":1470,"stem":1478,"tags":1479,"todo":1470,"unpublished":1475,"updatedAt":1470,"__hash__":1485},"pages/2025-12/2025-12-30/claude-code-best-practices.md","Claude Code: エージェント型コーディングのベストプラクティス",{"type":7,"value":8,"toc":1425},"minimark",[9,305,309,312,316,321,324,352,358,460,465,479,485,489,495,498,501,541,545,552,556,563,567,570,590,597,600,614,619,737,755,759,763,766,792,795,799,802,833,836,840,843,868,871,875,881,884,887,928,931,935,938,958,962,965,991,997,1001,1008,1012,1015,1018,1023,1061,1064,1068,1071,1082,1085,1088,1091,1095,1101,1104,1107,1132,1135,1142,1148,1151,1154,1159,1167,1171,1174,1206,1209,1213,1224,1228,1231,1235,1238,1242,1245,1249,1252,1274,1277,1280,1283,1297,1301,1304,1309,1326,1329,1349,1352,1355,1361,1372,1378,1393,1399,1402,1405,1408,1421],[10,11,14,18],"callout",{"title":12,"type":13},"Claude Codeユーザーへの適用可能性評価","info",[15,16,17],"p",{},"本記事はClaude Code CLI自体のベストプラクティスです。以下の表でClaude Code CLIでの各機能の適用可能性を評価しています。",[19,20,21,40],"table",{},[22,23,24],"thead",{},[25,26,27,31,34,37],"tr",{},[28,29,30],"th",{},"セクション",[28,32,33],{},"機能",[28,35,36],{},"適用可否",[28,38,39],{},"備考",[41,42,43,58,69,80,92,104,116,129,140,152,164,175,186,198,209,222,233,244,255,268,280,293],"tbody",{},[25,44,45,49,52,55],{},[46,47,48],"td",{},"1. セットアップ",[46,50,51],{},"CLAUDE.mdファイル",[46,53,54],{},"適用可能",[46,56,57],{},"Claude Code標準機能",[25,59,60,62,65,67],{},[46,61,48],{},[46,63,64],{},"/initコマンド",[46,66,54],{},[46,68,57],{},[25,70,71,73,76,78],{},[46,72,48],{},[46,74,75],{},"/permissionsコマンド",[46,77,54],{},[46,79,57],{},[25,81,82,84,87,89],{},[46,83,48],{},[46,85,86],{},"GitHub CLI統合",[46,88,54],{},[46,90,91],{},"ghコマンドのインストールが必要",[25,93,94,97,100,102],{},[46,95,96],{},"2. ツール拡張",[46,98,99],{},"MCPサーバー",[46,101,54],{},[46,103,57],{},[25,105,106,108,111,113],{},[46,107,96],{},[46,109,110],{},"カスタムスラッシュコマンド",[46,112,54],{},[46,114,115],{},".claude/commands/に配置",[25,117,118,121,124,126],{},[46,119,120],{},"3. ワークフロー",[46,122,123],{},"探索・計画・コード・コミット",[46,125,54],{},[46,127,128],{},"推奨ワークフロー",[25,130,131,133,136,138],{},[46,132,120],{},[46,134,135],{},"テスト駆動開発",[46,137,54],{},[46,139,128],{},[25,141,142,144,147,149],{},[46,143,120],{},[46,145,146],{},"スクリーンショット活用",[46,148,54],{},[46,150,151],{},"MCP経由または手動コピペ",[25,153,154,156,159,161],{},[46,155,120],{},[46,157,158],{},"YOLOモード",[46,160,54],{},[46,162,163],{},"--dangerously-skip-permissionsフラグ",[25,165,166,168,171,173],{},[46,167,120],{},[46,169,170],{},"コードベースQ&A",[46,172,54],{},[46,174,57],{},[25,176,177,179,182,184],{},[46,178,120],{},[46,180,181],{},"Git操作",[46,183,54],{},[46,185,57],{},[25,187,188,190,193,195],{},[46,189,120],{},[46,191,192],{},"GitHub操作",[46,194,54],{},[46,196,197],{},"gh CLI経由",[25,199,200,202,205,207],{},[46,201,120],{},[46,203,204],{},"Jupyterノートブック",[46,206,54],{},[46,208,57],{},[25,210,211,214,217,219],{},[46,212,213],{},"4. 最適化",[46,215,216],{},"画像の活用",[46,218,54],{},[46,220,221],{},"ドラッグ&ドロップ対応",[25,223,224,226,229,231],{},[46,225,213],{},[46,227,228],{},"タブ補完",[46,230,54],{},[46,232,57],{},[25,234,235,237,240,242],{},[46,236,213],{},[46,238,239],{},"URL取得",[46,241,54],{},[46,243,57],{},[25,245,246,248,251,253],{},[46,247,213],{},[46,249,250],{},"/clearコマンド",[46,252,54],{},[46,254,57],{},[25,256,257,260,263,265],{},[46,258,259],{},"5. ヘッドレスモード",[46,261,262],{},"CI/自動化統合",[46,264,54],{},[46,266,267],{},"-pフラグで実行",[25,269,270,272,275,277],{},[46,271,259],{},[46,273,274],{},"Issue自動トリアージ",[46,276,54],{},[46,278,279],{},"GitHub Actions等と連携",[25,281,282,285,288,290],{},[46,283,284],{},"6. マルチClaude",[46,286,287],{},"複数インスタンス並列実行",[46,289,54],{},[46,291,292],{},"複数ターミナルで実行",[25,294,295,297,300,302],{},[46,296,284],{},[46,298,299],{},"Git Worktrees",[46,301,54],{},[46,303,304],{},"gitの標準機能を活用",[306,307,308],"h2",{"id":308},"概要",[15,310,311],{},"このガイドは、Anthropicが開発したエージェント型コーディングのためのコマンドラインツール「Claude Code」のベストプラクティスをまとめたものです。Claude Codeは「意図的にローレベルで、特定のワークフローを強制しない、モデルへの直接的なアクセスを提供する」設計になっています。",[306,313,315],{"id":314},"_1-セットアップのカスタマイズ","1. セットアップのカスタマイズ",[317,318,320],"h3",{"id":319},"claudemdファイルの作成","CLAUDE.mdファイルの作成",[15,322,323],{},"CLAUDE.mdは、会話開始時にClaudeが自動的にコンテキストに取り込む特別なファイルです。以下の内容を記載することを推奨します：",[325,326,327,331,334,337,340,343,346,349],"ul",{},[328,329,330],"li",{},"よく使うbashコマンド",[328,332,333],{},"コアファイルとユーティリティ関数",[328,335,336],{},"コードスタイルガイドライン",[328,338,339],{},"テスト手順",[328,341,342],{},"リポジトリのエチケット（ブランチ命名規則、マージ vs リベースの方針）",[328,344,345],{},"開発環境のセットアップ",[328,347,348],{},"プロジェクト固有の予期しない動作や警告",[328,350,351],{},"Claudeに覚えておいてほしいその他の情報",[15,353,354],{},[355,356,357],"strong",{},"CLAUDE.mdの構成例：",[359,360,365],"pre",{"className":361,"code":362,"language":363,"meta":364,"style":364},"language-markdown shiki shiki-themes vitesse-light vitesse-light","# Bashコマンド\n- npm run build: プロジェクトをビルド\n- npm run typecheck: 型チェッカーを実行\n\n# コードスタイル\n- CommonJS (require) ではなく、ESモジュール (import/export) 構文を使用\n- 可能な場合はインポートを分割代入する（例：import { foo } from 'bar'）\n\n# ワークフロー\n- コード変更の一連の作業が終わったら必ず型チェックを実行\n- パフォーマンスのため、テストスイート全体ではなく単一テストの実行を優先\n","markdown","",[366,367,368,381,392,400,407,415,423,431,436,444,452],"code",{"__ignoreMap":364},[369,370,373,377],"span",{"class":371,"line":372},"line",1,[369,374,376],{"class":375},"sFA8A","#",[369,378,380],{"class":379},"syTZV"," Bashコマンド\n",[369,382,384,388],{"class":371,"line":383},2,[369,385,387],{"class":386},"snbK4","-",[369,389,391],{"class":390},"sG7-3"," npm run build: プロジェクトをビルド\n",[369,393,395,397],{"class":371,"line":394},3,[369,396,387],{"class":386},[369,398,399],{"class":390}," npm run typecheck: 型チェッカーを実行\n",[369,401,403],{"class":371,"line":402},4,[369,404,406],{"emptyLinePlaceholder":405},true,"\n",[369,408,410,412],{"class":371,"line":409},5,[369,411,376],{"class":375},[369,413,414],{"class":379}," コードスタイル\n",[369,416,418,420],{"class":371,"line":417},6,[369,419,387],{"class":386},[369,421,422],{"class":390}," CommonJS (require) ではなく、ESモジュール (import/export) 構文を使用\n",[369,424,426,428],{"class":371,"line":425},7,[369,427,387],{"class":386},[369,429,430],{"class":390}," 可能な場合はインポートを分割代入する（例：import { foo } from 'bar'）\n",[369,432,434],{"class":371,"line":433},8,[369,435,406],{"emptyLinePlaceholder":405},[369,437,439,441],{"class":371,"line":438},9,[369,440,376],{"class":375},[369,442,443],{"class":379}," ワークフロー\n",[369,445,447,449],{"class":371,"line":446},10,[369,448,387],{"class":386},[369,450,451],{"class":390}," コード変更の一連の作業が終わったら必ず型チェックを実行\n",[369,453,455,457],{"class":371,"line":454},11,[369,456,387],{"class":386},[369,458,459],{"class":390}," パフォーマンスのため、テストスイート全体ではなく単一テストの実行を優先\n",[15,461,462],{},[355,463,464],{},"ファイルの配置オプション：",[325,466,467,470,473,476],{},[328,468,469],{},"リポジトリのルート（CLAUDE.mdとしてgitで共有、またはCLAUDE.local.mdとしてローカル専用）",[328,471,472],{},"親ディレクトリ（モノレポで、ルートのCLAUDE.mdとサブディレクトリ版の両方が適用される場合に便利）",[328,474,475],{},"子ディレクトリ（Claudeがそれらのファイルで作業する際にオンデマンドで取り込む）",[328,477,478],{},"ホームフォルダ（~/.claude/CLAUDE.md、すべてのセッションで適用）",[15,480,481,484],{},[366,482,483],{},"/init","コマンドで自動的にスターター用のCLAUDE.mdファイルを生成できます。",[317,486,488],{"id":487},"claudemdファイルのチューニング","CLAUDE.mdファイルのチューニング",[15,490,491,492,494],{},"CLAUDE.mdの内容はClaudeのプロンプトの一部になるため、洗練が重要です。「効果を検証せずに大量のコンテンツを追加する」ことは避けてください。何が最適な指示遵守を生み出すかを実験で確認しましょう。",[366,493,376],{},"キーを使うと、Claudeが自動的に指示をCLAUDE.mdファイルに組み込めます。一部のチームではファイルをプロンプト改善ツールに通したり、「IMPORTANT」や「YOU MUST」などの強調キーワードを使用して遵守を強化しています。",[317,496,497],{"id":497},"許可ツールのキュレーション",[15,499,500],{},"Claude Codeはデフォルトで、システムを変更するアクション（ファイル書き込み、多くのbashコマンド、MCPツール）に対して許可を要求します。4つの管理方法があります：",[502,503,504,507,525,535],"ol",{},[328,505,506],{},"セッション中に「Always allow（常に許可）」を選択",[328,508,509,512,513,516,517,520,521,524],{},[366,510,511],{},"/permissions","コマンドでツールを追加・削除（例：",[366,514,515],{},"Edit","でファイル編集、",[366,518,519],{},"Bash(git commit:*)","でコミット、",[366,522,523],{},"mcp__puppeteer__puppeteer_navigate","で特定のMCPツール）",[328,526,527,530,531,534],{},[366,528,529],{},".claude/settings.json","または",[366,532,533],{},"~/.claude.json","を手動編集（前者はチーム共有に推奨）",[328,536,537,540],{},[366,538,539],{},"--allowedTools"," CLIフラグでセッション固有の許可を設定",[317,542,544],{"id":543},"github-cliのインストール","GitHub CLIのインストール",[15,546,547,548,551],{},"ClaudeはGitHubとのやり取り（Issue作成、プルリクエストのオープン、コメントの読み取り）に",[366,549,550],{},"gh"," CLIコマンドを理解します。インストールされていない場合でも、GitHub APIまたはMCPサーバーが利用可能であれば使用できます。",[306,553,555],{"id":554},"_2-claudeにさらなるツールを","2. Claudeにさらなるツールを",[15,557,558,559,562],{},"Claude Codeはbash環境へのアクセスを継承し、利用可能なすべてのツールに即座にアクセスできます。ただし、カスタムbashツールには明示的な指示が必要です。頻繁に使用するツールについては、CLAUDE.mdに記載するか、Claudeに",[366,560,561],{},"--help","を実行してドキュメントを取得するよう指示してください。",[317,564,566],{"id":565},"mcpでclaudeを使用","MCPでClaudeを使用",[15,568,569],{},"Claude CodeはMCPサーバーとクライアントの両方として機能します。MCPサーバーは3つの方法で設定できます：",[502,571,572,578,584],{},[328,573,574,577],{},[355,575,576],{},"プロジェクト設定"," - そのディレクトリでのみ利用可能",[328,579,580,583],{},[355,581,582],{},"グローバル設定"," - すべてのプロジェクトで利用可能",[328,585,586,589],{},[355,587,588],{},"チェックインされた.mcp.json"," - コードベースで作業するすべてのチームメンバーと共有",[15,591,592,593,596],{},"開発中の設定問題の特定には",[366,594,595],{},"--mcp-debug","フラグが役立ちます。",[317,598,599],{"id":599},"カスタムスラッシュコマンドの使用",[15,601,602,605,606,609,610,613],{},[366,603,604],{},".claude/commands/","フォルダにMarkdownファイルとしてプロンプトテンプレートを保存すると、",[366,607,608],{},"/","メニューから利用可能なスラッシュコマンドを作成できます。これらはgitにチェックインしてチームでアクセスできます。",[366,611,612],{},"$ARGUMENTS","キーワードでコマンド呼び出しからパラメータを渡すことができます。",[15,615,616],{},[355,617,618],{},"GitHubのIssue修正コマンドの例：",[359,620,622],{"className":361,"code":621,"language":363,"meta":364,"style":364},"GitHubのIssueを分析して修正してください: $ARGUMENTS\n\n以下の手順に従ってください：\n\n1. `gh issue view`でIssueの詳細を取得\n2. Issueに記載された問題を理解\n3. 関連するファイルをコードベースで検索\n4. Issueを修正するために必要な変更を実装\n5. 修正を検証するテストを作成・実行\n6. コードがリントと型チェックに合格することを確認\n7. 説明的なコミットメッセージを作成\n8. プッシュしてPRを作成\n\nGitHub関連のすべてのタスクにはGitHub CLI (`gh`) を使用してください。\n",[366,623,624,629,633,638,642,660,668,676,684,692,700,708,717,722],{"__ignoreMap":364},[369,625,626],{"class":371,"line":372},[369,627,628],{"class":390},"GitHubのIssueを分析して修正してください: $ARGUMENTS\n",[369,630,631],{"class":371,"line":383},[369,632,406],{"emptyLinePlaceholder":405},[369,634,635],{"class":371,"line":394},[369,636,637],{"class":390},"以下の手順に従ってください：\n",[369,639,640],{"class":371,"line":402},[369,641,406],{"emptyLinePlaceholder":405},[369,643,644,647,651,654,657],{"class":371,"line":409},[369,645,646],{"class":386},"1.",[369,648,650],{"class":649},"shFtX"," `",[369,652,653],{"class":390},"gh issue view",[369,655,656],{"class":649},"`",[369,658,659],{"class":390},"でIssueの詳細を取得\n",[369,661,662,665],{"class":371,"line":417},[369,663,664],{"class":386},"2.",[369,666,667],{"class":390}," Issueに記載された問題を理解\n",[369,669,670,673],{"class":371,"line":425},[369,671,672],{"class":386},"3.",[369,674,675],{"class":390}," 関連するファイルをコードベースで検索\n",[369,677,678,681],{"class":371,"line":433},[369,679,680],{"class":386},"4.",[369,682,683],{"class":390}," Issueを修正するために必要な変更を実装\n",[369,685,686,689],{"class":371,"line":438},[369,687,688],{"class":386},"5.",[369,690,691],{"class":390}," 修正を検証するテストを作成・実行\n",[369,693,694,697],{"class":371,"line":446},[369,695,696],{"class":386},"6.",[369,698,699],{"class":390}," コードがリントと型チェックに合格することを確認\n",[369,701,702,705],{"class":371,"line":454},[369,703,704],{"class":386},"7.",[369,706,707],{"class":390}," 説明的なコミットメッセージを作成\n",[369,709,711,714],{"class":371,"line":710},12,[369,712,713],{"class":386},"8.",[369,715,716],{"class":390}," プッシュしてPRを作成\n",[369,718,720],{"class":371,"line":719},13,[369,721,406],{"emptyLinePlaceholder":405},[369,723,725,728,730,732,734],{"class":371,"line":724},14,[369,726,727],{"class":390},"GitHub関連のすべてのタスクにはGitHub CLI (",[369,729,656],{"class":649},[369,731,550],{"class":390},[369,733,656],{"class":649},[369,735,736],{"class":390},") を使用してください。\n",[15,738,739,742,743,746,747,750,751,754],{},[366,740,741],{},".claude/commands/fix-github-issue.md","に保存すると、",[366,744,745],{},"/project:fix-github-issue","コマンドとして利用可能になります（Issue #1234の場合は",[366,748,749],{},"/project:fix-github-issue 1234","と呼び出し）。個人用コマンドは",[366,752,753],{},"~/.claude/commands/","に配置すると、すべてのセッションで利用可能になります。",[306,756,758],{"id":757},"_3-一般的なワークフローを試す","3. 一般的なワークフローを試す",[317,760,762],{"id":761},"探索計画コードコミット","探索、計画、コード、コミット",[15,764,765],{},"この汎用的な4ステップアプローチ：",[502,767,768,774,780,786],{},[328,769,770,773],{},[355,771,772],{},"関連するファイル、画像、URLを読むようClaudeに依頼","（まだコードは書かない）。一般的なポインタまたは具体的なファイル名を使用。この段階では、詳細の確認や特定の質問の調査にサブエージェントの使用が有効で、特に会話の初期にコンテキストの可用性を保持するのに役立ちます。",[328,775,776,779],{},[355,777,778],{},"コーディング前に計画を立てるようClaudeに依頼","。「think」を使うと拡張思考モードがトリガーされ、追加の計算時間が割り当てられます。システムはこれらのフレーズを思考予算レベルにマッピングします：「think」 \u003C 「think hard」 \u003C 「think harder」 \u003C 「ultrathink」。それぞれ段階的により多くの思考リソースを割り当てます。実装が逸脱した場合にリセットできるよう、計画をドキュメントまたはGitHub Issueに作成してください。",[328,781,782,785],{},[355,783,784],{},"解決策を実装するようClaudeに依頼","。各部分の実装時に解決策の妥当性を明示的に検証するよう要求します。",[328,787,788,791],{},[355,789,790],{},"結果をコミットしてプルリクエストを作成するようClaudeに依頼","。必要に応じてREADMEや変更履歴を更新します。",[15,793,794],{},"ステップ1-2は重要です。これらがないと、Claudeはコーディングに飛びつく傾向があります。調査と計画は、より深い思考を必要とする問題に対してパフォーマンスを大幅に向上させます。",[317,796,798],{"id":797},"テストを書くコミットコードイテレートコミット","テストを書く、コミット；コード、イテレート、コミット",[15,800,801],{},"このテスト駆動開発ワークフローは、容易に検証可能な変更を実現します：",[502,803,804,810,816,822,828],{},[328,805,806,809],{},[355,807,808],{},"期待される入出力ペアに基づいてテストを作成","。存在しない機能のモック実装を避けるため、テスト駆動開発であることを明示的に伝えます",[328,811,812,815],{},[355,813,814],{},"テストを実行してfailすることを確認","。実装コードは書かない",[328,817,818,819],{},"満足したら",[355,820,821],{},"テストをコミット",[328,823,824,827],{},[355,825,826],{},"テストに合格するコードを作成","。テストを変更しないよう指示します。すべて合格するまで続け、通常数回のイテレーションが必要です。サブエージェントで実装がテストに過剰適合していないか検証できます",[328,829,818,830],{},[355,831,832],{},"コードをコミット",[15,834,835],{},"Claudeは明確なイテレーションターゲット（ビジュアルモック、テストケース、その他の出力）があると最高のパフォーマンスを発揮します。期待される出力があれば、変更、評価、段階的な改善が可能になります。",[317,837,839],{"id":838},"コードを書く結果をスクリーンショットイテレート","コードを書く、結果をスクリーンショット、イテレート",[15,841,842],{},"以下を通じてビジュアルターゲットを提供：",[502,844,845,851,857,863],{},[328,846,847,850],{},[355,848,849],{},"ブラウザのスクリーンショット機能","（Puppeteer MCPサーバー、iOSシミュレーターMCPサーバー、または手動でのコピー＆ペースト経由）",[328,852,853,856],{},[355,854,855],{},"ビジュアルモック","（ファイルパスまたはドラッグ＆ドロップで画像を提供）",[328,858,859,860],{},"結果がモックと一致するまで",[355,861,862],{},"実装とイテレーション",[328,864,818,865],{},[355,866,867],{},"コミット",[15,869,870],{},"人間と同様に、Claudeの出力はイテレーションを通じて大幅に改善されます。最初のバージョンは良いかもしれませんが、2〜3回のイテレーション後には通常はるかに良くなります。",[317,872,874],{"id":873},"安全なyoloモード","安全なYOLOモード",[15,876,877,880],{},[366,878,879],{},"claude --dangerously-skip-permissions","は許可チェックをバイパスし、Claudeが中断なく作業できるようにします。リントエラーの修正やボイラープレートの生成などのワークフローに最適です。これにはデータ損失やシステム破損を含む重大なリスクがあります。リスクを最小限にするには、インターネットアクセスなしのコンテナを使用してください。Docker Dev Containerのリファレンス実装がClaude Codeリポジトリにあります。",[317,882,170],{"id":883},"コードベースqa",[15,885,886],{},"チームメイトとペアプログラミングするように質問して、新しいコードベースへのオンボーディングにClaude Codeを使用：",[325,888,889,892,895,905,911,922],{},[328,890,891],{},"ロギングはどのように機能しますか？",[328,893,894],{},"新しいAPIエンドポイントを作成するにはどうすればよいですか？",[328,896,897,900,901,904],{},[366,898,899],{},"foo.rs","の134行目の",[366,902,903],{},"async move { ... }","は何をしていますか？",[328,906,907,910],{},[366,908,909],{},"CustomerOnboardingFlowImpl","はどのようなエッジケースを処理しますか？",[328,912,913,914,917,918,921],{},"333行目で",[366,915,916],{},"bar()","ではなく",[366,919,920],{},"foo()","を呼び出しているのはなぜですか？",[328,923,924,927],{},[366,925,926],{},"baz.py","の334行目に相当するJavaコードは何ですか？",[15,929,930],{},"Claudeはエージェント的にコードベースを検索して回答を見つけます。特別なプロンプトは不要です。Anthropicでは、これがコアオンボーディングワークフローになり、ランプアップ時間を大幅に短縮し、他のエンジニアの負荷を軽減しています。",[317,932,934],{"id":933},"claudeをgit操作に使用","Claudeをgit操作に使用",[15,936,937],{},"Claudeは多くのgit操作を効果的に処理します。Anthropicのエンジニアは90%以上のgit操作にClaudeを使用しています：",[325,939,940,946,952],{},[328,941,942,945],{},[355,943,944],{},"git履歴の検索","：リリースの変更、機能の所有者、APIデザインの根拠に関する質問に回答（Claudeに履歴をレビューするよう明示的にプロンプトすることが有効）",[328,947,948,951],{},[355,949,950],{},"コミットメッセージの作成","：差分と最近の履歴を自動的に調べる",[328,953,954,957],{},[355,955,956],{},"複雑なgit操作の処理","：ファイルのリバート、リベースの競合解決、パッチの比較・適用",[317,959,961],{"id":960},"claudeをgithub操作に使用","ClaudeをGitHub操作に使用",[15,963,964],{},"Claude CodeはGitHubとのやり取りを管理：",[325,966,967,973,979,985],{},[328,968,969,972],{},[355,970,971],{},"プルリクエストの作成","（「pr」の短縮形を理解し、差分とコンテキストに基づいて適切なメッセージを生成）",[328,974,975,978],{},[355,976,977],{},"ワンショットでのコードレビュー解決の実装","（PRのコメントを修正し、オプションで具体的な指示を追加してPRブランチにプッシュ）",[328,980,981,984],{},[355,982,983],{},"失敗したビルド","またはリンター警告の修正",[328,986,987,988],{},"オープンなGitHub Issueをループして",[355,989,990],{},"カテゴライズとトリアージ",[15,992,993,994,996],{},"これにより、",[366,995,550],{},"の構文を覚える必要がなくなり、ルーティンタスクを自動化できます。",[317,998,1000],{"id":999},"jupyterノートブックでの作業","Jupyterノートブックでの作業",[15,1002,1003,1004,1007],{},"研究者やデータサイエンティストは、Jupyterノートブックの読み書きにClaude Codeを使用しています。Claudeは画像を含む出力を解釈し、高速なデータ探索とやり取りを提供します。必須のプロンプトはありませんが、推奨ワークフロー：Claude Codeと",[366,1005,1006],{},".ipynb","ファイルをVS Codeで並べて開いておく。Claudeにノートブックやデータの可視化を「見栄え良く」するよう依頼すると、人間の閲覧体験の最適化に役立ちます。",[306,1009,1011],{"id":1010},"_4-ワークフローの最適化","4. ワークフローの最適化",[317,1013,1014],{"id":1014},"指示を具体的に",[15,1016,1017],{},"Claudeの成功率は「より具体的な指示で大幅に向上し、特に最初の試行で顕著」です。事前の明確な指示により、軌道修正が減少します。",[15,1019,1020],{},[355,1021,1022],{},"比較例：",[19,1024,1025,1035],{},[22,1026,1027],{},[25,1028,1029,1032],{},[28,1030,1031],{},"悪い例",[28,1033,1034],{},"良い例",[41,1036,1037,1045,1053],{},[25,1038,1039,1042],{},[46,1040,1041],{},"「foo.pyにテストを追加して」",[46,1043,1044],{},"「foo.pyの新しいテストケースを書いて、ユーザーがログアウトしているエッジケースをカバーして。モックは避けて」",[25,1046,1047,1050],{},[46,1048,1049],{},"「なぜExecutionFactoryはこんな奇妙なAPIなの？」",[46,1051,1052],{},"「ExecutionFactoryのgit履歴を調べて、そのAPIがどのように形成されたかをまとめて」",[25,1054,1055,1058],{},[46,1056,1057],{},"「カレンダーウィジェットを追加して」",[46,1059,1060],{},"「ホームページで既存のウィジェットがどのように実装されているかを見て、パターンとコードとインターフェースの分離方法を理解して。HotDogWidget.phpが良い例として参考になる。その後、パターンに従って新しいカレンダーウィジェットを実装して。ユーザーが月を選択し、前後にページネーションして年を選べるようにする。コードベースで既に使用されているライブラリ以外は使わずにゼロから構築して」",[15,1062,1063],{},"Claudeは意図を推測できますが、心を読めません。具体性がアラインメントを向上させます。",[317,1065,1067],{"id":1066},"claudeに画像を渡す","Claudeに画像を渡す",[15,1069,1070],{},"Claudeは以下を通じて画像やダイアグラムに優れています：",[325,1072,1073,1076,1079],{},[328,1074,1075],{},"スクリーンショットを貼り付け（macOSではcmd+ctrl+shift+4でクリップボードにスクリーンショット、ctrl+vで貼り付け。cmd+vではないことに注意）",[328,1077,1078],{},"画像をプロンプトに直接ドラッグ＆ドロップ",[328,1080,1081],{},"画像のファイルパスを提供",[15,1083,1084],{},"UI開発の参照ポイントとしてのデザインモックや、分析とデバッグのためのビジュアルチャートに特に有用です。ビジュアルが提供されない場合、視覚的な魅力の重要性を強調することが助けになります。",[317,1086,1087],{"id":1087},"見てほしいファイルを言及",[15,1089,1090],{},"リポジトリ全体のファイルやフォルダを参照するためにタブ補完を使用し、Claudeが正しいリソースを見つけたり更新したりするのを助けます。",[317,1092,1094],{"id":1093},"claudeにurlを渡す","ClaudeにURLを渡す",[15,1096,1097,1098,1100],{},"Claudeが取得して読み取るように、プロンプトと一緒に特定のURLを貼り付けます。",[366,1099,511],{},"を使用してドメインを許可リストに追加（例：docs.foo.com）すると、繰り返しの許可プロンプトを回避できます。",[317,1102,1103],{"id":1103},"早期かつ頻繁に軌道修正",[15,1105,1106],{},"自動承認モード（shift+tabで切り替え）は自律的な作業を可能にしますが、通常はアクティブなコラボレーションとガイダンスでより良い結果が得られます。4つの軌道修正ツール：",[502,1108,1109,1114,1120,1126],{},[328,1110,1111,1113],{},[355,1112,778],{},"し、実装開始前に承認を確認",[328,1115,1116,1119],{},[355,1117,1118],{},"Escapeキーを押してClaudeを中断","（思考中、ツール呼び出し中、ファイル編集中のいずれでも）。コンテキストは保持され、リダイレクトが可能",[328,1121,1122,1125],{},[355,1123,1124],{},"Escapeダブルタップで履歴を遡り","、以前のプロンプトを編集し、異なる方向を繰り返し探索",[328,1127,1128,1131],{},[355,1129,1130],{},"Claudeに変更を元に戻すよう依頼","。多くの場合、オプション#2と組み合わせて異なるアプローチを試す",[15,1133,1134],{},"Claudeが時折最初の試行で問題を完璧に解決することがありますが、修正ツールを使用することで一般的により良い解決策をより速く得られます。",[317,1136,1138,1141],{"id":1137},"clearでコンテキストを集中",[366,1139,1140],{},"/clear","でコンテキストを集中",[15,1143,1144,1145,1147],{},"長いセッション中、無関係な会話、ファイルの内容、コマンドでコンテキストが埋まり、パフォーマンスが低下しClaudeの注意が散漫になる可能性があります。タスク間で頻繁に",[366,1146,1140],{},"を使用してコンテキストをリセットしてください。",[317,1149,1150],{"id":1150},"複雑なワークフローにはチェックリストとスクラッチパッドを使用",[15,1152,1153],{},"複数のステップがある大きなタスクや、網羅的なソリューションが必要なタスク（コード移行、多数のリント修正、複雑なビルドスクリプト）では、Markdownファイルのチェックリストまたは作業用スクラッチパッドとしてのGitHub Issueでパフォーマンスを向上させます。",[15,1155,1156],{},[355,1157,1158],{},"リント修正のアプローチ例：",[502,1160,1161,1164],{},[328,1162,1163],{},"Claudeにリントコマンドを実行させ、すべての結果エラー（ファイル名と行番号）をMarkdownチェックリストに書き込む",[328,1165,1166],{},"Claudeに各問題を順番に対処させ、修正・検証してから次に進むようチェックオフ",[317,1168,1170],{"id":1169},"claudeにデータを渡す","Claudeにデータを渡す",[15,1172,1173],{},"いくつかのデータ提供方法があります：",[325,1175,1176,1183,1194,1200],{},[328,1177,1178,1179,1182],{},"プロンプトに直接",[355,1180,1181],{},"コピー＆ペースト","（最も一般的）",[328,1184,1185,1186,1189,1190,1193],{},"Claude Codeに",[355,1187,1188],{},"パイプで渡す","（例：",[366,1191,1192],{},"cat foo.txt | claude","）。ログ、CSV、大量データに特に有用",[328,1195,1196,1197],{},"bashコマンド、MCPツール、カスタムスラッシュコマンドを通じて",[355,1198,1199],{},"Claudeにデータを取得させる",[328,1201,1202,1205],{},[355,1203,1204],{},"Claudeにファイルを読ませる","またはURLを取得させる（画像でも動作）",[15,1207,1208],{},"ほとんどのセッションではこれらのアプローチを組み合わせ、ログファイルをパイプで渡しながらClaudeにツールを使用して追加のコンテキストを取得するよう指示します。",[306,1210,1212],{"id":1211},"_5-ヘッドレスモードでインフラを自動化","5. ヘッドレスモードでインフラを自動化",[15,1214,1215,1216,1219,1220,1223],{},"Claude Codeには、非インタラクティブなコンテキスト（CI、pre-commitフック、ビルドスクリプト、自動化）向けのヘッドレスモードがあります。",[366,1217,1218],{},"-p","フラグとプロンプトでヘッドレスモードを使用し、",[366,1221,1222],{},"--output-format stream-json","でストリーミングJSON出力を取得できます。注意：ヘッドレスモードはセッション間で永続化されません。各セッションでトリガーしてください。",[317,1225,1227],{"id":1226},"claudeをissueトリアージに使用","ClaudeをIssueトリアージに使用",[15,1229,1230],{},"ヘッドレスモードは、新しいIssueが作成された時などのGitHubイベントトリガーの自動化を実現します。公開されているClaude CodeリポジトリはClaudeを使用して着信Issueを検査し、適切なラベルを割り当てています。",[317,1232,1234],{"id":1233},"claudeをリンターとして使用","Claudeをリンターとして使用",[15,1236,1237],{},"Claudeは従来のリントツールを超えて主観的なコードレビューを提供し、タイポ、古いコメント、誤解を招く関数/変数名などを特定します。",[306,1239,1241],{"id":1240},"_6-マルチclaudeワークフローでレベルアップ","6. マルチClaudeワークフローでレベルアップ",[15,1243,1244],{},"スタンドアロンでの使用を超えて、複数のClaudeインスタンスを並列で実行するアプリケーションがあります。",[317,1246,1248],{"id":1247},"一人のclaudeにコードを書かせ別のclaudeに検証させる","一人のClaudeにコードを書かせ、別のClaudeに検証させる",[15,1250,1251],{},"効果的なアプローチ：",[502,1253,1254,1257,1262,1265,1271],{},[328,1255,1256],{},"Claudeを使用してコードを書く",[328,1258,1259,1261],{},[366,1260,1140],{},"を実行するか、別のターミナルで2番目のClaudeを開始",[328,1263,1264],{},"2番目のClaudeに1番目のClaudeの作業をレビューさせる",[328,1266,1267,1268,1270],{},"別のClaudeを開始（または再び",[366,1269,1140],{},"）し、コードとフィードバックの両方を読ませる",[328,1272,1273],{},"このClaudeにフィードバックに基づいてコードを編集させる",[15,1275,1276],{},"テストでも同様のアプローチが有効：一人のClaudeがテストを書き、別のClaudeがテストに合格するコードを書く。インスタンスは別々の作業用スクラッチパッドを通じて通信できます。この分離により、単一のClaudeが処理するよりも良い結果が得られることが多いです。",[317,1278,1279],{"id":1279},"リポジトリの複数チェックアウトを持つ",[15,1281,1282],{},"各ステップの完了を待つのではなく：",[502,1284,1285,1288,1291,1294],{},[328,1286,1287],{},"別々のフォルダに3-4つのgitチェックアウトを作成",[328,1289,1290],{},"各フォルダを別々のターミナルタブで開く",[328,1292,1293],{},"異なるタスクで各々にClaudeを開始",[328,1295,1296],{},"循環して進捗を確認し、許可を承認/拒否",[317,1298,1300],{"id":1299},"git-worktreesを使用","Git Worktreesを使用",[15,1302,1303],{},"独立したタスク用の複数チェックアウトに対する軽量な代替手段。Git worktreesは、Git履歴とreflogを共有しながら、分離された作業ディレクトリを持つ別々のディレクトリに複数のブランチをチェックアウトできます。",[15,1305,1306],{},[355,1307,1308],{},"ワークフロー：",[502,1310,1311,1317,1323],{},[328,1312,1313,1314],{},"worktreeを作成：",[366,1315,1316],{},"git worktree add ../project-feature-a feature-a",[328,1318,1319,1320],{},"各worktreeでClaudeを起動：",[366,1321,1322],{},"cd ../project-feature-a && claude",[328,1324,1325],{},"必要に応じて追加のworktreeを作成（新しいターミナルタブで繰り返し）",[15,1327,1328],{},"ヒント：",[325,1330,1331,1334,1337,1340,1343],{},[328,1332,1333],{},"一貫した命名規則を使用",[328,1335,1336],{},"worktreeごとに1つのターミナルタブを維持",[328,1338,1339],{},"MacのiTerm2ではClaudeが注意を必要とする時の通知を設定可能",[328,1341,1342],{},"異なるworktreeには別々のIDEウィンドウを使用",[328,1344,1345,1346],{},"完了したらクリーンアップ：",[366,1347,1348],{},"git worktree remove ../project-feature-a",[317,1350,1351],{"id":1351},"カスタムハーネスでヘッドレスモードを使用",[15,1353,1354],{},"2つの主要なヘッドレスモード統合パターン：",[15,1356,1357,1360],{},[355,1358,1359],{},"ファンアウト","は大規模な移行や分析を処理：",[502,1362,1363,1366,1369],{},[328,1364,1365],{},"Claudeにタスクリストを生成するスクリプトを書かせる（例：フレームワーク移行が必要な2kファイル）",[328,1367,1368],{},"タスクをループして、ツールアクセス付きでプログラム的に各タスクにClaudeを呼び出す",[328,1370,1371],{},"望ましい結果を得るためにプロンプトを洗練しながらスクリプトを繰り返し実行",[15,1373,1374,1377],{},[355,1375,1376],{},"パイプライン","はClaudeを既存のデータ/処理パイプラインに統合：",[502,1379,1380,1390],{},[328,1381,1382,1385,1386,1389],{},[366,1383,1384],{},"claude -p \"\u003Cyour prompt>\" --json | your_command","を呼び出し、",[366,1387,1388],{},"your_command","は次のパイプラインステップ",[328,1391,1392],{},"JSON出力は自動処理に役立つ",[15,1394,1395,1398],{},[366,1396,1397],{},"--verbose","フラグはClaudeの呼び出しのデバッグに役立ちます。通常、本番環境ではクリーンな出力のためにオフにします。",[306,1400,1401],{"id":1401},"結論",[15,1403,1404],{},"これらのプラクティスは、普遍的なルールではなく、出発点として機能します。成功は、個人やチームのニーズに合ったアプローチを実験し見つけることから生まれます。@AnthropicAIにタグ付けしてAnthropicにヒントを提供することで、コミュニティの知識を拡大できます。",[1406,1407],"hr",{},[15,1409,1410,1413,1414],{},[355,1411,1412],{},"出典",": ",[1415,1416,1420],"a",{"href":1417,"rel":1418},"https://www.anthropic.com/engineering/claude-code-best-practices",[1419],"nofollow","Claude Code: Best practices for agentic coding - Anthropic Engineering Blog",[1422,1423,1424],"style",{},"html pre.shiki code .sFA8A, html code.shiki .sFA8A{--shiki-default:#999999;--shiki-default-font-weight:bold;--shiki-dark:#999999;--shiki-dark-font-weight:bold}html pre.shiki code .syTZV, html code.shiki .syTZV{--shiki-default:#1C6B48;--shiki-default-font-weight:bold;--shiki-dark:#1C6B48;--shiki-dark-font-weight:bold}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}",{"title":364,"searchDepth":383,"depth":383,"links":1426},[1427,1428,1434,1438,1448,1459,1463,1469],{"id":308,"depth":383,"text":308},{"id":314,"depth":383,"text":315,"children":1429},[1430,1431,1432,1433],{"id":319,"depth":394,"text":320},{"id":487,"depth":394,"text":488},{"id":497,"depth":394,"text":497},{"id":543,"depth":394,"text":544},{"id":554,"depth":383,"text":555,"children":1435},[1436,1437],{"id":565,"depth":394,"text":566},{"id":599,"depth":394,"text":599},{"id":757,"depth":383,"text":758,"children":1439},[1440,1441,1442,1443,1444,1445,1446,1447],{"id":761,"depth":394,"text":762},{"id":797,"depth":394,"text":798},{"id":838,"depth":394,"text":839},{"id":873,"depth":394,"text":874},{"id":883,"depth":394,"text":170},{"id":933,"depth":394,"text":934},{"id":960,"depth":394,"text":961},{"id":999,"depth":394,"text":1000},{"id":1010,"depth":383,"text":1011,"children":1449},[1450,1451,1452,1453,1454,1455,1457,1458],{"id":1014,"depth":394,"text":1014},{"id":1066,"depth":394,"text":1067},{"id":1087,"depth":394,"text":1087},{"id":1093,"depth":394,"text":1094},{"id":1103,"depth":394,"text":1103},{"id":1137,"depth":394,"text":1456},"/clearでコンテキストを集中",{"id":1150,"depth":394,"text":1150},{"id":1169,"depth":394,"text":1170},{"id":1211,"depth":383,"text":1212,"children":1460},[1461,1462],{"id":1226,"depth":394,"text":1227},{"id":1233,"depth":394,"text":1234},{"id":1240,"depth":383,"text":1241,"children":1464},[1465,1466,1467,1468],{"id":1247,"depth":394,"text":1248},{"id":1279,"depth":394,"text":1279},{"id":1299,"depth":394,"text":1300},{"id":1351,"depth":394,"text":1351},{"id":1401,"depth":383,"text":1401},null,"Anthropic公式のClaude Code CLIツールを最大限に活用するための包括的なガイド。CLAUDE.mdの設定、ワークフローの最適化、マルチインスタンス活用まで詳細に解説。","md",{},"/claude-code-best-practices",false,"2025-12-30T00:00:00.000Z",{"title":5,"description":1471},"2025-12/2025-12-30/claude-code-best-practices",[1480,1481,1482,1483,1484],"claude-code","agentic-coding","best-practices","cli","anthropic","6WTjeBnGP8T8N_XPpTEYmlxmcSwM_mm5kWnyoACg5Gw",[],[1488,1492,1496,1500,1503],{"title":1489,"path":1490,"publishedAt":1491},"Claude Code CLIのセッション再開コマンド完全ガイド","/claude-code-session-resume","2026-01-13T00:00:00.000Z",{"title":1493,"path":1494,"publishedAt":1495},"Boris流 Claude Code 活用術 13選","/boris-claude-code-workflow","2026-01-03T00:00:00.000Z",{"title":1497,"path":1498,"publishedAt":1499},"並列ブランチ問題: 同じファイルへの複数PRがコンフリクトする理由と対策","/parallel-branch-problem","2025-12-31T00:00:00.000Z",{"title":1501,"path":1502,"publishedAt":1476},"許可プロンプトを超えて：Claude Codeをより安全かつ自律的にする","/claude-code-sandboxing",{"title":1504,"path":1505,"publishedAt":1506},"個人 Gmail を Google Workspace CLI から検索できるようにした — OAuth 同意画面が組織内部だと通らない","/gws-cli-personal-gmail-oauth","2026-07-29T00:00:00.000Z","https://log.eurekapu.com/og/blog/claude-code-best-practices.png?v=2025-12-30T00%3A00%3A00.000Z&title=Claude%20Code%3A%20%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E5%9E%8B%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9&author=Kei%20Komatsu&sig=3469eb3c2e2bbdc9",1785654698542]