🔬 Nghiên cứu 🌱 Mới trồng 17 tháng 8, 2026 Trồng 17 thg 8

github/spec-kit

📦 github/spec-kit ⭐ 129k Mở trên GitHub ↗

💫 Toolkit to help you get started with Spec-Driven Development

Kết luận: partial · Công nghệ: spec-driven-development · prd · ai-workflow · copilot · developer-tooling

github/spec-kit là bộ công cụ hỗ trợ Spec-Driven Development, tập trung vào việc biến yêu cầu/PRD thành đặc tả rõ ràng để AI hoặc dev triển khai nhất quán hơn. Với quy mô rất lớn (128625 sao) và chủ đề gắn với ai, copilot, prd, repo này phù hợp như một tooling + quy trình để chuẩn hóa cách viết spec, giảm mơ hồ và cải thiện handoff giữa sản phẩm, kỹ thuật và agent.

📖 Giới thiệu chi tiết

🧩 Nó là gì?

github/spec-kit là một bộ công cụ mã nguồn mở giúp bạn làm Spec-Driven Development: viết rõ “cần xây cái gì” trước, rồi mới để dev hoặc AI coding agent triển khai. Nói đơn giản: nó biến ý tưởng/PRD/yêu cầu mơ hồ thành spec, plan và task rõ ràng để làm phần mềm ít lệch hướng hơn.

🎯 Giải quyết vấn đề gì? Dành cho ai?

github/spec-kit giải quyết một vấn đề rất quen thuộc: mọi người tưởng là đã hiểu yêu cầu, nhưng khi bắt tay code thì mỗi người hiểu một kiểu.

Nó đặc biệt hữu ích cho:

  • Product manager muốn biến ý tưởng hoặc PRD thành yêu cầu rõ ràng hơn.
  • Developer muốn có đầu bài chắc chắn trước khi code.
  • Team dùng AI coding agent như GitHub Copilot, Codex CLI hoặc các agent khác để tránh AI “tự đoán lung tung”.
  • Tech lead muốn chuẩn hóa cách team viết spec, lập kế hoạch và chia task.
  • Tổ chức lớn cần một quy trình chung để handoff giữa product, engineering và AI agent mượt hơn.

Thay vì bắt đầu bằng code, github/spec-kit khuyến khích bạn bắt đầu bằng câu hỏi: “Chúng ta thật sự muốn xây cái gì, vì sao, và tiêu chí hoàn thành là gì?”

⚙️ Hoạt động ra sao?

Cơ chế chính của github/spec-kit xoay quanh một quy trình có cấu trúc:

  • Cài Specify CLI, công cụ dòng lệnh dùng để khởi tạo dự án theo quy trình Spec-Driven Development.
  • Chạy specify init để tạo cấu trúc spec-kit trong project và kết nối với AI coding agent bạn chọn.
  • Dùng /speckit.constitution để tạo “nguyên tắc làm việc” cho dự án, ví dụ tiêu chuẩn code, testing, hiệu năng, trải nghiệm người dùng.
  • Dùng /speckit.specify để mô tả tính năng theo hướng “cần gì” và “vì sao cần”, chưa vội bàn sâu về công nghệ.
  • Dùng /speckit.plan để chuyển spec thành kế hoạch kỹ thuật: stack, kiến trúc, cách lưu dữ liệu, ràng buộc triển khai.
  • Dùng /speckit.tasks để chia kế hoạch thành danh sách việc cụ thể, có thể giao cho người hoặc AI làm.
  • Dùng /speckit.implement để AI coding agent triển khai dựa trên spec, plan và tasks đã chuẩn bị.
  • Có thêm các lệnh hỗ trợ như /speckit.clarify, /speckit.analyze, /speckit.checklist, /speckit.converge để làm rõ yêu cầu, kiểm tra độ nhất quán và tìm phần còn thiếu.

Hiểu ngắn gọn: github/spec-kit không chỉ là một tool cài vào máy, mà là một “đường ray” giúp dự án đi từ ý tưởng → spec → plan → tasks → code.

🆚 Khi nào nên dùng / không nên

Nên dùng github/spec-kit khi:

  • Bạn dùng AI coding agent để viết code và muốn AI làm đúng ý hơn.
  • Tính năng có nhiều chi tiết, nhiều người liên quan hoặc dễ hiểu nhầm.
  • Bạn muốn lưu lại quyết định sản phẩm/kỹ thuật thay vì chỉ trao đổi miệng.
  • Team cần quy trình rõ ràng để review yêu cầu trước khi code.
  • Bạn đang làm sản phẩm dài hạn, cần spec sống cùng codebase.

Có thể chưa cần dùng khi:

  • Bạn chỉ viết script nhỏ, prototype rất nhanh hoặc thử nghiệm trong vài phút.
  • Yêu cầu cực kỳ đơn giản và chỉ có một người làm.
  • Team chưa sẵn sàng viết spec hoặc không muốn thêm bước vào quy trình.
  • Bạn kỳ vọng tool tự hiểu mọi thứ và tự làm đúng 100% mà không cần mô tả rõ.

So với cách “prompt thẳng cho AI rồi để nó code”, github/spec-kit chậm hơn một chút lúc đầu, nhưng đổi lại ít mơ hồ hơn. So với viết tài liệu thủ công trong Google Docs/Notion, nó gần với quá trình triển khai hơn vì spec, plan và tasks được thiết kế để AI coding agent sử dụng trực tiếp.

🚀 Bắt đầu nhanh

Các bước tối thiểu để thử github/spec-kit:

  1. Cài uv nếu máy bạn chưa có.
  2. Cài Specify CLI.
  3. Khởi tạo project với AI coding agent bạn dùng.
  4. Tạo nguyên tắc dự án.
  5. Viết spec.
  6. Tạo plan.
  7. Sinh tasks.
  8. Triển khai.

Ví dụ tối thiểu:

# Cài Specify CLI từ PyPI
uv tool install specify-cli

# Hoặc cài từ GitHub theo release cụ thể
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z

# Tạo project mới, ví dụ dùng GitHub Copilot
specify init my-project --integration copilot

cd my-project

Sau đó mở AI coding agent trong thư mục project và chạy các lệnh:

/speckit.constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements
/speckit.specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.
/speckit.plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
/speckit.tasks
/speckit.implement

Một vài lệnh hữu ích khác:

# Xem các integration có sẵn
specify integration list

# Kiểm tra có bản mới không
specify self check

# Xem trước quá trình upgrade
specify self upgrade --dry-run

# Upgrade Specify CLI
specify self upgrade

Lưu ý nhỏ: phần lớn agent dùng dạng lệnh /speckit.*, nhưng Codex CLI và Command Code trong skills mode dùng dạng $speckit-*. GitHub Copilot CLI có thể dùng /agents để chọn agent hoặc gọi trực tiếp trong prompt.

✅ Điểm mạnh & ⚠️ Hạn chế

Điểm mạnh:

  • Giúp yêu cầu rõ ràng hơn trước khi code, giảm cảnh “AI/dev hiểu sai ý”.
  • Phù hợp với nhiều AI coding agent, không bị khóa vào một công cụ duy nhất.
  • Có quy trình đầy đủ từ nguyên tắc dự án, spec, plan, tasks đến implement.
  • Hữu ích cho team vì spec trở thành tài sản chung, không chỉ là ghi chú tạm thời.
  • Có thể mở rộng bằng extensions, presets và project-local overrides.
  • Rất phù hợp khi làm việc với PRD, sản phẩm nhiều yêu cầu hoặc dự án cần chuẩn hóa.

Hạn chế:

  • Cần đầu tư thời gian viết spec ban đầu, không nhanh bằng việc prompt thẳng để AI code.
  • Chất lượng đầu ra vẫn phụ thuộc vào việc bạn mô tả yêu cầu có rõ hay không.
  • Người mới có thể cần làm quen với các lệnh như /speckit.specify, /speckit.plan, /speckit.tasks.
  • Không thay thế hoàn toàn review của con người, đặc biệt với kiến trúc, bảo mật và logic nghiệp vụ quan trọng.
  • Với task rất nhỏ, quy trình này có thể hơi “nặng đô”.
  • Một số phần như extensions, presets hoặc nhiều integration nâng cao có thể chưa cần thiết ở giai đoạn mới bắt đầu.