Bạn là một nhà phát triển và luôn tự hỏi làm thế nào để tiếp thu những kiến thức mới một cách hiệu quả nhất? Phương pháp của nhiều người là lao vào một dự án thực tế, thay vì chỉ theo dõi các hướng dẫn, và bắt đầu lặp lại, thử nghiệm liên tục. Đây chính là cách tiếp cận đã dẫn đến những khám phá quan trọng về cách tối ưu hóa tương tác với các tác nhân AI như Claude.
Câu chuyện bắt đầu với dự án SageCompass, một monorepo phức tạp kết hợp LangGraph, Drupal (để quản lý nội dung RAG) và Gradio (cho giao diện người dùng). Hành trình học hỏi và lặp lại diễn ra không ngừng nghỉ trong suốt hai tháng, giúp củng cố kiến thức về quản lý dự án Python và đặc biệt là dự án LangGraph. Khi mọi thứ đã sẵn sàng, việc tích hợp một tác nhân mã hóa (Codex thời điểm đó) trở thành một bước đi hợp lý để giảm thời gian refactoring. Điều thú vị là, các tác nhân mã hóa hoạt động đáng tin cậy hơn đáng kể khi chúng ta thiết lập các ranh giới rõ ràng. Với cấu trúc kiểm thử đơn vị được xác định chặt chẽ, các chỉ thị và hợp đồng rõ ràng, tác nhân hầu như không cần sự trợ giúp nào.
Tuy nhiên, SageCompass là một monorepo, đòi hỏi một thiết lập AGENTS.md cực kỳ nâng cao để quản lý tất cả các thành phần. Phần LangGraph đã ổn định với các hợp đồng và cấu trúc kiểm thử rõ ràng. Phần Drupal, với 17 năm kinh nghiệm, tác giả biết mình cần gì nhưng chưa viết ra cho tác nhân. Còn phần Gradio? Bản thân tác giả cũng đang trong quá trình học hỏi, vậy làm sao để viết hướng dẫn cho một thứ mà bạn chưa thực sự hiểu rõ?
Việc sử dụng một tệp hướng dẫn lớn duy nhất là không khả thi. Mỗi thành phần ở một giai đoạn sẵn sàng khác nhau. Việc sao chép các quy tắc giữa chúng thậm chí còn tệ hơn là không có quy tắc nào. Đây chính là khoảnh khắc nhận ra: các thiết lập hướng dẫn có các cấp độ năng lực. Và nếu chúng có cấp độ, chúng có thể được đo lường. Và nếu chúng có thể được đo lường, chúng có thể được cải thiện một cách có hệ thống.
Mục lục
Sự Xuất Hiện Của Các Cấp Độ Năng Lực Trong Hướng Dẫn AI
Khi cố gắng chuyển các quy tắc của LangGraph sang thành phần Gradio, một câu hỏi quan trọng đã nảy sinh: quy tắc nào là phổ quát và quy tắc nào là đặc thù cho một thiết lập đã ổn định, nhiều hợp đồng? Ví dụ, một quy tắc như “không bao giờ commit các tệp .env” áp dụng cho mọi nơi. Ngược lại, một quy tắc như “thực hiện các node dưới dạng các nhà máy make_node_*” thì lại vô nghĩa bên ngoài LangGraph.
Điều này đã buộc phải phân loại. Không chỉ là các quy tắc làm gì, mà còn là cấp độ năng lực dự án mà chúng giả định. Một dự án cơ bản cần các hướng dẫn khác biệt so với một dự án có hợp đồng được thực thi và bản đồ điều hướng rõ ràng. Từ đó, khung CLAUDE.md đã được hình thành với sáu cấp độ, từ L1 đến L6, cùng với điểm khởi đầu L0.
Khám Phá Các Cấp Độ: Từ Không Tồn Tại Đến Thích Nghi Hoàn Toàn
Khung làm việc này định nghĩa một lộ trình rõ ràng để tối ưu hóa cách các tác nhân AI tương tác và hoạt động trong dự án của bạn, từ mức độ cơ bản nhất cho đến khả năng thích nghi linh hoạt.
L0 Absent → Không có tệp hướng dẫn (Điểm khởi đầu) L1 Basic → Tệp tồn tại, được theo dõi L2 Scoped → Các ràng buộc cụ thể của dự án L3 Structured → Tham chiếu bên ngoài, mô-đun hóa L4 Abstracted → Tải theo phạm vi đường dẫn L5 Maintained → Kỷ luật cấu trúc L6 Adaptive → Ngữ cảnh động, kỹ năng, MCP
Dưới đây là ý nghĩa thực tế của từng cấp độ:
L0: Absent (Không Tồn Tại)
Ở cấp độ này, không có tệp `CLAUDE.md` hay `AGENTS.md` nào. Claude hoạt động dựa trên dữ liệu huấn luyện của nó và những gì nó có thể suy luận từ mã nguồn của bạn. Nó có thể đoán stack công nghệ từ `package.json`, hoặc nhận diện các mẫu từ các tệp hiện có. Tuy nhiên, nó không có bất kỳ hướng dẫn nào về sở thích, ràng buộc hoặc các quy tắc “không bao giờ làm điều này” của bạn.
Đây là mức độ chấp nhận được cho các script nhanh hoặc thử nghiệm dùng một lần. Đối với bất kỳ thứ gì bạn dự định duy trì, bạn có thể đang bỏ lỡ nhiều giá trị tiềm năng từ việc sử dụng AI một cách hiệu quả.
L1: Basic (Cơ Bản)
your-project/ └── CLAUDE.md ← tồn tại
Ở cấp độ này, một tệp `CLAUDE.md` tồn tại và được theo dõi trong git. Nội dung có thể là một boilerplate `/init` do Claude Code tự động tạo, hoặc vài dòng bạn tự viết. Điểm mấu chốt là bạn đã công nhận rằng Claude cần ngữ cảnh, và bạn đã cung cấp một nơi để nó hoạt động.
Đây là giai đoạn “tôi biết điều này quan trọng”. Hầu hết mọi người đều đạt được cấp độ này một cách nhanh chóng.
* Điều gì thay đổi: Claude có thứ gì đó cụ thể cho dự án. Nó biết đây không chỉ là một repo ngẫu nhiên.
* Điều gì còn thiếu: Các quy tắc. Claude biết về dự án của bạn, nhưng không biết các ràng buộc của bạn.
L2: Scoped (Phạm Vi Cụ Thể)
# CLAUDE.md ## Project E-commerce API, Node.js, PostgreSQL. ## Constraints - MUST use TypeScript strict mode - MUST NOT use `any` type - MUST run tests before committing - NEVER modify migration files directly
Cấp độ này đánh dấu sự xuất hiện của các ràng buộc rõ ràng, sử dụng các từ khóa như `MUST` và `MUST NOT` theo tiêu chuẩn RFC 2119. Bạn không chỉ mô tả dự án mà còn bắt đầu quy định những gì có thể và không thể làm. Ngôn ngữ ở đây rất quan trọng. “Prefer TypeScript” là một gợi ý mà Claude có thể bỏ qua. “MUST use TypeScript strict mode” là một quy tắc mà nó có xu hướng tuân theo.
Đối với các dự án nhỏ với các quy ước đơn giản, đây thường là đủ. Bạn có các quy tắc của mình ở một nơi. Claude tuân theo chúng. Mọi thứ hoạt động hợp lý.
* Điều gì thay đổi: Claude tuân theo các quy tắc của bạn, không chỉ các thực hành tốt chung chung.
* Điều gì còn thiếu: Khả năng mở rộng. Khi tệp trở nên dài, những thông tin quan trọng có thể bị lẫn vào trong tiếng ồn.
L3: Structured (Có Cấu Trúc)
# CLAUDE.md See @docs/architecture.md for system overview. See @docs/api-conventions.md for API patterns. ## Constraints ...
Bạn đã đến mức mà một tệp duy nhất không còn hiệu quả. Vì vậy, bạn bắt đầu chia nhỏ nó. Kiến trúc ở một nơi, các quy ước API ở một nơi khác. Tệp `CLAUDE.md` của bạn trở thành một bộ định tuyến, chỉ đến ngữ cảnh phù hợp.
Đây cũng là lúc việc cộng tác nhóm trở nên dễ dàng hơn. Các thành viên khác nhau có thể quản lý các tệp khác nhau, chuyên biệt hóa các hướng dẫn.
* Điều gì thay đổi: Phân tách mối quan tâm. Dễ bảo trì hơn. Mỗi tệp có một nhiệm vụ cụ thể.
* Điều gì còn thiếu: Tất cả các tệp đều được tải bất kể bạn đang làm việc trên phần nào. Chỉnh sửa các kiểm thử? Claude vẫn tải các quy ước API của bạn. Điều này gây nhiễu thông tin.
L4: Abstracted (Trừu Tượng)
your-project/
├── CLAUDE.md
└── .claude/
└── rules/
├── api-rules.md # paths: src/api/**
├── frontend-rules.md # paths: src/components/**
└── test-rules.md # paths: tests/**
Cấp độ này giới thiệu việc tải theo phạm vi đường dẫn. Chỉnh sửa `src/api/users.ts`? Chỉ các quy tắc API được tải. Chỉnh sửa `tests/user.test.ts`? Chỉ các quy tắc kiểm thử được tải.
Đây là lúc hiệu quả ngữ cảnh trở nên rõ ràng. Bạn không lãng phí token vào các quy tắc không liên quan. Sự chú ý của Claude tập trung vào những gì quan trọng cho nhiệm vụ hiện tại. Cách bạn triển khai điều này phụ thuộc vào công cụ. Claude Code sử dụng `.claude/rules/` với frontmatter. Cursor sử dụng `.cursor/rules/`. Khái niệm cơ bản là giống nhau.
* Điều gì thay đổi: Claude thích nghi với những gì bạn đang làm việc, không chỉ dự án bạn đang ở.
* Điều gì còn thiếu: Bảo trì. Các cấu trúc có thể bị mục nát. Các quy tắc có thể trở nên lỗi thời.
L5: Maintained (Được Duy Trì)
Cấp độ này là L4 nhưng có thêm tính kỷ luật. Cấu trúc vẫn như cũ, nhưng có thêm các thói quen để giữ cho nó luôn cập nhật:
* Một tệp xương sống (backbone file) ánh xạ codebase, được cập nhật khi có thay đổi.
* Một cách nào đó để theo dõi những gì đã lỗi thời.
* Các đánh giá định kỳ (tùy theo tần suất phù hợp với bạn).
Sự khác biệt giữa L4 và L5 không phải là về tính năng — mà là về sự duy trì. L4 là “tôi đã thiết lập điều này.” L5 là “tôi giữ cho nó hoạt động.”
* Điều gì thay đổi: Độ tin cậy theo thời gian. Thiết lập không bị “mục nát” một cách âm thầm.
* Điều gì còn thiếu: Khả năng động. Claude tuân theo hướng dẫn nhưng không thể tự mở rộng.
L6: Adaptive (Thích Nghi)
your-project/ ├── CLAUDE.md ├── .claude/ │ ├── rules/ │ └── skills/ │ ├── database-migrations/ │ │ └── SKILL.md │ └── api-testing/ │ └── SKILL.md └── mcp.json
Ở cấp độ này, Claude không chỉ tuân theo hướng dẫn mà còn tải các khả năng. Đang làm việc về migration? Kỹ năng migration được kích hoạt với ngữ cảnh riêng của nó. Cần truy cập một API bên ngoài? MCP (Master Control Program) xử lý điều đó.
Rất ít thiết lập đạt đến cấp độ này cho đến nay. Các công cụ vẫn còn mới. Các mẫu hình vẫn đang nổi lên. Đây là đỉnh cao của sự tương tác AI, nơi tác nhân có thể mở rộng khả năng của mình dựa trên những gì nó phát hiện bạn đang làm.
* Điều gì thay đổi: Claude mở rộng khả năng của nó dựa trên những gì nó phát hiện bạn đang làm.
Kiểm Tra Nhanh Mức Độ CLAUDE.md Của Bạn
Bạn đang ở cấp độ nào? Hãy tự kiểm tra nhanh với các câu hỏi sau:
- Bạn có bất kỳ tệp hướng dẫn nào không? Nếu CÓ, ít nhất là L1.
- Tệp đó có các ràng buộc rõ ràng (MUST/MUST NOT) không? Nếu CÓ, ít nhất là L2.
- Bạn có sử dụng @imports hoặc nhiều tệp không? Nếu CÓ, ít nhất là L3.
- Các đường dẫn khác nhau có tải các quy tắc khác nhau không? Nếu CÓ, ít nhất là L4.
- Bạn có tích cực duy trì cấu trúc không? Nếu CÓ, ít nhất là L5.
- Bạn có sử dụng skills hoặc MCP không? Nếu CÓ, bạn đang ở L6.
Theo quan sát, hầu hết các thiết lập đều ở L1 (Cơ bản) hoặc L2 (Phạm vi Cụ thể). Một số đạt đến L3 (Có Cấu Trúc). L4 (Trừu Tượng) trở lên là khá hiếm – không phải vì khó, mà vì các mẫu hình chưa được biết đến rộng rãi.
Tại Sao Phải Quan Tâm Đến Các Cấp Độ Này?
Mục tiêu không phải là để đạt điểm cao nhất hay “đua cấp độ”. Điều quan trọng là có một ngôn ngữ chung để mô tả các tình huống.
Một câu nói như “Tôi đang ở L2 (Phạm vi Cụ thể) và tự hỏi liệu L4 (Trừu Tượng) có đáng để nỗ lực không” là một cuộc trò chuyện thực sự có thể diễn ra. Ngược lại, “CLAUDE.md của tôi khá tốt” thì không thể mang lại giá trị tương tự.
Cấp độ phù hợp phụ thuộc vào dự án của bạn. Một dự án nhỏ chỉ trong một cuối tuần không cần đến việc phân chia phạm vi đường dẫn. Một hệ thống phức tạp với nhiều miền có thể sẽ cần. Khung làm việc này chỉ giúp bạn suy nghĩ về vị trí hiện tại của mình và nơi bạn có thể muốn đến. Nó cung cấp một lộ trình rõ ràng để cải thiện tương tác AI và nâng cao hiệu suất làm việc.
Dự Án Đang Được Phát Triển: Reporails CLI
Hiện tại, tác giả đang xây dựng một bộ công cụ xác thực (validator) sử dụng khung này: nó sẽ phát hiện cấp độ của bạn, kiểm tra cấu trúc và đánh giá thiết lập của bạn. Nếu bạn chạy nó từ Claude Code CLI, nó thậm chí còn giúp bạn khắc phục sự cố.
Dự án vẫn còn ở giai đoạn đầu, nhưng nếu bạn muốn tìm hiểu và đóng góp ý kiến, đừng ngần ngại:
* Reporails CLI: github.com/reporails/cli
Hoặc đơn giản là sử dụng các cấp độ này như một mô hình tư duy. Đó mới là giá trị thực sự mà nó mang lại.
Liên Kết Hữu Ích
* Tài liệu về các cấp độ năng lực: github.com/reporails/rules/blob/main/docs/capability-levels.md
* Kho lưu trữ quy tắc (Rules repo): github.com/reporails/rules



