Claude Code無料コース徹底解説 — Anthropic公式で学ぶAI駆動開発の実践スキル¶
この記事で学べること
Claude Code無料コースの全体像と各学習領域の詳細 CLAUDE.mdによるコンテキスト管理の実践的な書き方 MCP連携・Hooks・カスタムコマンドの具体的な実装方法
Anthropicが「Claude Code in Action」という無料コースを公開しました。単なる操作説明ではなく、AIエージェントと協働して開発速度を最大化するための実践的なワークフローを体系的に学べます。本記事では、コースの内容を先取りしつつ、すぐに使える具体的な設定例やコード例を紹介します。
この記事の対象者
- CLIの基本操作とGitの基礎知識があり、Claude Codeを本格活用したい開発者
コースの概要と受講方法¶
「Claude Code in Action」はAnthropicのSkilljarプラットフォームで無料提供されています。Anthropicアカウントは不要で、Skilljarアカウントを作成するだけで受講可能です。
| 項目 | 内容 |
|---|---|
| URL | anthropic.skilljar.com/claude-code-in-action |
| 費用 | 無料 |
| 前提条件 | CLI基本知識、Claude Codeアクセス、APIキー |
コースは大きく4つのパートに分かれています。基礎編ではClaude Codeの仕組みとセットアップ、中級編ではコンテキスト管理とカスタムコマンド、応用編ではMCPサーバー連携とGitHub統合、そして上級編ではHooksとSDKを学びます。
Part 1:Claude Codeの基本 — AIコーディングアシスタントの仕組み¶
コーディングアシスタントとは何か¶
コースの冒頭では、Claude Codeがどのように動作するかを解説します。Claude Codeはターミナル上で動作するAIエージェントで、ファイルの読み書き、コマンド実行、コード分析を自動化できます。
重要なのは、Claude Codeが「ツールシステム」を通じてコードベースと対話する点です。ファイルを読む、編集する、bashコマンドを実行するといった操作は、すべてツールとして定義されています。Claude Codeは複数のツールを組み合わせて、複雑なタスクを段階的に処理します。
セットアップと初期設定¶
コースでは、Claude Codeのインストールから初期設定までを丁寧に解説します。インストール自体は以下のコマンドで完了します。
npm install -g @anthropic-ai/claude-code
インストール後、プロジェクトディレクトリでclaudeコマンドを実行すると対話セッションが開始されます。初回起動時には/initコマンドでプロジェクトの初期化を行い、CLAUDE.mdファイルを生成することが推奨されています。
Part 2:コンテキスト管理 — CLAUDE.mdの活用¶
CLAUDE.mdとは何か¶
CLAUDE.mdは、Claude Codeにプロジェクト固有の情報を伝えるための設定ファイルです。セッション開始時に自動的に読み込まれ、「開発者があなた向けに残した重要な指示です」としてClaudeに認識されます。
Claude Codeはエージェントなので、基本的にセッション間でメモリを持ちません。CLAUDE.mdはセッション間、そしてチームメンバー間で状態を共有する主な手段となります。
CLAUDE.mdの配置場所と読み込み順序¶
Claude Codeは複数のCLAUDE.mdファイルを階層的に読み込みます。
| 配置場所 | 用途 | Git管理 |
|---|---|---|
~/.claude/CLAUDE.md | グローバル設定(全プロジェクト共通) | dotfilesで管理推奨 |
./CLAUDE.md | プロジェクト設定(チーム共有) | Git管理推奨 |
./.claude/CLAUDE.md | プロジェクト設定(ローカル) | .gitignore推奨 |
Claude Codeは現在の作業ディレクトリからルートディレクトリまで再帰的に探索し、見つかったすべてのCLAUDE.mdを読み込みます。また、サブディレクトリ内のCLAUDE.mdも、そのディレクトリ内のファイルを扱う際に自動的に参照されます。
効果的なCLAUDE.mdの書き方¶
コースでは「最初から網羅的なマニュアルを書かない」というアプローチを推奨しています。Claudeが間違えた箇所を記録していく運用が効果的です。
以下は実践的なCLAUDE.mdの例です。
# プロジェクトガイド
## 言語設定
- 常に日本語で会話する
## 開発ワークフロー
- 変更を加える前に、必ず既存のコードを読んで理解する
- 実装前に詳細な計画を作成する
- テスト駆動開発を使用する
## コーディング規約
- テスト実行は常に `pytest tests/` を使用
- `python -m unittest` は使用しない(カスタム設定が読み込まれないため)
- パッケージ追加時は `poetry add <package>` を使用
## 重要な制約
**重要**: データベース操作前には必ずバックアップを作成してください
**必須**: PR作成前にはテストがすべてパスしていることを確認してください
記載のベストプラクティス
- 具体的に記述する:「2スペースのインデントを使用する」は「コードを適切にフォーマットする」よりも明確
- 重要な規約には強調表記を追加(
**重要**など)することで、Claudeの遵守率が向上 - 同じ情報を複数箇所に書かない(更新漏れで「どれが正しいのか」がわからなくなる)
#ショートカットでメモリを追加¶
コース中で紹介される便利な機能として、#ショートカットがあります。入力を#で始めると、Claude Codeはその内容をCLAUDE.mdに追加するよう促します。
# pytest実行時は必ず -v オプションを付ける
この入力を行うと、どのメモリファイルに保存するかを選択できます。作業中に発見した知見をその場で記録できる便利な機能です。
Part 3:カスタムコマンドとワークフロー自動化¶
カスタムスラッシュコマンドの作成¶
反復的なワークフローを効率化するため、カスタムスラッシュコマンドを作成できます。これらはMarkdown形式のプロンプトテンプレートとして保存され、/キーで呼び出せます。
コマンドは以下の場所に配置します。
| 配置場所 | スコープ |
|---|---|
~/.claude/commands/ | 全プロジェクトで使用可能 |
./.claude/commands/ | 現在のプロジェクトでのみ使用可能 |
実用的なカスタムコマンド例¶
GitHubイシューの修正コマンド
.claude/commands/fix-github-issue.mdとして保存すると、/fix-github-issue 123のように呼び出せます。
GitHub issueを解析して修正してください: $ARGUMENTS
以下の手順に従ってください:
1. `gh issue view $ARGUMENTS` でissueの詳細を取得
2. 問題の理解と関連ファイルの検索
3. 修正の実装
4. テストの作成と実行
5. リントと型チェックの実行
6. 説明的なコミットメッセージの作成
7. PRの作成
GitHubとの連携には `gh` CLIを使用してください。
厳格なコードレビューコマンド
.claude/commands/hard-review.mdとして保存します。
問題が見つからなくなるまで、以下を繰り返してください:
1. 変更されたファイルを確認してレビュー
2. 問題があれば修正
3. 修正後、再度レビュー
特に以下の点に注意してください:
- 型の整合性
- エッジケースの処理
- セキュリティ上の問題
- パフォーマンスへの影響
コミット&プッシュコマンド
以下の手順でコミットとプッシュを行ってください:
1. `git diff` で変更内容を確認
2. 変更内容を要約したコミットメッセージを作成
3. `git add .` で変更をステージング
4. `git commit -m "生成したメッセージ"` でコミット
5. `git push` でプッシュ
コミットメッセージは以下の形式で:
- feat: 新機能
- fix: バグ修正
- docs: ドキュメント
- refactor: リファクタリング
Part 4:MCPサーバー連携 — 外部ツールとの統合¶
MCPとは何か¶
MCP(Model Context Protocol)は、Claude Codeを外部ツールやサービスと統合するための標準プロトコルです。MCPサーバーを設定することで、ブラウザ自動化、データベースアクセス、外部API連携など、さまざまな機能をClaude Codeに追加できます。
コースでは、MCPの基本的な仕組みから実践的な設定方法までを学びます。コードベース全体への理解を深めたい場合は、Serena MCP 実装ガイドも合わせて参照してください。
MCPサーバーの設定方法¶
MCPサーバーはclaude mcp addコマンドで追加します。スコープによって設定の保存場所が変わります。
| スコープ | オプション | 保存場所 |
|---|---|---|
| local | -s local(デフォルト) | .claude/settings.local.json |
| project | -s project | .mcp.json(Git管理可能) |
| user | -s user | ~/.claude/settings.json |
実用的なMCPサーバー設定例¶
Playwright(ブラウザ自動化)
claude mcp add playwright -s project -- npx -y @playwright/mcp@latest
これにより、Claude CodeにWebブラウザの操作能力が追加されます。「このURLを開いてスクリーンショットを取得して」といった指示が可能になります。
GitHub連携
claude mcp add github -s user \
-e GITHUB_PERSONAL_ACCESS_TOKEN=your-token \
-- npx -y @modelcontextprotocol/server-github
GitHub MCPサーバーを設定すると、以下のような高度な操作が自然言語で可能になります。
- 「JIRA課題ENG-4521に記載されている機能を追加し、GitHub PRを作成して」
- 「最新のPRをレビューして、問題があればコメントを追加して」
- 「developブランチにマージできるか確認して」
PostgreSQL連携
claude mcp add postgres -s user \
-e DATABASE_URL="postgresql://user:password@localhost:5432/dbname" \
-- npx -y @modelcontextprotocol/server-postgres
データベースに直接クエリを実行できるようになります。「usersテーブルから最新の10件を取得して」といった操作が可能です。
Context7(最新ライブラリ仕様の取得)
claude mcp add context7 -s user -- npx -y @upstash/context7-mcp@latest
Context7を設定すると、Claudeが学習していない最新のライブラリ仕様を取得できます。新しいAPIの使い方を正確に把握した上でコードを生成できるようになります。
MCPサーバー接続時にできること¶
MCPサーバーが接続されていると、Claude Codeに以下のようなことを依頼できます。
- 課題トラッカーから機能を実装する:「JIRAイシューENG-4521に記載されている機能を追加し、GitHub PRを作成してください」
- 監視データを分析する:「SentryとStatsigをチェックして、ENG-4521機能の使用状況を確認してください」
- データベースをクエリする:「Postgresデータベースから、ENG-4521機能を使用した10人のランダムなユーザーのメールアドレスを検索してください」
- デザインを統合する:「Slackに投稿された新しいFigmaデザインに基づいて、標準メールテンプレートを更新してください」
- ワークフローを自動化する:「新機能に関するフィードバックセッションにこれら10人のユーザーを招待するGmailドラフトを作成してください」
Part 5:Hooks — 決定論的な自動化¶
Hooksとは何か¶
Hooksは、Claude Codeのライフサイクル各ポイントで実行されるユーザー定義のシェルコマンドです。AIの判断に依存せず、特定の操作を「常に」実行することを保証できます。
コースでは、Hooksの基本概念から実践的な実装パターンまでを学びます。
Hookイベントの種類¶
| イベント | タイミング | 主な用途 |
|---|---|---|
PreToolUse | ツール実行前 | 危険なコマンドのブロック、入力の検証 |
PostToolUse | ツール実行後 | フォーマッター実行、品質チェック |
UserPromptSubmit | プロンプト送信時 | プロンプトの検証、コンテキスト注入 |
PermissionRequest | 許可ダイアログ表示時 | 自動承認/拒否 |
Stop | エージェント応答完了時 | 終了時の品質チェック |
SessionStart | セッション開始時 | コンテキストの読み込み |
SessionEnd | セッション終了時 | ログの保存、クリーンアップ |
実用的なHook設定例¶
Hooksは.claude/settings.jsonまたは.claude/settings.local.jsonで設定します。
TypeScriptファイルの自動フォーマット
ファイル編集後に自動でPrettierを実行します。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | { read file_path; if echo \"$file_path\" | grep -q '\\.ts$'; then npx prettier --write \"$file_path\"; fi; }"
}
]
}
]
}
}
危険なコマンドのブロック
rm -rfや.envファイルへのアクセスを事前にブロックします。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "python3 -c \"import json, sys; data=json.load(sys.stdin); path=data.get('tool_input',{}).get('file_path',''); sys.exit(2 if any(p in path for p in ['.env', 'package-lock.json', '.git/']) else 0)\""
}
]
}
]
}
}
Hookの終了コードが2の場合、ツールの実行がブロックされ、エラーメッセージがClaudeにフィードバックされます。
Bashコマンドのログ記録
実行されたすべてのBashコマンドをログファイルに記録します。監査やデバッグに有用です。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "jq -r '\"\\(.tool_input.command) - \\(.tool_input.description // \"No description\")\"' >> ~/.claude/bash-command-log.txt"
}
]
}
]
}
}
終了時の品質チェック
Claudeの応答完了時に、リントとテストを自動実行します。
{
"hooks": {
"Stop": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/end-of-turn-check.sh"
}
]
}
]
}
}
.claude/hooks/end-of-turn-check.shの例:
#!/bin/bash
set -e
# 依存関係のインストールと型チェック
pnpm install
pnpm check
# .tsxファイルが変更されていればE2Eテストを実行
if git diff --name-only | grep -q '\.tsx$'; then
pnpm test:e2e
fi
Hooksのセキュリティに関する注意
Hooksは自動的に実行されるため、悪意のあるコードはデータ漏洩の原因になります。特に.mcp.jsonや.claude/settings.jsonをGit管理する場合、第三者のリポジトリをクローンする際は必ずHooks設定を確認してください。
Part 6:GitHub連携とCI/CD統合¶
GitHub連携の設定¶
コースでは、GitHub MCPサーバーを使った自動PRレビューやイシュー処理のワークフローを構築する方法を学びます。
GitHub連携を有効にすると、Claude Codeは以下のような操作を自然言語で実行できます。
- イシューの詳細取得と分析
- ブランチの作成とチェックアウト
- PRの作成とレビューコメントの追加
- マージ可否の判断
GitHub Actionsとの連携¶
Claude Code Actionを使うと、PRに対して自動でコードレビューを実行できます。Codex CLIとGitHub Actionsを組み合わせた自動化についてはCodex CLI × GitHub Actions 連携ガイドも参考になります。GitHub Actionsワークフローの例:
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Claude Code Review
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
review_type: comprehensive
Part 7:Claude Code SDK¶
SDKの概要¶
コースの最終パートでは、Claude Code SDKを使ったプログラマティックな統合方法を学びます。SDKを使うと、Claude Codeの機能を自作のツールやスクリプトに組み込めます。
import { query } from "@anthropic-ai/claude-code-sdk";
for await (const message of query({
prompt: "List files in my project",
options: {
mcpServers: {
"filesystem": {
command: "npx",
args: ["@modelcontextprotocol/server-filesystem"],
env: { ALLOWED_PATHS: "/Users/me/projects" }
}
},
allowedTools: ["mcp__filesystem__list_files"]
}
})) {
if (message.type === "result" && message.subtype === "success") {
console.log(message.result);
}
}
SDKを活用することで、バッチ処理やカスタムワークフローの自動化が可能になります。
学習のロードマップ¶
コースを効果的に学習するためのロードマップを提案します。
Week 1:基礎固め¶
- コースのPart 1-2を完了(セットアップとコンテキスト管理)
- 自分のプロジェクトにCLAUDE.mdを作成
#ショートカットで知見を蓄積する習慣を身につける
Week 2:ワークフロー自動化¶
- コースのPart 3を完了(カスタムコマンド)
- よく使うワークフローを3つカスタムコマンド化
/hard-reviewのような品質向上コマンドを導入
Week 3:外部連携¶
- コースのPart 4を完了(MCP連携)
- GitHub MCPサーバーを設定してPR作成を自動化
- プロジェクトに必要なMCPサーバーを追加(DB、Slack等)
Week 4:高度な自動化¶
- コースのPart 5-6を完了(Hooks、GitHub Actions)
- PostToolUseでフォーマッターを自動実行
- Stopフックで品質チェックを自動化
まとめ¶
Anthropic公式のClaude Code無料コースは、単なる操作説明ではなく、AIエージェントと協働して開発速度を最大化するための実践的なスキルを体系的に学べる内容です。
コースで学べる主なスキル
- CLAUDE.mdによるコンテキスト管理とチーム間での知識共有
- カスタムコマンドによるワークフローの標準化
- MCPサーバー連携による外部ツール統合
- Hooksによる決定論的な品質保証
- GitHub連携とCI/CD統合
今すぐ始められるアクション
- Claude Code in Actionに登録してコースを開始
- 現在のプロジェクトにCLAUDE.mdを作成
- よく使うワークフローをカスタムコマンド化
AIエージェントとの協働は、単にコードを書かせることではありません。適切なコンテキストを与え、ワークフローを自動化し、品質を担保する仕組みを構築することで、開発体験は大きく変わります。このコースは、そのための実践的な出発点となるでしょう。
次のステップ¶
このコースを修了したら、以下の実践ガイドで Claude Code をさらに活用できます:
- Claude Code 自動承認ガイド —
--dangerously-skip-permissionsの安全な使い方と CI/CD への組み込み方 - Claude Code × Cron 完全自動化ガイド(2025年版) — コースで学んだ Hooks × Cron を組み合わせた定期実行の実装例
- Claude Code バッチ処理完全ガイド —
/batchコマンドと Git Worktree で大規模コード変更を自動化
参考リンク¶
- Claude Code in Action - Anthropic Courses — コース公式ページ
- Claude Code公式ドキュメント — 詳細なリファレンス
- Claude Codeベストプラクティス — Anthropicエンジニアリングブログ
- MCP公式サイト — Model Context Protocolの仕様と実装例