|
| 1 | +# WARP.md |
| 2 | + |
| 3 | +This file provides guidance to WARP (warp.dev) when working with code in this repository. |
| 4 | + |
| 5 | +## Project Overview |
| 6 | + |
| 7 | +This is a **Spec Driven Development (SDD) MCP** project that provides a ubiquitous framework for spec driven development using MCP (Model Context Protocol) technology. The framework consists of structured Markdown prompts and workflows that guide AI agents through specification creation, task list generation, and task management. |
| 8 | + |
| 9 | +## Development Environment |
| 10 | + |
| 11 | +- **Python**: 3.12 (see `.python-version`) |
| 12 | +- **Package Manager**: `uv` (modern Python package and project manager) |
| 13 | +- **Dependencies**: FastMCP for building MCP servers and clients |
| 14 | +- **Release Process**: Semantic Release via GitHub Actions (planned) |
| 15 | + |
| 16 | +## Common Development Commands |
| 17 | + |
| 18 | +### Environment Setup |
| 19 | +```bash |
| 20 | +# Install dependencies |
| 21 | +uv sync |
| 22 | + |
| 23 | +# Activate virtual environment (if needed) |
| 24 | +source .venv/bin/activate |
| 25 | +``` |
| 26 | + |
| 27 | +### Running the Application |
| 28 | +```bash |
| 29 | +# Run the basic hello script |
| 30 | +python hello.py |
| 31 | + |
| 32 | +# Run with uv |
| 33 | +uv run hello.py |
| 34 | +``` |
| 35 | + |
| 36 | +### Development Tools |
| 37 | +```bash |
| 38 | +# Install development dependencies |
| 39 | +uv sync --group dev |
| 40 | + |
| 41 | +# Install pre-commit hooks (when available) |
| 42 | +pre-commit install |
| 43 | +``` |
| 44 | + |
| 45 | +## Architecture and Structure |
| 46 | + |
| 47 | +### Core Framework Components |
| 48 | + |
| 49 | +The project implements a **prompt-driven workflow system** with three main phases: |
| 50 | + |
| 51 | +1. **Specification Generation** (`prompts/generate-spec.md`) |
| 52 | + - Guides creation of detailed feature specifications |
| 53 | + - Uses structured questioning to gather requirements |
| 54 | + - Outputs numbered specs in `/tasks/` directory as `[n]-spec-[feature-name].md` |
| 55 | + |
| 56 | +2. **Task List Generation** (`prompts/generate-task-list-from-spec.md`) |
| 57 | + - Converts specifications into actionable task lists |
| 58 | + - Creates demoable units of work with proof artifacts |
| 59 | + - Outputs task files as `tasks-[spec-file-name].md` |
| 60 | + |
| 61 | +3. **Task Management** (`prompts/manage-tasks.md`) |
| 62 | + - Provides guidelines for executing and tracking tasks |
| 63 | + - Defines task states: `[ ]` (not started), `[~]` (in progress), `[x]` (completed) |
| 64 | + - Enforces one-task-at-a-time completion protocol |
| 65 | + |
| 66 | +### Key Design Principles |
| 67 | + |
| 68 | +- **Simple**: Transparent access to underlying tools and processes |
| 69 | +- **Ubiquitous**: Works with any AI agent and model |
| 70 | +- **Reliable**: Delivers consistent results through structured workflows |
| 71 | +- **Flexible**: Compatible with existing workflows and tools |
| 72 | +- **Scalable**: Handles projects of any size |
| 73 | + |
| 74 | +### Workflow States and Transitions |
| 75 | + |
| 76 | +Tasks follow a strict progression: |
| 77 | +- Parent tasks contain demoable units of work with demo criteria and proof artifacts |
| 78 | +- Subtasks must be completed sequentially (one at a time) |
| 79 | +- All subtasks must pass tests before parent task completion |
| 80 | +- Each completed parent task requires a commit using conventional commit format |
| 81 | + |
| 82 | +## File Organization |
| 83 | + |
| 84 | +``` |
| 85 | +/ |
| 86 | +├── prompts/ # Core SDD workflow prompts |
| 87 | +│ ├── generate-spec.md # Specification generation workflow |
| 88 | +│ ├── generate-task-list-from-spec.md # Task list creation from specs |
| 89 | +│ └── manage-tasks.md # Task execution and management guidelines |
| 90 | +├── tasks/ # Generated specs and task lists (created as needed) |
| 91 | +│ ├── [n]-spec-[name].md # Feature specifications |
| 92 | +│ └── tasks-[spec].md # Task lists derived from specs |
| 93 | +├── hello.py # Basic test script |
| 94 | +├── pyproject.toml # Python project configuration |
| 95 | +├── uv.lock # Dependency lock file |
| 96 | +└── README.md # Project documentation |
| 97 | +``` |
| 98 | + |
| 99 | +## Working with the SDD Framework |
| 100 | + |
| 101 | +### Generating a New Feature Spec |
| 102 | + |
| 103 | +Reference the `prompts/generate-spec.md` workflow to create specifications. The process involves: |
| 104 | +1. Providing initial feature description |
| 105 | +2. Answering structured clarifying questions |
| 106 | +3. Generating spec with required sections (goals, user stories, requirements, etc.) |
| 107 | +4. Saving as `/tasks/[n]-spec-[feature-name].md` |
| 108 | + |
| 109 | +### Creating Task Lists from Specs |
| 110 | + |
| 111 | +Use `prompts/generate-task-list-from-spec.md` to convert specs into actionable tasks: |
| 112 | +1. Analyze existing spec file |
| 113 | +2. Generate high-level parent tasks (demoable units) |
| 114 | +3. Break down into detailed subtasks |
| 115 | +4. Save as `/tasks/tasks-[spec-file-name].md` |
| 116 | + |
| 117 | +### Task Execution Protocol |
| 118 | + |
| 119 | +Follow `prompts/manage-tasks.md` guidelines: |
| 120 | +- Work on one subtask at a time |
| 121 | +- Mark tasks in progress with `[~]` |
| 122 | +- Complete full test suite before marking parent tasks complete |
| 123 | +- Use conventional commits for completed parent tasks |
| 124 | +- Update relevant files section as you work |
| 125 | + |
| 126 | +## Important Notes |
| 127 | + |
| 128 | +- The `/tasks/` directory is created dynamically as specs and task lists are generated |
| 129 | +- Each parent task must include **Demo Criteria** and **Proof Artifact(s)** - these are mandatory |
| 130 | +- Task completion requires passing all tests and proper commit messages |
| 131 | +- The framework is designed to work with any AI tool and model through MCP technology |
| 132 | + |
| 133 | +## Future Planned Features |
| 134 | + |
| 135 | +- User-defined output formats (Markdown, Jira, GitHub issues) |
| 136 | +- Customizable prompts for the SDD workflow |
| 137 | +- Integration with project management tools via MCP |
0 commit comments