+1

Một file CLAUDE.md vừa viral. Lý do đơn giản đến mức xấu hổ.

142.000 sao trên GitHub. Không một dòng code. Bốn quy tắc lấy từ quan sát của Andrej Karpathy mà lẽ ra mọi coding agent đã phải tuân theo từ ngày đầu tiên.


Câu chuyện bắt đầu

Tác giả Sumit Pandey thừa nhận anh suýt lướt qua bài viết về repo này trên LinkedIn. Nghe có vẻ hype — kiểu ai đó screenshot số sao rồi tự gọi đó là một cuộc cách mạng.

Nhưng khi click vào, anh thấy thứ khó tin: 142.000 sao. Không dependency. Không build step. Không có model. Chỉ một file duy nhất tên CLAUDE.md với bốn quy tắc hành vi bên trong.

Và đây là điều khiến anh thực sự suy nghĩ: các quy tắc không hề mới. Đó là những điều bất kỳ senior engineer nào cũng sẽ nói với một junior trong ngày đầu đi làm. Vậy mà file này đang là repo trending số 1 trên GitHub, và đường cong vẫn chưa đi ngang.

Repo gốc: forrestchang/andrej-karpathy-skills


File này là gì?

Forrest Chang lấy bốn quan sát mà Andrej Karpathy đã chia sẻ về cách các LLM thường fail khi viết code, rồi đóng gói chúng thành một file CLAUDE.md mà Claude Code tự động đọc ở đầu mỗi phiên làm việc.

Toàn bộ "sản phẩm" chỉ là vậy.

Cách dùng cực kỳ đơn giản:

  • File nằm ở thư mục gốc của project
  • Claude Code tự động pick up
  • Mọi dev làm việc trên repo đều nhận cùng một bộ guardrail hành vi
  • Zero configuration, zero maintenance, zero API call

Bốn quy tắc (diễn giải lại)

1. Suy nghĩ trước khi code

Phát biểu giả định ra lời. Nếu yêu cầu mơ hồ — hỏi. Nếu có cách đơn giản hơn — phản đối. Khi bối rối, dừng lại, chỉ ra điều chưa rõ thay vì tự chọn một cách diễn giải rồi cứ thế chạy.

2. Đơn giản trước

Viết lượng code tối thiểu giải quyết được vấn đề. Không abstraction phỏng đoán. Không "tính linh hoạt" mà chẳng ai yêu cầu. Bài test: một senior engineer có gọi cái này là over-engineered không?

3. Thay đổi kiểu phẫu thuật

Chỉ động đến đúng phần task yêu cầu. Không "cải thiện" code lân cận. Không refactor cái đang chạy ổn. Mỗi dòng thay đổi phải truy ngược lại được về yêu cầu cụ thể.

4. Thực thi theo mục tiêu

Biến chỉ thị mơ hồ thành mục tiêu kiểm chứng được trước khi viết dòng code nào. "Thêm validation" thành "viết test cho các input không hợp lệ, sau đó làm test pass."

Hết. Đó là toàn bộ file.


Vì sao điều "hiển nhiên" này lại không hiển nhiên?

Đọc xong bốn quy tắc, phản ứng đầu tiên của tác giả là: đây chẳng phải là kỷ luật engineering cơ bản được viết ra hay sao? Sao lại cần ai nhắc?

Rồi anh nghĩ lại tuần làm việc gần nhất với coding agent.

Ví dụ 1: Anh nhờ agent thêm một lớp cache nhỏ vào pipeline Polars. Agent đã:

  • Viết lại function signature
  • Thêm pattern dependency injection mà anh không hề yêu cầu
  • Bọc cache vào một class với 8 method anh sẽ không bao giờ gọi tới

Trong khi cache thực sự chỉ cần 3 dòng.

Ví dụ 2: Anh nhờ agent fix một bug parse ngày. Agent đã:

  • Fix đúng cái bug đó ✓
  • Reformat toàn bộ file
  • Đổi hai function không liên quan từ list comprehension sang loop
  • "Nhiệt tình" thêm type hint cho các function ở module khác

Đây không phải failure hi hữu. Đây là hành vi mặc định. Mọi người dùng coding agent cho công việc thực đều đã chứng kiến điều này và lặng lẽ dọn dẹp đằng sau.

Bốn quy tắc trên hiển nhiên với senior engineer. Nhưng không hiển nhiên với model. Đó chính là khoảng cách mà file này đang lấp.


Những lưu ý trung thực

Đây là chỗ các post LinkedIn dừng lại — và là chỗ câu hỏi thực sự bắt đầu.

Đây là context hành vi, không phải hợp đồng

Claude Code đọc CLAUDE.mdcoi nó như instruction, nhưng không phải lúc nào cũng tuân thủ. File này cải thiện phân phối hành vi, chứ không đảm bảo hành vi cụ thể nào. Các thread Reddit chỉ ra điều này là đúng. Những con số đang trôi nổi kiểu "độ chính xác từ 65% lên 94%" xuất phát từ một bài blog duy nhất — tác giả nói thẳng anh sẽ không đặt cược deadline vào con số đó.

Các nguyên tắc không phải đặc thù của Claude

Chúng mô tả cách mọi coding agent nên hành xử. Cùng file đó, đổi tên file, dùng được luôn như Cursor rule. Repo ship cả hai phiên bản. Điều thú vị không nằm ở tool — nó nằm ở các nguyên tắc.

Karpathy không viết file này

Karpathy đăng các quan sát. Forrest Chang biến chúng thành repo. Karpathy amplify trên các kênh của mình và không yêu cầu rút tên ra khỏi tiêu đề. Sự viral một phần đến từ nguyên tắc, một phần đến từ tên trên cửa. Cả hai đều đúng.

Repo là menu, không phải template

Bốn quy tắc work như baseline. Chúng không thay thế instruction theo project: quy ước đặt tên, lựa chọn framework, chính sách test. Cách dùng đúng: thêm chúng vào dưới mục "Behavioral Guidelines" trong CLAUDE.md hiện có của bạn. Đừng thay thế những gì bạn đã có.


Số sao thực sự nói lên điều gì?

91.000 sao trên một file markdown không phải là vote cho file đó. Đó là vote cho vấn đề.

Mọi dev đang dùng AI-assisted coding đều đụng cùng ba bức tường:

  1. Giả định ngầm (silent assumptions)
  2. Phức tạp hoá quá mức (overcomplexity)
  3. Phình to phạm vi (scope creep)

File này gọi tên chúng bằng ngôn ngữ thẳng thắn và đưa ra giải pháp cài đặt mất 30 giây. Đó là một lượng frustration dồn nén lớn tìm được van xả trong một cuối tuần.

Đây cũng là lý do file này viral chứ không phải, ví dụ, một bài benchmark hành vi agent chặt chẽ hơn. Ngưỡng adoption là: "Tôi có thể copy-paste cái này vào repo của tôi ngay bây giờ không?" Câu trả lời là có. Vì vậy 91.000 người đã làm.


Bài học rút ra

Tác giả chạy Claude Code trên code research về quantization, BI pipeline, và vài project phụ. Các codebase không có gì chung. Nhưng các failure mode thì giống nhau.

Anh đã thêm một section behavioral vào file CLAUDE.md của mình sáng nay — bốn dòng mỗi file, paraphrase từ repo. Không phải vì anh nghĩ file này là phép màu, mà vì các nguyên tắc khớp gọn gàng với những failure anh liên tục phải dọn dẹp.

Điểm sâu hơn mà không ai đang hét lên

Skill, plugin, fine-tuning, system prompt — phần lớn năng lượng trong agent tooling đang đổ vào việc thêm các lớp.

Còn thứ này? Sáu mươi lăm dòng tiếng Anh đơn giản trong thư mục gốc của repo.

Nó thắng vì nó không phải một lớp. Nó là một hợp đồng.

Cải tiến coding agent tốt nhất trong năm tính đến giờ là một file markdown. Tự rút ra kết luận đi.


Cách áp dụng: tải CLAUDE.md từ repo forrestchang/andrej-karpathy-skills thả vào thư mục gốc project — hoặc copy 4 mục vào file CLAUDE.md bạn đã có.


Bài gốc: Sumit Pandey, "A Single CLAUDE.md File Went Viral. The Reason Is Embarrassingly Simple." trên Towards Deep Learning


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí