はじめに
本記事では、Claude Codeについてご紹介いたします。
近年、AIによるコーディング支援は急速に発展しており、Anthropic社が提供するClaude Codeはその最前線に位置しています。
従来の「エディタ連携型(VS Code拡張など)」とは異なり、CLI(Command Line Interface)ベースで動作する点が大きな特徴です。
Claude Codeとは
Claude Codeは、2025年5月22日にAnthropic社から提供されたCLI型のAIコーディングツールです。
ターミナル上で自然言語を入力すると、AIがコードベースを解析し、以下のような操作をサポートします。
- 新機能の実装
- バグ修正
- リファクタリング
- マルチファイル編集
👉 公式ドキュメント: https://docs.anthropic.com/en/docs/claude-code/overview
Claude CodeがCLIで提供されている理由
-
IDE依存の回避
- 開発者によって使用するIDE(VS Code、Xcode、Vimなど)は異なります。
- すべてのIDEにAI機能を実装することは現実的ではないため、CLI形式にすることで全ての環境で共通利用を可能にしています。
-
進化スピードへの柔軟な対応
- GUIベースの開発支援ツールはアップデートに時間がかかる傾向があります。
- モデルの進化に追随しやすいCLI形式を採用することで、俊敏な更新や適応が可能となっています。
- 将来的にはIDE自体が不要となる可能性も見据えています。
上記のような開発コンセプトがあり、Claude Codeが注目される背景には、以下のようなCLIであることによる恩恵が大きいことがあげられます。
- 環境依存がないため、OSやエディタを問わず使用可能
- コマンドラインベースのため、GUIよりも軽量で動作が高速
Claude CodeとCursorなどのAIエディタとの比較
AIエディタだと変更された箇所がエディタ上で可視化されるので、どのファイルのどの部分が変更されたのかすぐにわかります。
一方、Claude Codeの場合はCLIのため、どこが変更されたか把握しづらいという印象です。
特に大規模なコード生成が実行された場合、変更箇所のレビューワークが重くなる傾向があります。
Claude Codeをインストール
以下のサイトをもとに各OSに応じてインストールします。
https://docs.claude.com/ja/docs/claude-code/setup
自身のプロジェクトのルートに移動します。
cd your-project-directory
.claude/settings.json を作成します。
Google CloudeのVertex AIを使用する場合は以下を設定。
hooksの設定はClaude Codeがタスクを完了したときに通知を送信する設定です。
{
"env": {
"CLAUDE_CODE_USE_VERTEX": 1,
"CLOUD_ML_REGION": "使用するリージョン",
"ANTHROPIC_VERTEX_PROJECT_ID": "<GCPのプロジェクト名>",
"ANTHROPIC_MODEL": "使用するモデル名",
"ANTHROPIC_SMALL_FAST_MODEL": "使用するモデル名"
},
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell.exe -Command \"Add-Type -AssemblyName System.Windows.Forms; $notify = New-Object System.Windows.Forms.NotifyIcon; $notify.Icon = [System.Drawing.SystemIcons]::Information; $notify.Visible = $true; $time = Get-Date -Format 'HH:mm:ss'; $notify.ShowBalloonTip(3000,'Claude Code has completed the task.','Time: ' + $time,'Info'); Start-Sleep -Seconds 3; $notify.Dispose()\""
}
]
}
]
}
}
Google Cloudでの認証設定。
gcloud auth application-default login
Claude Codeを起動して以下のプロジェクトを初期化します。
npx claude
summarize this project
/init
Claude Codeをカスタマイズする方法
Claude Codeでは、AIにプロジェクトの背景やルールを理解させるために「CLAUDE.md」という特別な設定ファイルを使用します。
CLAUDE.mdとは
CLAUDE.mdは、プロジェクトの背景・規約・技術情報などをまとめたMarkdown形式のファイルです。
Claude Codeはこのファイルを自動的に読み込み、プロジェクトの「メモリ」として活用します。
これにより、AIが次のような誤動作を防止できます。
- 非推奨ライブラリの使用
- 不要なファイルの上書き
- チームのコード規約に反する生成
👉 詳細: https://www.anthropic.com/claude-code
👉 参考: Zenn: Claude Code ベストプラクティス
👉 参考: Findy: Claude Codeのファイル構成
CLAUDE.mdの記載例
## 目的
AIエージェントは以下の役割を担います。
- xxx
---
## 回答スタイル
- 日本語で簡潔 (必要に応じ英語用語併記)。
- ユーザー目的が不明なら最初に 1-2 質問で目的確認。
---
## プロジェクト概要
このリポジトリはxxxを行うWEBアプリです。
---
## 技術スタック
- 言語: Python 3.12
- フレームワーク: Fast API
---
## プロジェクト構造
- common/: 共有ロジックモジュール
- logic.py: 処理ロジッククラス
- dto/: データ転送オブジェクト
- app.py: メイン処理
---
## コマンド
- `pip-compile requirements.in` : 依存関係の解決
- `pip install -r requirements.txt` : パッケージインストール
---
## コードスタイル
- インデントはスペース4つ
- 命名規則:
- 関数/変数: スネークケース (snake_case)
- クラス: パスカルケース (PascalCase)
- 定数: 大文字スネークケース (UPPER_SNAKE_CASE)
- Docstrings: Google形式
- 関数/メソッドの説明を記述
- Args: 引数の型と説明
- Returns: 戻り値の型と説明
- Yields: ジェネレータの場合
- Examples: 使用例(可能な限り記述)
- Note: 重要な注意事項
- Raises: 発生する例外
- import文は標準ライブラリ、サードパーティ、ローカルの順に分割し、空行で区切る
- エラーハンドリング:
- try-except-finallyを適切に使用
- エラーメッセージは具体的に記述
- スタックトレースをログに記録
---
## 禁止事項
- 機密情報を含んだファイルのコミット禁止
- ログメッセージ[`hogehoge`]は運用監視で使用するため、変更禁止
---
## Git運用ルール
- **Git Flow採用**: Git Flowブランチ戦略を採用
- `develop`: 開発ブランチ(デフォルト)
- `feature/*`: 機能開発ブランチ(developから分岐)
- `release/*`: リリース準備ブランチ
- `hotfix/*`: 緊急修正ブランチ
- `main`: 本番リリースブランチ
- **コミットメッセージ形式**: `モジュール名: ***` の形式を厳守
- 例: `モジュール名: チャット機能を追加`
- 例: `モジュール名: LLM処理を最適化`
- **プルリクエスト**: feature/* → develop へのマージはPRを作成
ベストプラクティス(Anthropic公式)
-
具体的に記述すること 「可読性を保つ」ではなく、「1行あたりの文字数は100文字以内」といった明確なルールにします。
-
構造化して整理すること 見出しや箇条書きを活用し、関連情報をグループ化します。
-
定期的に更新すること プロジェクトの進行や仕様変更に応じてCLAUDE.mdを更新し、常に最新状態を維持します。
👉 参考: https://docs.claude.com/en/docs/claude-code/memory#memory-best-practices
配置場所と優先順位
Claude Codeは現在のディレクトリから上位ディレクトリへ再帰的にCLAUDE.mdを探索し、 見つかったものを「広域 → 狭域」の順で統合的に読み込みます。
| メモリタイプ | 配置場所 | 用途 | 共有範囲 |
|---|---|---|---|
| エンタープライズポリシー | /etc/claude-code/CLAUDE.md |
組織全体の標準やセキュリティ方針 | 全社員 |
| プロジェクトメモリ | ./CLAUDE.md または ./.claude/CLAUDE.md |
チーム単位の開発ルール | チームメンバー |
| ユーザーメモリ | ~/.claude/CLAUDE.md |
個人設定 | 個人のみ |
| ローカルメモリ(非推奨) | ./CLAUDE.local.md |
個人用の一時設定 | 非推奨 |
CLAUDE.local.mdについて
従来は、プロジェクト固有の個人設定を記述するために CLAUDE.local.md を使用していましたが、
現在は非推奨となっています。
代替として、個人設定は ~/.claude/CLAUDE.md に記載し、Gitの追跡対象外にする方法が推奨されています。
OpenAIとの比較:AGENTS.md
OpenAIでは、Claude Codeと同様の目的でAGENTS.mdというファイル形式を採用しています。
2025年8月、OpenAI・Google・Cursorなど複数社の共同仕様として発表され、今後の標準化が期待されています。
AGENTS.mdの記載例
# AGENTS.md
## 目的
AIコーディングアシスタントに、プロジェクトの開発ルールを伝えるためのファイルです。
## 開発環境
- pnpm + Turbo を使用
- 新規Reactプロジェクト作成方法を明記
## テスト
- CI実行コマンド
- テストの修正手順
## PRルール
- タイトルフォーマット
- コミット前チェック項目
Claude Codeは現時点でAGENTS.mdに正式対応していません。
AGENTS.mdは複数団体が共同で作成しているものなので、今後はAGENTS.mdが業界標準の仕様になる可能性があります。
Claude CodeとGitHub CopilotなどのAGENTS.mdに対応した別のツールを併用して使いたい場合は、 以下のようにCLAUDE.mdをAGENTS.mdのシンボリックとして作成することで、AGENTS.mdとCLAUDE.mdを実質同一ファイルとして使用することができます。
New-Item -ItemType SymbolicLink -Path "CLAUDE.md" -Target "AGENTS.md"
Agent Skills
Agent Skills は、特定のタスクを実行するために必要なスクリプトやデータをスキルというパッケージとしてClaudeに登録することで、特定のタスク用のAI Agentを作成することができる機能です。
Agent Skillは具体的には、タスクを実行するためのスクリプトなどのファイルが配置されたプロジェクト内の特定フォルダ(例の場合:skills/以下)」のことを示します。
SKILL.md にスキルの説明・入出力仕様を記述し、Claudeがこの内容を理解してスクリプトを呼び出すようになっています。
skills/
├─ summarize/
│ ├─ SKILL.md
│ └─ script.py
├─ deploy/
│ ├─ SKILL.md
│ └─ main.sh
ユースケース
Agent Skillsのユースケースとして、以下のようなものが考えられます。
-
データ分析スキル
- CSVデータを読み込み、集計、グラフ可視化するスキル
-
開発フロー自動化スキル
- 「Playwrightテスト実行」「GitHubリポジトリからデプロイ」自動で実行するスキル
Agent Skillsと既存のAIエージェントの違い
従来のAIエージェントは、MCP(Model Context Protocol)を介して外部ツールと接続していましたが、次のような課題がありました。
- ツールが増えるほど「どのツールを使うべきか」判断が難しくなり、性能低下や誤作動を起こす可能性がある
- ツール定義情報が増えるとトークン消費が大きくなり、コンテキストウィンドウを圧迫して思考リソースが減る
Agent Skillsでは、タスクに必要なツールや手順があらかじめ1つのスキルとしてまとめられているので、
AIはツール選択で迷わず、不要なツールを呼び出さない分、性能低下、誤作動が抑止され、トークン使用量が最適化されています。
- 生成後に必ずGitの差分ビュー(
git diff)で確認する - 小さな単位で変更を依頼し、都度レビューする習慣をつける
おわりに
この記事ではClaude CodeとCLAUDE.mdによるClaude Codeのカスタマイズについて紹介しました。