Claude Code完全実践ガイド2026〜CLI・MCP・Agent SDK・カスタムコマンド・チーム導入〜

Claude Codeって結局なにができて、どう使えばチームに効くのか?」——Anthropic公式CLIが本格的にエンタープライズへ浸透した2026年、現場の質問は「導入するかどうか」から「どう設計して運用に乗せるか」へ完全にシフトしました。本記事はClaude Code単体に絞り、CLIの基礎からMCP(Model Context Protocol)Agent SDK(TypeScript)カスタムスラッシュコマンドhooksCI連携チーム導入まで、コピペで動くコードを大量に交えながら、現役エンジニアの実装目線で解説します。

Cursor・Clineとの違い、Plan Mode・CommitMode・Output Style・Subagentsといった2026年時点の最新機能、課金体系(Pro/Max/API)、Anthropicのデータポリシーまで、1記事で「Claude Codeで仕事になるレベル」に到達できる内容を目指しました。コーディングAIで生産性を本気で上げたいエンジニア、チームへ導入を検討しているテックリード、AI関連のキャリアを設計したい方は最後までお付き合いください。

この記事で得られること

  • Claude Codeをゼロからセットアップし、CLI・SDK・MCPを使い分けられる
  • CLAUDE.md / settings.json / hooks / agents を設計してチームに展開できる
  • GitHub ActionsからClaude Codeを動かし、PR自動レビュー・自動修正を回せる
  • Pro / Max / APIの違いを理解し、最適なプランを選べる
  • Cursor・Clineとの本質的な棲み分けが説明できる
  1. 1. Claude Codeとは何か——ターミナルネイティブのコーディングエージェント
    1. 1.1 アーキテクチャの全体像
    2. 1.2 Cursorとの違い
    3. 1.3 Clineとの違い
  2. 2. インストールと初期セットアップ
    1. 2.1 必要環境
    2. 2.2 グローバルインストール
    3. 2.3 認証(ブラウザログイン)
    4. 2.4 API Key直接設定(CIサーバー向け)
  3. 3. claudeコマンドの基本——インタラクティブ vs One-shot
    1. 3.1 インタラクティブモード
    2. 3.2 One-shotモード(-p)
    3. 3.3 ファイル指定(@filename)
    4. 3.4 セッション再開(--resume / --continue)
  4. 4. CLAUDE.md——プロジェクト固有ルールの中核
    1. 4.1 CLAUDE.mdとは
    2. 4.2 実例:Reactプロジェクト向けCLAUDE.md
    3. 4.3 階層配置(モノレポ対応)
  5. 5. .claude/settings.json——挙動と権限の設計
    1. 5.1 ファイル配置
    2. 5.2 最小構成の例
    3. 5.3 permissionsの書き方
    4. 5.4 ツール一覧と用途
  6. 6. hooks——イベント駆動でClaudeを縛る・拡張する
    1. 6.1 hooksの考え方
    2. 6.2 主要イベント
    3. 6.3 設定例:Edit後に自動Prettier
    4. 6.4 設定例:危険コマンドをブロック
    5. 6.5 設定例:Stop時にCommit Lintを走らせる
  7. 7. カスタムスラッシュコマンド
    1. 7.1 仕組み
    2. 7.2 例1:/review-pr
    3. 7.3 例2:/add-test
    4. 7.4 例3:/migrate-webpack-vite
  8. 8. Subagents——専門特化エージェントを束ねる
    1. 8.1 Subagentsとは
    2. 8.2 定義ファイル
    3. 8.3 呼び出し方
    4. 8.4 並列Subagentsの設計パターン
  9. 9. MCP(Model Context Protocol)——外部世界との接続
    1. 9.1 MCPとは
    2. 9.2 公開MCPサーバーを追加(GitHub)
    3. 9.3 .mcp.json でチーム共有
    4. 9.4 自作MCPサーバー(TypeScript・最小例)
    5. 9.5 自作MCPをClaude Codeに登録
  10. 10. Claude Code SDK(TypeScript)でプログラム的に呼ぶ
    1. 10.1 インストール
    2. 10.2 最小例:ワンショット実行
    3. 10.3 ストリーミングをハンドリング
    4. 10.4 セッション継続
    5. 10.5 SDK経由でMCPサーバーを起動
  11. 11. ヘッドレスモード——スクリプト化・バッチ処理
    1. 11.1 完全非対話で実行
    2. 11.2 出力フォーマット
    3. 11.3 シェルパイプで連結
  12. 12. GitHub ActionsでClaude Codeを動かす
    1. 12.1 公式Action(anthropics/claude-code-action)
    2. 12.2 定期実行(依存更新レビュー)
    3. 12.3 PR自動レビュー
  13. 13. 実践プロンプト例 20種
  14. 14. Plan Mode / CommitMode / Output Style
    1. 14.1 Plan Mode
    2. 14.2 CommitMode
    3. 14.3 Output Style
  15. 15. プライバシー・データポリシー
    1. 15.1 学習利用の有無
    2. 15.2 データ保存期間
    3. 15.3 ローカル境界の意識
  16. 16. 課金プラン——Pro / Max / API の選び方
    1. 16.1 概要
    2. 16.2 個人開発者の最適解
    3. 16.3 チーム導入時
  17. 17. キャリアの観点——Claude Codeを武器にする
    1. 17.1 「AIを使うエンジニア」と「AIを設計するエンジニア」
    2. 17.2 学習ロードマップ
    3. 17.3 体系的に身に付けたい人へ
  18. 18. よくある質問(FAQ)
    1. 18.1 Claude Codeはオフラインで使える?
    2. 18.2 自社コードが学習に使われないか心配
    3. 18.3 Cursorからの乗り換えはアリ?
    4. 18.4 トークン消費を抑えるコツは?
    5. 18.5 学習中の挫折を防ぐには?
  19. 19. まとめ——Claude Codeは「2026年の標準装備」

1. Claude Codeとは何か——ターミナルネイティブのコーディングエージェント

Claude CodeはAnthropicが公式提供するコマンドラインベースのAIコーディングエージェントです。CursorやVS Codeのようなエディタ統合型ではなく、シェル上でclaudeコマンドを叩いて使う「ターミナルネイティブ型」というのが最大の特徴。リポジトリのファイルを直接読み書きし、テスト実行・git操作・MCPを通じた外部API連携までを一気通貫でこなします。

1.1 アーキテクチャの全体像

Claude Codeは大きく以下のレイヤで構成されています。

  • CLI本体(@anthropic-ai/claude-code):ターミナルから対話・ワンショット実行
  • Claude Agent SDK(@anthropic-ai/claude-agent-sdk):プログラムから組み込み・ヘッドレス実行
  • MCP(Model Context Protocol):外部ツール・データソースとの標準連携プロトコル
  • 設定レイヤ:CLAUDE.md(プロジェクト指示)・.claude/settings.json(挙動/権限)・~/.claude/(ユーザー設定)
  • 拡張機構:カスタムスラッシュコマンド、Subagents、hooks、Output Style

1.2 Cursorとの違い

CursorはVS Codeフォークでエディタ内のChat・Composer・Tabベース補完が主役。UIの完成度・人間が逐次レビューしながら書くシナリオで強い。一方Claude CodeはCLI/プログラマブルで、CI/CD・バッチ処理・複数リポジトリ横断などに自然に乗ります。「エディタ内で書く=Cursor、裏で走らせる/自動化する=Claude Code」が2026年時点の役割分担です。

1.3 Clineとの違い

Cline(旧Claude Dev)はVS Code拡張のオープンソースエージェント。BYO API keyでAnthropic・OpenAI・ローカルLLMなど自由に切り替えられる柔軟性が強み。Claude CodeはAnthropic公式で、Claude Opus/Sonnetに最適化され、MCPのリファレンス実装的な立ち位置。モデルロックインを受け入れる代わりに品質と安定性で勝つのがClaude Codeです。

2. インストールと初期セットアップ

2.1 必要環境

Node.js 18以上(LTS推奨)・macOS/Linux/WSL2/Windows(ネイティブも対応)。本記事はNode.js 22 LTSを前提に解説します。

# Node.jsバージョン確認
node -v   # v22.x.x
npm -v    # 10.x.x

2.2 グローバルインストール

# Claude Code CLI 本体
npm install -g @anthropic-ai/claude-code

# バージョン確認
claude --version

# ヘルプ
claude --help

権限エラーが出る場合はsudoを避け、npm config set prefix ~/.npm-globalでユーザー領域にインストールするのが安全です。

# npm prefix変更(sudo回避)
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
npm install -g @anthropic-ai/claude-code

2.3 認証(ブラウザログイン)

初回はブラウザでAnthropicアカウントにログインします。Pro / Maxプラン契約者はそのままサブスクリプション枠で利用可能。

# 対話的にブラウザログイン
claude login

# 認証状態の確認
claude whoami

# ログアウト(端末を共有する場合)
claude logout

2.4 API Key直接設定(CIサーバー向け)

CIや無人環境ではAnthropic API Keyを環境変数で渡します。

# 一時的に
export ANTHROPIC_API_KEY="sk-ant-xxxxxxxxxxxxxxxx"

# ~/.zshrc に永続化
echo 'export ANTHROPIC_API_KEY="sk-ant-xxxxxxxxxxxxxxxx"' >> ~/.zshrc
source ~/.zshrc

# Windows PowerShell
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-xxx", "User")

Bedrock経由・Vertex AI経由で使いたい場合はそれぞれの環境変数を使います。

# Amazon Bedrock経由
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-west-2

# Google Vertex AI経由
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project

3. claudeコマンドの基本——インタラクティブ vs One-shot

3.1 インタラクティブモード

プロジェクトルートでclaudeを叩くと、対話セッションが起動します。リポジトリ全体をコンテキストに取り、自然言語で指示できます。

# プロジェクトに入って起動
cd ~/dev/my-app
claude

# セッション内で
> このリポジトリの構成を教えて
> src/utils/date.ts のバグを直して、テストも追加して
> /exit

3.2 One-shotモード(-p)

シェルパイプ・スクリプトに組み込むなら-p(--print)で一発実行・終了。

# プロンプトを直接渡す
claude -p "package.jsonのdependenciesを表形式で出力して"

# 標準入力からプロンプト
cat ERROR.log | claude -p "このエラーログを要約して原因候補を3つ挙げて"

# 出力をファイルに
claude -p "READMEを英訳して" --output-format text > README.en.md

3.3 ファイル指定(@filename)

プロンプト内で@を付けるとファイル/ディレクトリを明示コンテキストに渡せます。

claude -p "@src/api/user.ts のバリデーションをZodで書き直して"
claude -p "@src/components/ と @docs/components.md を読み比べてズレを指摘して"

3.4 セッション再開(--resume / --continue)

# 直前のセッションを継続
claude --continue

# 過去セッション一覧から選択
claude --resume

4. CLAUDE.md——プロジェクト固有ルールの中核

4.1 CLAUDE.mdとは

リポジトリルートに置くCLAUDE.md「Claudeが毎回読み込むプロジェクト指示書」。コーディング規約・使用ライブラリ・テスト方針・禁止事項などを書いておくと、毎回プロンプトで説明する手間が消えます。

4.2 実例:Reactプロジェクト向けCLAUDE.md

# Project: my-app

## 技術スタック
- React 19 / TypeScript 5.6 / Vite 6
- Tailwind CSS / shadcn/ui
- TanStack Query / Zustand
- Vitest / Testing Library / Playwright

## コーディング規約
- 関数コンポーネントのみ。class禁止。
- propsは型エイリアス(`type Props = {...}`)で先頭に宣言。
- `any` 禁止。やむを得ない場合は `// TODO(any):` コメント必須。
- 命名は kebab-case のファイル名、PascalCase のコンポーネント名。

## テスト方針
- 新規/変更コンポーネントには必ず Vitest テストを追加。
- `pnpm test` を最後に走らせて緑になるまで直す。

## 禁止事項
- `npm install` ではなく `pnpm add` を使う。
- `console.log` をコミットしない。
- マイグレーション以外で `--force` 系コマンド禁止。

## よく使うコマンド
- 開発サーバ: `pnpm dev`
- ビルド: `pnpm build`
- テスト: `pnpm test`
- Lint: `pnpm lint --fix`

4.3 階層配置(モノレポ対応)

CLAUDE.mdはディレクトリ階層ごとに置けます。サブパッケージ固有の指示をネストさせるのが定石。

my-monorepo/
├── CLAUDE.md           # 全体ルール
├── packages/
│   ├── web/
│   │   └── CLAUDE.md   # Next.js固有ルール
│   ├── api/
│   │   └── CLAUDE.md   # Hono / DBスキーマ
│   └── ui/
│       └── CLAUDE.md   # shadcn / Storybook

5. .claude/settings.json——挙動と権限の設計

5.1 ファイル配置

設定は3階層。優先順位はプロジェクトlocal > プロジェクト共有 > ユーザー

.claude/settings.json          # チームで共有(コミット)
.claude/settings.local.json    # 個人用(.gitignore)
~/.claude/settings.json        # 全プロジェクト共通

5.2 最小構成の例

{
  "model": "claude-opus-4-5",
  "permissions": {
    "allow": [
      "Bash(pnpm test:*)",
      "Bash(pnpm lint:*)",
      "Bash(git status)",
      "Bash(git diff:*)",
      "Read(./**)",
      "Edit(./src/**)",
      "Write(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(sudo:*)",
      "Write(./.env*)",
      "Write(./secrets/**)"
    ]
  },
  "env": {
    "NODE_ENV": "development"
  }
}

5.3 permissionsの書き方

パターンは「ツール名(引数パターン)」*でワイルドカード、:でサブコマンド・パスの区切り。

{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(npx vitest:*)",
      "Bash(git commit:*)",
      "Bash(git push origin feature/*)",
      "Read(/Users/me/dev/**)",
      "WebFetch(domain:docs.anthropic.com)",
      "WebFetch(domain:github.com)"
    ],
    "deny": [
      "Bash(curl:*)",
      "Bash(wget:*)",
      "Edit(./node_modules/**)"
    ]
  }
}

5.4 ツール一覧と用途

Tool 用途
Bash 任意のシェルコマンド実行
Read ファイル読み込み
Write ファイル新規作成・完全上書き
Edit 既存ファイルの部分編集(diff適用)
Glob ファイル名パターン検索
Grep 中身全文検索(ripgrep)
WebFetch URLの取得・要約
WebSearch Web検索
NotebookEdit Jupyterノートブック編集
TaskCreate Subagent起動

6. hooks——イベント駆動でClaudeを縛る・拡張する

6.1 hooksの考え方

hooksはClaudeが何かをする前後に発火するシェルスクリプト。「Editが入ったら自動でprettier・eslintをかける」「dangerous commandをブロック」など、運用ルールを強制できます。

6.2 主要イベント

  • PreToolUse:ツール実行exit 2でブロック可
  • PostToolUse:ツール実行。自動整形・テスト
  • UserPromptSubmit:ユーザー入力直後
  • Stop:Claudeの応答終了時
  • SessionStart / SessionEnd:セッション開始/終了

6.3 設定例:Edit後に自動Prettier

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "pnpm prettier --write "$CLAUDE_FILE_PATHS"" }
        ]
      }
    ]
  }
}

6.4 設定例:危険コマンドをブロック

#!/usr/bin/env bash
# .claude/hooks/block-dangerous.sh
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // ""')
if echo "$CMD" | grep -Eq 'rm -rf /|:(){:|:&};:|mkfs|dd if='; then
  echo "BLOCKED: dangerous command detected" >&2
  exit 2
fi
exit 0
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": ".claude/hooks/block-dangerous.sh" }
        ]
      }
    ]
  }
}

6.5 設定例:Stop時にCommit Lintを走らせる

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "pnpm lint && pnpm test --run" }
        ]
      }
    ]
  }
}

7. カスタムスラッシュコマンド

7.1 仕組み

.claude/commands/<name>.mdに書いたMarkdownが、セッション内で/<name>として呼べるようになります。引数は$ARGUMENTSで受け取れます。

7.2 例1:/review-pr

---
description: "現在のブランチの変更内容をレビュー"
allowed-tools: ["Bash", "Read", "Grep"]
---

以下を実行してレビューしてください。

1. `git diff main...HEAD` で差分を取得
2. 重大な型エラー・セキュリティ問題・パフォーマンス劣化がないか確認
3. テストカバレッジを評価
4. Markdownで「Good点 / 要修正 / 提案」の3セクションで報告

引数: $ARGUMENTS

7.3 例2:/add-test

---
description: "指定ファイルにVitestのユニットテストを追加"
---

ファイル `$ARGUMENTS` の公開関数すべてに対してVitestテストを追加してください。
- 隣接ディレクトリ `__tests__/` に `*.test.ts` を作成
- happy path + edge case + error case を最低1つずつ
- 既存ファイルのテスト命名規約に合わせる
- 最後に `pnpm vitest run $ARGUMENTS` を走らせて緑を確認

7.4 例3:/migrate-webpack-vite

---
description: "WebpackプロジェクトをViteへ段階移行"
---

以下を順に実行:

1. 現在の `webpack.config.js` を読み、入口・出口・loader/pluginを表に整理
2. `vite.config.ts` のドラフトを作成(equivalentマッピング表をMarkdownで提示)
3. `package.json` の scripts を Viteベースに書き換え(diff提示→承認後にEdit)
4. `index.html` を Vite規約に合わせて移動・<script type="module">化
5. `pnpm build` が成功するまで修正
6. 移行レポートを `docs/migration-vite.md` に書き出す

8. Subagents——専門特化エージェントを束ねる

8.1 Subagentsとは

Subagentsは専門タスク用に切り出した子エージェント。「テスト追加だけする」「セキュリティレビューだけする」のように役割・コンテキスト・許可ツールを限定することで、メインスレッドのコンテキストを汚さずに並列処理できます。

8.2 定義ファイル

.claude/agents/<name>.mdに配置。Markdownのfront matterで設定します。

---
name: test-writer
description: 関数仕様からVitestテストを生成する専門エージェント
tools: ["Read", "Write", "Edit", "Bash(pnpm vitest:*)"]
model: claude-sonnet-4-5
---

あなたはテスト設計のスペシャリストです。

ルール:
- AAA(Arrange-Act-Assert)を厳守
- describe/it ネストは2階層まで
- snapshot test は避け、明示的アサーションのみ
- カバレッジ目標: 80%以上

ワークフロー:
1. 対象ファイルを Read
2. テスト対象の関数を列挙
3. ケースごとに Arrange / Act / Expected を表で提示
4. 承認後に Write でテストファイルを作成
5. `pnpm vitest run` で緑を確認

8.3 呼び出し方

# メインセッション内で
> test-writer サブエージェントを使って src/utils/format.ts のテストを書いて

# またはスラッシュコマンドから
/agents test-writer src/utils/format.ts

8.4 並列Subagentsの設計パターン

大規模リファクタでは複数Subagentを並走させると速い。例:

  • analyzer:依存グラフを解析・改修プラン作成
  • refactor-worker:プランに従って実コード変更
  • test-writer:変更箇所のテスト追加
  • reviewer:Diffをセキュリティ・パフォ観点で評価

9. MCP(Model Context Protocol)——外部世界との接続

9.1 MCPとは

MCPはAnthropicが提唱する「LLMが外部ツール・データソースを安全に呼ぶための標準プロトコル」。GitHub・Slack・Postgres・Linear・Figma・Notion・社内APIなど、MCPサーバーとして実装すればどんなLLMホストからも同じ作法で叩けます。Claude CodeはMCPのリファレンスホストとして最も完成度が高い。

9.2 公開MCPサーバーを追加(GitHub)

# GitHub公式MCPサーバーを登録
claude mcp add github 
  --command "npx" 
  --args "-y" "@modelcontextprotocol/server-github" 
  --env "GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxx"

# 登録一覧
claude mcp list

# 削除
claude mcp remove github

9.3 .mcp.json でチーム共有

リポジトリルートに.mcp.jsonを置くとチーム全員が同じMCP構成で動かせます。

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgres://localhost/mydb"]
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    }
  }
}

9.4 自作MCPサーバー(TypeScript・最小例)

// my-mcp-server/src/index.ts
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  CallToolRequestSchema,
  ListToolsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";

const server = new Server(
  { name: "weather-mcp", version: "0.1.0" },
  { capabilities: { tools: {} } }
);

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [
    {
      name: "get_weather",
      description: "指定都市の現在の天気を返す",
      inputSchema: {
        type: "object",
        properties: { city: { type: "string" } },
        required: ["city"],
      },
    },
  ],
}));

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  if (req.params.name !== "get_weather") throw new Error("unknown tool");
  const city = (req.params.arguments as { city: string }).city;
  const res = await fetch(`https://wttr.in/${encodeURIComponent(city)}?format=j1`);
  const data = await res.json();
  return {
    content: [
      { type: "text", text: `${city}: ${JSON.stringify(data.current_condition?.[0])}` },
    ],
  };
});

const transport = new StdioServerTransport();
await server.connect(transport);

9.5 自作MCPをClaude Codeに登録

claude mcp add weather 
  --command "node" 
  --args "/path/to/my-mcp-server/dist/index.js"

# 起動して試す
claude
> get_weather Tokyo を呼んで

10. Claude Code SDK(TypeScript)でプログラム的に呼ぶ

10.1 インストール

pnpm add @anthropic-ai/claude-agent-sdk

10.2 最小例:ワンショット実行

// scripts/refactor.ts
import { query } from "@anthropic-ai/claude-agent-sdk";

const stream = query({
  prompt: "src/legacy/api.ts を async/await にリファクタして",
  options: {
    cwd: process.cwd(),
    permissionMode: "acceptEdits",
    allowedTools: ["Read", "Edit", "Bash(pnpm test:*)"],
  },
});

for await (const ev of stream) {
  if (ev.type === "assistant") console.log(ev.message.content);
  if (ev.type === "result") console.log("done:", ev.subtype);
}

10.3 ストリーミングをハンドリング

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const ev of query({ prompt: "READMEを英訳して", options: {} })) {
  switch (ev.type) {
    case "system":
      // セッション開始イベント
      console.log("session:", ev.session_id);
      break;
    case "assistant":
      // モデルからの応答ブロック
      for (const block of ev.message.content) {
        if (block.type === "text") process.stdout.write(block.text);
      }
      break;
    case "tool_use":
      console.error("[tool]", ev.tool_name, ev.tool_input);
      break;
    case "result":
      console.error("[end]", ev.subtype, "tokens:", ev.usage);
      break;
  }
}

10.4 セッション継続

import { query } from "@anthropic-ai/claude-agent-sdk";

// 1ターン目
let sessionId = "";
for await (const ev of query({ prompt: "package.json を要約して", options: {} })) {
  if (ev.type === "system") sessionId = ev.session_id;
}

// 同セッションで追加質問
for await (const ev of query({
  prompt: "じゃあdependencyを最新化する手順を出して",
  options: { resume: sessionId },
})) {
  // ...
}

10.5 SDK経由でMCPサーバーを起動

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const ev of query({
  prompt: "GitHub issuesのバグラベルだけ集計して",
  options: {
    mcpServers: {
      github: {
        command: "npx",
        args: ["-y", "@modelcontextprotocol/server-github"],
        env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GH_TOKEN! },
      },
    },
    allowedTools: ["mcp__github__*"],
  },
})) {
  // ...
}

11. ヘッドレスモード——スクリプト化・バッチ処理

11.1 完全非対話で実行

claude -p "src/ 全体のTODOコメントを集めてMarkdown表で出して" 
  --output-format json 
  --max-turns 5 
  > todo-report.json

11.2 出力フォーマット

# テキスト(デフォルト)
claude -p "..." --output-format text

# JSON(構造化、CI向け)
claude -p "..." --output-format json

# Stream JSON(行ごとにJSONイベント、リアルタイム解析向け)
claude -p "..." --output-format stream-json --verbose

11.3 シェルパイプで連結

# ログ→要約→Slack通知
tail -n 1000 /var/log/app.log 
  | claude -p "重大エラーだけ抽出して箇条書きで" 
  | curl -X POST -H 'Content-Type: application/json' 
      -d "{"text":"$(cat)"}" $SLACK_WEBHOOK

12. GitHub ActionsでClaude Codeを動かす

12.1 公式Action(anthropics/claude-code-action)

# .github/workflows/claude.yml
name: Claude
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]

jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      issues: write
    steps:
      - uses: actions/checkout@v4
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

PR/Issueに@claude このバグ直してとコメントするだけで、Claude Codeがブランチ作成・コミット・PR更新まで自動でやります。

12.2 定期実行(依存更新レビュー)

name: Weekly Dependency Review
on:
  schedule:
    - cron: "0 9 * * MON"
  workflow_dispatch:

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 22 }
      - run: npm install -g @anthropic-ai/claude-code
      - name: Run Claude Code
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude -p "package.jsonの依存ライブラリで、過去1週間に新バージョンが出たものを調べ、breaking changeの有無を表で報告して" 
            --output-format text > reports/deps-review.md
      - uses: peter-evans/create-pull-request@v6
        with:
          title: "chore: weekly dependency review"
          branch: chore/deps-review
          commit-message: "chore: weekly dependency review"

12.3 PR自動レビュー

name: PR Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions: { pull-requests: write, contents: read }
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }
      - run: npm install -g @anthropic-ai/claude-code
      - name: Review
        env: { ANTHROPIC_API_KEY: "${{ secrets.ANTHROPIC_API_KEY }}" }
        run: |
          claude -p "/review-pr" --output-format text > review.md
      - uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const body = fs.readFileSync('review.md','utf8');
            await github.rest.issues.createComment({
              owner: context.repo.owner, repo: context.repo.repo,
              issue_number: context.issue.number, body
            });

13. 実践プロンプト例 20種

明日から仕事で使えるプロンプトをまとめました。claudeセッションにそのまま貼れます。

  1. リファクタ:src/utils/date.ts を date-fns ベースに書き換え、テストが全部緑のままになるようにして
  2. テスト追加:src/api/user.ts の公開関数すべてに Vitest テストを追加(happy+edge+error 各1)
  3. バグ修正:「ログイン後リダイレクトが /dashboard に飛ばない」現象を再現テスト→原因特定→修正→回帰テスト追加
  4. ドキュメント生成:src/services/ の各クラスから JSDoc 由来の Markdown ドキュメントを docs/services/ に生成
  5. マイグレーション:Webpack 5 → Vite 6 への段階移行。差分は1コミット=1論点でPR化
  6. レビュー:git diff main...HEAD のうち、セキュリティ・パフォーマンス・型安全性で要修正な箇所をMarkdown表で
  7. PR作成:現在のブランチをコミット→git push→gh pr create(タイトル/Description/Test plan込み)
  8. 型強化:tsconfig の strict をすべて true に。発生したエラーを優先度順に分類し、上位10件を修正
  9. パフォーマンス:Web Vitalsレポートを読み、LCP劣化原因と修正案を Markdown で
  10. セキュリティ:npm audit と pnpm audit の出力を統合し、対応必須な脆弱性を実コード修正と一緒に提示
  11. i18n:src/components の日本語ハードコード文字列を react-i18next に置換、locales/ja/en の JSON も生成
  12. Lint修正:eslint --max-warnings 0 が緑になるまで、ルールを変えずコードだけ直して
  13. CI修正:GitHub ActionsのFlaky testを抽出、再実行 vs リトライ vs 修正の判断を表で
  14. DB移行:Prisma schema を変更→migration生成→既存データを破壊しない移行SQLを diff 付きで
  15. APIクライアント生成:openapi.yaml から TypeScript クライアントを生成(zodios ベース)
  16. UI実装:Figma URL @figma-link を読み、shadcn/uiコンポーネントで実装。Storybook stories も追加
  17. テスト並列化:vitest 設定を pool=threads に変更し実行時間を計測。Before/After を表で報告
  18. ログ整備:console.log を pino に統一。本番でログレベルを切り替えられる構造にして
  19. OSS取り込み:このリポを参考(@github:lodash/lodash)に、自作の cloneDeep を実装し直して
  20. 退役確認:「未使用のexport / 未使用のファイル」を ts-prune で抽出して安全に削除

14. Plan Mode / CommitMode / Output Style

14.1 Plan Mode

Plan Modeは「実行はせずに計画だけ返す」モード。リスクの高い変更を始める前に必ず使う癖をつけたい。

# Plan Modeで起動
claude --plan

# あるいはセッション内で
> /plan このリポを Next.js 14 → 15 に上げる手順を計画して

14.2 CommitMode

CommitModeはClaudeに「論理単位でこまめにコミットさせる」挙動を指示する設定。

{
  "commitMode": "auto",
  "commitMessageStyle": "conventional",
  "commitSignoff": true
}

14.3 Output Style

Output Styleは応答の口調・冗長度・フォーマットを切り替える機能。チームのレビュー文化に合わせるのが定石。

# プリセット切替
/output-style concise
/output-style explanatory
/output-style code-only

# 自作スタイル
/output-style:new my-style
# ~/.claude/output-styles/my-style.md
---
name: my-style
description: 当社レビュー文化向け
---

- 結論ファースト(TL;DR を最初に200字以内)
- 続いて「変更点 / 影響範囲 / リスク / 確認手順」の4セクション
- コードブロック内のコメントは日本語
- 推測には「(推測)」と明記

15. プライバシー・データポリシー

15.1 学習利用の有無

AnthropicはAPI/Claude Code経由の入出力をデフォルトでモデル学習に使わないと明言しています(2026年時点)。商用利用・社外ソースを扱う場合でも、コンプラ要件を満たしやすいのがClaude Codeを企業導入で選ぶ理由のひとつ。

15.2 データ保存期間

運用ログ・セッションは一定期間サーバ側に保存されますが、Zero Data Retention(ZDR)契約やEnterpriseプランでは保存ゼロ運用も可能。社内秘・個人情報を扱うチームはZDR適用可否を必ず確認しましょう。

15.3 ローカル境界の意識

  • CLAUDE.md・settings.json・.mcp.jsonはリポにコミットされる→シークレットを書かない
  • API Keyは~/.zshrcか秘密管理ツール(op / doppler / vault)経由で注入
  • permissionsのdenyでWrite(./.env*)Read(./secrets/**)を必ず塞ぐ

16. 課金プラン——Pro / Max / API の選び方

16.1 概要

プラン 月額目安 向き
Claude Pro $20 個人開発・学習・週末プロジェクト
Claude Max $100〜$200 毎日数時間使うプロ開発者
API(Pay as you go) 使用量課金 CI/CD・本番システム組み込み・チーム展開
Enterprise / Team 要問合せ SSO・監査ログ・ZDRが必須の組織

16.2 個人開発者の最適解

「毎日 claude を起動する」「ローカル開発+軽いCI」程度ならMax(下位プラン)が最もコストパフォーマンスが良い。APIは便利だがOpus多用で月数万円になることも。

16.3 チーム導入時

5名以上で運用するならAPI+共用キー+利用量モニタリング。Anthropic ConsoleのWorkspacesでプロジェクト別にキー発行・予算上限・利用量レポートが設定できます。

17. キャリアの観点——Claude Codeを武器にする

17.1 「AIを使うエンジニア」と「AIを設計するエンジニア」

2026年現在、フロント・バック・SRE問わず、AIコーディングツールを使いこなして生産性を出せる人が市場価値で頭ひとつ抜けています。さらに一歩進んで「チームにAI運用基盤を導入できる人」(MCPサーバ自作、CI連携、Subagents設計)になると、シニア〜テックリード待遇が現実的になります。

17.2 学習ロードマップ

  1. Claude Code CLIの日常利用に慣れる(1〜2週)
  2. CLAUDE.md / settings.json / hooks をチームに展開(1ヶ月)
  3. MCPサーバを自作(社内DB・社内API)・GitHub Actions連携(2ヶ月)
  4. Agent SDKで自社向けAIエージェントを実装・運用(3〜6ヶ月)

17.3 体系的に身に付けたい人へ

独学だけだと「使える」と「業務に組み込む」の間に大きな谷があります。体系カリキュラム+現役メンターがある環境なら、最短ルートで実務レベルまで到達できます。

  • テックアカデミー:現役エンジニアによるオンラインメンタリング。短期集中でフロント/AI領域を体系化したい人向け。侍エンジニアの完全レビューと比較すると、メンター回数とコスパのバランス重視派に合う。
  • 侍エンジニア:マンツーマン中心でオーダーメイドカリキュラム。AI×Webアプリなど個別テーマで攻めたい人に。
  • DMM WEBCAMP:転職保証付き短期集中。スクール完全比較でも上位の転職実績を持つ。エンジニア未経験→実務までの最短ルート狙い。
  • レバテックキャリア:すでにエンジニア経験がある人向けの転職エージェント。Claude Code・MCP・LLMエージェント開発を強みにしたポジション提案を受けやすい。

関連記事:AIコーディングツール完全比較2026 / フロントエンドエンジニア学習ロードマップ2026

18. よくある質問(FAQ)

18.1 Claude Codeはオフラインで使える?

いいえ。LLM推論はAnthropic APIで実行されるため、ネットワーク接続が必要です。ローカルLLM併用はClineなど他ホストで。

18.2 自社コードが学習に使われないか心配

API・Claude Code経由の入出力はデフォルトでモデル学習に使われません。社内ポリシー上さらに保証が欲しい場合はEnterprise/ZDR契約を結ぶのが安全です。

18.3 Cursorからの乗り換えはアリ?

両方使う」が現実解。エディタ内で書くときはCursor、まとめて自動化したい・CI連携したいときはClaude Code。Claude Codeのほうがプログラマブル・ヘッドレス前提なので、役割分担させると最強。

18.4 トークン消費を抑えるコツは?

  • 不要な巨大ファイルは@filename必要なものだけ渡す
  • 長期セッションは適度に/clearでリセット
  • 定型タスクはSonnetに落とす(model: claude-sonnet-4-5)
  • 探索系はPlan Modeで先に計画→人間が承認

18.5 学習中の挫折を防ぐには?

独学だと「設定で詰む」「設計の答え合わせができない」が頻発します。メンター付きスクール(侍エンジニアスクール比較のテックアカデミー/DMM WEBCAMP)でレビューを受けながら回すのが最短です。

19. まとめ——Claude Codeは「2026年の標準装備」

本記事ではClaude CodeをCLI基礎 → 設定 → hooks → カスタムコマンド → Subagents → MCP → SDK → CI連携 → プラン選び → キャリアまで一気通貫で解説しました。重要ポイントを最後に整理します。

  • Claude Codeはターミナルネイティブ。CursorやClineと併用する前提で役割分担を設計
  • CLAUDE.mdsettings.jsonを最初に固める。チーム共有の.claude/を必ずGitに乗せる
  • hooksで安全弁(危険コマンドのブロック、自動Prettier、テスト走らせ)を入れる
  • 反復タスクはカスタムスラッシュコマンドSubagentsで資産化
  • MCPで社内ツール・DB・APIを安全に接続。自作MCPはチームの差別化要因
  • Agent SDKでプログラム的に呼び、CI/CDに乗せる。GitHub Actionsとの相性は抜群
  • 個人はMax、チームはAPI+Workspaces。コンプラ要件があればEnterprise/ZDR
  • キャリア視点では「使う」だけでなく「導入設計できる人」を目指す

「ここまで読んだけど自分一人だと続かなそう」「業務にどう落とすかが見えない」という方は、現役メンター付きの学習環境が最短ルートです。まずは無料カウンセリングで現状をぶつけてみてください。

Claude Codeは「触る」だけなら15分で終わります。けれど業務の標準装備にするには、設計・運用・チーム展開の積み上げが必要です。本記事をブックマークして、明日のclaudeセッションから1つずつ実装に落としていきましょう。

コメント

タイトルとURLをコピーしました