Anthropicが2026年3月に公開した無料の公式学習プラットフォーム「Anthropic Academy」。その中でも開発者向けの目玉コース「Claude Code in Action」を実際に受講しました。
この記事では、コースで学んだ内容を3つのセクションに沿って解説します。Claude Codeを使い始めたばかりの方から、もっと使いこなしたい方まで参考になるはずです。
Section 1:Claude Codeはなぜ「ただのチャットAI」と違うのか
コースの最初のセクション「What is Claude Code?」では、コーディングアシスタントの根本的な仕組みを学びます。Claude Codeのコーディングアシスタントは、内部的に言語モデルを利用してユーザーから与えられたタスクを完了させていく仕組みになっています。

言語モデル単体ではできないこと
言語モデル(LLM)はテキストを処理してテキストを返すことしかできません。ファイルを読む、コマンドを実行するといった「外部世界との接触」が単体ではできないのです。そこで登場するのが「ツールユース(Tool Use)」という仕組みです。
コーディングアシスタントが動く仕組みは、大きく4つのステップで構成されています。
- コンテキスト収集:エラー内容から関連ファイルを特定する
- プランの立案:どのファイルを編集し、どのテストを実行するか決める
- ツール呼び出し:「ReadFile: main.go」のようなコマンドをモデルが発行する
- 結果を受け取り回答:ファイル内容を受け取ったモデルが最終的な回答を生成する
ツールユースとは、言語モデルが「テキストを返すだけ」という限界を超えて、外部の機能やシステムを呼び出せるようにする仕組みです。「言語モデルの脳」と「ツールの手足」を組み合わせて、現実の開発作業をこなせるようにする仕組みとなります。
代表的なツール
| ツール名 | できること |
|---|---|
Read | ファイルを読む |
Write | ファイルを書く |
Edit | ファイルを編集する |
Bash | シェルコマンドを実行する |
Grep | ファイル内を検索する |
WebSearch | Webを検索する |
TodoWrite | Todoリストを管理する |
コースでは、Claudeシリーズのモデルはツールユースにおいてとくに優れていると説明されています。具体的には以下の3点が挙げられています。
- 難しいタスクへの対応:複数のツールを組み合わせ、見たことのないツールも活用して複雑な問題を解決する
- 拡張性の高さ:新しいツールを追加するとClaudeが自動的に使いこなすようになる
- セキュリティ面の優位性:コードベース全体を外部サーバーに送信せず、必要なファイルだけを読む
Section 2:実際に使いこなすための6つのテクニック
第2セクション「Getting hands on」は、Claude Codeを実務で最大限活用するための実践テクニックが詰まっています。以下に6つのテクニックをまとめます。
① コンテキストの追加(/init と CLAUDE.md)
新しいプロジェクトで最初にすべきことは /init コマンドの実行です。Claudeがコードベース全体を分析し、CLAUDE.md ファイルに要約を書き込みます。CLAUDE.mdの置き場所は用途に応じて3種類あります。
| ファイル名 | 用途 |
|---|---|
| CLAUDE.md | チーム共有の設定 |
| CLAUDE.local.md | 個人設定(gitignore推奨) |
| ~/.claude/CLAUDE.md | 全プロジェクト共通の設定 |
@ 記号でファイルをメンションすることで、Claudeに特定のファイルを読み込ませることもできます。
How does the auth system work? @auth/middleware.ts② 変更を加える(スクリーンショット・計画モード・思考モード)
UIの修正を依頼するとき、言葉だけよりスクリーンショット(Ctrl+V / Cmd+V / Ctl+V)を貼り付けて指示する方が正確に伝わります。また、タスクの複雑さに応じて以下のモードを使い分けましょう。
- 計画モード:Shift + Tab を2回押す → 複数ファイルにまたがる複雑な変更に有効
- 思考モード:プロンプトに「think」「ultrathink」などを含める → ロジックが難しいアルゴリズムやデバッグに有効
③ コンテキスト管理(/compact・/clear・Escキー)
会話が長くなるとコンテキストウィンドウを圧迫します。以下のコマンドやキー操作でうまく管理しましょう。
| 操作 | 効果 |
|---|---|
| Esc(1回) | Claudeの返答を途中で止める |
| Esc(2回) | 会話を巻き戻し、過去のメッセージから再開 |
| /compact | 重要情報を保持しつつ会話履歴を要約 |
| /clear | 全履歴を消去してゼロからスタート |
④ カスタムコマンド
繰り返すタスクはカスタムコマンドにまとめられます。.claude/commands/ フォルダにMarkdownファイルを作るだけです。
# .claude/commands/audit.md の例
以下の手順で依存関係を監査してください:
1. npm audit を実行して脆弱なパッケージを確認する
2. npm audit fix で修正を適用する
3. テストを実行して動作確認をするファイル名が /audit になります。また$ARGUMENTS プレースホルダーを使うことで引数も受け取れます。
⑤ MCPサーバーの活用
MCP(Model Context Protocol)サーバーを追加することで、Claudeの能力を外部ツールと連携させて拡張できます。以下はPlaywrightのMCPサーバーを追加する例です。
claude mcp add playwright npx @playwright/mcp@latest設定ファイルで事前に許可しておくと、毎回の確認ダイアログが不要になります。
{
"permissions": {
"allow": ["mcp__playwright"],
"deny": []
}
}⑥ GitHub連携
/install-github-app コマンドでGitHub ActionsとClaude Codeを連携できます。連携後は以下のことが可能になります。
- IssueやPRで
@claudeとメンションするだけでタスクを依頼できる - PRを作成すると自動でコードレビューが行われる
Section 3:HooksとSDKでClaude Codeを自動化の基盤にする
第3セクション「Hooks and the SDK」は、Claude Codeをワークフローに深く組み込む上級テクニックです。Hooksを使いこなすことで、Claude Codeを単なるアシスタントから自動化ワークフローの中核へと昇格させることができます。
Hooksとは何か
フック(Hook)を使うと、Claudeがツールを実行する直前(PreToolUse)または直後(PostToolUse)に、任意のシェルコマンドやスクリプトを割り込ませることができます。
フックが発火すると、設定したコマンドが起動し、stdin(標準入力) からJSONデータを受け取ります。このJSONには session_id(セッションID)・tool_name(実行されたツール名)・tool_input(ツールへの入力値)などが含まれており、PostToolUseの場合はさらに tool_response(ツールの実行結果)も含まれます。
スクリプトはこのデータをパースして、処理の継続・ブロック・フィードバック送信などを行います。
(例)
Claude Code が TodoWrite を実行
↓
PostToolUse Hook が発火
↓
設定したコマンドが起動 (例: python hook.py)
↓
このJSONがそのコマンドのstdinに流し込まれる
↓
スクリプト側でJSONをパースして処理
| フックの種類 | タイミング | できること |
|---|---|---|
| PreToolUse | ツール実行前 | 終了コード2を返すことで操作をブロックする |
| PostToolUse | ツール実行後 | 後続処理やClaudeへのフィードバックを送る |
実用的なフック例
コースでは以下のような実践的なフックの活用例が紹介されています。
- .envファイルの読み取り防止フック:Claudeが
.envファイルを読もうとしたとき、フックがインターセプトして終了コード2でブロックする - TypeScript型チェックフック:ファイル編集後に
tsc --noEmitを自動実行し、型エラーをリアルタイムでClaudeにフィードバックする - クエリ重複防止フック:queriesディレクトリへの変更時に別のClaude Codeインスタンスを起動し、既存クエリとの重複を確認する
その他のフックイベント一覧
| イベント名 | 発動タイミング |
|---|---|
| Notification | Claudeが許可待ちになったとき、または60秒アイドル後 |
| Stop | Claudeの応答が完了したとき |
| SubagentStop | サブエージェントの処理が完了したとき |
| PreCompact | コンパクト操作が実行される前 |
| UserPromptSubmit | ユーザーがプロンプトを送信したとき |
| SessionStart / SessionEnd | セッション開始・終了時 |
Claude Code SDK
TypeScript / Python / CLIからClaude Codeをプログラムで呼び出せるSDKも提供されています。以下はTypeScriptでの使用例です。
import { query } from "@anthropic-ai/claude-code";
for await (const message of query({
prompt: "Look for duplicate queries in the ./src/queries dir",
options: {
allowedTools: ["Read", "Grep"]
}
})) {
console.log(JSON.stringify(message, null, 2));
}SDKはデフォルトで読み取り専用です。ファイルの書き込みや編集が必要な場合は、allowedTools オプションで明示的に許可してください。
まとめ:コースで学んだ3つの核心
- Claude Codeは「ツールユース」という仕組みで言語モデルがファイル操作やコマンド実行を行う。Claudeはこのツールユースが特に得意
- /init・CLAUDE.md・カスタムコマンド・MCP・GitHub連携など、実務を加速する多彩な機能が揃っている
- HooksとSDKを組み合わせることで、Claude Codeを自動化ワークフローの中核として機能させることができる
参考リソース
- Anthropic Academy:無料で受講できるAnthropicの公式学習プラットフォーム。Claude Code in Actionを含む15コース以上が揃う
- Claude Code 公式ドキュメント:Claude Codeの仕様・Hooks・SDK・MCP設定の詳細リファレンス
- Anthropic Courses(GitHub):Jupyter Notebookで手を動かしながら学べる開発者向けオープンソースコース群

コメント