この記事は、Anthropic が提唱する Claude Code のベストプラクティスについて記載します。
CLAUDE.md ファイルを作成するCLAUDE.mdとは?
プロジェクトのルートに置く特別なファイルで、Claude Codeが会話開始時に自動的に読み込みます。いわば「Claudeへの申し送りメモ」です。
書くべき内容:
npm run build など)例:
# Bash commands
- npm run build: プロジェクトをビルド
- npm run typecheck: 型チェックを実行
# Code style
- ES modules (import/export) を使用、CommonJS (require) は使わない
- 可能な限りimportを分割代入する
# Workflow
- コード変更後は必ず型チェックを実行すること
- パフォーマンスのため、単一テストを優先して実行
配置場所:
| 場所 | 用途 |
|---|---|
| リポジトリのルート | 最も一般的。チームで共有可能 |
| 親ディレクトリ | モノレポ向け。複数のCLAUDE.mdを階層的に読み込む |
| 子ディレクトリ | 必要に応じて動的に読み込まれる |
~/.claude/CLAUDE.md |
全セッションに適用される個人設定 |
CLAUDE.md をチューニングするポイントは「プロンプトエンジニアリングと同じ」という考え方です。
# キーを押すと、Claude に指示を与えて自動的に CLAUDE.md に追記させられるClaude Code はデフォルトで安全のため、ファイル書き込みやコマンド実行時に毎回確認を求めます。
許可の設定方法(4つ):
/permissions コマンドで管理
Edit → ファイル編集を常に許可Bash(git commit:*) → git commit を許可.claude/settings.json)--allowedTools でセッション単位の設定gh CLI をインストールGitHub CLI(gh)をインストールすると、Claude は Issue 作成、PR 作成、コメント読み取りなどを直接行えるようになります。
Claude はあなたのシェル環境を引き継ぎます。つまり、あなたが使えるコマンドは Claude も使えます。
カスタムツールを使わせるには:
--help を実行させてドキュメントを読ませるCLAUDE.md に記載MCP とは?
Claude Code を外部サービス(Puppeteer、Sentry など)と接続するためのプロトコルです。
設定方法:
.mcp.json ファイル(チーム全員が使える)デバッグには --mcp-debug フラグが便利です。
繰り返し行う作業をテンプレート化できます。
作り方:
.claude/commands/ フォルダにMarkdownファイルを作成$ARGUMENTS で引数を受け取れる例(.claude/commands/fix-github-issue.md):
Please analyze and fix the GitHub issue: $ARGUMENTS.
Follow these steps:
1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Create a descriptive commit message
7. Push and create a PR
使用方法: /project:fix-github-issue 1234 → Issue #1234 を自動修正
最も汎用的なワークフロー:
重要: ステップ1-2を省略すると、Claude はいきなりコードを書き始めてしまいます。事前の調査・計画で品質が大幅に向上します。
Claude は明確な目標(テスト合格)があると、自律的に改善を繰り返せます。
新しいプロジェクトへのオンボーディングに最適:
foo() の代わりに bar() を呼んでる?」人間のエンジニアに質問するように、自然に聞けます。
Claude は git 操作の 90% 以上を代行できます:
| ❌ 悪い例 | ✅ 良い例 |
|---|---|
| foo.py にテストを追加して | foo.py にログアウト時のエッジケースをカバーするテストを書いて。モックは使わないで |
| カレンダーウィジェットを追加して | 既存のウィジェット(HotDogWidget.php など)のパターンを調べて、月選択・年ページネーション機能を持つカレンダーウィジェットを実装して |
cmd+ctrl+shift+4 → ctrl+v)@ やファイル名の途中で Tab を押すと、リポジトリ内のファイルを補完できます。
Web ページの URL を貼ると、Claude が内容を取得して読みます。
よく使うドメインは /permissions で許可リストに追加しましょう。
4つのテクニック:
/clear でコンテキストをリセット長いセッションでコンテキストが溜まると性能が低下します。タスク間で /clear を実行しましょう。
大規模なマイグレーションやリント修正には:
ヘッドレスモードは、対話なしで Claude Code を実行するモードです。
claude -p "プロンプト" --output-format stream-json
a. Issue のトリアージ
新しい Issue が作成されたら自動的にラベルを付ける
b. AI リンター
従来のリンターでは検出できない問題(タイポ、古いコメント、誤解を招く変数名など)を指摘
/clear または別ターミナルで Claude B を起動役割分担により、単一 Claude より良い結果が得られることが多いです。
より軽量な並行開発方法:
# ワークツリー作成
git worktree add ../project-feature-a feature-a
# そのディレクトリで Claude を起動
cd ../project-feature-a && claude
# 完了後にクリーンアップ
git worktree remove ../project-feature-a
ファンアウト(大規模一括処理):
# 2000ファイルを順次マイグレーション
claude -p "foo.py を React から Vue に移行して。成功したら OK、失敗したら FAIL を返して" --allowedTools Edit Bash(git commit:*)