Masayan tech blog .

Claude Code クラッシュコース応用編 - 機能をフル活用し、作業効率、生産性を最大化するための実践ガイド

公開日
最終更新日

Claude Code クラッシュコース全シリーズ

「Maxプランユーザーが教える」ユースケース紹介編

準備中。近日中に公開予定

入門編

基礎編

応用編(本記事)

開発編

準備中。近日中に公開予定

要約

  • Claude Codeの応用的な機能をフル活用し、作業効率、生産性を最大化するための実践ガイド
  • メモリファイル(CLAUDE.md)によるコンテキスト管理、設定ファイル(settings.json)での権限・環境設定
  • サブエージェントを使った責務分離、プラグインによる機能拡張
  • プロフェッショナルレベルでClaude Codeを使いこなすための重要機能を網羅的に解説

この記事は、Claude Codeのベストプラクティス、公式ドキュメント、著者自身のClaude Maxプランでの利用体験に基づいています。

Claude Codeのベストプラクティス

この記事を読むことで得られるメリット

概念・機能

できるようになること

具体的なメリット

メモリファイル(CLAUDE.md)

仕組みを理解して最適化することで、プロジェクト固有のルールを自動適用できる

毎回同じ指示を繰り返す必要がなくなり、開発効率が上がる

プロジェクトメモリを理解、活用することでチーム全体でコーディング規約を共有

新メンバーのオンボーディング時間が短縮され、コード品質が統一される

許可リスト設定(settings.json)

Claudeが実行するツールの種類や仕組みを理解し、適切な許可設定ができる

確認プロンプトの削減と安全性を両立し、ストレスフリーな開発が可能になる

拒否ルール

機密ファイルへのアクセスを制限

シークレット情報の漏洩リスクが低減され、安全な開発環境を構築できる

サブエージェント

責務を分離して専門的なタスクを実行

コンテキストを効率化しながら、レビュー・テスト・セキュリティチェックなどの専門的なタスクを並行できる

並列処理(複数インスタンス)

独立したタスクを同時実行

開発時間が大幅に短縮され、複数の機能を同時進行できる

実行モード

Extended ThinkingでAI の推論能力を大幅に強化したり、プランモードで計画を立てたりといったタスクに応じた最適なモードの使い分けが理解できる

複雑なアーキテクチャ設計や難易度の高いバグ解析が可能になる

プラグインエコシステム

機能を簡単に拡張・統合管理

フロントエンドデザインやその他の専門機能を即座に追加でき、開発の幅が広がる

この記事を読むのにかかる時間

約15〜20分

環境

  • OS: MacOS Apple M4 Max Sequoia 15.1
  • Node.js: v18以上
  • Claude Code バージョン: 2.0.14

メモリファイル - CLAUDE.md

Claude Codeがプロジェクト固有の文脈を理解するために読み込む特別なMarkdownファイル

メモリファイルの役割

  • claude と入力し、セッションが開始してから終了するまでの間に指定できる追加のコンテキスト
    • 例えば、AIの応答スタイルとして、「日本語でコミュニケーションを行うこと」であったり、GitHubでコード管理しているプロジェクトであれば、「コミットメッセージはConventional Commitsで生成すること」のような、毎回指示する内容をメモリファイルに含めておくことで、自動的にコンテキストに含めてくれる
  • 開発のプロジェクトであれば、コーディングルールや使用しているフレームワークのプラクティスに従わせるなどの活用ができる
  • CLAUDE.mdをしっかり整備できていれば、新しいプロジェクトへの参加や複雑なコードベースの理解につながる(オンボーディング時間の大幅な短縮と、既存エンジニアの負荷軽減を実現)

メモリファイルのスコープ

全プロジェクト共通のユーザールール(セキュリティ関連、AIエージェントの全体的な振る舞い等)なのか、プロジェクトごと(Pythonを使うプロジェクト固有のコーディングルールや設計ルール等)なのかを判断して使い分けることが重要

種類

場所

用途

プロジェクトメモリ

./CLAUDE.md または ./.claude/CLAUDE.md

一番基本的な使い方

プロジェクトに関わるチーム全体で共有するプロジェクト固有の情報

ユーザーメモリ

ホームディレクトリ直下
~/.claude/CLAUDE.md

全プロジェクト共通の個人のルール

※./CLAUDE.local.mdは現在非推奨

Claude Codeはメモリを再帰的に読み込む

現在の作業ディレクトリから開始して、ルートディレクトリまでファイルを探索し自動的にコンテキストに読み込まれるようになっている

モノレポ構成

以下のようなモノレポ(複数のプロジェクトが並列で存在)の場合でも、現在の作業ディレクトリの下のサブツリーにネストされたCLAUDE.mdも検出する

root
 ┗web
   ┗CLAUDE.md
 ┗api
 ┗CLAUDE.md
  • claudeを実行するディレクトリが/webの場合、root/CLAUDE.mdroot/web/CLAUDE.md両方とも自動的にコンテキストに読み込まれる
  • claudeを実行するディレクトリがrootの場合はroot/CLAUDE.mdは自動的にコンテキストに読み込まれるが、/web内のソースコードなどを参照するとき(=常に読み込まれるということではなく、必要時)のみweb/CLAUDE.mdがコンテキストに含まれる

メモリファイルの作成方法

すでに作成済みのプロジェクトなどで導入する場合は/initでプロジェクトの内容をもとにCLAUDE.mdを生成してくれる。もしくは手動で作成することも可能。

メモリファイルの編集方法

手動でファイルを開いて編集するか/memoryのコマンドを実行する。実行すると以下のようにユーザー、プロジェクトどちらのメモリを編集するか確認され、選択したメモリのファイルが自動で開かれるのでそのまま編集可能

Select memory to edit:

  1. Project memory   Saved in ./CLAUDE.md
❯ 2. User memory      Saved in ~/.claude/CLAUDE.md

クイックメモリ

ファイルを開かずにメモリの内容を編集できる。方法は簡単で、先頭に#を入力し、その後にルールに追加したい内容を入力し、プロジェクトorユーザーどちらに適用するルールかを選択する。(ファイルが開くわけではないので追加のみ)

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
# Pythonの関数やメソッドには必ずdocstringを記載すること 
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  # to memorize

╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                     │
│ Select memory file to edit:                                                                                         │
│                                                                                                                     │
│  ❯ 1. Project memory   Saved in ./CLAUDE.md                                                                         │
│    2. User memory      Saved in ~/.claude/CLAUDE.md                                                                 │
│                                                                                                                     │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

各種設定 - settings.json

settings.jsonにより、ツールの権限制御(permissions)、環境変数(env)、フック(hooks)、利用するモデル(model)、MCPサーバー、プラグインなどの設定ができる

設定ファイルの種類と使い分け

メモリファイル同様、階層的な構造になっている。

種類

場所

用途

プロジェクト設定(個人)

.claude/settings.local.json

特定のプロジェクト内の設定ではあるが、Gitで管理しない(試験的な内容や個人的な設定)

プロジェクト設定(チーム)

.claude/settings.json

特定のプロジェクト内の設定で、Gitで管理(チームで共有)

ユーザー設定

~/.claude/settings.json

全プロジェクト共通の設定

.claude/settings.local.jsonが最も優先度が高く、続いて.claude/settings.json~/.claude/settings.jsonの順番で優先度が高い

/permissions - 許可リストの管理

Claude Codeはデフォルトで、lsgrepなどの副作用のないコマンドを除き、システムを変更する可能性のあるすべてのアクション(ファイルの書き込み、多くのbashコマンド、MCPツールなど)に対して許可を求めるようになっている。

安全に実行できるメリットがある反面、毎回実行確認をされると非効率なケースも度々あるので、許可リストを適切に設定することは非常に重要。ツールの一覧は以下の公式ドキュメントから確認できる

ツールなどを実行し、許可を求められた際に「このセッションの間は常に許可」と回答すれば、同じセッションの間は許可され続けるが、別セッションになるとこの情報は引き継がれないため、引き継ぎたい内容があれば、settings.jsonに書いておけばよい

設定方法

/permissionsコマンドを実行することで許可するコマンド、許可しないコマンドを登録するか、

> /permissions

───────────────────────────────────────────────────────────────────────────────────────
 Permissions:  Allow   Ask   Deny   Workspace   (tab to cycle)
 Claude Code won't ask before using allowed tools.

 ❯ 1.  Add a new rule…
   2.  Bash(app/components/PostsFeed.tsx)

直接settings.jsonを開いて編集することが可能

{
  "permissions": {
    "allow": [
      "Bash(ls:*)",
      "Bash(git:*)",
      "Bash(gh:*)"
    ],
    "deny": [
      "Bash(rm:*)"
    ]
  }
}

推奨される許可設定

開発効率と安全性のバランスを考慮するとEdit: ファイル編集操作(Gitで管理していれば容易に取り消すことができるのでリスクが少ない)と、Bash(git commit:*): Git コミット操作あたりはフル許可にしていても良さそう

より細かい許可

かなり柔軟に設定できるようになっており、例えば以下のように特定のファイルの処理だけを対象にしたり、同じコマンドの中でも権限の範囲を設定することも可能

  • "Bash(git add app/components/PostsFeed.tsx)", : 特定のファイルのgit addはフル許可
  • "Bash(git commit:*)"git commitはフル許可 、それ以外は確認が必要

拒否ルールは許可ルールより優先される

機密ファイルの除外

シークレット値などはdenyにしておくことで、Claude Codeから参照できなくすることができる。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Read(./build)"
    ]
  }
}

なお、上記設定にかかわらず、claude --dangerously-skip-permissionsでセッションを起動することで実行確認を全てスキップできる(確認なしで全て実行するYOLOモード。You Only Live Once mode)。

「bypass permissions」と表示される

───────────────────────────────────────────────────────────────────────────────────────
>
───────────────────────────────────────────────────────────────────────────────────────
  ⏵⏵ bypass permissions on (shift+tab to cycle)

※意図しない変更や削除が行われてしまうリスクが高いため、Dockerコンテナやサンドボックスでの利用を推奨

/agents - サブエージェント

単一のエージェントに色々な内容を実行させるのはなく、特定の分野に特化したサブエージェントを複数作成してタスクを実行させることで精度を向上させることができる機能

動作イメージ

以下の例では実装とレビューをそれぞれ別のエージェントに実行させている

コーディング用サブエージェント

コードレビュー専門用サブエージェント

サブエージェントのメリット

  • コンテキストの効率化
    • サブエージェントではそれぞれ独立したコンテキストウィンドウを持つ
  • 専門性の向上
  • 責務の分離
    • 役割と権限を適切に配分できる

サブエージェントの名前やカラー、実行できるツールや使用するモデルなどを細かく指定できるので、特定のタスクに特化したエージェントを用意できる(以下はコードレビュー用のサブエージェントでの作成例)

---
name: code-reviewer
description: コードレビュー専門家。コード品質、パフォーマンス、保守性、ベストプラクティスの観点からレビューする
color: orange
tools:
  - Read
  - Edit
  - Glob
  - Grep
  - Bash
  - mcp__ide__getDiagnostics
model: sonnet
---

# Code Reviewer

あなたは経験豊富なコードレビュアーです。実装されたコードを多角的に分析し、建設的なフィードバックを提供します。
・・・

サブエージェントの作成方法

/agentsを実行し、Create new agentを選択する

────────────────────────────────────────────────────────────────────────────────
> /agents  
────────────────────────────────────────────────────────────────────────────────
  /agents     Manage agent configurations

Agents
No agents found

❯ Create new agent

スコープ選択

プロジェクト単位では.claude/agentsディレクトリに、個人(ユーザー)単位では~/.claude/agentsディレクトリにサブエージェントが作成される。

Create new agent
Choose location

❯ 1. Project (.claude/agents/)
  2. Personal (~/.claude/agents/)

作成方法の選択

「Generate with Claude」でClaudeに作成してもらう。個人的にはClaudeに作ってもらったほうが精度がいいと感じている派なので、「Manual configuration」はあまり使用しない

Create new agent
Creation method

❯ 1. Generate with Claude (recommended)
  2. Manual configuration

エージェントの説明を入力

Create new agent
Describe what this agent should do and when it should be used (be comprehensive for best results)

> Use the code-reviewer subagent to check my recent changes

ツールの選択

コードレビュー用なので実行できるツールは読み取り専用のものだけを設定し、Continueを選択する。

Create new agent
Select tools

  [ Continue ]
────────────────────────────────────────
  ☐ All tools
  ☒ Read-only tools
  ☐ Edit tools
  ☐ Execution tools
  ☐ MCP tools
  ☐ Other tools
────────────────────────────────────────

モデルの選択

1. Sonnet                Balanced performance - best for most agents ✔
  2. Haiku                 Fast and efficient for simple tasks
  3. Inherit from parent   Use the same model as the main conversation

色の選択

最後にサブエージェントに割り当てる色を選択する。

Create new agent
Choose background color

  Automatic color
    Red
    Blue
    Green
    Yellow
    Purple
    Orange
    PinkCyan

Preview:  code-reviewer

作成完了

Create new agent
Confirm and save

Name: code-reviewer
Location: .claude/agents/code-reviewer.md
Tools: *
Model: Sonnet

.claude/agents/code-reviewer.mdが生成される。

---
name: code-reviewer
description: Use this agent when the....
model: sonnet
color: cyan
---

あなたは経験豊富なシニアエンジニアであり、コードレビューの専門家です。ユーザーが最近書いたコードや変更したコードを、建設的かつ実践的な視点でレビューすることが役割です。

## レビューの範囲
...

サブエージェントの実行

サブエージェントの呼び出し基準

Claude Codeは以下の観点に基づいてサブエージェントを呼び出すかどうかを判断している

  • タスクの内容
  • サブエージェントのdescriptionフィールドに記載された内容
  • 現在のコンテキストと利用可能なツール

実行頻度を上げたい場合は「use PROACTIVELY」「MUST BE USED」のキーワードを説明に記述すること。(日本語でも可)

To encourage more proactive subagent use, include phrases like "use PROACTIVELY" or "MUST BE USED" in your description field.

サブエージェントが実行されると、割り当てたカラーや名称が表示される様になっている

> code-reviewerでmain_dirty.pyをレビューして 

⏺ code-reviewer(Review main_dirty.py code)
  ⎿  Read

⏺ code-reviewerエージェントによる詳細なレビューが完了しました。

  レビュー結果サマリー

  主な指摘事項

  Critical Issues(重大な問題):
  ...

活用事例

開発作業における機能追加の一連のタスクを、以下の様なエージェントを構成して分担させることで精度が上がる

.claude/agents
├── accessibility-checker.md
├── code-reviewer.md
├── commit-manager.md
├── development-supervisor.md
├── documentation-writer.md
├── security-checker.md
└── test-writer.md

機能開発の際に、1つ目のエージェントに調査(計画)を立てて結果を整理したものを2つ目のエージェントに渡して機能開発を行う様にすれば、調査や計画を立てる際に使用したコンテキストを最適化したものを引き継げるので有意義な使い方ができる

実行モードの切り替え

Shift + Tabを押すと、Claudeの実行モードを切り替えることができる。ask before editsがデフォルト(ファイル編集などを実行する場合にユーザー確認を挟む)

auto-accept edits on

自動承認モード。明示的にsettings.jsonで許可されているか、一度実行を許可したコマンドは確認なしで自動で実行するモード

─────────────────────────────────────────────────────────────────────────────────
> Try "how does <filepath> work?"
─────────────────────────────────────────────────────────────────────────────────
  ⏵⏵ accept edits on (shift+tab to cycle)

plan mode on

事前にどのような変更を行うのか、計画を作成し、その計画の通り進めてくれる。自分が想像している変更内容とおおまかな方針が合っているか確認したい時が多々あるので、重宝する

─────────────────────────────────────────────────────────────────────────────────
> Try "how does <filepath> work?"
─────────────────────────────────────────────────────────────────────────────────
  ⏸ plan mode on (shift+tab to cycle)

拡張思考(Extended Thinking)を有効化

Tabで有効・無効を切り替えでき、有効にすると利用しているモデルの推論能力をさらに向上させることができる。

高度なタスクの処理などに使うと効果的。OpusExtended Thinkingを組み合わせると最強になる

───────────────────────────────────────────────────────────────────────
> Try "how does <filepath> work?"
───────────────────────────────────────────────────────────────────────
  ? for shortcuts                         Thinking on (tab to toggle)

並列処理

Claudeインスタンスは言わずもがな複数起動できるので、独立した作業は複数起動してそれぞれに実行させることで格段に作業効率が向上する。Iterm2などで複数のウインドウを開いて一気に実行すれば快適

プラグイン

スラッシュコマンド、エージェント、MCPサーバー、フック機能を1つのパッケージとして提供されているもの。公式からも出ているし、非公式のコミュニティとしても存在する

インストール方法

公式のプラグインとして提供されているanthropics/claude-codeをインストールする(マーケットプレイスの追加)

/plugin marketplace add anthropics/claude-code

マーケットプレイスを追加すると、Browse and install pluginsからプラグインの一覧表示とインストールができる

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Plugins                                                                                                                                                          │
│                                                                                                                                                                  │
│ ❯ 1. Browse and install plugins                                                                                                                                  │
│   2. Manage and uninstall plugins                                                                                                                                │
│   3. Add marketplace                                                                                                                                             │
│   4. Manage marketplaces                                                                                                                                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

フロントエンドデザインのプラグインが気になるので、インストールしてみる

❯ ◯ frontend-design [development]                                                                                                                                │
│     Create distinctive, production-grade frontend interfaces ... · v1.0.0 

ユーザー(全プロジェクト共通)ではなく特定のプロジェクトにインストールする場合はプロジェクトに存在するsettings.jsonに以下の様に記述し、/pluginBrowse and install plugins

{
  "enabledPlugins": {
    "frontend-design@claude-code-plugins": true
  },
  "extraKnownMarketplaces": {
    "anthropics/claude-code": {
      "source": {
        "source": "github",
        "repo": "anthropics/claude-code"
      }
    }
  }
}

おまけ:過去のセッションを再開したい場合

特定の過去のセッションの続きからやり直したい場合は、claude --resumeを実行する。実行すると以下のように過去の履歴が表示されるので、任意のセッションを開始することができる。

作業途中で間違ってセッションを閉じてしまった場合がたまにあるが、こういった場合でも安心して続きから実行できる

Resume Session

↑ AI時代エンジニア生存戦略メモリ追加
  2 days ago · 6 messages · -

  Claude Code context setup verification
  3 days ago · 11 messages · -

❯ la -la
  3 days ago · 8 messages · -

  / to search · Esc to exit

まとめ

Claude Codeをプロフェッショナルレベルで活用するには、メモリファイルによるコンテキスト管理適切な権限設定が基盤となる。その上で、サブエージェントによる責務分離実行モードの使い分け並列処理を組み合わせることで、開発生産性を最大化できる。

特に重要なポイント

  • メモリファイル:プロジェクトとユーザーのスコープを使い分け、ルールを自動適用
  • 許可リスト:Edit、git commitなどの安全な操作はフル許可、機密ファイルは拒否設定
  • サブエージェント:code-reviewer、test-writer、security-checkerなど役割別に構成
  • 並列実行:独立したタスクは複数インスタンスで同時実行

これらの機能を適切に組み合わせることで、Claude Codeは単なるAIアシスタントから、チーム開発を支える強力なインフラへと進化する。