Skip to content
/

spec-kit-aider (wolffy-au)

spec-kit-aider · wolffy-au/spec-kit-aider · ★ 0 · last commit 2026-03-01

Aider-adapted fork of GitHub spec-kit that adds automated numbered git branch creation and cross-platform scripts for spec-driven development.

Best whenSpecs should live in numbered git branches to enable parallel feature development and clear state tracking via existing git tooling.
Skip ifRunning the branch-creation script more than once per feature, Skipping the constitution step for team projects
vs seeds
spec-kitseed (GitHub). Core philosophy text in spec-driven.md is copied verbatim from upstream. Primary deltas: (1) Aider as pri…
Primitive shape 9 total
Commands 9
00

Summary

spec-kit-aider — Summary

spec-kit-aider (wolffy-au) is a fork/port of GitHub's spec-kit (github/spec-kit) specifically adapted for use with Aider — the terminal-based AI coding tool. It ships the specify-cli Python package (v0.1.6, MIT license) that bootstraps a project for Spec-Driven Development, installs 9 slash commands (constitution, specify, plan, tasks, implement, analyze, clarify, checklist, taskstoissues), and provides shell scripts that handle git branch creation and spec file scaffolding. The fork's primary adaptation from the upstream spec-kit is substituting AI tool targets (Aider as primary alongside Copilot/Claude Code) and adding a cross-platform script layer (scripts/bash/ + scripts/powershell/) that automates feature-numbered branch creation ({N}-{short-name} pattern), git operations, and spec directory scaffolding. The repository was archived by the maintainer in March 2026, indicating it is no longer actively developed.

Differs from seeds: Extremely close to the spec-kit seed — shares the identical five-command workflow, EARS requirements format, and Python CLI installer pattern. The primary delta is Aider as the target agent alongside multi-tool support, and the addition of cross-platform bash/PowerShell scripts that automate git branch + spec directory creation (spec-kit leaves branch management to the user). The archive status means it represents a historical snapshot rather than an active alternative.

01

Overview

spec-kit-aider — Overview

Origin

Fork of GitHub's spec-kit (github/spec-kit) by wolffy-au, specifically adapted to support Aider as a primary target agent. The upstream spec-kit project was created by GitHub and primarily targets GitHub Copilot + other AI agents. This fork adds Aider support, cross-platform script automation, and a Python package specify-cli for project bootstrapping. Repository archived March 2026.

Philosophy (From spec-driven.md, verbatim)

"Spec-Driven Development (SDD) inverts this power structure. Specifications don't serve code—code serves specifications. The Product Requirements Document (PRD) isn't a guide for implementation; it's the source that generates implementation. Technical plans aren't documents that inform coding; they're precise definitions that produce code."

"When specifications and implementation plans generate code, there is no gap—only transformation."

"In this new world, maintaining software means evolving specifications. The intent of the development team is expressed in natural language ('intent-driven development'), design assets, core principles and other guidelines."

This text is pulled verbatim from the upstream spec-kit philosophy — the fork inherits it unchanged.

Key Adaptations from Upstream spec-kit

  1. Aider as primary agent — commands reference Aider's slash command format and file handling conventions.
  2. Cross-platform script automationscripts/bash/create-new-feature.sh + scripts/powershell/create-new-feature.ps1 handle git branch creation with auto-numbered naming ({N}-{feature-name}) and spec directory scaffolding, reducing manual steps.
  3. specify-cli Python package — provides specify init command to bootstrap projects, with GitHub release catalog integration (extensions/catalog.json) for downloading pre-built templates.
  4. Extension system — documented in extensions/README.md, EXTENSION-API-REFERENCE.md et al — allows publishing and consuming community extension packs.
  5. Multi-agent support — while Aider is primary, commands include handoffs front-matter to route to Copilot, Claude Code, or other agents.
02

Architecture

spec-kit-aider — Architecture

Distribution

  • Python package: specify-cli v0.1.6 (MIT)
  • Install tool: uv / uvx (from PyPI via pyproject.toml)
  • Primary language: Python (CLI) + Shell/PowerShell (scripts)
  • Status: ARCHIVED (March 2026)

Install

# Persistent install (recommended):
uv tool install specify-cli --from git+https://github.com/wolffy-au/spec-kit-aider.git
specify init <PROJECT_NAME>

# One-time usage:
uvx --from git+https://github.com/wolffy-au/spec-kit-aider.git specify init <PROJECT_NAME>

Directory Tree (installed into project)

.claude/
  commands/
    speckit.analyze.md
    speckit.checklist.md
    speckit.clarify.md
    speckit.constitution.md
    speckit.implement.md
    speckit.plan.md
    speckit.specify.md
    speckit.tasks.md
    speckit.taskstoissues.md
scripts/
  bash/
    create-new-feature.sh
  powershell/
    create-new-feature.ps1
templates/
  spec-template.md
  plan-template.md
  constitution-template.md
  tasks-template.md
  checklist-template.md
  agent-file-template.md
specs/
  {N}-{feature-name}/
    spec.md
    plan.md
    tasks.md

Required Runtime

  • Python >= 3.11
  • uv or uvx
  • Git (for branch automation)

Target AI Tools

Primary: Aider Supported: GitHub Copilot, Claude Code (via .claude/commands/), other agents via handoffs front-matter.

Internal Source Structure

src/specify_cli/
  __init__.py     # All CLI logic — init, check, catalog download
  extensions.py   # Extension system
extensions/
  catalog.json    # Community extensions registry
  catalog.community.json
  template/       # Extension template
03

Components

spec-kit-aider — Components

CLI Binary

Name Purpose
specify Python CLI — specify init <name> bootstraps project; specify check verifies AI tool prerequisites

Slash Commands (9)

All installed under .claude/commands/speckit.*.md:

Command Purpose
speckit.constitution Create project governing principles and development guidelines
speckit.specify Transform feature description into structured spec (auto-numbers branch, creates specs/{N}-{name}/spec.md)
speckit.plan Convert approved spec into technical implementation plan
speckit.tasks Break down plan into actionable implementation tasks
speckit.implement Execute all tasks to build the feature
speckit.analyze Analyze existing code for patterns and migration candidates
speckit.clarify Iterative clarification of spec requirements
speckit.checklist Generate quality checklists for review
speckit.taskstoissues Convert tasks to GitHub issues

Shell Scripts (2)

Script Purpose
scripts/bash/create-new-feature.sh Creates git branch ({N}-{feature-name}) and spec directory with numbered auto-increment
scripts/powershell/create-new-feature.ps1 Same logic, Windows PowerShell

Templates (7)

Template Purpose
spec-template.md Feature specification document structure
plan-template.md Technical implementation plan structure
constitution-template.md Project governing principles document
tasks-template.md Implementation task list structure
checklist-template.md Quality review checklist
agent-file-template.md Agent configuration template
vscode-settings.json VS Code settings for spec workflow

Extension System

  • extensions/catalog.json — community extension registry
  • specify-cli can download pre-built extension packs from GitHub releases
  • Extension API documented in extensions/EXTENSION-API-REFERENCE.md
05

Prompts

spec-kit-aider — Prompts

Excerpt 1: speckit.specify Command — Feature Numbering + Script Integration

Source: templates/commands/specify.md

Prompting technique: Numbered step procedure; script invocation with structured JSON output; explicit multi-source branch-number deduplication logic.

## Outline

Given that feature description, do this:

1. **Generate a concise short name** (2-4 words) for the branch:
   - Analyze the feature description and extract the most meaningful keywords
   - Create a 2-4 word short name that captures the essence of the feature
   - Use action-noun format when possible (e.g., "add-user-auth", "fix-payment-bug")
   - Preserve technical terms and acronyms (OAuth2, API, JWT, etc.)
   - Examples:
     - "I want to add user authentication" → "user-auth"
     - "Implement OAuth2 integration for the API" → "oauth2-api-integration"

2. **Check for existing branches before creating new one**:
   a. First, fetch all remote branches: `git fetch --all --prune`
   b. Find the highest feature number across all sources:
      - Remote: `git ls-remote --heads origin | grep -E 'refs/heads/[0-9]+-<short-name>$'`
      - Local: `git branch | grep -E '^[* ]*[0-9]+-<short-name>$'`
      - Specs: Check for directories matching `specs/[0-9]+-<short-name>`
   c. Use N+1 for the new branch number

   d. Run the script with the calculated number and short-name:
      - Bash: `{SCRIPT} --json --number 5 --short-name "user-auth" "Add user authentication"`
      - PowerShell: `{SCRIPT} -Json -Number 5 -ShortName "user-auth" "Add user authentication"`

   **IMPORTANT**: You must only ever run this script once per feature

Excerpt 2: speckit.specify — EARS Requirements Format (From Philosophy Doc)

Source: spec-driven.md

Prompting technique: Explicit format specification (EARS syntax); bidirectional feedback loop framing.

## Streamlining SDD with Commands

### The `/speckit.specify` Command

This command transforms a simple feature description (the user-prompt) into a complete, structured specification:

1. **Automatic Feature Numbering**: Scans existing specs to determine the next feature number (e.g., 001, 002, 003)
2. **Branch Creation**: Generates a semantic branch name from your description and creates it automatically
3. **Template-Based Generation**: Copies and customizes the feature specification template with your requirements
4. **Directory Structure**: Creates the proper `specs/[branch-name]/` structure for all related documents

Excerpt 3: Command Front-Matter Format

Source: templates/commands/specify.md

Prompting technique: YAML front-matter with handoffs, scripts, description — machine-readable metadata for cross-agent routing.

---
description: Create or update the feature specification from a natural language feature description.
handoffs: 
  - label: Build Technical Plan
    agent: speckit.plan
    prompt: Create a plan for the spec. I am building with...
  - label: Clarify Spec Requirements
    agent: speckit.clarify
    prompt: Clarify specification requirements
    send: true
scripts:
  sh: scripts/bash/create-new-feature.sh --json "{ARGS}"
  ps: scripts/powershell/create-new-feature.ps1 -Json "{ARGS}"
---
09

Uniqueness

spec-kit-aider — Uniqueness and Positioning

Differs from Seeds

Near-clone of the spec-kit seed (GitHub's python CLI + slash commands). The core SDD philosophy text in spec-driven.md is copied verbatim from the upstream. The primary architectural delta: (1) Aider as primary target agent alongside Copilot and Claude Code; (2) shell scripts (create-new-feature.sh + PowerShell equivalent) that automate git branch creation with auto-incrementing feature numbers, a step the upstream spec-kit leaves to the user; (3) an extension catalog system (extensions/catalog.json) for applying community extension packs at init time. The handoffs: front-matter in commands routes to specific agents, which is present in the upstream as well.

Distinctive Positioning

  • Aider adaptation: First (and only) SDD framework in the batch explicitly designed for Aider, which uses a different file-editing paradigm (diff-based edits, multi-file context via /add) than Claude Code.
  • Cross-platform git automation: The numbered branch creation scripts ({N}-{feature-name}) are the primary UX differentiator from upstream spec-kit.
  • Extension catalog: Community extension packs downloadable at init time — no other framework in the batch has this.

Observable Failure Modes

  1. Archive status: No updates since March 2026. Aider API changes may break scripts or commands.
  2. 0 stars, 0 forks: No adoption signal; likely used only by the author.
  3. Python + uv dependency: Requires uv which is not installed by default on many systems; adds friction compared to npm-based alternatives.
  4. Script brittleness: The create-new-feature.sh multi-source branch-number detection (git ls-remote, git branch, filesystem scan) is fragile if the repo has non-standard branch naming.
04

Workflow

spec-kit-aider — Workflow

Phases and Artifacts

Phase Command Artifact
0. Principles /speckit.constitution specs/constitution.md
1. Spec /speckit.specify "description" specs/{N}-{name}/spec.md + git branch {N}-{name}
1a. Clarify (optional) /speckit.clarify Updated spec.md
2. Plan /speckit.plan specs/{N}-{name}/plan.md
3. Tasks /speckit.tasks specs/{N}-{name}/tasks.md
4. Implement /speckit.implement Code changes
5. Checklist (optional) /speckit.checklist Review checklist inline
6. Issues (optional) /speckit.taskstoissues GitHub issues from tasks

Approval Gates

Gate Type Description
After spec freetext-clarify User reviews spec.md before plan; /speckit.clarify available for iteration
After plan freetext-clarify User reviews plan.md before tasks
After tasks freetext-clarify User reviews tasks.md before implementation

Script-Automated Steps (speckit.specify)

From templates/commands/specify.md:

  1. Agent generates 2-4 word short-name from description
  2. Checks all three sources (remote branches, local branches, specs directories) for highest existing {N} number
  3. Runs create-new-feature.sh --json --number {N+1} --short-name "{name}" "{description}"
  4. Script creates git branch {N+1}-{name} and specs/{N+1}-{name}/spec.md from template
  5. Agent loads spec template, fills sections from description + codebase analysis

handoffs Front-Matter (Command Routing)

Commands include handoffs: YAML front-matter listing alternative agent targets. Example from specify.md:

handoffs: 
  - label: Build Technical Plan
    agent: speckit.plan
    prompt: Create a plan for the spec. I am building with...
  - label: Clarify Spec Requirements
    agent: speckit.clarify
    prompt: Clarify specification requirements
    send: true

This routes the user to the next step in the workflow without requiring them to remember the command name.

06

Memory Context

spec-kit-aider — Memory and Context

State Storage

File-based under specs/:

File Content
specs/constitution.md Project governing principles
specs/{N}-{feature}/spec.md Feature specification
specs/{N}-{feature}/plan.md Technical implementation plan
specs/{N}-{feature}/tasks.md Implementation task list
templates/*.md Reusable document templates

Git State

The feature number ({N}) is derived from existing git branches and spec directories — git itself serves as an implicit state store for feature sequencing.

Persistence Level

project — all artifacts under specs/ in the repository.

Context Compaction

Not addressed. No cross-session handoff mechanism beyond file existence. Context reloaded from spec files at each command invocation.

Cross-Session Handoff

Yes — spec files on disk, loaded on demand by each command. No session state.

Extension Catalog

extensions/catalog.json tracks community extension packs by name, version, and download URL. The specify-cli fetches and applies these at init time — an unusual build-time extension mechanism not seen in other frameworks.

07

Orchestration

spec-kit-aider — Orchestration

Multi-Agent

No — single agent per command invocation.

Orchestration Pattern

sequential — commands run in order; no parallel execution.

Multi-Model

No.

Isolation Mechanism

git-branch — each feature gets its own numbered git branch ({N}-{feature-name}) created automatically by the shell script. This is the same pattern as spec-kit's upstream.

Subagent Definition Format

none.

Execution Mode

one-shot — each command runs once and completes. No continuous loop.

Prompt Chaining

Yes — each phase command reads the prior phase's artifact (plan reads spec, tasks reads plan, implement reads tasks).

Cross-Tool Portability

Medium — commands installed under .claude/commands/ (Claude Code), and handoffs: front-matter supports routing to other agents. Aider is the primary target. No MCP.

08

Ui Cli Surface

spec-kit-aider — UI, CLI, and Surface

CLI Binary

  • Name: specify
  • Purpose: Project bootstrapper — specify init <name> scaffolds spec directories and installs templates; specify check verifies prerequisites
  • Is thin wrapper: No — own Python runtime
  • Built with: Typer + Rich (terminal UI with panels, progress spinners, tables)

Local Web UI / Dashboard

None.

IDE Integration

Commands installed in .claude/commands/ for Claude Code and Aider.

Observability

No audit log. Spec file presence and git branch state serve as implicit progress tracking.

Extension Marketplace

specify-cli integrates a lightweight extension catalog system (extensions/catalog.json), allowing community extension packs to be applied at project init time. This is the most unique UI surface in the framework — a curated catalog for SDD extension packs.

Status

Repository ARCHIVED March 2026.

Related frameworks

same archetype · same primary tool · same memory type

BMAD-METHOD ★ 48k

Provides a full agile delivery lifecycle with named expert-persona AI collaborators that elicit the human's best thinking rather…

Agent OS ★ 4.6k

Extracts implicit codebase conventions into token-efficient markdown standards files and injects them selectively into AI agent…

Claude Conductor ★ 367

Gives Claude Code a persistent, cross-linked, auto-analyzed documentation system so it retains codebase context across sessions.

Spec-Driver (Greenfield Spec-Driven Development) ★ 25

Prevents spec rot in AI-assisted development by making implementation changes flow back into evergreen, authoritative specs via…

Anthropic Knowledge Work Plugins ★ 16k

Role-specialized plugin bundles with live MCP connectors that turn Claude into a domain expert for enterprise knowledge workers.

Codex Integration for Claude Code (skill-codex) ★ 1.3k

Single Claude Code skill that handles Codex CLI invocation correctly (stdin blocking, thinking token suppression, session resume)…