Skip to content

๐Ÿ“ specify-framework โ€‹

Specify (GitHub Spec Kit) is an advanced Spec-Driven Development (SDD) toolkit designed by GitHub. It standardizes and automates SDD loops for developers collaborating with AI coding assistants (such as gemini-cli, claude-code, and GitHub Copilot), ensuring codebase safety, structural consistency, and feature alignment.

For the corresponding hands-on module, see spec-driven-dev.md.


๐Ÿ“Š Tool Datasheet โ€‹

MetricDetails
Tool NameSpecify (GitHub Spec Kit)
CategorySpec-Driven Development (SDD) & Orchestration Framework
PurposeTo enforce a strict, testable "spec-first" cycle, generating clear implementation plans, dependency-ordered task checklists, and automated agent memory updates.
LicenseOpen Source
Integrationsgemini-cli, claude-code, GitHub Copilot, Cursor, Roo Code, Amazon Q
Template FormatsLinux POSIX Shell (.sh), Windows PowerShell (.ps1)

๐Ÿ› ๏ธ Core Capabilities โ€‹

  1. Iterative AI Slash Commands: Controls the development cycle through standardized slash command hooks registered directly inside AI agent configurations.
  2. Targeted Feature Branching: Auto-generates clean, isolated Git feature branches matching your spec names.
  3. Strict Specification Checklists: Validates requirements, edge cases, and technology-agnostic success criteria before allowing coding to start.
  4. Automatic Agent Memory Updates: Dynamic injection of technical context and rules into agent configuration directories (.claude/, .gemini/, etc.).
  5. TDD Task Checklists: Compiles dependency-ordered tasks.md files where tasks follow strict checkbox formats (- [ ] T001 [StoryID] Description).

๐ŸŽ›๏ธ Command Reference โ€‹

Specify hooks into your AI client session using these standardized slash commands:

CommandPurposePrimary Execution Flow
/speckit.constitutionEstablish codebase principlesReads core programming rules and templates to initialize project-wide coding standards.
/speckit.specifyCreate feature specificationTakes a natural language description, generates a feature branch, and drafts a markdown specification.
/speckit.clarifyResolve ambiguous scopePrompts the user with structured multiple-choice questions to resolve outstanding spec details.
/speckit.planCompile technical designGenerates research decisions, API contracts (e.g. OpenAPI), database schemas, and updates agent context.
/speckit.checklistValidate readinessAudits design documents to check completeness, testability, and technology isolation.
/speckit.tasksGenerate task checklistOutputs a dependency-ordered, checkbox-based tasks.md file grouped by priority user stories.
/speckit.analyzeCross-artifact validationRuns consistency checks between requirements, designs, and tasks.
/speckit.implementExecute code changesWalks through tasks.md sequentially, updates files, runs test suites, and checks off tasks.

๐Ÿงญ Step-by-Step Tutorial & Setup โ€‹

This tutorial guides you through installing the Specify CLI tool, initializing a project, and running through a feature implementation cycle using the gemini-cli.

1. Prerequisites Check โ€‹

Verify that the Specify CLI is installed and check for available local development tools:

bash
specify check

2. Initialize a New Project โ€‹

Initialize a fresh Specify template in your workspace for the gemini-cli and bash scripts:

bash
cd ~/AI_BOOTCAMP/labs
specify init my-spec-project --ai gemini --script sh

This generates the following directory layout:

  • ๐Ÿ“‚ .specify/ - Spec templates, configuration files, and utility bash scripts.
  • ๐Ÿ“‚ .gemini/commands/ - Registered command configurations mapped to the /speckit.* commands.
  • ๐Ÿ“‚ specs/ - Working directory for feature specification sheets.
  • ๐Ÿ“‚ tests/ - Project testing suite.

๐Ÿ’ก The SDD Development Cycle โ€‹

Once initialized, navigate into your new project folder and launch your AI client (e.g., gemini or claude). Execute the commands inside the active AI agent chat session:

Step 1: Draft the Specification โ€‹

Type the feature description directly after the command:

text
/speckit.specify "Implement user JWT authentication with PostgreSQL storage"
  • What happens: The agent generates a feature branch named 001-user-jwt-auth, loads the spec-template.md, and drafts the functional requirements, user scenarios, and measurable success criteria.

Step 2: Resolve Ambiguity โ€‹

If there are any unspecified assumptions (e.g., JWT expiration times, hashing algorithms):

text
/speckit.clarify
  • What happens: The agent asks multiple-choice clarification questions. Once answered, it writes them into the specification sheet and marks them complete.

Step 3: Tech Design Planning โ€‹

Translate requirements into technical specs:

text
/speckit.plan
  • What happens: The agent creates technical design documents (data-model.md and OpenAPI /contracts/), and updates .gemini/ rules with the new stack information.

Step 4: Generate Actionable Checklist โ€‹

Compile your execution plan:

text
/speckit.tasks
  • What happens: The agent compiles a dependency-ordered tasks.md file:
markdown
- [ ] T001 Initialize database migrations for users table
- [ ] T002 [US1] Create User model logic in src/models/user.py
- [ ] T003 [US1] Create token utility in src/utils/jwt.py

Step 5: Implement Feature โ€‹

Initiate code generation:

text
/speckit.implement
  • What happens: The agent reads tasks.md, creates/edits the target files, runs the test suite, and checks off tasks as completed in the markdown file until the feature is fully implemented.