Skip to main content

Doit CLI - A tool to bootstrap your projects for Spec-Driven Development (SDD).

Project description

DoIt - Spec-Driven Development Framework

License: MIT GitHub Stars PyPI version Python 3.11+

See your architecture before you build it. DoIt is an opinionated, AI-powered framework for specification-driven development. Define specifications, auto-generate diagrams, create roadmaps, and build with confidence.

Quick Start | Documentation | Contributing


Features

  • Specification-Driven - Define what you're building before you build it
  • Auto-Generated Diagrams - Automatic Mermaid diagrams from specs (user journeys, architecture, ER models, task dependencies, timelines)
  • Intelligent Roadmapping - Prioritized roadmaps with P1-P4 system and vision tracking
  • Persistent Memory - All project context stored in version-controlled .doit/memory/ folder
  • Opinionated Approach - Best practices built-in; strong opinions that reduce decision fatigue
  • AI-Powered - Works with Claude Code, Cursor, and other AI coding assistants via slash commands
  • Team-Focused - Quality gates, code reviews, and collaborative workflows built-in
  • Living Docs - Automatically organized and indexed project documentation

The Problem DoIt Solves

Most projects fail not from technical debt, but from architectural debt - decisions made early without full context. Teams struggle with:

  • Architecture decisions made in isolation
  • Specifications that don't stay in sync with code
  • Scattered documentation that's always out of date
  • Roadmaps that don't reflect actual priorities
  • Teams working from different understandings of the same system
  • Manual diagram creation that becomes a chore

DoIt solves this by making specification and decision-making the foundation of development.

Quick Start

Installation

# Using uv (recommended)
uv tool install doit-toolkit-cli

# Or using pipx
pipx install doit-toolkit-cli

# Or using pip
pip install doit-toolkit-cli

Initialize Your Project

# Create a new project
doit init my-project

# Or initialize in current directory
doit init .

This creates the .doit/ folder structure with:

  • memory/ - Project context files (constitution, tech-stack, etc.)
  • templates/ - Spec, plan, and task templates
  • scripts/ - Automation scripts (bash and PowerShell)

The DoIt Workflow (AI Agent Slash Commands)

DoIt provides slash commands for AI coding assistants like Claude Code:

# 1. Define your project principles
/doit.constitution This project follows a "Security-First" approach...

# 2. Write your specification
/doit.specit Build a collaborative task management app with real-time updates
# -> Auto-generates: user journey diagram, entity relationships

# 3. Create your technical plan
/doit.planit Use React frontend, Node.js backend, PostgreSQL database
# -> Auto-generates: architecture diagram, component dependencies

# 4. Break down into tasks
/doit.taskit
# -> Auto-generates: task dependencies, phase timeline

# 5. Implement with AI assistance
/doit.implementit

# 6. Run quality assurance
/doit.testit

# 7. Team review
/doit.reviewit

# 8. Check in and archive
/doit.checkin

The 11 Commands

Command Purpose Output
constitution Document project principles constitution.md
specit Define user stories and features User journey diagrams, spec.md
planit Create technical architecture Architecture diagram, plan.md
taskit Break down into tasks Task dependencies, timeline, tasks.md
implementit Implement features Executes task queue with AI
testit Quality assurance Test results, coverage reports
reviewit Team code review Review findings, review-report.md
roadmapit Manage priorities roadmap.md with P1-P4 items
documentit Organize documentation Organized docs/, index.md
scaffoldit Bootstrap new projects .doit/ structure, templates
checkin Archive completed work PR creation, issue closing

Project Structure

your-project/
├── README.md                    # Your project README
├── .doit/                       # DoIt configuration (version control!)
│   ├── memory/
│   │   ├── constitution.md      # Project principles
│   │   ├── tech-stack.md        # Technology choices
│   │   ├── roadmap.md           # Feature priorities (P1-P4)
│   │   └── completed_roadmap.md # Archive of shipped features
│   ├── templates/
│   │   ├── spec-template.md
│   │   ├── plan-template.md
│   │   └── task-template.md
│   └── scripts/
│       ├── bash/                # Bash automation scripts
│       └── powershell/          # PowerShell automation scripts
├── specs/                       # Feature specifications
│   └── NNN-feature-name/
│       ├── spec.md              # Feature specification
│       ├── plan.md              # Technical plan
│       ├── tasks.md             # Task breakdown
│       └── research.md          # Research notes
├── docs/                        # Project documentation
└── src/                         # Your application code

Auto-Generated Diagrams

DoIt automatically generates these diagram types from your specifications:

  • User Journey - How users interact with your system
  • Architecture - System components and boundaries
  • Component Dependencies - Service relationships
  • Entity Relationships - Database schema
  • Sequence Diagrams - Time-based interactions
  • Task Dependencies - Execution order and critical path
  • Phase Timeline - Gantt chart of development phases
  • Finding Distribution - Code review findings breakdown

All diagrams are in Mermaid format, work in markdown, and update automatically when specs change.

Persistent Memory System

Your entire project context lives in version-controlled markdown files:

.doit/memory/
├── constitution.md        # "Why do we exist? What are our principles?"
├── tech-stack.md          # "What technologies are we using?"
├── roadmap.md             # "What's the priority order?"
└── completed_roadmap.md   # "What have we shipped?" (20-item archive)

Because these files are in git:

  • Your entire team sees the same context
  • History is preserved (git blame, logs)
  • Decisions are documented with rationale
  • New team members have full context
  • No external dependencies or databases

Documentation

Contributing

We welcome contributions! See CONTRIBUTING.md for details.

Quick start for contributors:

# Clone the repo
git clone https://github.com/seanbarlow/doit.git
cd doit

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

License

DoIt is licensed under the MIT License. See LICENSE for details.

Reporting Issues

Found a bug? Have a feature request?

Please include:

  • DoIt version (doit --version)
  • Python version (python --version)
  • Operating system
  • Steps to reproduce (for bugs)
  • Expected vs. actual behavior

Status

  • Current Version: 0.0.23
  • Python Support: 3.11, 3.12
  • Status: Beta
  • Last Updated: January 2026

See CHANGELOG.md for release notes.

Acknowledgments


Made with care by the DoIt community

Star us on GitHub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doit_toolkit_cli-0.1.3.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doit_toolkit_cli-0.1.3-py3-none-any.whl (156.0 kB view details)

Uploaded Python 3

File details

Details for the file doit_toolkit_cli-0.1.3.tar.gz.

File metadata

  • Download URL: doit_toolkit_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for doit_toolkit_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4c0a336515b5fe46057154bd8a651b24eb02ca5b790c1505851579dd56c648a3
MD5 2d4b1c8b963b06c279f6afb67cda6e16
BLAKE2b-256 5e5417f0c79b5b70729764894ddc4488e9c5438ac0c6fc2071d85261ab176880

See more details on using hashes here.

Provenance

The following attestation bundles were made for doit_toolkit_cli-0.1.3.tar.gz:

Publisher: publish.yml on seanbarlow/doit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doit_toolkit_cli-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for doit_toolkit_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4839bcc8a834206dcb60438a229defa49b19a6f6487db249156b04ff68a65740
MD5 9b114cd3ca56ba92469e7bb21942b965
BLAKE2b-256 58bdf7912e36aec602feca212d59ba93cadca0e2bdb46947df8cf5f19040a35e

See more details on using hashes here.

Provenance

The following attestation bundles were made for doit_toolkit_cli-0.1.3-py3-none-any.whl:

Publisher: publish.yml on seanbarlow/doit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page