Khuyến nghị Skill: Dùng Superpowers để thêm một quy trình cho Agent lập trình
Giới thiệu dự án obra/superpowers dành cho Skill / Plugin của Agent lập trình, mô tả cách nó biến việc làm rõ yêu cầu, thiết kế đặc tả, lập kế hoạch triển khai và quy trình TDD thành quy trình làm việc AI có thể tái sử dụng.
1. Vì sao nên tìm hiểu Superpowers
Gần đây tôi đọc về Claude Skill, Codex Skill, MCP và quy trình làm việc của Agent, thấy có một dự án rất thú vị: obra/superpowers.
Nó không phải là bộ prompt thuần túy, cũng không phải một bộ khung (scaffold) thông thường, mà là đóng gói một phương pháp phát triển phần mềm thành Skill / Plugin mà Agent có thể tự động gọi. Ý tưởng cốt lõi của nó là: đừng để Agent lập trình vội vàng viết code ngay lập tức; trước tiên hãy làm rõ mục tiêu, sắp xếp đặc tả, lên kế hoạch triển khai, rồi mới vào quy trình phát triển có kiểm soát hơn.
Điều này rất đáng để tham khảo. Vì nhiều người khi dùng Claude Code, Codex hoặc Cursor, vấn đề lớn nhất không phải là mô hình không biết viết code, mà là mô hình quá dễ “là làm ngay”. Khi yêu cầu chưa được nói rõ, ranh giới chưa được xác định, test chưa chuẩn bị, code đã bị sửa đổi hàng loạt.
Superpowers đúng là đang giải quyết đúng vấn đề đó.
2. Nó cơ bản là gì
Theo README của dự án, Superpowers là một phương pháp phát triển phần mềm hướng tới Agent lập trình, được xây dựng trên một tập kỹ năng (Skills) có thể phối hợp và các chỉ dẫn khởi tạo, nhằm đảm bảo Agent sử dụng đúng các quy trình này vào thời điểm phù hợp.
Có thể hiểu nôm na: nó đã cho trợ lý lập trình AI thêm một “kỷ luật kỹ thuật”.
Nó không chỉ giới hạn trong Claude Code. Theo thông tin công khai, dự án này cũng hỗ trợ cài đặt cho Codex CLI, Codex App, Gemini CLI, OpenCode, Cursor, GitHub Copilot CLI và các công cụ/Agent lập trình khác.
Nói cách khác, trọng tâm của nó không phải là một mô hình cụ thể, mà là “làm việc thế nào khi Agent viết code”.
3. Skill đóng vai trò gì ở đây
(Nếu bạn chưa rõ Skill là gì, có thể đọc trước bài «Giới thiệu chuyên đề Skill: Từ prompt đến quy trình AI tái sử dụng».)
Anthropic định nghĩa Agent Skills như sau: Skill là một năng lực mô-đun hóa, có thể mở rộng chức năng cho Claude; mỗi Skill sẽ gói theo mô tả, metadata, và các tài nguyên tùy chọn như script, template… Claude sẽ tự động sử dụng trong các nhiệm vụ liên quan.
OpenAI cũng có cách nói tương tự: Skill là quy trình có thể tái sử dụng, có thể chia sẻ, giúp ChatGPT hoặc Codex hoàn thành một loại nhiệm vụ ổn định hơn; nó có thể chứa hướng dẫn, ví dụ và mã.
Vì vậy, theo tôi, Skill không chỉ là “prompt dài hơn”.
Nói chính xác hơn, đó giống như một gói quy trình nhỏ:
my-skill/
├── SKILL.md
├── scripts/
├── references/
└── assets/Trong đó:
SKILL.mdthường là file vào, chứa mô tả Skill, điều kiện kích hoạt và quy tắc thực thi;scripts/có thể chứa script thực thi để xử lý các tác vụ lặp lại, chính xác hoặc lập trình hóa;references/có thể chứa tài liệu tham khảo, quy chuẩn, kho tri thức;assets/có thể chứa template, ví dụ, tài nguyên.
Mỗi nền tảng có thể có khác biệt nhỏ về chi tiết thư mục, nhưng tư duy chung giống nhau: tách “cách làm việc” ra khỏi cuộc trò chuyện đơn lẻ, biến nó thành đơn vị có thể tái sử dụng, cài đặt và phối hợp.
Giá trị của Superpowers nằm ở đây. Nó không chỉ nói với mô hình “hãy viết code cẩn thận”, mà là viết quy trình “đầu tiên làm rõ → sau đó thiết kế → rồi lập kế hoạch → rồi triển khai → rồi xác thực” thành cấu trúc mà Agent có thể tuân thủ lặp lại được.
4. Đặc điểm quy trình của nó
Theo mô tả trong README, quy trình của Superpowers có thể tóm lược thành vài bước.
1. Trước hết, phải hỏi rõ mục tiêu
Khi Agent phát hiện người dùng muốn xây thứ gì đó, nó không lập tức bắt tay vào viết code, mà lùi lại một bước và hỏi lại để nắm đúng cái người dùng thực sự muốn làm.
Bước này trông có vẻ đơn giản nhưng cực kỳ quan trọng.
Nhiều sự cố trong AI coding là do yêu cầu chưa được xác định rõ. Mô hình bù đắp theo phỏng đoán của riêng nó, rồi logic nghiệp vụ trông có vẻ đầy đủ nhưng thực tế lại lệch khỏi điều người dùng thật sự mong muốn.
2. Hình thành đặc tả dễ đọc
Sau khi làm rõ yêu cầu, Agent sẽ trình bày đặc tả theo từng cụm để người dùng có thể đọc hết và xác nhận.
Cách này thực dụng hơn việc sinh ra một khối dài toàn nội dung đặc tả một lần. Vì khi đặc tả quá dài, người dùng thường không đọc kỹ; khi quá ngắn lại dễ thiếu điều kiện biên.
3. Lập kế hoạch triển khai
Khi người dùng đã xác nhận thiết kế, Agent sẽ tổng hợp một kế hoạch triển khai. README của dự án nhấn mạnh rằng kế hoạch cần đủ rõ, đủ mức độ cụ thể để cả một kỹ sư mới vào nghề, thiếu bối cảnh vẫn có thể làm theo.
Tiêu chuẩn này rất gợi mở.
Vì quy trình AI tốt thật sự không phải là để mô hình “hoàn thành nhiệm vụ theo cảm tính”, mà để nhiệm vụ có thể tách nhỏ, kiểm tra, bàn giao và tổng kết.
4. Nhấn mạnh TDD, YAGNI và DRY
Superpowers nhấn mạnh rõ ràng phát triển hướng kiểm thử (TDD), YAGNI và DRY.
Ý nghĩa của các thuật ngữ này là:
TDD: viết test trước, rồi mới triển khai tính năng, ít nhất phải có vòng phản hồi có thể xác minh;YAGNI: không triển khai trước các tính năng chưa cần đến ngay;DRY: không lặp lại cùng một logic.
Điều này đặc biệt quan trọng với Agent coding. Mô hình rất giỏi “viết quá nhiều thứ”, nhưng chưa chắc giỏi quyết định thứ gì lúc này chưa hề nên viết.
5. Điều tôi học được cho việc viết Skill
Theo tôi, phần đáng học nhất của Superpowers không phải một lệnh cụ thể, mà là cách nó định vị Skill.
Nhiều người viết Skill dễ dừng lại ở câu kiểu:
Bạn là một kỹ sư cấp cao, hãy phân tích kỹ yêu cầu và viết code chất lượng cao.Cách này có ích, nhưng chưa đủ.
Một Skill tốt hơn nên dạy Agent:
Khi nào nên khởi động quy trình này;
phải thu thập thông tin nào trước;
vào trường hợp nào bắt buộc phải dừng lại để xác nhận;
làm thế nào để tạo đặc tả;
làm thế nào để tách task;
làm thế nào để kiểm chứng kết quả;
những việc nào không nên làm.Nói cách khác, Skill không chỉ là “thiết lập vai trò”, mà là “quy chuẩn hành động”.
Với quy trình làm việc AI của tôi, điều này rất quan trọng. Chẳng hạn khi tôi sinh bài cho website, thu thập các ví dụ phong trào tên, biên tập nội dung mệnh lý, bắt thỏơng tin AI..., tất cả đều có thể tách thành cấu trúc tương tự:
Ràng buộc đầu vào → Kiểm tra thông tin → Sắp xếp cấu trúc → Sinh nội dung → Quy tắc tự kiểm tra → Xuất tệpNếu các quy tắc này luôn được viết trong prompt thì sẽ rất dài và dễ sót. Chuyển chúng thành Skill mới gần với một quy trình sản xuất có thể tái sử dụng hơn.
6. Khác biệt giữa Skill và MCP
Ở đây cũng nhân tiện phân biệt Skill và MCP.
MCP, hay Model Context Protocol, theo tài liệu chính thức được mô tả là một tiêu chuẩn mở kết nối ứng dụng AI với hệ thống ngoài. Qua MCP, các ứng dụng AI như Claude, ChatGPT có thể kết nối đến file cục bộ, cơ sở dữ liệu, công cụ tìm kiếm, máy tính hoặc các quy trình làm việc khác.
Nói gọn:
Skill giống như “cách làm việc”;
MCP giống như “có thể kết nối công cụ và dữ liệu nào”.Hai thứ có thể phối hợp với nhau.
Ví dụ, một “Skill xuất bản bài viết” có thể quy định kiểm tra bài, frontmatter, mô tả SEO, định dạng nguồn tham khảo; còn MCP giúp Agent truy cập GitHub, file system, database hoặc dịch vụ tìm kiếm. Skill quản lý quy trình; MCP quản lý năng lực kết nối.
Đây cũng là lý do tôi ngày càng chú trọng Skill hơn: MCP giải quyết vấn đề cổng vào công cụ, Skill giải quyết vấn đề phương pháp làm việc. Chỉ có công cụ, Agent vẫn dễ đi sai hướng; chỉ có phương pháp mà không có công cụ thì Agent lại khó triển khai thật.
7. Học tập được, không thần thánh hóa
Superpowers rất phù hợp để tham khảo, nhưng không cần thần thánh hóa.
Nó giống như một lập trình viên dày dạn kinh nghiệm đã đóng gói thói quen làm việc, phán đoán kỹ thuật và quy trình phối hợp của mình thành chuẩn mà Agent có thể thực thi. Với dự án cá nhân, giá trị của nó nằm ở việc nhắc ta rằng AI coding không phải “để mô hình viết code nhanh nhất có thể”, mà là “để mô hình tiến dần nhiệm vụ theo quy trình đáng tin cậy”.
Nếu chỉ viết một script nhỏ, có thể không cần quy trình nặng như vậy. Nhưng nếu là website duy trì dài hạn, hệ thống tự động hóa, pipeline tạo nội dung, dự án database thì tư duy Skill kiểu này rất có giá trị.
Nếu sau này tôi tiếp tục viết Skill của riêng mình, tôi sẽ thiên về hướng này hơn: ít viết khẩu hiệu chung chung, viết rõ điều kiện kích hoạt, đầu vào/đầu ra, checklist kiểm tra, cấu trúc thư mục, ràng buộc lệnh và cách xử lý lỗi.
Đó mới là nơi Skill thực sự hữu ích.
Câu hỏi thường gặp
Superpowers là gì?
obra/superpowers là một dự án Skill / Plugin hướng đến Agent lập trình, đóng gói các phương pháp phát triển phần mềm như làm rõ yêu cầu, thiết kế đặc tả, lập kế hoạch triển khai và TDD thành quy trình làm việc có thể tái sử dụng mà Agent có thể gọi tự động. Ý tưởng cốt lõi là “đừng để Agent vừa mới khởi động đã viết code ngay”.
Superpowers chỉ dùng được với Claude Code không?
Không. Theo thông tin công khai, nó cũng cung cấp cách cài đặt cho Codex CLI, Codex App, Gemini CLI, OpenCode, Cursor, GitHub Copilot CLI và các Agent/công cụ lập trình khác, tập trung vào “Agent nên làm việc thế nào khi viết code” thay vì gắn vào một mô hình cụ thể.
Skill và MCP khác gì nhau?
Skill giống như “cách làm việc” (quy trình và phương pháp), MCP (Model Context Protocol) giống như “có thể kết nối công cụ và dữ liệu gì” (kết nối bên ngoài). Hai phần có thể phối hợp: Skill quản quy trình, MCP quản khả năng kết nối.
Core workflow của Superpowers là gì?
Nhìn chung là: trước hết hỏi rõ mục tiêu → tạo đặc tả đủ rõ để người dùng đọc và xác nhận → lập kế hoạch triển khai rõ đến mức một kỹ sư mới vào nghề cũng làm được → nhấn mạnh TDD, YAGNI, DRY để nhiệm vụ có thể tách nhỏ, kiểm tra, và tổng kết lại.
Nguồn tham khảo
Share