Claude Code 勉強会 in サムザップ
AI、使ってますか? • ChatGPT / Claude / Gemini... • GitHub Copilot / Cursor / Claude Code... • 業務で使っている?個人で使っている? 今日は Claude Code を使った 開発プロセスの拡張について話します 2 / 50
AI 対 人間 人間 • 量:限界がある • 速度:考えて書く • 体力:8時間が限度 • 質:ミスもする AI • 量:大量生成可能 • 速度:圧倒的に速い • 体力:24時間稼働 • 質:ミスもする 量・速度・体力では 絶対に勝てない 3 / 50
AIがミスる時 • 人間もミスる、AIもミスる • AIは 盛大にミスる • → 手戻りが大きい 正しそうに見えるコードが 実は根本的に間違っている 4 / 50
だから AI を"正しく"使う重要性 量・速度で 勝てない → AIを 活用する → でも ミスる → 正しく 使う 「AIにコードを書かせる」ではなく 「自分の開発プロセスをAIで拡張する」 5 / 50
自己紹介は略 6 / 50
なぜ今 Claude Code なのか? 7 / 50
陳腐化しづらいスキル • 機能面で先行:サブエージェント、スキル、カスタムコマンド • 他ツールも追随:Cursor, Codex, Copilot も同様の方向へ • 転用可能なスキル: − コンテキストエンジニアリング − Agent設計の考え方 − プロンプト構造化 Claude Code で学んだスキルは 他のAIツールでも活かせる 8 / 50
日本語記事も充実 • Zenn / Qiita で記事が豊富 • 日本語での学習リソースが充実 • つまずいた時も情報を見つけやすい 他のAIコーディングツールと比較して 日本語記事が多い傾向 9 / 50
AIコーディングツール比較 機能 MCP サブエージ ェント カスタムコ マンド スキル IDE統合 日本語情報 Claude Code ◎ Cursor ◎ GitHub Copilot ◎ × Codex ◎ ○ ◎ ◎ ◎ △ (プロジェクト共有不可) △ ◎ ○ ◎ × ◎ ◎ ◎ ○ ○ △ ◎ ◎ (Agents SDK経由) × ※ 2025年12月時点の主観的評価 10 / 50
今日のゴール 11 / 50
今日のゴール 「AIにコードを書かせる」ではなく 自分の開発プロセスをClaude Codeで拡張できる状態になる 探索 → 計画 → 実装 → 検証 → レビュー → 自動化 今日やらないこと: ベンチマーク比較・モデル論争 "強いモデル"より"強い運用" 12 / 50
進め方 座学 → ハンズオン① → 座学 → ハンズオン② ハンズオン④ → → 座学 → ハンズオン③ → 座学 → まとめ 13 / 50
Claude Codeとは 14 / 50
Claude Codeとは Anthropic製のAIコーディングツール(CLI/REPL) • Agent機能により自律的にタスクを完遂 − 探索→計画→コーディング→実行→(繰り返し) • 豊富なツールで拡張性が高い − MCP、サブエージェント、カスタムコマンド、スキル CLI / REPL 対話型インターフェース ツール ファイル操作・コマンド実行 スラッシュコマンド 操作・設定・拡張 15 / 50
覚える最小セット コマンド/操作 /help /context / /compact /clear Shift+Tab Esc Esc /rewind @ / 機能 ヘルプ(何ができるか?を確認) コンテキスト使用量を可視化 会話を圧縮 or 全消し Plan Mode / Auto-Accept切替 編集の巻き戻し ファイル参照(コンテキストに追加) 16 / 50
知っておくべき制限 5時間制限 最初のプロンプトから5時間でリセット 長時間セッションは途中で切れる可能性あり 週間制限 プランに応じた週単位の上限あり リセット時刻の確認: /usage または https://claude.ai/settings/usage 17 / 50
ハンズオン①:操作体系を掴む 18 / 50
ハンズオン①:操作体系を掴む 狙い: 基礎的な操作を確認する 手 順 1 2 3 4 操作 claude 確認すること を起動 リポジトリ直下でREPL開始 「何ができるか」を俯瞰 バージョン・モデル・接続状態を確認 /help /status claude -p "..." 力があれば) (余 ワンショット実行(CI/スクリプト化の入口) /help を使ってみて、必要な機能を探索しましょう 19 / 50
Vibe Codingの流行・限界 20 / 50
Vibe Codingとは Vibe Coding = その場のノリ・勢いでAIに投げ、 雰囲気で前に進める開発スタイル • 「いい感じにして」 • 「なんかバグってるから直して」 • 「この辺、よしなに」 ※ Andrej Karpathy氏(元Tesla AI Director)が命名 21 / 50
Vibe Codingの問題点 • 業務要件・運用制約・既存設計を取りこぼしやすい − AIは「それっぽいもの」を作るが、本質を理解していない • 会話が伸びるほど目的のドリフトが起きやすい − 「いつの間にか別のものを作っている」 • その場の会話は資産化しにくい − 次回また同じ説明が必要 Vibeでうまくいくのは小規模・使い捨てのコードだけ 22 / 50
コンテキストエンジニアリングとは LLMに与える情報(コンテキスト)を設計・制御する技術 プロンプトエンジニアリング コンテキストエンジニアリング 単発の「質問の仕方」を工夫 文脈・背景情報の設計で結果を改善 参考: promptingguide.ai/jp コンテキストウィンドウ(後述)を有用な情報のみで埋めることが重要 1. Retrieval 必要な情報を取得 (RAG、ファイル参照) 2. Processing 情報の圧縮・要約 3. Management 短期/長期記憶の 管理 23 / 50
Vibe Codingの限界を補うもの Vibe Codingの強み Vibe Codingの限界 • • 素早いプロトタイピング • • 探索的な開発に有効 • • 学習コストが低い • • 再現性がない • • チームで共有できない • • 本番品質に届かない Vibe Coding (開発スタイル) + Context Engineering (技術的基盤) = 責任ある AI活用 Vibe Codingの限界をContext Engineeringが補い、本番品質の開発を実現 24 / 50
コンテキストウィンドウ 25 / 50
コンテキストウィンドウとは LLMが一度に扱える文脈の"枠" • 会話や貼り付けが増えるほど枠を消費 • 重要情報が埋もれやすくなる • 枠が埋まると自動要約される(Auto Compact) 「会話」を続けるより 「文脈の設計」が業務では効く 26 / 50
3種類のコンテキスト 1. 恒久コンテキスト 2. 一時コンテキスト 3. 動的コンテキスト • • プロジェクトルール • • 制約・設計方針 • • よく使うコマンド • • 今回の目的/非目的 • • 変更範囲 • • 確認方法(テスト) • • 差分・ログ • • テスト結果 • • エラーメッセージ CLAUDE.md に置く → セッションを跨いで記憶 プロンプト冒頭に明示 → タスク開始時に設定 ! 実行やファイル参照 → 必要時に取り込む 手動コピペを最小化し、必要な情報だけを効率的に渡す 27 / 50
カスタムコマンド(Slash Commands) 📁 配置場所 💡 用途例 •📝 コードレビュー 観点を統一したレビュー依頼 .claude/commands/ ├── review.md ├── commit.md # /review(例) # /commit(例) •💬 コミットメッセージ └── test.md # /test(例) •🧪 テスト作成 • • Markdownファイル( .md ) • • /コマンド名 で呼び出し フォーマット統一 テンプレート化で効率化 再利用可能な知識をチームで共有・標準化 28 / 50
ハンズオン②:カスタムコマンドを作る 狙い: コード解説コマンド /explain を作成し、カスタムコマンドの仕組みを理解する Step 1: 以下をClaude Codeに入力 Step 2: 作成されたコマンドを実行 カスタムコマンド(Slash Commands)の仕様を # 任意のファイルを指定して実行 確認してから ~/.claude/commands/explain.md を作成して。 /explain src/index.ts → 指定ファイルの解説が出力される 内容: 「$ARGUMENTS のコードを読み、 処理の流れと重要なポイントを解説して」 ポイント: $ARGUMENTS でコマンド実行時の引数を受け取れる 繰り返し使うプロンプトはコマンド化して効率化 29 / 50
/compact vs /clear ✅ /compact /compact 要件と制約だけ残して • 重要点を残しつつ圧縮 • 会話を資産化しやすい • 長いセッションの途中で使う 「何を残すか」指示できる /clear /clear • 会話履歴を完全クリア • やり直し/リセット時に使う • コンテキストを最大限確保 全てが消えるので注意 迷ったら /compact 。完全にやり直したいときは /clear 30 / 50
サブエージェントでコンテキスト分離 サブエージェントは独立したコンテキストウィンドウを持て る メリット 活用例 • メイン会話の汚染を防ぐ • 役割ごとに専門特化 • 並列で複数タスク実行 メイン エージェント • レビュア:レビュー専任 • テスト係:テスト作成 • 調査係:コード探索 → サブ① サブ② サブ③ 作り方: code.claude.com/docs/ja/sub-agents 31 / 50
組み込みサブエージェント Claude Codeにはデフォルトで使えるサブエージェントが組み込まれている 🔍 Explore 📋 Plan • • ファイル構造の把握 • • パターン検索・分析 • • 改善点の洗い出し • • 実装ステップの設計 • • 影響範囲の特定 • • トレードオフの検討 コードベース探索の専門家 実装計画の設計者 このプロジェクトの構造を この機能の実装計画を 探索して改善点を教えて 立ててください 自然言語で依頼 → 自動的に起動 @agent-Explore / @agent-Plan → 確実に指定 32 / 50
ハンズオン③:コンテキスト制御&サブエージェント 33 / 50
ハンズオン③:コンテキスト制御 狙い: コンテキストの管理方法を体感 手 順 1 2 3 操作 /init /context /compact 確認すること CLAUDE.md ガイドを用意 ※既存なら確認のみ コンテキスト使用量を見える化 「何を残すか」指示して圧縮 # 圧縮時に残す内容を指示 /compact 要件と制約だけ残して コンテキストの見える化と最適化を習慣に 34 / 50
ハンズオン③:サブエージェントで探索 狙い: 組み込みサブエージェントによる探索を体感 手 順 4 操作 確認すること @agent-Explore Exploreエージェントでコードベースを探索 # @でエージェントを明示的に指定 @agent-Explore このプロジェクトで Xxx の処理をしている箇所を教えて ポイント: サブエージェントは独立したコンテキストで動作するため、メインの会話を汚さない 探索タスクはサブエージェントに委譲して効率化 発展課題: /agents コマンドでサブエージェントを作成してみましょう 35 / 50
日常業務に効く「標準ワークフロー」 36 / 50
Claude Codeを「小さく・早く・安全に」使う流れ 1. 探索:まず読ませる 2. 計画:Plan Modeで先に出す 3. 実装:小さく編集→すぐ検証 4. 検証:テスト/lint/ビルド 5. レビュー: /review で差分確認 6. 復旧: /rewind で戻れる 「一撃で完成」を狙わない 37 / 50
チェックポイント vs Git チェックポイント(/rewind) # 直前の状態に戻す Esc Esc または /rewind Git # コミットして履歴を残す git add . && git commit -m "..." • 編集前の状態を自動で捕捉 • 会話+コードを巻き戻し • セッション内の安全網 • チーム共有の永続履歴 • ブランチ・マージで協調作業 • リモートにプッシュでバックアップ 「失敗しても戻れる」前提で挑戦 チェックポイントはGitの代替ではない /rewind で試行錯誤 → 完了したら git commit で確定 38 / 50
Extended Thinking(拡張思考) 複雑な問題には思考の深さを段階的に指定 think ultrathink 思考予算: 約4kトークン 思考予算: 約32kトークン 💭 シンプルな問題向け 🧠 高度な分析・設計 # 使用例 ultrathink このアーキテクチャの問題点を洗い出して ※ トークン数はツールの実装により変更される可能性があります 39 / 50
補足:思考予算(Thinking Budget)とは Claudeが内部推論に使える最大トークン数を指定するパラメータ 基本仕様 • 最小値: 1,024 トークン • 最大値: 128k トークン • 精度は対数的に向上 • 32k以上は収穫逓減 ベストプラクティス •✓ 最小値から始めて徐々に増加 •✓ 複雑タスクは16k+から試す •✓ 予算は目安(全部使わないことも) •! 32k超はバッチ処理推奨 💰 課金: 要約ではなく実際の思考トークン数で課金される(出力トークンと同額) 出典: Anthropic Docs - Extended Thinking 40 / 50
Extended Thinkingの使いどころ ⚠️ ultrathink は高コスト→本当に必要な場面で戦略的に ✅ 使うべき場面 •🏗️ アーキテクチャ設計 大きな設計判断が必要なとき ❌ 使わなくていい場面 •📝 単純なコード修正 typo修正、簡単なバグ •🔄 AIがループに陥ったとき •📄 定型的なタスク •🔍 根本原因分析 •❓ 情報の検索・確認 同じ解決策を繰り返す場合 複雑なバグの調査 ボイラープレート生成 「このファイルどこ?」など 41 / 50
ハンズオン④ 拡張思考を用いた 問題の洗い出し 42 / 50
ハンズオン④:拡張思考で問題を洗い出す 狙い: ultrathinkを使って、プロジェクトの問題点を深く分析する ultrathink このプロジェクトのアーキテクチャの問題点を洗い出してmdファイルとしてまとめてください。 確認ポイント • • 思考プロセスの深さを観察 • • 出力されるmdファイルの品質 • • 通常の依頼との違いを体感 注意点 • • ultrathinkは高コスト • • 複雑な問題に戦略的に使う • • 時間がかかる場合あり 複雑な分析には拡張思考で深く考えさせる 43 / 50
組織で回すための ガードレール&拡張 44 / 50
ガードレール 🔒 Permissions 📁 設定ファイル階層 🚫 機密ファイル遮断 📦 Sandboxing • • 読み込み・編集は Auto-Accept • • コマンド実行は許可制 • • ~/.claude/settings.json (ユーザー) • • .claude/settings.json (共有) • • .claude/settings.local.json (個人) • • permissions.deny で設定 • • .env やsecretsを"見えなくする" • • ファイルシステム&ネットワーク隔離 • • 許可プロンプト疲れを軽減 例: "**/.env", "**/secrets/**", "**/*.pem" 💡 先に deny を決めることで、安心して Auto-Accept を使える 45 / 50
拡張 🪝 Hooks 🔌 MCP 🤖 Subagents 終了通知を仕込んで利便性向上 オープン標準プロトコル レビュア/テスト係/調査係 ライフサイクルでシェル実行 外部ツール・DB・API接続 役割ごとに別コンテキスト 📦 Plugins 🐙 GitHub Actions ⚡ Slash Commands コマンド/フック/MCP /install-github-app で簡単インストール .claude/commands/に配置 機能をパッケージ配布 PR/Issueで @claude メンション カスタムコマンド定義 チームの「自動化・標準化」を進めることが可能 46 / 50
観測(利用状況を可視化) 📊 コマンドで確認 # 統計情報 /stats # 利用上限・リセット時刻 /usage → Web: claude.ai/settings/usage 📍 Statusline claude-opus-4-5 | ~/project | $2.34 • • モデル名 • • 現在のディレクトリ • • 累計コスト → "今"を常に見える化 💡 settings.json からJSファイルを指定して拡張可能 47 / 50
まとめ 48 / 50
今日のポイント 1 "Vibe"ではなく"型"で進める Plan → 小さく実装 → テスト → レビュー → 実装に戻る をデフォルトの流れにする 2 "会話"ではなく"資産"を育てる CLAUDE.md とカスタムコマンド/スキル (再利用可能な知識)を蓄積していく 49 / 50
勉強会後の運用案 💬 Slackテンプレ共有 うまくいったプロンプトを チームで共有・改善 📤 /export で会話保存 有用なセッションを Markdown/JSONで出力 📈 CLAUDE.mdに昇格 繰り返し使うパターンを プロジェクトルールに 🔄 使う → 共有 → 改善 → 標準化 のサイクルを回す 50 / 50