This project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Prerequisites
Before you start contributing, make sure you have these tools installed:Python 3.11+
uv Package Manager
Git
AI Coding Agent
Development Environment Setup
If you’re using VSCode or GitHub Codespaces, you can leverage Dev Containers for a pre-configured development environment:Using Dev Containers
Using Dev Containers
The project includes a
.devcontainer/devcontainer.json file with all required tools pre-installed.VSCode:- Install Docker on your machine
- Install the Dev Containers extension
- Checkout the repository
- Open with VSCode
- Open Command Palette and select “Dev Containers: Open Folder in Container…”
.devcontainer/devcontainer.json configuration.Submitting a Pull Request
Step-by-Step Process
-
Fork and clone the repository
-
Configure and install dependencies
-
Verify the CLI works
-
Create a new branch
-
Make your changes
- Add your feature or fix
- Write tests for new functionality
- Ensure everything still works
- Test the CLI functionality Test with a sample project if your changes affect user-facing features
-
Push and submit
Then open a pull request on GitHub
- Wait for review Maintainers will review and provide feedback
Increasing PR Acceptance Likelihood
Follow these guidelines to improve your chances of getting merged:- Follow coding conventions - Match the existing code style
- Write tests - Include tests for new functionality
- Update documentation - Modify
README.mdorspec-driven.mdfor user-facing changes - Keep changes focused - Submit separate PRs for independent changes
- Write good commit messages - Follow best practices
- Test with Spec-Driven workflow - Ensure compatibility with the methodology
Development Workflow
When working on Spec Kit, test your changes thoroughly:Testing Checklist
Testing Checklist
- Test CLI commands - Use
/speckit.specify,/speckit.plan,/speckit.tasksin your coding agent - Verify templates - Check that templates in
templates/directory work correctly - Test scripts - Ensure scripts in
scripts/directory function properly - Update memory files - Modify
memory/constitution.mdif major process changes occur
Testing Template and Command Changes Locally
Runninguv run specify init pulls released packages, which won’t include your local changes. To test locally:
-
Create release packages
-
Copy the package to your test project
- Open and test the agent Navigate to your test project and verify your implementation
AI-Assisted Contributions
IMPORTANT: If you use any kind of AI assistance to contribute to Spec Kit, you must disclose it in the pull request or issue.
Disclosure Requirements
Disclose AI assistance in PRs/issues, including the extent of use: Examples:- “This PR was written primarily by GitHub Copilot.”
- “I consulted ChatGPT to understand the codebase but the solution was fully authored manually by myself.”
- “Used Cursor AI to generate initial code structure, then manually reviewed and modified.”
What We’re Looking For
AI-assisted contributions should include:- Clear disclosure - Be transparent about AI use and degree
- Human understanding and testing - Personally test changes and understand what they do
- Clear rationale - Explain why the change is needed and how it fits Spec Kit’s goals
- Concrete evidence - Include test cases, scenarios, or examples demonstrating improvement
- Your own analysis - Share thoughts on end-to-end developer experience
What We’ll Close
We reserve the right to close contributions that appear to be:- Untested changes submitted without verification
- Generic suggestions that don’t address specific Spec Kit needs
- Bulk submissions showing no human review or understanding
Guidelines for Success
Demonstrate that you understand and validated your proposed changes. If maintainers can easily tell a contribution was generated entirely by AI without human input or testing, it needs more work.Adding New AI Agent Support
Expanding AI agent support is a valuable contribution! See the AGENTS.md file for a comprehensive guide on:- Understanding agent categories (CLI-based vs IDE-based)
- Adding agents to
AGENT_CONFIG - Updating release scripts and documentation
- Command file formats (Markdown vs TOML)
- Testing new agent integration
- Add agent to
AGENT_CONFIGinsrc/specify_cli/__init__.py - Update CLI help text and README documentation
- Modify release package scripts
- Update agent context scripts (bash and PowerShell)
- Add CLI tool checks if required
- Test thoroughly with real agent