跳到主要內容

andrej-karpathy-skills:一份 Markdown 檔案,45k stars,重新定義 AI 寫程式的行為邊界

forrestchang/andrej-karpathy-skills on GitHub

Andrej Karpathy 在 2025 年說過一句被大量引用的話:LLM 寫程式最大的問題不是寫不出來,而是「它們替你做了錯誤的假設,然後一路跑下去」。這句話精準描述了多數人使用 Claude Code、Cursor、Copilot 的真實體驗——AI 不是不夠聰明,而是太主動、太自信、太願意「幫忙」。

andrej-karpathy-skills 就是針對這個問題的解法。它不是框架、不是工具鏈、不是 SDK,而是一份純 Markdown 的 CLAUDE.md 檔案,把 Karpathy 的觀察編碼成 Claude Code 的行為約束。45.9k stars,MIT 授權,作者是 Forrest Chang(@jiayuan_jy)。


四條核心原則

這份檔案的內容可以濃縮成四條規則:

  1. 先想再動手——收到任務後不要直接開始改 code,先分析現有架構、理解意圖、確認方向
  2. 簡單優先——不要過度設計,不要引入不必要的抽象層,最小改動解決問題
  3. 手術刀式修改——只動需要動的檔案,不要順手重構、不要改格式、不要「優化」沒被要求的東西
  4. 目標驅動 + 驗證迴圈——每次修改都要對應明確目標,完成後驗證結果,不通過就回頭
Loading diagram...

看起來很基本?對。但 LLM 的預設行為恰好違反每一條。


為什麼一份 Markdown 能拿到 45k stars

因為它解決的是一個真實的、高頻的痛點。

用過 Claude Code 的人都知道:你說「修改這個按鈕的顏色」,它可能會順手幫你重構整個元件、升級 import 路徑、改掉你的格式設定。你說「加一個 API endpoint」,它可能會幫你設計一套完整的 middleware 架構。每次都要花時間檢查它多做了什麼,然後手動 revert。

Karpathy 把這個現象稱為「wrong assumptions running unchecked」。andrej-karpathy-skills 的做法是:與其期待模型自己學會克制,不如用一份行為規範檔案在 system level 就把邊界畫好。


安裝方式

兩種用法,都不需要任何依賴:

作為 Claude Code 全域設定:

# 複製到 ~/.claude/ 目錄
cp CLAUDE.md ~/.claude/CLAUDE.md

作為專案級設定:

# 放在專案根目錄
cp CLAUDE.md ./CLAUDE.md

就這樣。沒有 npm install,沒有 config file,沒有 build step。Claude Code 啟動時會自動讀取 CLAUDE.md 作為行為指引。


這真的有效嗎

我的觀點是:有效,但有限度

有效的部分:Claude Code 確實會遵守 CLAUDE.md 的指引,尤其是「不要重構未被要求的檔案」和「修改前先確認方向」這兩條,行為改善非常明顯。對於日常開發中最常見的「AI 過度幫忙」問題,這份檔案直接命中要害。

限度在於:CLAUDE.md 是 soft constraint,不是 hard guardrail。在長對話中,模型可能逐漸偏離這些規則,尤其是在多步驟任務中。而且這些原則本身就是好的 engineering practice——問題從來不是人不知道該這樣做,而是 LLM 的預設行為模式傾向於「多做」而非「精準做」。

真正值得注意的是這個現象背後的訊號:一個沒有任何 code 的 repo 拿到 45.9k stars,說明整個 AI-assisted coding 社群正在從「讓 AI 寫更多 code」轉向「讓 AI 寫對的 code」。約束比能力重要——這個認知轉變才是這個 repo 最大的貢獻。


適合誰

  • 日常使用 Claude Code 開發的工程師,尤其是在成熟 codebase 上工作的人
  • 已經被 AI 過度重構搞煩的開發者
  • 想建立自己團隊 CLAUDE.md 規範的技術 lead

不適合完全新手——如果你還沒有自己的 coding style 和品質標準,一份約束檔案沒有東西可以約束。


結論

andrej-karpathy-skills 不是什麼突破性技術。它是一份寫得好的規則文件,解決一個真實的問題,用最低的摩擦力讓人能用上。45k stars 不是因為它複雜,恰恰是因為它簡單到不需要解釋就能用——而這本身就是它所提倡的「簡單優先」原則的最佳示範。