C
ChaoBro

Karpathy Skills for Claude Code: 10万星背後のLLMコーディング落とし穴ガイド

Karpathy Skills for Claude Code: 10万星背後のLLMコーディング落とし穴ガイド

課題

Claude Code、Cursor、GitHub CopilotなどのAIコーディングツールは、ほとんどのプログラミングタスクを処理できるほど賢くなった。しかし同時に、「犯すべきではない」ミスも頻繁に犯す。

Andrej Karpathyは過去数ヶ月にわたり、LLMのコーディングにおける典型的な落とし穴を体系的に観察し、これらの観察をCLAUDE.mdファイルにまとめた。コミュニティメンバーのforrestchangがこれを再利用可能なスキルセットとしてパッケージ化し、GitHubで公開後1週間で102,000スターを突破した。

これは「ツール」ではない。「行動規範」なのだ。AIコーディングアシスタントに「何をすべきではないか」を伝えることは、「何をすべきか」を伝えることよりも価値があることが多い。

コアルール分解

Karpathy Skillsのコアロジック:LLMコーディングの問題は「十分に賢くない」ことではなく、「行動パターンの偏り」にある。 以下は主要なルールカテゴリー:

1. 過剰な抽象化を避ける

LLMは、プロジェクトが単純なスクリプトだけを必要としている場合でも、すべての関数に抽象化レイヤーを作成する傾向がある。

2. テストをスキップしない

LLMが生成したコードは「動くように見える」が、テストカバレッジがないことが多い。スキルファイルは以下を義務付けている:

  • 新しい関数ごとに少なくとも1つのテストケースを添付する
  • 既存のコードを変更する際、まずテストが通るか確認する
  • 「冗長に見える」テストを削除しない

3. 依存関係が利用可能だと仮定しない

LLMは頻繁に、まだインストールされていないパッケージや非推奨のAPIを参照する。ルールは以下を要求する:

  • 新しい依存関係を参照する前に、package.json / requirements.txtを確認する
  • 不確かなAPIについては、「記憶から生成する」のではなくドキュメントを参照する
  • バージョンロック:*latest を使用しない

4. エラー処理を無視しない

これはLLMコーディングで最も一般的な欠陥:

エラータイプLLMのデフォルト動作Karpathyルール
ネットワークリクエスト常に成功すると仮定タイムアウト、リトライ、エラーコールバックを追加
ファイル操作ファイルが存在すると仮定存在を確認し、存在しない場合を処理
ユーザー入力正しい形式だと仮定バリデーション、サニタイズ、無効入力を拒否
並行操作レースコンディションがないと仮定ロックまたはアトミック操作を追加

5. 一貫したコードスタイルを維持する

LLMが生成するコードのスタイルは、コンテキストによってしばしば一貫していない。ルールは以下を要求する:

  • プロジェクトの既存の命名規則に従う
  • 同じファイル内で異なるスタイルを混在させない
  • コードを修正する際、周囲のコードのスタイルを維持する

なぜ102Kスター?

このプロジェクトの爆発的成長は3つのトレンドを反映している:

  1. Claude Codeの普及:より多くの開発者がClaude Codeを日常コーディングツールとして使用しているが、デフォルトの動作は「あと一歩」のことが多い
  2. プロンプトエンジニアリングのエンジニア化:「手動でプロンプトを調整する」から「CLAUDE.mdでベストプラクティスを固定する」へ
  3. Karpathyの影響力:AI分野のトップテクニカルエバンジェリストとして、LLMコーディング行動の体系的観察は自然な説得力を持つ

使用方法

方法1:プロジェクトに配置

# プロジェクトルートディレクトリで
curl -O https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md
# または既存のCLAUDE.mdに内容をコピー

方法2:グローバルClaude Code設定

# グローバルに適用(すべてのプロジェクト)
mkdir -p ~/.claude
cp CLAUDE.md ~/.claude/CLAUDE.md

方法3:他のスキルと組み合わせ

このプロジェクトはmattpocock/skills(48Kスター、「Real Engineersのスキルセット」と組み合わせられる:

プロジェクト重点適したシーン
Karpathy SkillsLLMコーディング行動修正LLM生成バグの削減
Matt Pocock SkillsTypeScript/エンジニアリングベストプラクティスコード品質の向上
両方組み合わせ行動 + 品質最高の効果

限界

Karpathy Skillsは銀の弾丸ではない:

  • コードレビューの代わりにはならない:AIは依然として人間のレビューが必要
  • ルール越多、制約越强:一部のシナリオでは一時的にルールを無効にする必要があるかもしれない
  • LLMは進化している:モデルの能力向上に伴い、一部のルールは不要になる可能性がある
  • プロジェクトの違い:異なるプロジェクトのコーディング規範は異なるため、カスタマイズ調整が必要

アクションアイテム

  • 今日:CLAUDE.mdを進行中のClaude Codeプロジェクトに配置
  • 今週:AIコーディング行動の変化を観察し、どのルールが最も効果的かを記録
  • 今月:プロジェクトの特徴に応じてルールをカスタマイズ・追加・削除
  • 継続:Karpathyや他の技術リーダーのLLMコーディング行動に関する新しい観察をフォロー

AIコーディングツールの次の飛躍は「より賢く」ではなく「より信頼できる」ことだ。Karpathy Skillsは実用的なパスを代表している:モデルが自分でミスを犯さないようになるのを待つよりも、まずどの落とし穴を避けるべきかを伝えるのだ。