Claude.mdの設定でAIコーディングが99%遅くなっている理由

AAI LABS
컴퓨터/소프트웨어경영/리더십AI/미래기술

Transcript

00:00:00製品が正しく実装されているかどうかは
00:00:04たった一つのファイルで決まります。
00:00:05Claude Codeユーザーならclaud.mdですが、他のツールには独自のファイルがあり、多くの場合
00:00:10agents.mdが使われます。
00:00:11しかし、どれを使っていようと、適切に設定しなければ
00:00:15タスクのたびにエージェントと戦うことになります。
00:00:17もしinitコマンドを実行すれば十分だと思っているなら
00:00:20それは間違いです。
00:00:21プロジェクトに合わせてエージェントのパフォーマンスを引き出す
00:00:26構造化されたパターンに従う必要があります。
00:00:27そのために、信頼できるソースや
00:00:31私たちがClaude Codeを使い倒して得た知見からベストプラクティスをまとめましたので
00:00:35ワークフローにそのまま組み込んでください。
00:00:36最後の項目は、エージェントが指示に従うかどうかを決定づけるため重要です。
00:00:41ここを押さえていないと、他の指示の効果も薄れてしまいます。
00:00:45claud.mdに最初に追加すべきは
00:00:49アンドレイ・カーパシー氏のレポジトリにあるベストなclaud.mdパターンです。
00:00:54「コーディングの前に考えること」を明示的に指示に追加してください。
00:00:58これによりClaudeが前提条件を明確にするようになります。
00:01:01複数の解釈が存在する場合はすべて提示させ
00:01:05その中から実装方法を選べるようにします。
00:01:07これはClaudeに対し、解決策に飛びつく前に
00:01:11異なる視点から考えさせるためのものです。
00:01:12これで実装があなたの意図と一致するようになります。
00:01:15この一行のおかげで手戻りが劇的に減ったため
00:01:20非常に役立っています。
00:01:21この指示を追加すれば、Claudeに機能実装を頼むたびに
00:01:25タスク関連の質問をしてくるようになり、あなたの回答が
00:01:29作業のガイドラインとなります。
00:01:31これが特に役立つのは、Claudeが学習データに基づいた記憶だけで
00:01:35勝手に実装方法を推測することがなくなるからです。
00:01:39Claudeは正しい実装とは何かを徹底的に考え、あなたに確認をとってから
00:01:43作業に入るようになります。闇雲に推測して
00:01:48修正を何度も指示するような事態を避けられるようになります。
00:01:52意図しない実装になっていて何度も修正を命じる
00:01:56ということが減ります。
00:01:57次のルールは「シンプルさを優先する」ことです。
00:01:59単純なことですが、claud.mdで具体的に明記して
00:02:04エージェントに常に意識させる必要があります。
00:02:07Claudeや他のエージェントは、単純に解決できる問題に対しても
00:02:11大掛かりなコードを書きがちだからです。
00:02:12これは単に時間がかかるというだけでなく、
00:02:15後々のリファクタリングを困難にし、トークンも無駄に消費します。
00:02:19単純なことのために非常に冗長なコードを書いてしまうからです。
00:02:24この指示はClaudeをシンプルさへと導きます。
00:02:27どんなプロジェクトでも、特に大規模アプリケーションの開発では
00:02:32このルールがさらに重要になります。
00:02:35これはClaudeに対し、求められたこと以外の機能は追加せず、
00:02:39適切なエラー処理を確実に行うよう伝えるものです。
00:02:41これを disciplined framework(規律ある枠組み)として設定します。
00:02:44例えば200行で書ける問題を解決するのに、
00:02:4950行で済むならClaudeにリライトさせる、といった具合です。
00:02:54これにより、Claudeが不要なオーバーヘッドコードを書いたり
00:02:58誤った方向性の実装をしたりするのを防げます。
00:03:03claud.mdの3つ目のポイントは、外科手術のような変更、つまり
00:03:08絶対に触るべき箇所だけを修正することです。
00:03:11Claudeに一度に大量のコードを書かせた時に
00:03:15頻発する問題に対処するための指示です。
00:03:19Claudeやエージェントは、一つのタスクを頼むと、
00:03:24ついでに周囲の改善まで行おうとする傾向があります。
00:03:25コードのフォーマット改善や隣接するコードの変更などですが、
00:03:29今はそこを重点的に見てほしいわけではありません。
00:03:32複数のことに注意が分散されるのはイライラする原因となります。
00:03:36一度に色々なことを実装しようとするからです。
00:03:37こういった変更は不要なので、
00:03:41今はやらなくていいと明示する必要があります。
00:03:43claud.mdでそうした指示を明確に出しましょう。
00:03:47不要なデッドコードを見つけても、勝手に直さず報告させるのです。
00:03:52そういったコードには特有の理由があるかもしれず、
00:03:56現段階で修正すべきとは限りません。
00:03:58Claudeが適切に行動するためのメンタルモデルは、すべての変更が
00:04:03ユーザーの要求に基づいているかを確認することです。
00:04:06合致していれば実行し、
00:04:08そうでなければ触らせないというルールです。
00:04:10この一行があれば、何か問題があった時にも
00:04:14依頼された修正箇所のみに手を加えるようになります。
00:04:17他の問題を見つけたら報告してもらい、あなたが修正するかどうかを
00:04:21判断すればよいのです。
00:04:24アンドレイ・カーパシー氏から得た最後のパターンは「目標駆動型実行」です。
00:04:29最大の問題は、エージェントが「正しい出力」を知らないことです。
00:04:33目標を定義すればもっと効率的に動けます。これがそのルールです。
00:04:36claud.mdで、Claudeにタスクごとの
00:04:41成功基準を定義させます。
00:04:43どんなタスクでも、検証可能な目標に変換させるのです。
00:04:47例えばバリデーションの追加なら、テストケースを作成し
00:04:52入力に対して期待通りの戻り値が出るかを確認させます。
00:04:57要はテストケースを実装し、すべてパスするまで
00:05:01イテレーションを繰り返し、意図した動作にするということです。
00:05:06どんなプロンプトに対しても、検証可能な目標を立ててから計画し、
00:05:11テストケースを追加して、アプリ全体をどう扱うかまで
00:05:15検証させるのです。
00:05:17これは論理的な推論には良いですが、UIの見た目の検証には
00:05:21テストコードは書けません。
00:05:23その場合は、Claude Chrome拡張機能やPuppeteer MCPを使って
00:05:28UIを検証させるのがいいでしょう。
00:05:30UIの変更はコードだけでは判断が難しいため、
00:05:35エージェントに視覚的な検証手段を与えることで問題を解決させます。
00:05:40これを設定しておけば、
00:05:41UI実装後にMCPを通じて結果を検証するよう
00:05:45明示的に指示できます。
00:05:48Claude Codeのinitコマンドでclaud.mdを作ると
00:05:53開発サーバーやビルドサーバーの起動コマンドが含まれますが、
00:05:57それはすでに学習データにあり、Claudeはすでに知っています。
00:06:01既知のことに貴重なclaud.mdの行を割く必要はありません。
00:06:05ファイルには、デフォルトのツールではなく、Claudeに使わせたい
00:06:09特定のツールだけを記載しましょう。
00:06:11ワークフローを高速化するCLIツールには、Claudeのデフォルトの
00:06:16学習データに含まれていないものもあります。
00:06:18Claudeが勝手なツールに頼らないよう、インストール済みのツールを
00:06:22明示的に追加しておきましょう。
00:06:26例えばGitの代わりにGitHub CLIを使いたいなら
00:06:30claud.mdにすべての操作でそれを使うよう指示できます。
00:06:36このように、デフォルト以外のコマンドも同様に設定可能です。
00:06:37さらにコマンドも自由に追加していけます。
00:06:41プロジェクトの実行指示が通常と異なる場合も、
00:06:45このファイルに記述してください。
00:06:46ほとんどのプロジェクトはnpmで動きますが、
00:06:51pnpmで動かすなら、Claudeが正しいコマンドを実行できるよう
00:06:56その情報を追加する必要があります。
00:06:57Claudeが知っているコマンド以外のことまで
00:07:01claud.mdに書く必要はありません。
00:07:02次の項目はClaude Codeの生みの親が明かした
00:07:07ワークフローから得た着想です。
00:07:08claud.mdは一度書いたら終わりではありません。
00:07:12開発の過程で常に変更、更新、改善されるべきものであり、
00:07:16継続的なプロセスとして磨き続ける必要があります。
00:07:20そこで、Claudeの実装が正しくないとユーザーが指摘した場合は
00:07:25まずその修正を適用させましょう。
00:07:29その後、その学習内容を別のファイルに追記させ
00:07:33何をしてはいけないのか、何が正しいやり方なのかをナレッジベースとして
00:07:38構築させ、後からいつでも参照できるようにします。
00:07:42さて、先に進む前にスポンサーからの紹介です。
00:07:45AIエージェントをご存知ですよね。
00:07:47自分で設定しようとして、15分後には端末に向かって
00:07:51APIキーを貼り付け、何か漏洩していないか不安になっていませんか?
00:07:56Klausなら、その手間はすべて不要です。
00:07:57KlausはオープンソースのAIエージェント「OpenClaw」をクラウド上で動かします。
00:08:00サインアップすれば15ドルのOpenRouterクレジットをもらえて、すぐにプロンプトを開始できます。
00:08:04端末も、Dockerも、APIキー探しもいりません。
00:08:07実際に試したのは、Klausにスタートアップ企業を検索させ
00:08:12結果をテーブルにまとめ、メールで送らせることでした。
00:08:13チャット欄で一回プロンプトを入力するだけ。完了です。
00:08:15コードもブラウザ拡張機能も不要です。
00:08:17ExaやApolloが組み込まれており、Slack、WhatsApp、さらには
00:08:21iMessageにもつながります。
00:08:22すべては個人アカウントから完全に隔離された環境で実行されます。
00:08:27何か壊れても、自動修正エージェントの「clawbert」が勝手に直してくれます。
00:08:31ピン留めされたコメントのリンクから、Klausを無料で試してみてください。
00:08:35コーディングプロジェクトの多くはGitで管理されているため、
00:08:39確認なしで元に戻せないコマンドは実行しないようclaud.mdに指示してください。
00:08:44もし必要な場合は、必ず先に許可を求めるようにさせましょう。
00:08:48それらのコマンドは実行すると元に戻せず、
00:08:53本番環境を壊しかねない危険なものです。
00:08:55強制プッシュ(force push)、ヘッドのリセット、ブランチの強制マージ、
00:09:00forceフラグをつけた削除コマンドなどです。
00:09:01また、コマンドが破壊的かどうか確信が持てない場合は、
00:09:04想定で動かさず質問させる指示も必要です。
00:09:07これで多くのトラブルを防げます。
00:09:08例えば、勝手にブランチをマージしようとした時に
00:09:12許可を求めさせれば、拒否することで
00:09:16安全を保つことができます。
00:09:17claud.mdファイルにすべてを詰め込むのは不要です。
00:09:22 bloat(冗長)になり、エージェントを混乱させるだけです。
00:09:27パス単位でルールを分けたファイルを作成し、一行目にスコープを定義し
00:09:31その場所で有効な指示を記述してください。
00:09:34それらのファイルの場所をclaud.mdに書いておけばClaudeは認識します。
00:09:40例えばAPIを書く際固有の指示が必要なら
00:09:44API専用のルールファイルを作り、API作業時にのみ読み込ませればよいのです。
00:09:48直接指示をロードさせます。
00:09:50何より、これでAPI以外の作業時に
00:09:55その指示が干渉するのを防げます。
00:09:56プロジェクトの各所に合わせたルールファイルを複数持ち
00:10:00特定の領域に特化した指示を入れることができます。
00:10:02そうすることで、その箇所を作業している時だけ読み込ませます。
00:10:06これならコンテキストの肥大化を防ぎ、
00:10:11関係のないルールでエージェントを惑わせずに済みます。
00:10:13多くの大規模アプリはモノレポで管理されています。
00:10:18単一の大きなリポジトリにすべてのコンポーネントが含まれ
00:10:22フォルダごとに独立して管理されつつ
00:10:27メインアプリに貢献している状態です。
00:10:28モノレポのプロジェクトなら、各サブレポに
00:10:32個別のclaud.mdファイルを含め、そこに独自の
00:10:37特定の指示を記述し、グローバルなclaud.mdだけに頼らないようにしましょう。
00:10:42グローバルなファイルには、システム全体に広く適用される指示のみを
00:10:47記述すべきです。
00:10:48スコープ別のclaud.mdの方がうまく機能するのは、
00:10:52その特定のアプリやモジュールに特化した指示を持てるからです。
00:10:54これにより、焦点を絞ったガイダンスでエージェントのパフォーマンスが向上します。
00:10:58すべてをメインファイルに入れるのは誤った選択です。
00:11:02情報でファイルが肥大化し、現在のタスクに関係のない指示を
00:11:07Claudeが見ることで注意が逸れ、本来やるべきことから
00:11:11気を削いでしまう原因になります。
00:11:12コンテンツを楽しんでいただけたら、ぜひ高評価をお願いします。
00:11:16この活動を続け、より多くの人に届ける助けになります。
00:11:19claud.mdにはプロジェクトの説明も追加し、
00:11:24その他の指示の中に埋もれさせず、
00:11:29ファイルの冒頭に配置してください。
00:11:30読み込んでアプリの概要を最初に把握させるためです。
00:11:33アプリが何をするのか、構造はどうなっているのか、
00:11:38どんなサービスや依存関係があり、どう動くのかを理解させます。
00:11:41最初から知っていれば、コードから推測して
00:11:45アプリが何なのかを考える必要がないからです。
00:11:46claud.mdに加えるべきもう一つのセクションは、Claudeに
00:11:50機能の実装だけでなく、それが意図通りに機能しているかも
00:11:55完了を報告する前に検証させることです。
00:11:57あらゆる利用可能な検証手段を使い、ビルドやテストのパスを
00:12:02確実に確認させます。単にコードが存在するだけで
00:12:07タスク完了とするのではなく、実際の検証手順を使うことが重要です。
00:12:11この指示により、Claudeは誠実な報告をするようになり、
00:12:15ユニットテストやリント、型チェックといった複数のチェックを行い、
00:12:20正しく機能していることを確認するようになります。
00:12:23最後になりましたが、claud.md内の指示の順番も
00:12:27エージェントのパフォーマンスを高く保つために重要です。
00:12:29優先順位に従って順序を決めてください。
00:12:31最初には、いかなる例外も許さない「ハードルール(厳格な規則)」を
00:12:36置いてください。
00:12:37これらを必ず最初に記述します。
00:12:40次に、それほど厳格ではない「中優先度のルール」を置きます。
00:12:44妥協の余地は少ないですが、重要であり違反すべきではありません。
00:12:48その後、主に参考や利便性を目的とした低優先度の指示を続けます。
00:12:52エージェントがここを判断の核心ソースとして使う必要がないようにします。
00:12:57もう一つ重要なのは、claud.mdファイルを短く保つことです。
00:13:01エージェントのパフォーマンス最適化のため、300行以内にするのが
00:13:06ベストプラクティスです。
00:13:07それ以上長くなるとパフォーマンスが低下し始めます。
00:13:10この動画で扱ったclaud.mdや、これまで言及したすべてのリソースは
00:13:15AI Labs Proでダウンロードして
00:13:20自分のプロジェクトで使えます。
00:13:21活動に価値を感じ、チャンネルを応援したいと思ってくださるなら
00:13:25それが一番の方法です。
00:13:26リンクは概要欄にあります。
00:13:27動画は以上です。
00:13:29チャンネルを応援し、動画制作をサポートしていただける場合は
00:13:33下の「スーパーサンクス」ボタンからお願いします。
00:13:35ご視聴ありがとうございました。次の動画でお会いしましょう。

Key Takeaway

claud.mdを活用し、思考プロセス、厳格な制約、検証可能な目標を明示的に定義することで、AIエージェントの無駄な推測と冗長な実装を99%削減できる。

Highlights

  • Claudeのパフォーマンスを最大化するためには、claud.mdファイルの内容を300行以内に抑えるのが最適である。

  • コーディング開始前に前提条件と解釈の選択肢を明示的に指示すると、手戻りが劇的に削減される。

  • 不要なコード改善を防ぐため、依頼された修正箇所のみに手を加え、周囲の改善は報告のみにするよう制約をかける。

  • UI検証にはコードベースのテストではなく、Claude Chrome拡張機能やPuppeteer MCPを用いた視覚的検証を導入する。

  • 複雑なプロジェクトでは、グローバルなclaud.mdにすべてを記載せず、スコープ単位でルールファイルを分離して読み込ませる。

Timeline

claud.mdの基本構造と最適化

  • initコマンドの結果に頼らず、プロジェクトに適した構造化パターンを自ら設定する必要がある。
  • コーディング前に前提条件を明示させ、解釈を確定させることで意図通りの実装が実現する。

エージェントがタスクのたびに誤った方向へ進むのを防ぐには、claud.mdでの明示的なルール設定が不可欠である。特に、実装前に前提条件を洗い出させ、複数の実装手法から最適なものを選択させるプロセスを強制することで、AIによる勝手な推測を回避できる。

効率的なエージェント制御

  • 単純さを優先させる規律ある枠組みを設定し、冗長なコード生成を回避する。
  • 外科手術のように必要な箇所のみを修正させ、余計なフォーマット改善やコード変更を禁止する。

Claudeは単純な問題に対しても冗長なコードを書きがちであるため、機能追加を最小限に抑えるよう指示する必要がある。また、一度に複数の変更をさせず、要求に合致しない改善はすべて報告させる運用に変えることで、意図しない破壊的変更を防ぐ。

目標駆動型実行と検証の徹底

  • あらゆるタスクを検証可能な目標とテストケースに変換させる。
  • UIの検証は視覚的なツール(Puppeteer MCPなど)を用いて実施する。

成功基準が定義されていないとAIは効率的に動けないため、各タスクを検証可能な目標として定義させる。ユニットテストだけでなく、UIの視覚的検証まで含めることで、完了報告の信頼性が大幅に高まる。

プロジェクト規模に応じた運用とスコープ管理

  • claud.mdは一度書いたら終わりではなく、継続的なプロセスとして改善し続けるべきである。
  • 冗長化を防ぐため、特定の領域専用のルールファイルを作成し、必要な時だけ読み込ませる。
  • 300行以内を維持し、優先順位が高いルールを冒頭に配置する。

ファイルが肥大化するとパフォーマンスが低下するため、モノレポなどの大規模プロジェクトではコンポーネント単位でルールファイルを分離する。安全性を担保するため、強制プッシュなどの破壊的コマンドには許可制を導入し、常にハードルールを最優先に記述する。

Community Posts

View all posts