Spec Kit là gì: spec-driven development cho AI lập trình của GitHub

Spec Kit là gì, cài thế nào: bộ công cụ mã nguồn mở của GitHub giúp viết đặc tả, kế hoạch, danh sách việc trước khi để Claude Code, Copilot viết code.

AI lập trình8 phút đọc
Minh họa bốn tầng khối phát sáng xếp nối tiếp như bản thiết kế, dòng sáng chảy từ bản vẽ xuống các khối mã

Thử hình dung anh chị ra tiệm may, nói đúng một câu: "May cho tôi bộ vest thật đẹp". Không đo, không chọn vải, không hẹn ngày thử. Một tuần sau anh thợ đưa ra bộ vest màu cam, tay áo dài quá cổ tay. Đẹp thật, chỉ có điều không phải bộ anh chị cần.

Nhờ AI viết phần mềm kiểu "nói gì làm nấy" cũng y như vậy. Spec Kit là bộ công cụ mã nguồn mở của GitHub, dùng để làm phần mềm theo cách spec-driven development: viết rõ đặc tả, kế hoạch kỹ thuật và danh sách việc trước, rồi mới để AI agent viết code.

Đọc nhanh trong 30 giây

  • Spec Kit được GitHub công bố trên blog ngày 02/09/2025, giấy phép MIT.
  • Quy trình 4 bước có người duyệt: /specify (làm gì), /plan (làm bằng gì), /tasks (chia việc), rồi mới code.
  • Cài bằng một lệnh uvx ... specify init, chạy với Claude Code, GitHub Copilot hoặc Gemini CLI. Windows cần WSL2.
  • Hợp với người đặt hàng công cụ nội bộ có nghiệp vụ rõ; thừa thãi với việc sửa lặt vặt.

Spec Kit là gì, chữa bệnh gì?

Spec Kit là một bộ khung gồm công cụ dòng lệnh Specify, các mẫu tài liệu và các lệnh gạch chéo cho agent, giúp biến yêu cầu mơ hồ thành tài liệu rõ ràng mà agent bám theo được. Trong bài công bố, Den Delimarsky của GitHub gọi kiểu làm cũ là "vibe-coding": mô tả mục tiêu, nhận một khối code, trông có vẻ đúng mà không chạy hẳn.

Quay lại tiệm may. Một thợ may tử tế sẽ đo số đo trước (làm cho ai, mặc dịp gì), rồi chọn vải và kiểu cắt (công nghệ), rồi chia việc cho thợ cắt, thợ may, thợ là, cuối cùng hẹn thử áo từng lần. Spec Kit áp đúng thứ tự đó cho phần mềm, chỉ khác là "thợ" là AI.

So sánh vibe coding và spec-driven development theo từng tiêu chí

Vibe coding nhanh lúc đầu; spec-driven chậm lúc đầu, đỡ làm lại về sau.

Bốn bước của Spec Kit chạy ra sao?

Spec Kit chia việc làm phần mềm thành bốn giai đoạn, xong và kiểm tra giai đoạn này mới sang giai đoạn sau, theo bài viết của GitHub:

Giai đoạn Lệnh Anh chị đưa gì Agent tạo ra gì
Specify /specify Làm cái gì, cho ai, vì sao Đặc tả: hành trình người dùng, yêu cầu chức năng
Plan /plan Công nghệ, kiến trúc, ràng buộc Kế hoạch kỹ thuật, mô hình dữ liệu, nghiên cứu
Tasks /tasks Duyệt đặc tả và kế hoạch Danh sách việc nhỏ, mỗi việc kiểm thử riêng được
Implement Giao việc Duyệt từng thay đổi Code theo từng việc

Quy trình bốn giai đoạn của Spec Kit: Specify, Plan, Tasks, Implement, có điểm duyệt của người sau mỗi bước

Bốn trạm, mỗi trạm có người gật đầu mới được đi tiếp.

Spec Kit còn tạo file memory/constitution.md, tạm gọi là "hiến pháp" của dự án: những nguyên tắc nền mà mọi kế hoạch phải tuân theo. Ở tiệm may, đó là phong cách của tiệm: chỉ dùng vải cotton, đường may kép, không bao giờ dùng nút nhựa. Theo README, mỗi tính năng mới được tạo một nhánh Git riêng, ví dụ 001-create-taskify, và một thư mục đặc tả trong specs/.

Cài Spec Kit bằng một lệnh

Yêu cầu theo README ngày 02/09/2025:

  • Linux hoặc macOS, trên Windows thì dùng WSL2.
  • Một agent lập trình: Claude Code, GitHub Copilot hoặc Gemini CLI.
  • uv để quản lý gói, Python 3.11 trở lên, Git.

Các bước:

  1. Khởi tạo dự án bằng Specify, thay <PROJECT_NAME> bằng tên dự án:
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
  1. Chọn agent ngay trong lệnh nếu muốn:
specify init <project_name> --ai claude
specify init <project_name> --ai gemini
specify init <project_name> --ai copilot

Muốn khởi tạo trong thư mục đang đứng thì dùng specify init --here. Specify kiểm tra máy đã cài Claude Code hay Gemini CLI chưa; thêm --ignore-agent-tools nếu chỉ muốn lấy bộ mẫu.

  1. Vào thư mục dự án, mở agent. README ghi rằng cài đúng thì sẽ thấy ba lệnh /specify, /plan và /tasks.

Cửa sổ terminal với lệnh khởi tạo Spec Kit và ba lệnh mới trong agent

Một lệnh khởi tạo, chọn agent, thấy ba lệnh mới là xong.

Thử với công cụ quản lý yêu cầu sửa chữa tòa nhà

Bước đầu chỉ nói chuyện nghiệp vụ, chưa nhắc công nghệ:

/specify Xây công cụ cho ban quản lý tòa nhà nhận yêu cầu sửa chữa từ khách thuê.
Khách thuê gửi yêu cầu kèm ảnh, chọn mức độ khẩn. Kỹ thuật viên nhận việc,
cập nhật trạng thái Mới, Đang xử lý, Chờ vật tư, Xong. Trưởng ban xem báo cáo
số yêu cầu theo tầng và theo tuần. Chưa cần đăng nhập ở giai đoạn này.

Đọc đặc tả agent viết ra, hỏi lại chỗ thiếu: yêu cầu quá hạn thì sao, khách thuê có xem được yêu cầu của người khác không.

Mẹo

README khuyên đừng coi bản đặc tả đầu tiên là bản cuối, và nhờ agent tự rà danh sách kiểm tra trong đặc tả. Giống lần thử áo đầu: chỗ nào cộm thì nói ngay, đừng đợi may xong mới kêu.

Sau đó mới đến công nghệ:

/plan Dùng Vite, HTML, CSS, JavaScript thuần là chính. Dữ liệu lưu SQLite trên máy chủ nội bộ.
Ảnh không gửi ra dịch vụ bên ngoài.

Cuối cùng gõ /tasks để agent chia việc, rồi giao từng việc. README lưu ý agent đôi khi hăng hái thêm thành phần không ai yêu cầu, nên nhờ nó giải thích lý do và nguồn của từng thay đổi.

Nếu anh chị quan tâm các cách làm cùng tinh thần, xem thêm bài context engineering và BMAD-METHOD.

Những gì cần biết trước khi dùng

Lưu ý

  • Windows phải qua WSL2: README ngày 02/09/2025 chỉ ghi Linux, macOS hoặc WSL2. Các script đi kèm là file .sh.
  • Mới ra mắt: bản phát hành đầu tiên v0.0.1 lên GitHub ngày 22/08/2025, tới ngày công bố vẫn ở dãy 0.0.x. Lệnh và cấu trúc thư mục có thể còn đổi.
  • Tốn thời gian và token ban đầu: viết đặc tả, kế hoạch, chia việc mất nhiều lượt trao đổi hơn kiểu nhờ AI viết thẳng. Tài liệu không nói về chi phí cụ thể.
  • Agent chạy lệnh trên máy: README nhắc agent sẽ chạy các lệnh dòng lệnh như dotnet ở bước code. Nên làm trong thư mục dự án riêng, không chạy trên máy chứa dữ liệu thật.

Nhận xét của chuyên gia

Spec Kit nói thành quy trình một điều tôi vẫn nhắc học viên trong các buổi đào tạo AI: AI viết code tốt, nhưng không đọc được ý người. Phần lớn lỗi tôi thấy ở các dự án nội bộ không nằm ở code mà ở yêu cầu thiếu: quên trường hợp quá hạn, quên phân quyền, quên ai được xem gì.

Hợp với ai: doanh nghiệp làm công cụ nội bộ có quy trình nghiệp vụ rõ, nhất là khi người đặt hàng là trưởng phòng không biết code còn người làm là một kỹ sư dùng AI. Bước /specify chính là chỗ để trưởng phòng đọc và sửa bằng ngôn ngữ nghiệp vụ. Doanh nghiệp có yêu cầu tuân thủ, bảo mật cũng hợp, vì bài viết của GitHub chỉ rõ các yêu cầu đó nên nằm trong đặc tả và kế hoạch từ đầu.

Chưa hợp với ai: việc nhỏ như sửa một script báo cáo, đổi giao diện một trang; người hoàn toàn chưa dùng terminal cũng sẽ vướng ngay bước cài uv và WSL2.

Cách bắt đầu của tôi: chọn một công cụ nội bộ nhỏ mà anh chị đã hiểu rõ nghiệp vụ, chạy trọn bốn bước một lần. Viết constitution.md với các luật của công ty: không gửi dữ liệu khách ra ngoài, giao diện tiếng Việt, có nhật ký thao tác. Rủi ro hay gặp là đặc tả viết xong rồi bỏ đó, code một đường tài liệu một nẻo; đổi yêu cầu thì sửa đặc tả trước rồi mới nhờ agent sửa code.

Một câu để nhớ: đo kỹ một lần, đỡ sửa áo mười lần.

Xem các mốc trước trong chuỗi ở dòng thời gian AI.

Câu hỏi thường gặp

Spec Kit có miễn phí không?

Có. Spec Kit là mã nguồn mở theo giấy phép MIT. Anh chị vẫn trả tiền cho agent đang dùng như Claude Code, GitHub Copilot hay hạn mức Gemini CLI.

Spec Kit dùng được với agent nào?

Theo README ngày 02/09/2025, Specify hỗ trợ Claude Code, GitHub Copilot và Gemini CLI qua tham số --ai claude, --ai copilot, --ai gemini.

Spec-driven development khác gì vibe coding?

Vibe coding là mô tả mục tiêu rồi nhận code ngay. Spec-driven development viết đặc tả, kế hoạch, danh sách việc trước và người duyệt từng bước, nên agent ít phải đoán ý.

Dùng Spec Kit trên Windows được không?

Được, qua WSL2. README ngày 02/09/2025 ghi yêu cầu hệ điều hành là Linux, macOS hoặc WSL2 trên Windows.

Nguồn: GitHub Blog, 02/09/2025.

Nguồn tham khảo: https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/

Zalo

TA-Assistant

System Online
Xin chào! Tôi là trợ lý AI của Tuấn Anh. Tôi có thể giúp gì cho bạn hôm nay?