この動画は、AnthropicのClaude Codeの使い方とベストプラクティスについて詳しく解説した技術講演である。Applied AIチームのCalが講師として、Claude Codeの仕組み、効果的な活用方法、具体的な設定のコツなどを実演を交えながら紹介している。特に、claude.mdファイルの活用法、権限管理、効率的なワークフローの構築方法について具体的なアドバイスを提供し、最新の機能アップデートについても触れている。

はじめに
さあ、始めましょうか。みなさん、Claude Codeのベストプラクティスへようこそや。この講演では、まずClaude Codeが何なんかを高いレベルで説明して、それからちょっと中身を覗いてClaude Codeがどないに動いてるかを理解してもらおうと思う。自分が使うツールがどないに動いてるかを知っとくのは大事やからな。
それから、Claude Codeのええ使い方と、社内でも外部のユーザーからでも分かったベストプラクティスを話して、このツールを最大限活用してもらおうと思っとる。せやけど始める前に、自己紹介させてもらって、なんでワシがここに立ってるかを話したいと思う。
ワシの名前はCalや。Anthropicに1年半ぐらい前に入って、Applied AIっちゅうチームを立ち上げるのを手伝ったんや。Applied AIチームの使命は、お客さんやパートナーがClaude上で素晴らしい製品や機能を作るのを手助けすることや。つまり、ワシは一日の大半をClaude相手にプロンプトを書いて、このモデルから最高のアウトプットを引き出そうとしとるってことや。
とはいえ、ワシはコーディングも大好きやし、いろんなプロジェクトを始めて、クレイジーなアイデアを思いついて、結局完成させへんっちゅうタイプの開発者やねん。やから、始めたけど完成してへんコードの墓場がようけあるんや。でも、いつも新しいことを始めとる。
去年の終わりごろ、Slackで何人かが使ってる新しいツールの話を聞いたんや。めっちゃ面白いって言うとったから、金曜の夜にそのツール、後のClaude Codeをダウンロードして、作りたかった新しいメモアプリに試してみたんや。
その週末で、ワシのコーディングやソフトウェアエンジニアリングに対する考え方が完全に変わったわ。週末中ずっとラップトップを持ち歩いて、Claude Codeが動くのを見るのに完全にハマってしもた。エンターキーを押して、ブラウザに切り替えて、リフレッシュすると、目の前で巨大で強力なアプリケーションが組み上がっていくのを見とったんや。
一人やったら絶対にたどり着けへんところまで進めて、めっちゃ感動したわ。そのときちょっと心配になったんは、このモデルの仕組みを知ってるから、めっちゃトークンを使っとるやろうし、怒られるかもしれんし、誰かに気づかれるかもしれんと思ったんや。Anthropicのコードに貢献してるわけでもあらへんしな。
でも知らんかったんは、Claude Codeのチームが社内でリーダーボードを作って、Anthropicの社員がどれぐらい使ってるかを追跡してたってことや。週末で、ワシがトップに躍り出てしもたんや。それでBorisやCat、Claude Codeの初期チームのメンバーと会えて、話ができるようになったんや。「このツール大好きやし、プロンプトのことようけ知ってるから、手伝えるかな?」って言ったんや。
それで関わるようになって、今はコアコントリビューターの一人として、プロンプトやシステムプロンプト、ツールの動き方、ツールの説明や結果、それからこのツールの評価方法にようけ関わっとる。プロンプトを変更するときに、どうやって改善したか、同じレベルを保てたか、Claude Codeを完全に壊してしまわへんかったかを判断するんや。
Claude Codeの仕組み
さあ、本題に入ろうか。これがワシの現在のClaude Codeに対するメンタルモデルで、人に聞かれたときの説明の仕方や。Claude Codeは、すべてをターミナルでやる同僚みたいなもんや。GUIには絶対に触らんような人で、めっちゃ優秀なんや。ワシが新人エンジニアやったときのメンターを思い出すわ。彼の机に行って「Tony、このバグを手伝ってくれへん?」って言うと、ターミナルをさっと開いて、クレイジーなbashコマンドを使ったり、Vimで変更したりして、いつも「すげーな、オレもあんなことできるようになりたいな」って思って帰ったもんや。結局覚えへんかったけどな。
でも、コンピューターにClaude Codeがあるのは、Tonyがいつも隣にいるような感じやねん。
Claude Codeはどうやって動いてるかっちゅうと、Anthropicでは「シンプルで動くもの」を心がけとる。Claude Codeにとってそれは、非常にピュアなエージェントってことや。Anthropicでエージェントっちゅうたら、指示といくつかの強力なツール、そしてモデルが完了やと判断するまでループで動かし続けるってことや。これがClaude Codeの正体や。
ツール、強力なツール、そしてターミナルが得意な人が使うようなツールがある。ファイルを作成・編集したり、ターミナルを使ったり、MCPで他のものを取り込んだりできる。
その上に、Claudeがコードベースを理解する方法がある。1年前にコーディングエージェントやコーディングツールを作ろうと思ったら、「よし、ユーザーからコードベースについてのメッセージが来たら、関連するファイルを見つけなあかん。コードベース全体をインデックス化して埋め込んで、このファンシーなRAG検索的なことをやろう」って考えたやろう。
でも、Claude Codeはそんなことしてへん。インデックス化は一切してへん。代わりに、Claudeがコードベースを探索して理解するんや。新しいチームや新しいコードベースに来た人がコードベースを探索するのと同じ方法で、つまりagentic searchっちゅう方法や。あなたやワシが使うような検索ツールと同じで、globやgrep、findなんかを使って、コードベースを進んで何が起こってるかを理解するんや。
agentic searchっちゅうのは、モデルが検索して、結果を見て、「うーん、もうちょっと調べなあかんことがあるな、もうちょっと検索して戻ってこよう」って言えるってことや。
これらの基本要素の上に、いくつかのものがある。Claude Codeが動くところを見れる素敵で軽いUIレイヤーがあって、テキストが流れるのが見れるし、エージェントが動けて、エージェントが危険なことをやろうとしたときには人間が割り込めるような権限システムがある。
その上に、このツールのセキュリティもめっちゃ重視してる。Claude Codeはモデルの上の軽いレイヤーやし、ウチのモデルはAnthropicのAPIだけやなくて、AWSやGCPのクラウドプロバイダーでも使えるから、もしそっちの方が安心やったら、Claude Codeを他のサービスに向けるのも簡単で自然やねん。
Claude Codeの用途
ようけの人から「Cal、Claude Codeって何に使えるん?何が得意なん?どこが面白いん?」って聞かれるけど、実際のところ、なんでもめっちゃ得意やねん。
まず発見から始めよう。キャリアの中で、新しいコードベースに放り込まれることがあるやろう。チームを変わったり、会社を変わったり、オープンソースプロジェクトで作業し始めたりするときや。最初のうちは、コードベースのどこに何があるか、チームがどんなパターンを使ってるかを把握しようとしてるだけで、あんまり生産的やあらへん。Claude Codeはそのオンボーディングプロセスを劇的に改善してくれる。
Claudeに「この機能はどこに実装されてるん?」って聞けるし、ターミナルが得意やから「このファイルを見て、gitの履歴も見て、このコードが過去数週間でどう変わったかを教えて」って言うこともできる。
Claude Codeの過小評価されてる使い方として、いきなり作業に飛び込むんやなくて、Claude Codeを思考パートナーとして使うことや。機能を実装したり何かを変更したりするときに、Claudeを開いて「この機能を実装したいんやけど、ちょっと調べて、どうやったらできるかを考えて、2、3のオプションを報告してくれへん?まだファイルを書いたりしたらあかんで」って言うんや。Claudeがagentic searchを使って調べて、いくつかのアイデアを持って帰ってきて、それをClaude と一緒に検証してからプロジェクトに取り掛かるんや。
もちろん、Claude Codeはコードを作って書くのも得意や。これは二つの面があって、一つはゼロから始めるやつ。空のディレクトリに放り込んで「アプリを作って」「ゲームを作って」って言うやつ。これはめっちゃ楽しいし、やりがいがある。
でも現実的に大事なのは、Claude Codeが既存のコードベースでうまく動くかどうかや。これがウチのClaude Codeチームが主に注力してることや。ウチのコードベースは異常に高いユニットテストカバレッジがあるんや。Claude Codeがユニットテストを追加するのをめっちゃ簡単で直接的にしてくれるからや。やからめっちゃええコードカバレッジがある。
それから、ウチのClaude Codeのコードベースには素晴らしいコミットとPRメッセージがある。作業が終わったら「Claude、コミットを書いて」「PRメッセージを書いて」って言うだけやからな。
デプロイメントやライフサイクルの他の部分でClaude Codeを使う素晴らしい機会もある。他の人も話してるけど、これはClaude Code SDKを使うことや。ヘッドレスで使って、プログラム的に使って、どこにでもコーディングエージェントを撒けるんや。CI/CDに撒いて、GitHubで使って、プログラム的に人を手助けするとかな。
最後に、サポートとスケールで素晴らしい。エラーのデバッグが早くなる。Claude Codeを顧客に提供し始めて話したときに、完全には予想してへんかったんは、ようけの顧客や見込み顧客が「大きなコードベースの移行をずっと先延ばしにしてたんです」って言うことやった。古いJavaから新しいのに移りたい人とか、PHPからReactやAngularに移りたいチームとか。そんなチームと何回も話したけど、Claude Codeみたいなツールがあると、そういうプロジェクトがもうちょっと消化しやすくなるんや。
チームに行って「1ヶ月かけてコードベースの大部分をリファクタリングしたり書き直したりするで」って言うときに、その上に、これは全部に関わることやけど、もう一度言うけど、Claudeはターミナルが得意やねん。つまり、Git、Docker、Big Queryみたいな色んなCLIツールが得意ってことや。厄介なrebaseから抜け出す方法が分からんくても心配あらへん。Claude Codeを起動して状況を説明して「これを直してくれる?」って言うだけや。信じられへんで。
ベストプラクティス
ベストプラクティスについて話そうか。最初のやつは驚くことやあらへんけど、claude.mdファイルを使うことや。
覚えといてほしいんは、Claude Codeはエージェントで、いくつかのツールがあって、プロンプトに軽い指示があるけど、実際にはメモリがあらへんってことや。やから、セッション間やチームでClaude Codeを同じコードベースで何回も起動するときに状態を共有する主な方法が、このclaude.mdファイルなんや。
Claude Codeを起動すると、作業ディレクトリにclaude.mdファイルがあったら、それがコンテキストに放り込まれる。プロンプトに放り込まれるんや。基本的に「Claude、ちなみに開発者があなたに残した重要な指示があります。これに注意深く従ってください」って言うんや。
claude.mdファイルを置く場所はいろいろある。プロジェクトに置いてチェックインして、チームメート全員で共有することもできるし、ホームディレクトリに置いて、何を作業してても常にClaude に知っといてほしいことを書くこともできる。
ここに書くのは「ちなみに、ユニットテストの実行方法はこうです」とか「検索と作業を楽にするために、このプロジェクトの構成の概要、テストがどこにあるか、どんなモジュールがあるかを書いときます」とか「これがウチのスタイルガイドです」みたいなことや。Claudeの作業をちょっと楽にするためのいろんなことを書けるんや。これは時間をかけて積み上げていけばええ。
もう一つ大事なのは権限管理や。Claude Codeを動かしてると、いろんな権限関連のことが流れてくる。ツールを最初に起動したときは、読み取りアクションについて、Claudeが検索したり読んだりしてるときは、そのまま動かす。でも書き込みを始めたり、bashコマンドを実行したり、マシンを変更する可能性があることをしようとすると、UIが出てきて「はい」「いつも許可」「いいえ、他のことがしたい」みたいに言うんや。
その権限管理を賢く使うことで、作業が早くなる。autoaccept modeっちゅうのがあって、Claude Codeで作業してるときにshift+tabを押すと、Claudeがそのまま作業を始める。設定でClaude を設定して、特定のbashコマンド、例えば「npm run test」をいちいち許可するのに疲れたら、いつも承認するように設定できる。
権限管理をいじるのは、ワークフローを速くするええ方法や。統合セットアップについて、Claude Codeから最大限を引き出すのに役立つことの一つは、ターミナルが得意やということを覚えとくことや。CLIでアクセスできるアプリケーションを使ってるなら、GitHubがええ例やけど、GHっちゅう強力なツールがある。Claude Codeにもっと仕事を任せることができて、CLIツールをもっとインストールするか、MCPサーバーをもっと追加するかのどちらかや。
経験上、よく知られてて文書化されてるCLIツールを使ってて、CLIツールをマシンにインストールするかMCPサーバーを使うかを選ぶなら、CLIツールを推奨する。
それから、社内で独自のツールがある場合、Anthropicにはcoupっちゅういろんなことをしてくれるものがあるんやけど、Claudeにそれについて教えることもできる。そういうのはclaude.mdに書くようなことや。
コンテキスト管理について。Claudeはエージェントで、ツールを呼び出すとコンテキストがどんどん積み上がっていく。少なくともAnthropicのモデルは20万トークンのコンテキストウィンドウがあって、これを最大まで使い切ることができる。
Claudeと長いセッションで作業してて、やり取りしてると、右下に「コンテキストウィンドウがいっぱいになりそうです」っちゅう小さい警告が出てくる。状況に応じて二つの選択肢がある。slash clearを実行して最初からやり直すことができる。これは、claude.md以外のすべてをクリアする。slash compactを実行することもできて、これは基本的にユーザーメッセージが挿入されて「これまでやったことを要約して、他の開発者に渡して、そこから続きをやってもらいます」みたいなことを言うんや。その要約が次のセッションの種になる。
ウチはこのcompact機能の調整にようけ時間をかけたから、コンテキストウィンドウを最大まで使ってcompactを実行しても、また最初から始めて続けることができる。
効率的なワークフローについて。Claude Codeで何ができて、どうやって最大活用するか。計画とTODOを使うこと。前にちょっと話したけど、最高にできることの一つは、Claude Codeを開いたときに「このバグを直して」って言うんやなくて、「このバグがあるんやけど、調べて、何が原因かを把握して、どう直すかのプランを教えて」って言うことや。
これで時間を節約できる。Claudeのプランを読んで、何をするつもりかを確認できるからや。それから、TODO リスト機能がある。Claudeが大きなタスクで作業してるときに、よくTODOリストを作る。注意深く見てると、このTODOリストを見れて、何か変なことや意味が分からんことがあったら、escapeを押して「Claude、TODOリストを変更しよう。間違った道に行ってると思う」って言えるんや。
スマートな監視コーディング。Claudeを動かしてenterを押して、最後に何が起こるかを見るのは、めっちゃ魅力的やし強力や。これをもっとよくするためのことがいくつかあると思う。今日この後30分間これだけについての講演があると思うけど、テスト駆動開発をしたり、Claudeに小さな変更をさせて、テストを実行して、パスすることを確認したり、いつもClaude にTypeScriptとlintingをチェックさせたり、定期的にコミットして、もし変な方向に行ったら、いつでも戻って再試行できるようにすることや。
スクリーンショットを使ってガイドやデバッグができる。Claudeはマルチモーダルなモデルの上に構築されてるから、いつでもスクリーンショットを撮って貼り付けたり、どこかに画像ファイルがあったら「Claude、このmock.pngを見て、ウェブサイトを作って」って言うことができる。
高度なテクニック。Claudeを使うのに慣れてきたら、次のレベルに押し上げるために考えることは何か。社内でも顧客でも見ることの一つは、このツールをしばらく使ってると、複数のClaudeを同時に使いたくなるってことや。Anthropicの人や何人かの顧客で、4つのClaudeを同時に実行してる人を知ってる。いろんな方法がある。T-Muxで使ったり、違うタブで使ったり、いろんなクレイジーなことができる。複数のClaudeを同時に動かして、それらを全部オーケストレーションするのを試してほしい。めっちゃ楽しいで。ワシは2つまでしかできへんけど、4つする人を知ってる。
escapeを使うこと。escapeは最高の友達や。Claudeが作業してる間、何をしてるかを見てて、escapeを押して止めて、割り込んで「間違った道に行ってると思う」とか「他のことをしてほしい」って言えるんや。escapeを押すタイミングとClaude に解決させるタイミングを知ることが、このツールを最大活用するキーや。
隠れた機能がある。あんまりようけの人は知らんけど、escapeを2回押すと、実際に会話を遡ることができる。戻って、ツール拡張とMCPをリセットできるんや。
次のレベルに持っていくこと。bashやClaude が持ってるツールでも、まだできないことがあると感じたら、MCPサーバーを見始めるべきや。
ヘッドレス自動化。これが一番興奮してることやけど、社内でもまだ理解しようとしてることで、Claude をプログラム的にどうやって使うかってことや。GitHub actionsで使ってる。他の創造的な場所でも使い始めたいと思ってる。みんなにも同じことをチャレンジしてほしい。
最新機能の紹介
さあ、ワシのコンピューターに移ろうか。もう一つのベストプラクティスがあって、それは新しいことの最新情報を常に把握することや。めっちゃ速いスピードで出荷してるからな。今日現在の新しいことをいくつか見せるで。
一つは、Claude を起動したときにslash modelができるようになったことや。どのモデルで動いてるかが見れる。ワシはdefaultで、これはSonnetになってる。Opus に切り替えることもできる。slash configでも同じことができる。ここで切り替えられる。これが新しい。自分に合うモデルで動かすようにしてな。
このモデルについて新しいことがもう一つあって、「このプロジェクトに何があるか調べて」みたいなことが言えるんや。しばらくの間、「think hard」とか「extended thinking」っちゅうのがあった。これは素晴らしいけど、過去のモデルでは、ツール呼び出しの間でモデルに考えさせへんかった。それが一番thinkingが大事な時やろうに。
Claude 4から、モデルがツール呼び出しの間に考えることができるようになって、これが起こるのを見ることができる。このプロジェクトにClaude を置いて、いくつかファイルがあって、think hardしてこのプロジェクトに何があるかを調べてもらうで。Claudeが作業を始めるのを見てみよう。
thinkingを発動させたのが分かるのは、薄いグレーのテキストが見えて、それからファイルを呼び出して、ツールを呼び出して、何かを読んで、それからまた考えが見えるんや。これは素晴らしい。タスクに取り組んでバグを解決するときは、「think hard」を入れることを勧めるわ。
それからもう一つ、ちょっと見せるけど、VS Codeでやってるけど、これはJet Brainsでもある、VS CodeやJet Brainsとの素晴らしい新しい統合がある。Claudeがワシがどのファイルにいるかを知ってるみたいなことができる。どのファイルにいるんや?これは言いたかったことやあらへんけど、Claudeが理解してくれるやろう。
こんなこともできる。こういうことを最新情報として把握することを勧めするわ。Enthropic でClaude Codeっちゅう公開GitHubプロジェクトがあって、そこに問題を投稿できるけど、変更ログも投稿してる。週に1回これをチェックして、出荷してる新しいことの最新情報を把握するようにしてる。ワシでも追いつけへんことがあるからな。
4分ぐらい残ってるから、Claude Code関連のことなら何でも質問を受けるで。ここにあるから、興味があったらライブデモもできる。何個かやってみよう。
ありがとう。素早く、これは明らかかもしれんけど、プロジェクトで複数のclaude MDファイル。これは可能で、勝手に見つけてくれるん?それとも違うん?
いくつか選択肢があって、もちろん同じディレクトリではできへんけど、ここに一つ、サブディレクトリに一つ置くことができる。サブディレクトリのものは全部読み込まれへんように変更したと思う。Anthropicはモノレポやから、人がトップで開いて、全部のclaude MDでコンテキストが爆発してしまうからや。
Claudeが調べてて、関連するサブディレクトリでclaude.mdファイルを見つけたら、それを読むように勧めしてる。でも、デフォルトでは起動したときに現在の作業ディレクトリのclaude MDファイルだけを読む。それから、ホームディレクトリに一つ設定することもできる。
やれることもある。新しいことで、claude MDで他のファイルを参照することができるんや。例えば、@ マークでこんなことができる。いつも読み込みたい他のclaude MDファイルがあるなら、こんなことができる。
はい。ワシのclaude MDをClaude に尊重してもらうのに苦労してるんです。特に一つのことがあって、何かをリファクタリングするように頼むと、何が起こってるかを説明するインラインコメントを残すんです。めっちゃ明らかなことで、「何が起こってるかを説明するインラインコメントを削除して」って言うと、削除はするけど、同じパスですぐにまたやるんです。
これに対処する戦略はありますか?
これを直すものが二つあるんや。実際にはモデルの問題やったんや。プロンプトには何もあらへん。3.7では実際にプロンプトにようけ書いて「コメントを残したらあかん」って言ったんやけど、それでもモデルはコメントを残すのが大好きやった。やから、claude MDが助けにならんかったのも驚かへん。
デフォルトで起こることから抑えるためにようけ作業したんや。Claude 4でほとんど直したわ。新しい変な動作の癖があるかもしれんけど、Claude 4で改善したもう一つのことは、指示に従うのがもっと上手になったことや。早期テスターから「急に、うわあ、claude MDがもっと厳密に従われるようになった」っちゅうフィードバックをようけもらってる。
新しいモデルに移るのは、CloudMDを見直すええ機会かもしれん。まだこれが必要かどうかを決めるんや。いくつか削除できるかもしれんし、いくつか新しいものを追加する必要があるかもしれん。
記録として、あなたが考えてへんかったかもしれんことを考えようとしてるんやけど、マルチエージェント実行と並列化をやってるんです。4つのエージェントで、エージェント2と3がエージェント1のコンテキストを使って、エージェント4が特定の時点でエージェント2のコンテキストを使うみたいなことができますか?
面白いな。最初に言ったように、シンプルで動くことをやろうとしてるんや。コーディングが得意で何でもやる一つのエージェントっちゅうことや。それを解決したいと思ってる。多分起こるのは、そういうことをしたかったら、すべてのエージェントに共有のマークダウンファイルに書いてもらうとかして、みんながチェックインして連絡を取り合えるようにすることやろう。
時々、claude.mdやclaudeで作業してて、「他の開発者のためにticket.mdに何か書いて」って言って、それから別のclaude codeを起動して「ticket.mdを読んで、他の開発者があなたにこのメモを残した。これがあなたの作業内容や」って言うんや。
その状態をファイルに書いて、ファイルを読んで理解するモデルの能力に頼るのが、今日できる最善のことやと思う。もしかしたら、それを製品でもっとネイティブなものとして公開する賢い方法を考え出すかもしれん。
よし。それで、ワシのバックパックで見つけた珍しいclaude codeステッカーがあるんや。向こうにいるから見つけて。配るで。ありがとう。


コメント