Andrej Karpathy 風のコーディングガイド(andrej-karpathy-skills)

AI/ML

概要

このリポジトリは、Andrej Karpathy の「LLM がコードを生成するときに陥りやすい問題点」への指摘を受けて作られた、Claude 向けのコーディングガイドラインを単一ファイル(CLAUDE.md)にまとめたものです。目的は、モデルにただコードを出力させるだけでなく、前提確認、曖昧さの解消、自己検証、テスト生成といったプロセスを組み込むことで、生成結果の信頼性を高めることにあります。軽量で持ち運びしやすく、ワークフローや自動化パイプラインに組み込みやすい設計を意図しています(約300字)。

GitHub

リポジトリの統計情報

  • スター数: 318
  • フォーク数: 29
  • ウォッチャー数: 318
  • コミット数: 7
  • ファイル数: 3
  • メインの言語: 未指定

主な特徴

  • Claude 向けの単一ドキュメント(CLAUDE.md)で使用ルールや期待される振る舞いを明示。
  • Andrej Karpathy の観察(モデルの過度な仮定、混乱の放置など)を起点にした実践的なプロンプト設計思想。
  • 軽量で汎用的、既存の Claude ベースワークフローやエディタ統合に容易に組み込み可能。
  • 出力の検証・テスト生成・明確な制約提示を促す指示群を含む想定。

技術的なポイント

このリポジトリの技術的価値は「プロンプト設計と運用ルールをコード品質向上のドキュメント化」に置かれます。Karpathy の指摘は、LLM が人間の意図を勝手に補完して誤った前提に基づく解を示す点、曖昧さを放置する点、内部で混乱が生じてもそれを表出・管理しない点に集中しています。CLAUDE.md はこれらを具体的な振る舞いルールに落とし込みます(例:あいまいな要求には必ず確認質問を投げる、実行可能なテストケースを必ず一つ以上添える、外部依存やバージョン情報の仮定を明示する、など)。

実践的なテクニックは次のようなものが想定されます。まず「前提の明示と確認」— モデルに対して入力要求から自動的に想定している前提を列挙させ、ユーザーに確認させるフローを組み込む。次に「段階的生成と検証」— 実装を一気に吐かせるのではなく、設計→インタフェース→実装→テストの順で段階的に生成し、それぞれで整合性チェックを行う。さらに「テストファーストとエンドツーエンドの検証」— 単体テストや簡易的な実行シミュレーションを生成させ、出力コードが目的に沿っていることをモデル自身に検証させる。最後に「不確実性の表明とトレードオフ提示」— モデルに各設計選択の利点・欠点を列挙させ、推奨理由とリスクを明示させる。

Claude 固有の実装観点としては、システムプロンプトや初期コンテキストに CLAUDE.md の要点を組み込むことで、セッション全体にわたって期待する行動様式(clarify-first, test-everything, be-honest-about-uncertainty)を維持させられます。また、このリポジトリはコード自体を含まないため、IDE プラグインや CI パイプラインの一部として「ガイドラインを自動注入」する運用が現実的です。限界としては、ガイドラインだけでモデルの誤動作を完全に防げるわけではなく、外部の実行環境での実行や静的解析ツール、ヒューマンレビューとの組合せが必要になります。

実用面では、CLAUDE.md をテンプレート化してプロジェクト毎にカスタマイズする運用が効果的です。例えば依存関係や言語バージョン、セキュリティ制約、テストカバレッジ基準をプロジェクト固有に設定すれば、より厳格なコード生成ガードレールになります。将来的な拡張としては、自動テスト実行と結果に基づくモデルへのフィードバックループ(テストが失敗したら修正案を生成して再検証する)を組み込むと、さらに実用性が高まります。(約1,500字相当)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .claude: dir
  • CLAUDE.md: file
  • README.md: file

まとめ

Karpathy の問題指摘を Claude 向けの実践ガイドに落とし込んだ、軽量で使いやすいテンプレート集です(約50字)。

リポジトリ情報:

READMEの抜粋:

Karpathy-Inspired Claude Code Guidelines

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy’s observations on LLM coding pitfalls.

The Problems

From Andrej’s post:

“The models make wrong assumptions on your behalf and just run along with them without checking. They don’t manage their confusion, don’t seek clarifications, don’t surface inconsistencies, don’t present tradeoffs, don’t push back when…