Spec Kit: A Smarter Way to Build Software with AI

Have you ever asked someone to help you with a project, only to get back something that looks right but isn’t quite what you wanted? That’s exactly what happens when we work with AI coding assistants today. We describe what we want, get code back, and often find ourselves saying “Well, it’s close, but…”

GitHub just released a free tool called Spec Kit that solves this problem by teaching us a better way to communicate with AI assistants. Think of it as a structured conversation method that helps both you and the AI stay on the same page.

The Problem: Why “Just Tell the AI What You Want” Doesn’t Work

Imagine you’re renovating your kitchen and you tell the contractor: “I want it to look modern and functional.” Without more details, they’ll make their best guess based on what they think “modern” and “functional” mean. The result might be beautiful, but probably won’t match your vision.

The same thing happens with AI coding assistants. When we give vague instructions like “build me a photo sharing app,” the AI has to guess at hundreds of details:

  • How should users organize their photos?
  • Can they share albums with friends?
  • Should it work on phones and computers?
  • How do they sign in?

Some guesses will be right, some won’t, and you often won’t discover the problems until much later in the process.

The Solution: Spec-Driven Development

Spec-Driven Development is like having a detailed conversation before starting any work. Instead of jumping straight into building, you:

  1. Clearly describe what you want (the “what” and “why”)
  2. Plan how to build it (the technical approach)
  3. Break it into small steps (manageable tasks)
  4. Build it step by step (focused implementation)

The magic happens because each step builds on the previous one, creating a clear roadmap that both you and the AI can follow.

How Spec Kit Makes This Easy

Spec Kit provides a simple toolkit with four phases that anyone can learn:

Phase 1: Specify – “What do you want to build?”

You describe your vision in plain language, focusing on:

  • Who will use it? (your target users)
  • What problem does it solve? (the main purpose)
  • How will people use it? (the user experience)
  • What does success look like? (your goals)

Example: Instead of “build a task manager,” you’d say:

“Build a team productivity app where project managers can assign tasks to engineers, team members can move tasks between ‘To Do,’ ‘In Progress,’ and ‘Done’ columns, and everyone can leave comments on tasks. It should be easy to see at a glance which tasks are yours versus others.”

Phase 2: Plan – “How should we build it?”

Now you get technical (but still in everyday terms):

  • What technology should we use? (website, mobile app, etc.)
  • What are the constraints? (budget, timeline, compatibility needs)
  • What are the rules? (security requirements, company standards)

Example:

“Build this as a simple web application that works in any browser. Store data locally on the user’s computer – no cloud storage needed. Keep it simple with minimal external dependencies.”

Phase 3: Tasks – “What are the specific steps?”

The AI breaks your big vision into small, manageable pieces:

  • Create user login system
  • Build the task board layout
  • Add drag-and-drop functionality
  • Implement commenting system

Each task is something that can be built and tested independently.

Phase 4: Implement – “Let’s build it!”

Your AI assistant tackles each task one by one, and you review focused changes instead of overwhelming code dumps.

Why This Approach Works Better

Traditional approach: “Build me a photo sharing app” → AI makes 1000 assumptions → You get something that’s 70% right

Spec-driven approach: Clear specification → Detailed plan → Small tasks → AI builds exactly what you described

The key insight is that AI assistants are incredibly good at following detailed instructions, but terrible at reading your mind. By being explicit upfront, you get much better results.

Getting Started with Spec Kit

Spec Kit works with popular AI coding assistants like:

  • GitHub Copilot
  • Claude Code
  • Gemini CLI

Installing and Using Spec Kit

1. Install Specify

uv tool install specify-cli –from git+https://github.com/github/spec-kit.git
specify init reading-assistant

2. Establish project principles

/constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements

3. Create the spec

/specify
GOAL
– Input: URL (or pasted text)
– Process: Fetch article → summarize (150–250 words) → generate 3–5 practice questions
– Output: Markdown with Summary, Questions, Source
– Constraint: Minimal Python CLI

4. Create a technical implementation plan

/plan
ARCHITECTURE
– Python CLI with argparse
– Modules:
• fetcher.py: download HTML
• extractor.py: parse text with BeautifulSoup
• llm.py: call OpenAI (gpt-4o-mini)
• markdown.py: render Markdown
– Flow: URL/text → fetch & extract → LLM → Markdown → stdout

DEPENDENCIES
– requests, beautifulsoup4, python-dotenv

OUTPUT FORMAT
# Summary
<summary>

# Questions
1. …
2. …

# Source
<url or ‘pasted text’>

5. Break down into tasks

/tasks
– [ ] Setup project skeleton + requirements
– [ ] Implement fetcher (requests)
– [ ] Implement extractor (BeautifulSoup)
– [ ] Implement LLM client with prompt
– [ ] Implement Markdown renderer
– [ ] Wire CLI (argparse)
– [ ] Smoke test with one URL and one pasted file
– [ ] Add README with quick start

6. Execute implementation

/implement
FILES
1) requirements.txt
requests
beautifulsoup4
python-dotenv

2) app.py
– argparse: –url, –text
– orchestrate modules and print Markdown

3) fetcher.py
– fetch_url(url) with timeout, retry

4) extractor.py
– extract_text(html) → title + paragraphs

5) llm.py
– summarize_and_ask(text) → {“summary”: str, “questions”: [str]}
– uses OPENAI_API_KEY; friendly error if missing

6) markdown.py
– render(result, source) → Markdown string

7) README.md
– Quick start instructions
– Example commands

 

Result

 

References:

https://github.com/github/spec-kit

https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/

Run MarkItDown On Local And Check The Accuracy Of Some Files Types Like PPT, Excel, Images

Link github:

https://github.com/microsoft/markitdown

git clone [email protected]:microsoft/markitdown.git

cd markitdown

pip install -e packages/markitdown

git clone git@github.com:microsoft/markitdown.git

Now try it

First I try it with this PDF document

PDF document

Then, this is result


It looks good!

Then, I try it with PPTX file

This is the result. It seems to be able to get quite complete information on the slide including links, page numbers, comments, etc. but it cannot get information on images, shapes or charts.

Finally, I try it with Excel file

It seems to be able to get the content of all sheets. However it takes blank cells and sets the value to NaN. Also it can’t get the text on the image.

I think this output needs to be processed further if I want to use it.

Thanks for reading!

GitHub Copilot và Cursor AI: Đâu Là Trợ Lý Lập Trình AI Tốt Nhất 2025?

GitHub Copilot và Cursor AI
GitHub Copilot và Cursor AI

Trong giới lập trình ngày nay, trí tuệ nhân tạo (AI) đang dần trở thành người bạn đồng hành đáng tin cậy của các nhà phát triển. Hai trong số những trợ lý lập trình AI nổi bật hiện nay là GitHub CopilotCursor AI. Mỗi công cụ mang đến những trải nghiệm độc đáo, hỗ trợ lập trình viên viết mã hiệu quả và sáng tạo hơn. Hãy cùng khám phá và so sánh chi tiết hai trợ lý này để tìm ra lựa chọn phù hợp nhất cho bạn.

Sự phát triển của AI đã mở ra những chân trời mới trong lĩnh vực lập trình. Từ việc tự động hoàn thành mã đến gợi ý cấu trúc phức tạp, AI đang giúp lập trình viên tiết kiệm thời gian và giảm thiểu sai sót. Trong bối cảnh đó, GitHub Copilot và Cursor AI xuất hiện như những giải pháp hàng đầu, mang đến những tính năng hỗ trợ mạnh mẽ và linh hoạt.

Tổng quan về GitHub Copilot

Github Copilot
Github Copilot
  • Lịch sử phát triển và nhà phát triển

    GitHub Copilot là sản phẩm hợp tác giữa GitHub và OpenAI, ra mắt vào năm 2021. Với sự kết hợp giữa kho mã nguồn phong phú của GitHub và mô hình ngôn ngữ tiên tiến của OpenAI, Copilot nhanh chóng trở thành công cụ hỗ trợ đắc lực cho lập trình viên.

  • Các tính năng chính

    • Hoàn thành mã tự động: Copilot cung cấp gợi ý mã theo ngữ cảnh, giúp lập trình viên viết mã nhanh chóng và chính xác.

    • Hỗ trợ đa ngôn ngữ lập trình: Từ Python, JavaScript đến Ruby và Go, Copilot đáp ứng nhu cầu của nhiều lập trình viên với đa dạng ngôn ngữ.

    • Tích hợp sâu với Visual Studio Code: Copilot hoạt động mượt mà trong môi trường Visual Studio Code, mang lại trải nghiệm liền mạch cho người dùng.

  • Ưu điểm

    • Gợi ý mã chính xác và phù hợp ngữ cảnh: Dựa trên ngữ cảnh hiện tại, Copilot đưa ra các gợi ý mã phù hợp, giúp tiết kiệm thời gian và công sức.

    • Học hỏi từ cộng đồng mã nguồn mở: Với quyền truy cập vào kho mã nguồn mở khổng lồ trên GitHub, Copilot liên tục cập nhật và cải thiện khả năng gợi ý.

  • Nhược điểm

    • Gợi ý đôi khi không chính xác: Mặc dù mạnh mẽ, nhưng đôi khi Copilot có thể đưa ra các gợi ý không phù hợp hoặc lỗi thời.

    • Vấn đề về bảo mật và bản quyền: Sử dụng mã gợi ý từ Copilot có thể dẫn đến lo ngại về bản quyền và bảo mật, đặc biệt khi mã được lấy từ các nguồn không rõ ràng.

Tổng quan về Cursor AI

Cursor AI
Cursor AI
  • Giới thiệu về công cụ và nhà phát triển

    Cursor AI là một môi trường phát triển tích hợp (IDE) được tăng cường bởi AI, phát triển bởi Anysphere Inc. Được xây dựng dựa trên Visual Studio Code, Cursor mang đến trải nghiệm lập trình mới mẻ với sự hỗ trợ mạnh mẽ từ AI.  Nằm trong top 15 AI dược đề xuất mạnh nhất hiện nay

  • Các tính năng nổi bật

    • Hoàn thành mã đa dòng: Cursor có khả năng gợi ý và hoàn thành nhiều dòng mã cùng lúc, giúp tăng tốc quá trình phát triển.

    • Tạo mã tự động với Composer: Composer của Cursor có thể tạo ra toàn bộ ứng dụng dựa trên mô tả, hỗ trợ nhiều ngôn ngữ lập trình trong cùng một dự án.

    • Chức năng chat nhận biết ngữ cảnh: Tính năng chat của Cursor có khả năng hiểu ngữ cảnh và hỗ trợ cả hình ảnh, giúp lập trình viên dễ dàng tương tác và nhận gợi ý từ AI.

  • Ưu điểm

    • Tích hợp AI sâu sắc: Cursor không chỉ là một công cụ hỗ trợ mà còn là một trình soạn thảo mã với AI tích hợp, mang lại trải nghiệm liền mạch cho người dùng.

    • Khả năng tùy chỉnh cao: Người dùng có thể tùy chỉnh và mở rộng chức năng của Cursor theo nhu cầu cá nhân.

  • Nhược điểm

    • Cộng đồng người dùng còn hạn chế: So với các công cụ khác, Cursor vẫn đang trong giai đoạn phát triển và có cộng đồng người dùng nhỏ hơn.

    • Tài liệu hướng dẫn chưa phong phú: Do mới ra mắt, tài liệu và hướng dẫn sử dụng Cursor có thể chưa đáp ứng đầy đủ nhu cầu của người dùng.

So sánh chi tiết GitHub Copilot và Cursor AI

  • Hiệu suất và độ chính xác

    • GitHub Copilot: Được phát triển bởi GitHub và OpenAI, Copilot cung cấp gợi ý mã theo ngữ cảnh, giúp lập trình viên viết mã nhanh chóng và chính xác. Tuy nhiên, đôi khi Copilot có thể đưa ra các gợi ý không phù hợp hoặc lỗi thời.

    • Cursor AI: Là một môi trường phát triển tích hợp (IDE) được tăng cường bởi AI, Cursor cung cấp gợi ý mã chính xác và phù hợp với ngữ cảnh, đặc biệt hữu ích trong việc sửa lỗi và cập nhật API. Tuy nhiên, do còn mới, Cursor có thể gặp phải các gợi ý không chính xác hoặc không đầy đủ.

  • Khả năng tích hợp và hỗ trợ môi trường phát triển

    • GitHub Copilot: Tích hợp sâu với Visual Studio Code và các IDE khác như Neovim và JetBrains, hỗ trợ nhiều ngôn ngữ lập trình phổ biến, mang lại trải nghiệm liền mạch cho người dùng.

    • Cursor AI: Được xây dựng dựa trên Visual Studio Code, Cursor mang đến trải nghiệm lập trình mới mẻ với sự hỗ trợ mạnh mẽ từ AI. Tuy nhiên, do còn mới, khả năng tích hợp của Cursor có thể chưa đa dạng bằng Copilot.

  • Giá cả và mô hình kinh doanh

    • GitHub Copilot: Cung cấp gói dịch vụ với giá 10 USD/tháng hoặc 100 USD/năm cho cá nhân. Các sinh viên và chủ sở hữu dự án mã nguồn mở nổi bật có thể được sử dụng miễn phí.

    • Cursor AI: Hiện tại, Cursor cung cấp phiên bản miễn phí và phiên bản Pro với giá 20 USD/tháng, mang lại hiệu năng và tính năng vượt trội.

Bảng so sánh GitHub Copilot và Cursor AI

Tiêu chí GitHub Copilot Cursor AI
Độ chính xác Gợi ý mã chính xác theo ngữ cảnh, nhưng đôi khi lỗi thời Gợi ý chính xác, hỗ trợ tốt trong sửa lỗi và cập nhật API
Khả năng tích hợp Hỗ trợ Visual Studio Code, Neovim, JetBrains, v.v. Dựa trên Visual Studio Code, nhưng tích hợp chưa đa dạng
Hiệu suất Nhanh, nhưng đôi khi đưa ra mã không tối ưu Gợi ý tối ưu hơn trong một số trường hợp
Ngôn ngữ lập trình Hỗ trợ nhiều ngôn ngữ phổ biến Chủ yếu hỗ trợ JavaScript, Python và một số ngôn ngữ khác
Khả năng tự học Học từ dữ liệu mã nguồn mở trên GitHub Sử dụng AI để học từ code người dùng
Giá cả 10 USD/tháng hoặc 100 USD/năm (miễn phí cho sinh viên, dự án mã nguồn mở) 20 USD/tháng cho bản Pro, có bản miễn phí
Đối tượng phù hợp Lập trình viên muốn một công cụ ổn định, nhiều tính năng Những ai thích thử nghiệm môi trường phát triển mới
Hạn chế Đôi khi gợi ý mã cũ, chưa tối ưu Chưa phổ biến bằng Copilot, có thể gặp lỗi nhỏ

Kết luận

Cả  GitHub Copilot và Cursor AI đều là những trợ lý lập trình AI mạnh mẽ, mang lại nhiều lợi ích cho lập trình viên. Nếu bạn đang tìm kiếm một công cụ đã được kiểm chứng, tích hợp tốt với nhiều IDE và có cộng đồng người dùng rộng rãi, GitHub Copilot là lựa chọn phù hợp. Ngược lại, nếu bạn muốn trải nghiệm một môi trường phát triển tích hợp với AI, cung cấp các tính năng tiên tiến và không ngại thử nghiệm công cụ mới, Cursor AI đáng để xem xét. Việc lựa chọn giữa hai công cụ này phụ thuộc vào nhu cầu cụ thể và ngân sách của bạn.