Karpathyが暴くLLMコーディングの落とし穴とは──1つのCLAUDE.mdでClaude Codeを劇的に賢くする方法

プログラミングAI

Claude Codeで作業していると、こんな経験はないだろうか。

「関係ないファイルまで書き換えられた」「頼んでもいない機能が勝手に追加された」「動くにはなったけど、なんかコードが複雑になった気がする」——これらはClaude Codeのバグではなく、LLM全般が持つ構造的な傾向だとAIの第一人者Andrej Karpathyは指摘する。

そして、その対策をたった1ファイルにまとめたものがandrej-karpathy-skillsだ。GitHubトレンドで急上昇中のこのリポジトリは、Claude CodeをはじめCursorなど主要AIコーダーに対応している。

この記事でわかること

・LLMコーディングで起きる4つの典型的な落とし穴
・andrej-karpathy-skillsとは何か
・Claude Codeへの導入方法(2分で完了)
・入れた後、何が変わるか

Claude Codeで「勝手に暴走するAIコーダー」をKarpathyはこう直す

Andrej Karpathyは、OpenAIの共同創業者の一人であり、Tesla自動運転チームの元AIディレクター。現在は独立した研究者・エデュケーターとして活動しており、LLMに関する鋭い洞察をSNSで発信し続けている。

彼が繰り返し指摘してきたのが「LLMコーディングエージェントの問題行動」だ。これを体系化し、対策のルールをCLAUDE.mdにまとめたのがmultica-ai/andrej-karpathy-skills(別名:forrestchang/andrej-karpathy-skills)だ。GitHubで急速に注目を集め、開発者コミュニティで広く話題になっている。

andrej-karpathy-skillsとは──何が入っているのか

中身はシンプルだ。1つのCLAUDE.mdファイルに、AIコーディングエージェントへの行動指針が書かれている。これをプロジェクトのルートに置くだけで、Claude Codeがそのルールを読み込み、より適切な動作をするようになる。

Cursor向けには.cursor/rules/karpathy-guidelines.mdcとして配置する対応版も別途用意されている。どちらのツールを使っているユーザーも恩恵を受けられる。

Karpathyが指摘する4つのLLMコーディングの落とし穴

1. 仮定を確認しない「暴走モード」

「モデルは仮定を立てて、確認せずにその仮定に従い続ける」——これがKarpathyの指摘の出発点だ。

たとえば「ユーザー認証を修正して」と伝えると、AIは「このプロジェクトはFirebaseを使っている」という仮定のもとで作業を進める。実際はSupabaseを使っているのに、間違った方向で実装が進んでしまうことがある。

対策ルール(Think Before Coding)は「作業前に仮定を明示化し、不確かな点は確認してから始める」だ。

2. 不要な抽象化を勝手に作る

「不要な複雑性と膨張した抽象化を実装する傾向がある」とKarpathyは言う。

「この関数を書いて」と頼むと、汎用クラスと継承階層とインターフェースが生えてくる——心当たりのある人は多いはずだ。1回しか使わない処理に設計パターンを持ち込まれても、メンテナンスが大変になるだけだ。

対策ルール(Simplicity First)は「要件以上の機能実装を避け、最小限のコードで解決する」だ。

3. 関係ないコードまで書き換える

「理解していないコードを削除するなどの副作用的な変更が起きる」——これはClaude Codeあるあるだ。

ファイルのA関数を直してほしいだけなのに、同じファイルのB関数まで「ついでに最適化」されてしまう。一見よさそうに見えても、思わぬデグレを引き起こすことがある。

対策ルール(Surgical Changes)は「必要な部分だけ変更し、既存コードへの不用意な修正を禁止する」だ。

4. 目標でなく指示に従いすぎる

「LLMは具体的な目標に対するループに優れている。やるべきことを指示するのではなく、成功基準を与えて実行させよ」——これはKarpathyの核心的なアドバイスだ。

「このコードを書いて」ではなく「このテストが全部通るコードを書いて」という渡し方に変えるだけで、AIの動作品質が上がる。

対策ルール(Goal-Driven Execution)は「テスト駆動で成功基準を明確化し、検証ループを実施する」だ。

Think Before Coding・Simplicity First・Surgical Changes・Goal-Driven Executionの4原則の概念図

2分で導入完了──Claude Code・Cursor両対応

Claude Code プラグインで入れる(推奨)

Claude Codeを使っているなら、プラグイン経由が最も手軽だ。

/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills

この2コマンドで自動的にCLAUDE.mdが設定される。

CLAUDE.mdに直接追加する

既存のCLAUDE.mdにルールを追記したい場合は、GitHubリポジトリ(multica-ai/andrej-karpathy-skills)からCLAUDE.mdの内容をコピーして追加するだけだ。プロジェクト単位での適用が可能で、チームへの展開も簡単だ。

入れた後、何が変わるか

4つの原則がCLAUDE.mdに入ることで、Claude Codeの動作が変わる部分がある。

まず「作業前の確認」が増える。以前は黙って突き進んでいたところで「この関数の役割はAで合っていますか?」と聞いてくるようになる。一見手間に思えるが、これが後の大規模な巻き戻しを防ぐ。

また、出力されるコードがシンプルになる。過度な抽象化が減り、意図したことだけを実装したファイルが戻ってくることが多くなる。

AIコーディングを使い込んでいる人ほど「たしかにこれが問題だった」と感じるはずだ。Karpathyという信頼できるソースに基づいた設定ファイルが無料で手に入るなら、試さない理由はほとんどない。

コメント

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