Fix docs: update Antigravity link and add initialization example (#1748)
Fix docs: update Antigravity link and add initialization example
Update README.md
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
Co-authored-by: Manfred Riem 15701806+mnriem@users.noreply.github.com Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
🌱 Spec Kit
Build high-quality software faster.
An open source toolkit that allows you to focus on product scenarios and predictable outcomes instead of vibe coding every piece from scratch.
Table of Contents
🤔 What is Spec-Driven Development?
Spec-Driven Development flips the script on traditional software development. For decades, code has been king — specifications were just scaffolding we built and discarded once the “real work” of coding began. Spec-Driven Development changes this: specifications become executable, directly generating working implementations rather than just guiding them.
⚡ Get Started
1. Install Specify CLI
Choose your preferred installation method:
Option 1: Persistent Installation (Recommended)
Install once and use everywhere:
Then use the tool directly:
To upgrade Specify, see the Upgrade Guide for detailed instructions. Quick upgrade:
Option 2: One-time Usage
Run directly without installing:
Benefits of persistent installation:
uv tool list,uv tool upgrade,uv tool uninstall2. Establish project principles
Launch your AI assistant in the project directory. The
/speckit.*commands are available in the assistant.Use the
/speckit.constitutioncommand to create your project’s governing principles and development guidelines that will guide all subsequent development.3. Create the spec
Use the
/speckit.specifycommand to describe what you want to build. Focus on the what and why, not the tech stack.4. Create a technical implementation plan
Use the
/speckit.plancommand to provide your tech stack and architecture choices.5. Break down into tasks
Use
/speckit.tasksto create an actionable task list from your implementation plan.6. Execute implementation
Use
/speckit.implementto execute all tasks and build your feature according to the plan.For detailed step-by-step instructions, see our comprehensive guide.
📽️ Video Overview
Want to see Spec Kit in action? Watch our video overview!
🤖 Supported AI Agents
--ai kiro-cli(alias:--ai kiro)--ai generic --ai-commands-dir <path>for unsupported agents🔧 Specify CLI Reference
The
specifycommand supports the following options:Commands
initcheckgit,claude,gemini,code/code-insiders,cursor-agent,windsurf,qwen,opencode,codex,kiro-cli,shai,qodercli)specify initArguments & Options<project-name>--here, or use.for current directory)--aiclaude,gemini,copilot,cursor-agent,qwen,opencode,codex,windsurf,kilocode,auggie,roo,codebuddy,amp,shai,kiro-cli(kiroalias),agy,bob,qodercli, orgeneric(requires--ai-commands-dir)--ai-commands-dir--ai generic, e.g..myagent/commands/)--scriptsh(bash/zsh) orps(PowerShell)--ignore-agent-tools--no-git--here--force--skip-tls--debug--github-token--ai-skillsskills/directory (requires--ai)Examples
Available Slash Commands
After running
specify init, your AI coding agent will have access to these slash commands for structured development:Core Commands
Essential commands for the Spec-Driven Development workflow:
/speckit.constitution/speckit.specify/speckit.plan/speckit.tasks/speckit.implementOptional Commands
Additional commands for enhanced quality and validation:
/speckit.clarify/speckit.plan; formerly/quizme)/speckit.analyze/speckit.tasks, before/speckit.implement)/speckit.checklistEnvironment Variables
SPECIFY_FEATURE001-photo-albums) to work on a specific feature when not using Git branches.**Must be set in the context of the agent you’re working with prior to using
/speckit.planor follow-up commands.📚 Core Philosophy
Spec-Driven Development is a structured process that emphasizes:
🌟 Development Phases
🎯 Experimental Goals
Our research and experimentation focus on:
Technology independence
Enterprise constraints
User-centric development
Creative & iterative processes
🔧 Prerequisites
If you encounter issues with an agent, please open an issue so we can refine the integration.
📖 Learn More
📋 Detailed Process
Click to expand the detailed step-by-step walkthrough
You can use the Specify CLI to bootstrap your project, which will bring in the required artifacts in your environment. Run:
Or initialize in the current directory:
You will be prompted to select the AI agent you are using. You can also proactively specify it directly in the terminal:
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, or Kiro CLI installed. If you do not, or you prefer to get the templates without checking for the right tools, use
--ignore-agent-toolswith your command:STEP 1: Establish project principles
Go to the project folder and run your AI agent. In our example, we’re using
claude.You will know that things are configured correctly if you see the
/speckit.constitution,/speckit.specify,/speckit.plan,/speckit.tasks, and/speckit.implementcommands available.The first step should be establishing your project’s governing principles using the
/speckit.constitutioncommand. This helps ensure consistent decision-making throughout all subsequent development phases:This step creates or updates the
.specify/memory/constitution.mdfile with your project’s foundational guidelines that the AI agent will reference during specification, planning, and implementation phases.STEP 2: Create project specifications
With your project principles established, you can now create the functional specifications. Use the
/speckit.specifycommand and then provide the concrete requirements for the project you want to develop.An example prompt:
After this prompt is entered, you should see Claude Code kick off the planning and spec drafting process. Claude Code will also trigger some of the built-in scripts to set up the repository.
Once this step is completed, you should have a new branch created (e.g.,
001-create-taskify), as well as a new specification in thespecs/001-create-taskifydirectory.The produced specification should contain a set of user stories and functional requirements, as defined in the template.
At this stage, your project folder contents should resemble the following:
STEP 3: Functional specification clarification (required before planning)
With the baseline specification created, you can go ahead and clarify any of the requirements that were not captured properly within the first shot attempt.
You should run the structured clarification workflow before creating a technical plan to reduce rework downstream.
Preferred order:
/speckit.clarify(structured) – sequential, coverage-based questioning that records answers in a Clarifications section.If you intentionally want to skip clarification (e.g., spike or exploratory prototype), explicitly state that so the agent doesn’t block on missing clarifications.
Example free-form refinement prompt (after
/speckit.clarifyif still needed):You should also ask Claude Code to validate the Review & Acceptance Checklist, checking off the things that are validated/pass the requirements, and leave the ones that are not unchecked. The following prompt can be used:
It’s important to use the interaction with Claude Code as an opportunity to clarify and ask questions around the specification - do not treat its first attempt as final.
STEP 4: Generate a plan
You can now be specific about the tech stack and other technical requirements. You can use the
/speckit.plancommand that is built into the project template with a prompt like this:The output of this step will include a number of implementation detail documents, with your directory tree resembling this:
Check the
research.mddocument to ensure that the right tech stack is used, based on your instructions. You can ask Claude Code to refine it if any of the components stand out, or even have it check the locally-installed version of the platform/framework you want to use (e.g., .NET).Additionally, you might want to ask Claude Code to research details about the chosen tech stack if it’s something that is rapidly changing (e.g., .NET Aspire, JS frameworks), with a prompt like this:
During this process, you might find that Claude Code gets stuck researching the wrong thing - you can help nudge it in the right direction with a prompt like this:
STEP 5: Have Claude Code validate the plan
With the plan in place, you should have Claude Code run through it to make sure that there are no missing pieces. You can use a prompt like this:
This helps refine the implementation plan and helps you avoid potential blind spots that Claude Code missed in its planning cycle. Once the initial refinement pass is complete, ask Claude Code to go through the checklist once more before you can get to the implementation.
You can also ask Claude Code (if you have the GitHub CLI installed) to go ahead and create a pull request from your current branch to
mainwith a detailed description, to make sure that the effort is properly tracked.STEP 6: Generate task breakdown with /speckit.tasks
With the implementation plan validated, you can now break down the plan into specific, actionable tasks that can be executed in the correct order. Use the
/speckit.taskscommand to automatically generate a detailed task breakdown from your implementation plan:This step creates a
tasks.mdfile in your feature specification directory that contains:[P]to optimize development workflowThe generated tasks.md provides a clear roadmap for the
/speckit.implementcommand, ensuring systematic implementation that maintains code quality and allows for incremental delivery of user stories.STEP 7: Implementation
Once ready, use the
/speckit.implementcommand to execute your implementation plan:The
/speckit.implementcommand will:tasks.mdOnce the implementation is complete, test the application and resolve any runtime errors that may not be visible in CLI logs (e.g., browser console errors). You can copy and paste such errors back to your AI agent for resolution.
🔍 Troubleshooting
Git Credential Manager on Linux
If you’re having issues with Git authentication on Linux, you can install Git Credential Manager:
💬 Support
For support, please open a GitHub issue. We welcome bug reports, feature requests, and questions about using Spec-Driven Development.
🙏 Acknowledgements
This project is heavily influenced by and based on the work and research of John Lam.
📄 License
This project is licensed under the terms of the MIT open source license. Please refer to the LICENSE file for the full terms.