Zenn Dev Akasara Articles 0d439421852096
Karpathy が指摘した「LLMコーディングの失敗パターン」と、コミュニティが作った CLAUDE.md の全貌
- URL: https://zenn.dev/akasara/articles/0d439421852096
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Andrej Karpathyが2026年1月にXで発信したLLMコーディングの失敗パターン(「勝手な前提で走る」「過剰に複雑にする」「関係ないコードを触る」)を受け、開発者Forrest Changがこれを4原則(Think Before Coding / Simplicity First / Surgical Changes / Goal-Driven Execution)として機械可読なCLAUDE.mdに落とし込んだリポジトリが約3.9万スターを集めている。ただしCLAUDE.mdはAnthropicの内部処理で「タスクに関連しない場合は無視されうる」という実態があり、100%の遵守は保証されない。フォーマット・リント・セキュリティチェックなど確実に実行すべき処理にはCLAUDE.mdでなくフックを使うべきというのがコミュニティの定説だ。効果的な運用は「短いCLAUDE.md+Skill+条件付きrules+フック」という複層構成で分離することにある。
詳細
Karpathyが2026年1月26日にXへ投稿した「LLMコーディングの失敗パターン」と、開発者Forrest ChangがそれをCLAUDE.mdに落とし込んだandrej-karpathy-skillsリポジトリ(約3.9万スター、約3.2kフォーク)を一次情報ベースで整理した記事。
Karpathyが指摘した3つの失敗パターン:
- 勝手な前提で走る: 曖昧な指示をサイレントに解釈し確認なしで実装を進める(ジュニア開発者のエラーパターン)
- 過剰に複雑にする: 頼まれていない汎用化・抽象化・柔軟性を追加する
- 関係ないコードを触る: 隣接コードのコメント変更・フォーマット修正・デッドコード削除
Forrest ChangのCLAUDE.md(4原則・約70行):
- Think Before Coding: 実装前に前提を明示、曖昧ならストップして確認
- Simplicity First: 依頼されていない機能・抽象化・エラーハンドリングは書かない。「シニアエンジニアが複雑すぎると言うか」を判定基準に
- Surgical Changes: 隣接コード・スタイル・デッドコードは触らない。「全変更行がユーザーの依頼に直接たどれるか」が判定基準
- Goal-Driven Execution: 成功基準を先に定義して検証可能にする。「バグを直して」→「再現テストを書きパスさせる」という変換が核心
CLAUDE.mdの実態とAnthropicの公式スタンス:
- セッション冒頭でコンテキストに読み込まれるが「タスクに関連しない場合は無視されうる」というリマインダーがシステムに付与される
- 100%確実に実行すべき処理にはCLAUDE.mdでなくフックを使うべきがコミュニティの定説
- 推奨ファイル長: 200行未満(300行が実質上限)
推奨運用: 恒久ルールは短いCLAUDE.md→条件付きルールは.claude/rules/→長い手順物はSKILL.md→確実に実行すべき処理はフック、という複層構成