Trong thời đại AI coding agent phát triển nhanh, công cụ như Claude Code đã trở thành trợ thủ đắc lực cho developer trong việc tự động hoá nhiều thao tác lập trình. Nhưng thực tế, nếu để AI tự vận hành mà không có kiểm soát, ta dễ rơi vào tình trạng over-engineering – agent sửa đổi quá mức cần thiết, tạo abstraction phức tạp, hoặc tự triển khai các thay đổi ngoài phạm vi yêu cầu. Mô hình andrej-karpathy-skills gợi ý cách thiết kế một lớp Skills layer đơn giản, rõ ràng để kiểm soát hành vi này, giúp agent thực hiện đúng mục tiêu, hiệu quả hơn và ít sai sót hơn.
Một lớp Skills tốt không phải là một framework đồ sộ mà là tập hợp các quy tắc, checklist và chuẩn hành vi giúp Claude Code hiểu khi nào nên làm gì, giới hạn trong phạm vi nào và tiêu chí thành công ra sao. Ở phần đầu bài viết, chúng ta sẽ cùng khám phá vì sao cần Skills layer và cách mà Claude Code hỗ trợ Skills qua một định dạng chuẩn.
Vì sao Claude Code/OpenCode cần một Skills layer?

Các AI coding agent như Claude Code rất giỏi sinh mã, nhưng cũng chính khả năng suy diễn ngữ cảnh khiến chúng dễ “làm quá tay”. Một số lỗi thường gặp là thay đổi kiến trúc không cần thiết, refactor ngoài phạm vi task, hoặc tự thêm dependency mới khi không được yêu cầu. Những tình huống này gây ra chi phí review cao và rủi ro tạo bug mới. Nguồn tham khảo: Centrix.
Trong tài liệu chính thức của Claude Code Skills, Anthropic mô tả cách tạo các agent Skills bằng file SKILL.md – đây là định dạng chuẩn để đóng gói hướng dẫn và bước thực thi cụ thể cho agent. Khi Claude xác định một Skill phù hợp với ngữ cảnh, nó sẽ tự động kích hoạt mà không cần lặp lại prompt mỗi lần, giảm đáng kể việc điều khiển thủ công và lỗi lặp lại.
Skills layer có thể bắt đầu bằng các quy tắc cơ bản trong CLAUDE.md hay một tập hợp SKILL.md phục vụ các quy trình lặp lại. Tầm nhìn là xây dựng một lớp kiểm soát giúp agent biết rõ đâu là phạm vi an toàn để chỉnh sửa, khi nào cần hỏi lại, và tiêu chí hoàn thành task.
Khác biệt giữa prompt rời rạc, CLAUDE.md và Skill thực sự
Prompt đơn lẻ thường chỉ phục vụ một lần và dễ biến mất sau khi session kết thúc. Trong khi đó, CLAUDE.md là file chứa ngữ cảnh dự án dài hạn, giúp định hình hành vi tổng thể của Claude trong repo. Skill theo cách của Claude Code được đóng gói trong thư mục .claude/skills với file SKILL.md chứa tiêu đề, mô tả và các hướng dẫn chi tiết, giúp agent tự phát hiện khi cần áp dụng.
So với prompt rời rạc, Skill có cấu trúc hơn, có thể nạp khi thực sự phù hợp ngữ cảnh và giúp tránh over-engineering bằng cách chỉ cung cấp hướng dẫn chi tiết khi cần thiết.
Mô hình andrej-karpathy-skills: 4 nguyên tắc cốt lõi để chống over-engineering

Mô hình andrej-karpathy-skills nhấn mạnh việc đơn giản hóa, kiểm soát và tập trung vào mục tiêu thực tế. Dưới đây là 4 nguyên tắc mà bạn nên áp dụng khi xây Skills layer cho Claude Code:
1. Think Before Coding: agent cần liệt kê giả định
Một trong những nguyên nhân gây over-engineering là agent bắt đầu sửa mã ngay lập tức mà không hiểu đầy đủ yêu cầu. Nguyên tắc đầu tiên yêu cầu agent phải liệt kê giả định đang có, các điểm chưa chắc chắn và phạm vi sửa đổi trước khi triển khai sửa đổi. Điều này giúp developer dễ dàng review và điều chỉnh hành vi của agent nếu cần.
2. Simplicity First: ưu tiên giải pháp đơn giản
Claude Code rất có thể tạo class, abstraction hay module mới khi chưa thật sự cần. Trong mô hình này, bạn nên đặt quy tắc rằng nếu một hàm đơn giản có thể giải quyết task, hãy giữ nguyên; chỉ trừu tượng hoá khi có ít nhất hai use-case rõ ràng. Điều này giữ cho mã gọn và dễ bảo trì.
3. Surgical Changes: sửa đúng điểm đau, không refactor lan man
Khi agent được yêu cầu sửa lỗi hay thêm feature, việc chỉnh sửa nên gói gọn trong file hoặc đoạn mã liên quan trực tiếp. Bất kỳ động tác refactor toàn bộ module, thay đổi định dạng hay cấu trúc folder đều phải được phê duyệt bởi con người. Đây là cách giảm rủi ro lỗi không cần thiết.
4. Goal-Driven Execution: giao tiêu chí thành công rõ ràng
Thay vì chỉ giao task như “sửa bug này”, hãy đưa tiêu chí hoàn tất rõ ràng: test phải pass, output phải đúng format, không ảnh hưởng đến các phần khác. Việc này biến yêu cầu thành các tiêu chí kiểm chứng được và giúp agent tập trung vào mục tiêu cụ thể.
Áp dụng những nguyên tắc này không chỉ giúp giảm over-engineering mà còn làm workflow rõ ràng hơn, dễ review và ít gây rối khi có nhiều developer cùng làm việc với agent.
Ở phần tiếp theo của bài viết, chúng tôi sẽ bàn kỹ hơn cách thiết kế kiến trúc Skills layer tối giản cho Claude Code và OpenCode, cũng như hướng dẫn từng bước xây dựng và thử nghiệm Skills layer trong dự án thực tế.
Kiến trúc Skills layer tối giản cho Claude Code và OpenCode

Khi thiết kế Skills layer cho cả Claude Code và OpenCode, điều quan trọng là xác định các lớp riêng biệt giúp agent hoạt động hiệu quả mà không rối. Đối với Claude Code, bạn có thể dùng file SKILL.md để giới thiệu các quy trình lặp lại và chỉ dẫn chi tiết, trong khi CLAUDE.md giữ ngữ cảnh chung của dự án. Theo tài liệu chính thức của Claude, agent sẽ tự động kích hoạt các Skills phù hợp với nội dung yêu cầu khi mô tả trong SKILL.md khớp với mục tiêu task của bạn.
OpenCode cũng hỗ trợ một tiêu chuẩn Skills tương tự thông qua thư mục .opencode/skills hoặc các vị trí tương thích như .claude/skills, giúp các agent OpenCode nạp các chỉ dẫn khi cần.
Layer 1: Project Constitution trong CLAUDE.md hoặc OPENCODE.md
Đây là nơi bạn định nghĩa quy tắc chung của dự án – như stack sử dụng, lệnh test/build, quy ước đặt tên, giới hạn sửa đổi và danh sách các Skill có sẵn. Một CLAUDE.md gọn giúp Claude hiểu mục tiêu tổng thể và các ràng buộc rộng hơn trước khi áp dụng bất kỳ Skill cụ thể nào.
Layer 2: Task Skills cho quy trình lặp lại
Mỗi quy trình lặp lại như code-review, bug-fix hay API generation là một candidate để tách thành Skill riêng. Mỗi SKILL.md nên có tên rõ ràng, mô tả trigger (từ khoá/mẫu ngữ cảnh), các bước chi tiết, và điều kiện thành công minh bạch. Khi Claude Code đọc mô tả và thấy phù hợp, agent sẽ tự kích hoạt Skill mà không cần bạn nhắc lại prompt.
Layer 3: Quyền hạn và phân vai Agent
Trong OpenCode, bạn có thể khai báo các vai trò agent khác nhau như Plan, Explore và Build để bảo đảm rằng mỗi agent thực hiện phần việc của mình: agent phân tích không sửa file, agent đọc codebase, và agent triển khai sửa đổi. Cách tách tương tự này giúp tránh tình trạng một agent vừa nghĩ vừa sửa ngay, dễ gây lỗi ngoài dự định.
Layer 4: Permission và verification loop
Bạn cũng nên thiết lập quyền hạn rõ ràng: ví dụ agent build mới được phép ghi file, còn các agent khác chỉ đọc. Mỗi thay đổi cần tạo bản tóm tắt diff và thực hiện kiểm thử tự động hoặc thủ công để đảm bảo không vi phạm ranh giới đã định. Cách thiết kế này biến Skills layer từ một “prompt dài” thành cơ chế vận hành có thể lặp lại và an toàn.
Quy trình tự build Skills layer trong 7 bước

Để xây dựng một Skills layer có kiểm soát, bạn có thể theo một bộ 7 bước thực hành hữu ích như sau:
Bước 1: Audit các lỗi AI coding agent hay mắc
Trước khi viết bất kỳ Skill nào, hãy audit các lỗi phổ biến mà Claude Code hay OpenCode mắc trong repo của bạn: sửa quá phạm vi, thiếu test, tự thêm dependency, refactor ngoài yêu cầu. Danh sách này là dữ liệu đầu vào để xác định những quy trình cần Skill.
Bước 2: Viết file CLAUDE.md/OPENCODE.md tối giản
Tập trung vào mô tả mục tiêu dự án, quy tắc code, các lệnh build/test thường dùng và danh sách các Skill dự kiến. Cao độ của file này là giúp agent hiểu ngữ cảnh chung mà không quá chồng chéo chi tiết.
Bước 3: Tách skill khi một quy trình xuất hiện từ 3 lần trở lên
Nếu bạn thấy một bước hay được lặp lại hơn ba lần qua audit, đó là ứng viên tốt để tách thành SKILL.md độc lập. Điều này giúp agent tự nhận và tái sử dụng quy trình thay vì liên tục dùng prompt ngoại tuyến.
Bước 4: Mỗi skill phải có tiêu chí kích hoạt và hoàn tất
Một Skill tốt phải trả lời các câu hỏi: Khi nào dùng? Cần input gì? Các bước thực hiện? Khi nào thì xong? Ví dụ, mô tả rõ mẫu ngữ cảnh (trigger phrases) giúp Claude xác định đúng mà không trùng lặp với Skill khác.
Bước 5: Thêm guardrails chống over-engineering
Đặt các quy tắc kiểm soát như “không tạo abstraction mới nếu không có lý do rõ ràng”, “không thay đổi public API khi không yêu cầu”, “chỉ sửa file liên quan trực tiếp” để giữ scope nhỏ.
Bước 6: Kiểm thử Skills layer bằng task nhỏ
Chạy thử với bug nhỏ và feature nhỏ để đánh giá: diff size, số file bị chạm, mức độ hỏi lại của agent và tần suất test pass. Việc này giúp bạn tinh chỉnh trigger và nội dung Skill.
Bước 7: Version-control và review skills như code
Cuối cùng, treat Skills như code: mọi thay đổi trong SKILL.md hay CLAUDE.md nên được review, commit và review định kỳ để đảm bảo chất lượng dài hạn và tránh drift so với thực tế bản build.
FAQ về andrej-karpathy-skills, Claude Code và OpenCode
1. andrej-karpathy-skills có phải công cụ chính thức?
Mô hình andrej-karpathy-skills là một tập nguyên tắc cộng đồng giúp giảm over-engineering khi làm việc với AI coding agent, khác với cơ chế Skills chính thức được tài liệu trong Claude Code Skills mà Anthropic cung cấp.
2. Có cần dùng cả CLAUDE.md và SKILL.md không?
Không bắt buộc. CLAUDE.md phù hợp dùng để định nghĩa ngữ cảnh tổng thể của dự án, còn SKILL.md dùng cho các quy trình lặp lại rõ rệt và chi tiết hơn.
3. OpenCode có dùng được tư duy này không?
Có. Tiêu chuẩn Skills được OpenCode hỗ trợ, giúp agent OpenCode nạp và áp dụng các SKILL.md từ nhiều ổ đĩa theo quy tắc tìm kiếm tiêu chuẩn, tạo điều kiện cho workflow agent thống nhất.
4. Làm sao biết Skills layer giảm over-engineering?
Nếu diff của các commit nhỏ hơn, ít file sửa ngoài phạm vi, agent hỏi lại khi mơ hồ và PR dễ review hơn, thì lớp Skills layer đang đạt mục tiêu giảm over-engineering.
Kết luận và bước tiếp theo

Việc tự build Skills layer cho Claude Code theo mô hình andrej-karpathy-skills giúp bạn vừa tận dụng sức mạnh của AI coding agent, vừa tránh những rủi ro do over-engineering gây ra. Bằng cách phân lớp rõ ràng, tách các quy trình lặp lại thành Skills độc lập, và thiết kế tiêu chí rõ ràng, bạn sẽ biến Claude Code từ một công cụ prompt thủ công sang một trợ lý thực sự đáng tin cậy cho cả team.
Nếu bạn muốn thử nghiệm ngay workflow này, hãy bắt đầu với một file CLAUDE.md trong repo hiện tại và xây một vài SKILL.md cho quy trình thường gặp. Các tài khoản AI như Claude, ChatGPT hay các công cụ hỗ trợ workflow mà CentriX.digital cung cấp sẽ giúp bạn kích hoạt và thử nghiệm nhanh chóng.



