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.2.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.2-py3-none-any.whl (156.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doit_toolkit_cli-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 9874df8e565af0e6fdf5b4e3b5f2978203e7d8ca7b8c7215c948fe622ecb3df4
MD5 1d8b2194f4a75bcf72d50b4a81ecddf5
BLAKE2b-256 13b42408ef777617a2454df3e104a3fca34b418f2f724ad696ab4d2d492ecf8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for doit_toolkit_cli-0.1.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for doit_toolkit_cli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 15cc013030f2b15f9f0ba882e0f0046057bb3ec31d7ef3234c198080b36cef10
MD5 b534e033e95328d91384687ceb2893c4
BLAKE2b-256 b2a654cd3679e6c5bd0495aceffb5de7becb51cd81f3f9603ba592c3762c33ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for doit_toolkit_cli-0.1.2-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