Featured image of post Superpowers: Quy Trình Dạy Agents AI Thành Người Kỉ Luật

Superpowers: Quy Trình Dạy Agents AI Thành Người Kỉ Luật

Superpowers bắt agents chậm lại, hỏi câu hỏi, viết kế hoạch, test trước. Kết quả: code chậm hơn lúc đầu, nhưng lại đáng tin cậy hơn nhiều.

⚡ TL;DR

  • Nó giải quyết gì: AI agents thường vội vàng code trước khi hiểu vấn đề; Superpowers buộc chúng phải dừng lại
  • Tại sao quan trọng: Chậm lúc đầu, nhưng ít rework hơn sau vì agent phải lập kế hoạch, test, review như người lớn
  • Dùng cho ai: Người dùng Claude Code, Cursor, Codex hay OpenCode, muốn AI giúp mà không biến repo thành bãi rác
  • Khác biệt chính: Nó không phải prompt pack thêm một cái. Nó là một quy trình đầy đủ với các skill bắt buộc và checkpoint

Superpowers: Quy Trình Dạy Agents AI Thành Người Kỉ Luật

Phần 1: Nền Tảng — Mô Hình Tư Duy

Lần đầu tiên tôi để cho một AI agent làm việc tự do, nó cảm thấy như phép thuật.

Tôi yêu cầu một tính năng. Nó cho tôi năm cái. Code nó compile. Tests pass. Lúc đó tôi cảm thấy mình thông minh.

Rồi hóa đơn đến. Code là để cả những trường hợp tôi không bao giờ yêu cầu, abstractions mà không ai cần, tests làm ra cho bận rộn. Mọi thứ có ở đó. Chỉ có cái judgment bị thiếu.

Điều nguy hiểm của AI tools là khi chúng sai, chúng sai ở tốc độ cao độ. Chúng không chỉ hiểu lầm bạn. Chúng hiểu lầm bạn với tấc độ nhanh hơn bạn kịp nói “không”.

Mấy lần sau, tôi nhận ra vấn đề không phải trí thông minh. Vấn đề là sự vội vàng.

Hình dung hai người thợ xây. Cái thứ nhất nghe bạn nói “tôi cần một cái kệ,” rồi lập tức lấy cưa. Cái thứ hai hỏi kệ này sẽ đặt ở đâu, chịu trọng lượng bao nhiêu, tường có bê tông hay không, bạn còn cần kệ hay chỉ cần cái hộp có cửa.

Người thợ thứ nhất cảm thấy nhanh. Người thợ thứ hai cảm thấy bàn tán. Cho đến sáu tháng sau, khi cái kệ vẫn còn trên tường.

Đó là cái tôi gọi là mô hình tư duy của Superpowers. Nó không phải một cái búa lớn hơn cho agent của bạn. Nó là thói quen hỏi mấy câu hơi chán trước khi tạo ra một mớ hỗn độn.

Superpowers biến agent thành người thợ thứ hai. Tưởng tượng trước. Lập kế hoạch sau. Test trước khi code. Review trước khi vui mừng. Không có ý tưởng nào mới ở đây. Chính vì vậy mà nó quan trọng.


Phần 2: Mổ Xẻ — Bên Trong Thực Ra Có Gì

Khi tôi nhìn vào repository, cái đầu tiên gây chú ý là nó chẳng cố gắng để ấn tượng ai cả.

Không có lý thuyết lớn nào ẩn dưới sàn nhà. Ý tưởng cơ bản rất đơn giản: nếu agent sắp làm công việc thực sự, nó phải tự động gọi đúng skill và tuân theo một quy trình. Không phải “có thể”. Không phải “nếu nó cảm thấy vậy”. Tự động.

Ở mức cao nhất, quy trình trông như thế này:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Yêu Cầu Từ Developer
1. Brainstorming
   └─ làm rõ bạn thực sự muốn gì
   └─ so sánh các lựa chọn khác
   └─ được duyệt thiết kế
2. Git worktrees
   └─ tách công việc thành nhánh riêng
   └─ xác minh baseline sạch
3. Viết kế hoạch
   └─ chia thành các task cụ thể nhỏ
   └─ định nghĩa đúng các files và cách xác minh
4. Subagent-driven development
   └─ context mới cho mỗi task
   └─ review so với spec và code quality
5. Test-Driven Development
   └─ red, green, refactor
   └─ không code trước khi test fail
6. Code review
   └─ chặn khi công việc bị sai
7. Kết thúc nhánh
   └─ xác minh tests
   └─ merge, PR, giữ, hoặc loại bỏ

Nghe có vẻ sáo rỗng. Nó sáo rỗng thực sự. Hầu hết những thói quen kỹ thuật tốt đều sáo rỗng.

Repository được tổ chức xung quanh những thói quen đó. Có skills cho brainstorming, viết kế hoạch, thực thi kế hoạch, TDD, code review, debugging, worktrees, và kết thúc nhánh. Cũng có đường cài đặt cho các hệ thống agents khác nhau: Claude Code, Cursor, Codex, OpenCode, Gemini CLI. Chi tiết triển khai khác nhau từng platform, nhưng thái độ cơ bản vẫn như vậy.

Cái tôi thích nhất là không có lãng mạn. Superpowers không bán cho bạn cái tưởng tượng. Nó giả định agent sẽ trôi nếu để một mình, nên nó đặt ray trên đường.

Điều này hiếm hơn nó nên là. Thế giới phần mềm yêu thích những tool hứa làm cho ta cảm thấy mạnh. Hiếm hơn nhiều là những tool lịch sự bắt ta hành động đúng đắn.


Phần 3: Thực Tế — Khác Gì Không Có Nó

Cách dễ nhất để hiểu Superpowers không phải đọc phần triết học của nó. Nó là so sánh những gì xảy ra trước và sau khi kỉ luật bước vào phòng.

1. Yêu cầu không rõ ràng trở thành yêu cầu nhỏ hơn, rõ ràng hơn

Không có Superpowers:

1
2
3
4
5
User: "Thêm user authentication"
Agent: bắt đầu code ngay

Một giờ sau bạn có login, password reset, token rotation,
ba abstractions, và một helper lạ mà không ai yêu cầu.

Với Superpowers:

1
2
3
4
5
6
7
8
User: "Thêm user authentication"
Agent hỏi trước:
  - mật khẩu cục bộ hay OAuth?
  - sessions hay tokens?
  - bạn cần flow reset ngay, hay sau?
  - có rate limit trên login attempts không?

Chỉ sau đó nó mới viết design và tiếp tục.

Nghe chậm chỉ nếu bạn chưa bao giờ phải xóa code. Xóa code thường là phần đắt nhất.

2. Những task lớn sợ hãi trở thành những task nhỏ chán

Không có Superpowers:

1
2
3
4
5
Kế hoạch: "Thực hiện user authentication"
Agent code cho đến khi cảm thấy xong.

Nay tests, schema, routes, và middleware đều vướng víu,
cái là một cách nói khác là ngày mai sẽ khó chịu.

Với Superpowers:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Task 1: tạo User model
  files: danh sách đúng các files
  verify: lệnh đúng để xác minh

Task 2: tạo POST /auth/login
  files: danh sách đúng các files
  verify: lệnh đúng để xác minh

Task 3: đặt JWT trong httpOnly cookie
  files: danh sách đúng các files
  verify: lệnh đúng để xác minh

Lúc đầu cái này thấy khó chịu. Rồi bạn nhận ra khó chịu là tốt. Kế hoạch nên nhạt dị đến mức hầu hết mọi người có thể thực hiện nó mà không cần improvise. Improvisation là nơi nhiều AI agents trở thành nghệ sĩ, và codebases hiếm khi cần thêm nghệ sĩ.

3. Tests từ trang trí trở thành công cụ thực sự

Không có Superpowers:

1
2
3
4
5
6
7
8
Agent viết code trước:
  function validateEmail(email) {
    return email.includes("@");
  }

Email xấu thoát qua.
Sau này ai đó phát hiện nó trong production,
đó là nơi đắt nhất để học gì cũng được.

Với Superpowers (TDD enforcement):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Agent viết test trước:
  test("rejects emails with multiple @", () => {
    expect(validateEmail("foo@[email protected]")).toBe(false);
  })

Rồi mới viết đủ code để pass:
  function validateEmail(email) {
    const parts = email.split("@");
    return parts.length === 2 && parts[0].length > 0 && parts[1].length > 0;
  }

Không có điều này hoa lệ. Cũng như bảo hiểm. Cả hai trở thành thú vị ngay sau khi có chuyện đó xảy ra.

Thread chung xuyên suốt ba tình huống là đơn giản: Superpowers giảm lượng giả vờ. Agent giả vờ ít hơn rằng nó hiểu. Giả vờ ít hơn rằng task mù mờ là rõ ràng. Giả vờ ít hơn rằng code chưa test là an toàn.


Phần 4: Bắt Đầu Như Thế Nào

Superpowers là cho những người đã bị ấn tượng bởi AI coding tools, và bây giờ sẵn sàng cho một tham vọng nhạt dị hơn: họ muốn code mà họ có thể sống chung.

Cài đặt: 2 Phút

Chọn platform của bạn:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Claude Code (Official Marketplace - Dễ nhất)
/plugin install superpowers@claude-plugins-official

# Cursor Agent
/add-plugin superpowers

# Codex
Lấy và tuân theo: https://raw.githubusercontent.com/obra/superpowers/main/.codex/INSTALL.md

# OpenCode
Lấy và tuân theo: https://raw.githubusercontent.com/obra/superpowers/main/.opencode/INSTALL.md

# Gemini CLI
gemini extensions install https://github.com/obra/superpowers

Lần Đầu Làm Việc Thực

Đừng bắt đầu với “hello world.” Cho nó một cái gì đó hơi khó chịu. Đó là nơi workflows tiết lộ chính mình.

  1. Yêu cầu một tính năng nhỏ nhưng thực, cái gì như user registration với password validation.
  2. Để ý agent không nhảy ngay vào code.
  3. Để nó hỏi câu hỏi, tạo design, tạo worktree, viết kế hoạch, rồi execute thành từng phần nhỏ.
  4. Đọc kế hoạch trước khi đọc code.

Phần cuối cùng quan trọng. Với Superpowers, kế hoạch thường là sản phẩm thực sự. Một khi kế hoạch rõ ràng, việc triển khai trở nên ít bí ẩn hơn nhiều.

Một Điều Cần Biết

Superpowers chậm lúc đầu. Đó không phải lỗi. Câu hỏi mất thời gian. Kế hoạch mất thời gian. Tests mất thời gian. Review mất thời gian. Nếu bạn chỉ quan tâm đến mười lăm phút đầu, cái này sẽ làm phiền bạn.

Nhưng tốc độ là một thứ lạ lùng trong phần mềm. Nhiều quyết định nhanh chỉ là những khoản nợ chuyển động với vận tốc cao vào tương lai. Nếu quy trình giúp bạn tránh một cái cuối tuần dọn dẹp, nó đã trả hết chi phí của mình.

Tại Sao Nó Lại Quan Trọng

Superpowers là cho khoảnh khắc khó chịu đó khi code do AI tạo trông xong rồi, nhưng bạn không hoàn toàn tin tưởng nó. Có thể bạn không giải thích được tại sao. Thường là bản năng của bạn đúng.

Thay vì hỏi, “Làm sao để agent nhanh hơn nữa?” nó hỏi một câu yên tĩnh hơn: nếu agent phải theo những thói quen nhạt dị mà những kỹ sư tốt đã làm rồi thì sao?

Câu trả lời không phải danh vọng. Câu trả lời là ít hối tiếc hơn.

Bạn sẽ không đánh giá cao kỉ luật khi mọi thứ diễn ra tốt. Bạn đánh giá cao nó khi bạn quay lại code một tháng sau và, đến sự ngạc nhiên, nó vẫn còn có ý nghĩa.


Pro Tips

Tip 1: Đừng vội vàng bước brainstorming Cách code lãng phí nhất được sinh ra từ chắc chắn sớm.

Tip 2: Đọc kế hoạch trước khi ngưỡng mộ code Tư duy nhập nhằng thường ẩn dưới cú pháp đẹp.

Tip 3: TDD cảm thấy chậm chỉ trước bug đầu tiên Sau bug thực sự đầu tiên, nó cảm thấy gần như từ thiện.

Tip 4: Commits nhỏ là một hình thức tốt bụng với người tương lai của bạn Tương lai của bạn thường mệt và hơi bực bội. Cố gắng giúp đó là người.


Sẵn sàng thử? Cài đặt tại đây: github.com/obra/superpowers | Tham gia cộng đồng: Discord


Đọc Thêm

  • Phương pháp: Superpowers for Claude Code của Jesse Vincent
  • Đóng góp Skills: Fork repo và tuân theo skill writing-skills để tạo workflows riêng của bạn
  • Triết học: Test-Driven Development, YAGNI (You Aren’t Gonna Need It), systematic debugging, complexity reduction
Được tạo với sự lười biếng tình yêu 🦥

Subscribe to My Newsletter