
Introduction
Examines GitHub’s new SpecKit—an open-source toolkit created to bridge one of AI coding’s biggest gaps: translating vague user intent into precise implementation. With Better Stack shows how this tool shifts traditional “vibe coding” into structured, specification-driven development, potentially changing how developers interact with AI coding assistants.
GitHub SpecKit: Installation, Configuration, and Sample Project
What is SpecKit?
GitHub SpecKit is an open-source toolkit designed to help developers get started with Spec-Driven Development, where specifications become executable artifacts that directly generate working implementations rather than just guiding them. It transforms the traditional development approach where code was king into a new paradigm where detailed specifications drive the entire development process.
Installation and Setup
Prerequisites
Before installing SpecKit, ensure you have one of the following AI coding agents installed:
- GitHub Copilot (via GitHub CLI)
- Claude Code
- Gemini CLI
Installation Methods
Method 1: Using uvx (Recommended)
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
Method 2: Direct Installation
The CLI will check if you have Claude Code or Gemini CLI installed. If you do not, or you prefer to get the templates without checking for the right tools, use –ignore-agent-tools with your command:
# For Claude Code
specify init <project_name> --ai claude --ignore-agent-tools
# For GitHub Copilot
specify init <project_name> --ai copilot --ignore-agent-tools
# For Gemini CLI
specify init <project_name> --ai gemini --ignore-agent-tools
Git Credential Manager (Linux Setup)
If you encounter Git authentication issues on Linux, install Git Credential Manager:
#!/usr/bin/env bash
set -e
echo "Downloading Git Credential Manager v2.6.1..."
wget <https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.deb>
echo "Installing Git Credential Manager..."
sudo dpkg -i gcm-linux_amd64.2.6.1.deb
echo "Configuring Git to use GCM..."
git config --global credential.helper manager
echo "Cleaning up..."
rm gcm-linux_amd64.2.6.1.deb
Configuration
Project Structure
After initialization, SpecKit creates the following directory structure:
project-name/
├── .speckit/
│ ├── templates/
│ │ ├── feature-spec.md
│ │ ├── implementation-plan.md
│ │ └── tasks.md
│ └── scripts/
│ ├── specify.py
│ ├── plan.py
│ └── tasks.py
├── specs/
│ └── [branch-name]/
├── docs/
├── constitution.md
└── README.md
Key Configuration Files
Constitution.md
This file defines your project’s core principles, architectural constraints, and development guidelines that AI agents must follow throughout the project.
Templates
Templates act as sophisticated prompts that constrain the LLM’s output in productive ways, ensuring specifications focus on WHAT users need and WHY, while avoiding HOW to implement (no tech stack, APIs, code structure).
Available Commands
Once properly configured, you’ll have access to these commands in your AI agent:
/specify
– Create project specifications/plan
– Generate technical implementation plans/tasks
– Break down plans into actionable tasks
The Four-Phase Workflow
Phase 1: Specify
Purpose: Define what you want to build and why, focusing on user journeys and outcomes.
Key Principles:
- Be explicit about requirements and user stories
- Focus on functional requirements, not technical implementation
- Include acceptance criteria and edge cases
- Use
[NEEDS CLARIFICATION]
markers for ambiguous requirements
Example Specification:
/specify
Develop Taskify, a team productivity platform. It should allow users to:
- Create projects and organize them by categories
- Add team members with different permission levels
- Assign tasks with due dates, priorities, and descriptions
- Comment on tasks for collaboration
- Move tasks between boards in Kanban style
- Receive real-time notifications for task updates
- Generate progress reports and analytics
The platform should support teams of 5-50 people and handle concurrent editing.
Phase 2: Plan
Purpose: Define technical stack, architectural constraints, and implementation approach.
Example Planning:
/plan
We are going to generate this using .NET Aspire, using Postgres as the database.
The frontend should use Blazor Server with drag-and-drop task boards and real-time updates via SignalR.
Technical Requirements:
- REST API with endpoints for projects, tasks, users, and notifications
- Authentication using JWT tokens
- Real-time updates using SignalR hubs
- Responsive design supporting mobile and desktop
- API rate limiting and security middleware
- Automated testing with unit and integration tests
- Docker containerization for deployment
Phase 3: Tasks
Purpose: Break specifications and plans into small, actionable, testable tasks.
The produced specification should contain a set of user stories and functional requirements, as defined in the template, and tasks will be automatically numbered and organized.
Example Task Breakdown:
/tasks
Create an MVP version of Taskify focusing on core functionality:
1. Project creation and management
2. User authentication and authorization
3. Basic task management (CRUD operations)
4. Simple Kanban board interface
5. Real-time task updates
Phase 4: Implement
Purpose: Use AI to implement tasks incrementally with review capabilities.
Example Implementation:
implement tasks 1-4
# AI will generate:
# - Database schema and migrations
# - API endpoints and controllers
# - Frontend components and views
# - Test files for each component
# - Configuration files
Complete Sample Project: Personal Finance Tracker
Let’s walk through building a complete Personal Finance Tracker application using SpecKit.
Step 1: Project Initialization
uvx --from git+https://github.com/github/spec-kit.git specify init finance-tracker --ai claude
cd finance-tracker
claude
Step 2: Create Specification
/specify
Build a Personal Finance Tracker application that helps users manage their financial health.
Core Features:
- Account Management: Users can add multiple bank accounts, credit cards, and investment accounts
- Transaction Tracking: Automatically categorize income and expenses with manual override capability
- Budget Creation: Set monthly budgets by category with alerts when approaching limits
- Financial Goals: Create savings goals with progress tracking and target dates
- Reporting: Generate monthly/yearly reports with charts and insights
- Bill Reminders: Set up recurring bill notifications with due date alerts
User Stories:
1. As a user, I want to connect my bank accounts to automatically import transactions
2. As a user, I want to categorize transactions to understand spending patterns
3. As a user, I want to set budgets for different categories to control spending
4. As a user, I want to track progress toward financial goals
5. As a user, I want to receive alerts before exceeding budget limits
6. As a user, I want to see visual reports of my financial health
[NEEDS CLARIFICATION: Integration with bank APIs - which financial institutions to support?]
[NEEDS CLARIFICATION: Data retention policy - how long to keep transaction history?]
Success Metrics:
- Users can connect at least one account within 5 minutes
- 95% of transactions are automatically categorized correctly
- Budget alerts are delivered within 24 hours of threshold breach
Step 3: Create Technical Plan
/plan
Technology Stack:
- Backend: Node.js with Express.js framework
- Database: PostgreSQL with TypeORM
- Frontend: React with TypeScript and Tailwind CSS
- Charts: Chart.js for financial visualizations
- Authentication: Auth0 for secure user management
- Bank Integration: Plaid API for account connections
- Deployment: Docker containers on AWS ECS
Architecture:
- RESTful API with clear separation of concerns
- Microservices approach with separate services for:
- User management and authentication
- Account and transaction management
- Budget and goal tracking
- Notification system
- Reporting engine
Security Requirements:
- All financial data encrypted at rest and in transit
- PCI DSS compliance for payment card data
- Multi-factor authentication required
- API rate limiting to prevent abuse
- Audit logging for all financial operations
Performance Requirements:
- API response times under 200ms for 95% of requests
- Support for 1000 concurrent users
- Real-time transaction updates via WebSockets
- Offline capability for transaction entry
Step 4: Generate Tasks
/tasks
Create MVP version focusing on core functionality:
Phase 1: Foundation
Phase 2: Account Management
Phase 3: Transaction Processing
Phase 4: Budget Management
Phase 5: Reporting Dashboard
Step 5: Implement Core Features
implement tasks 1-8
# This will generate:
# - Project scaffolding with proper folder structure
# - Database schema and migration files
# - Authentication middleware and routes
# - Account model and CRUD operations
# - Transaction processing logic
# - Basic React components and routing
# - API documentation
# - Unit and integration tests
Expected Project Structure After Implementation:
finance-tracker/
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── middleware/
│ │ ├── services/
│ │ └── utils/
│ ├── tests/
│ ├── migrations/
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ ├── hooks/
│ │ └── utils/
│ ├── public/
│ └── package.json
├── specs/
│ ├── feature-spec.md
│ ├── implementation-plan.md
│ ├── data-model.md
│ ├── api-contracts.md
│ └── tasks.md
├── docker-compose.yml
├── README.md
└── constitution.md
Advanced Configuration and Best Practices
Custom Templates
You can customize the default templates in .speckit/templates/
to match your team’s standards and requirements.
Constitutional Guidelines
Constitutional Compliance ensures alignment with project constitution and architectural principles, making every technical choice link back to specific requirements.
Example constitution.md:
# Project Constitution
## Core Principles
- Security First: All user data must be encrypted
- Performance: Sub-200ms API response times
- Scalability: Design for 10x current user load
- Maintainability: Code coverage above 80%
## Architectural Constraints
- Use TypeScript for type safety
- Follow RESTful API design principles
- Implement proper error handling and logging
- Use environment variables for configuration
## Development Standards
- All features require automated tests
- Code reviews required before merging
- Follow conventional commit messages
- Document all public APIs
Integration with GitHub Copilot
You will know that things are configured correctly if you see the /specify, /plan, and /tasks commands available in your GitHub Copilot interface.
Working with Claude Code
For Claude Code integration, ensure proper authentication and project context:
# Check available commands
claude --help
# Verify SpecKit integration
claude /specify --help
Troubleshooting Common Issues
Command Not Found
If /specify
, /plan
, or /tasks
commands aren’t available:
- Ensure your AI agent is properly installed and authenticated
- Verify you’re in the correct project directory
- Check that SpecKit initialization completed successfully
- Restart your AI agent
Template Issues
If templates aren’t loading correctly:
- Verify
.speckit/templates/
directory exists - Check file permissions on template files
- Re-run initialization with
-ignore-agent-tools
flag
Git Authentication Problems
For Linux users experiencing Git authentication issues:
- Install Git Credential Manager as shown above
- Configure proper SSH keys or personal access tokens
- Verify Git credentials using
git config --list
Key Benefits and Best Practices
Benefits of Using SpecKit
- Reduced AI Hallucination: Detailed specifications ensure that AI tools like GitHub Copilot or Claude Code generate code that meets your expectations, reducing the need for extensive revisions
- Living Documentation: Specifications stay synchronized with code because they generate the implementation
- Rapid Iteration: Change requirements and regenerate plans in minutes instead of days
- Team Alignment: All stakeholders work from the same source of truth
Best Practices
- Be Explicit in Specifications: Include detailed user stories, acceptance criteria, and edge cases
- Use Constitutional Guidelines: Define project principles that guide all implementation decisions
- Iterative Refinement: Update specifications as understanding grows
- Test-Driven Approach: SpecKit enforces test-first development patterns
- Review Before Implementation: Validate each phase before moving to the next
Video of SpecKit
Related Sections of Video
Understanding the Problem with Current AI Coding
The video opens by highlighting a fundamental issue with current AI coding tools – they often produce code that “looks correct but doesn’t quite work.” This problem stems from lack of specification clarity rather than model limitations. Traditional AI coding relies on broad, ambiguous prompts like “Add photo sharing to my app,” leaving AI to guess thousands of implementation details that rarely match the developer’s actual intent.
Relevant insights from Glasp emphasize this shift in software development paradigms. Large-scale AI models are emerging as a fourth infrastructure pillar, reshaping how software is built: programming shifts from deterministic code to “context engineering,” and every layer of the stack must adapt to new architectural demands.
SpecKit’s Approach: Spec-Driven Development
SpecKit introduces a paradigm shift from traditional development workflows. Instead of writing code first and documenting later, spec-driven development reverses this process:
The Four Gated Phases
1. Specify Phase
- Describes what you want to build and why
- Focuses on user journeys and outcomes
- AI generates detailed specs that evolve with understanding
- Creates “needs clarification” blocks for uncertain requirements
2. Plan Phase
- Defines technical stack and architectural constraints
- AI constructs technical plans honoring specified constraints
- Includes detailed research documents explaining framework choices
- Provides reasoning for decisions and alternative considerations
3. Tasks Phase
- Breaks specifications into small, actionable tasks
- Creates manageable, testable units for incremental implementation
- Each task receives unique numbering for organization
- Follows test-driven development approach by default
4. Implement Phase
- AI tackles tasks incrementally with granular control
- Allows review of each change before implementation
- Avoids “bulky code dumps” through step-by-step execution
- Maintains constant reference back to specification document
Practical Demonstration: Building a Pokédex
The video showcases SpecKit’s capabilities through building a Pokédex team builder application. Key observations from the demo:
- Initialization: Simple terminal command creates project structure with templates and scripts
- Specification Quality: AI successfully crafted primary user stories, acceptance scenarios, edge cases, functional requirements, and key entities
- Technical Planning: Generated data models, Zod schemas, and comprehensive research documentation
- Task Organization: Created detailed, numbered task lists for systematic implementation
- Final Result: Produced a fully functional web application with clean UI using Charts and shadcn/ui components
The demonstration reveals how SpecKit guides AI to think more systematically about project requirements, similar to insights from Glasp about automation tools that enhance development productivity by reducing cognitive load on engineers and transforming coding practices from laborious tasks into streamlined processes.
Comparison with Alternative Tools
Tools like Amazon’s Kiro also use spec-driven development, but GitHub SpecKit supports more AI coding agents and offers more templates and workflow tools. Developers can integrate it with the AI tools they already use without being forced into a single ecosystem.
Future Roadmap and Community
SpecKit is actively developed with regular updates to templates and improved AI agent integration. For support, please open a GitHub issue. We welcome bug reports, feature requests, and questions about using Spec-Driven Development.
The project is licensed under MIT and heavily influenced by research from John Lam, making it a solid foundation for enterprise and personal projects alike.
Key Benefits and Limitations
Advantages
- Structured Approach: Eliminates guesswork through clear, executable specifications
- Granular Control: Enables review and refinement at each development stage
- Comprehensive Documentation: Auto-generates detailed specs, plans, and research documents
- Multi-Model Support: Compatible with GitHub Copilot, Claude Code, and Gemini CLI
- Incremental Development: Supports manageable, testable implementation units
Limitations
- Model Dependency: Results vary significantly between different AI models (Grok performed better than GPT-4 in testing)
- Learning Curve: Requires understanding of spec-driven development principles
- Template Constraints: Default approach favors test-driven development, which may not suit all projects
Industry Context and Future Implications
SpecKit represents part of a broader trend toward more structured AI-assisted development. The tool follows Amazon’s Kiro framework as another significant entry in specification-driven development, suggesting this approach is gaining industry traction.
The video positions spec-driven development as “a paradigm we’ll be seeing much more of in the future of coding,” aligning with Glasp insights about how AI-driven development environments are integrating deep codebase understanding with advanced tools, enabling developers to focus on creative aspects while AI handles structured implementation tasks.
Conclusion and Key Takeaways
Bottom Line: SpecKit successfully addresses AI coding’s specification clarity problem by transforming ad-hoc prompting into structured, verifiable workflows. While model choice still matters, the tool provides a systematic approach to guide AI toward more precise, intentional code generation.
Key Takeaways:
- Specification is King: Clear, detailed specs are more valuable than sophisticated prompting techniques
- Incremental Development Works: Breaking projects into gated phases with validation checkpoints reduces errors
- Documentation Drives Quality: Auto-generated specs, plans, and research improve project clarity and team alignment
- Model Selection Matters: Choose appropriate AI models for optimal SpecKit performance
- Paradigm Shift: Spec-driven development represents a fundamental change in how developers approach AI-assisted coding