---
title: "How to Create a Tech Spec"
description: How to create a technical specification using Quick Spec Flow
---


Use the `tech-spec` workflow for Quick Flow projects to go directly from idea to implementation-ready specification.

---

## When to Use This

- Bug fixes and small enhancements
- Small features with clear scope (1-15 stories)
- Rapid prototyping
- Adding to existing brownfield codebase
- Quick Flow track projects

---

## Prerequisites

- BMad Method installed
- PM agent or Quick Flow Solo Dev agent available
- Project directory (can be empty for greenfield)

---

## Steps

### 1. Load the PM Agent

Start a fresh chat and load the PM agent (or Quick Flow Solo Dev agent).

### 2. Run the Tech Spec Workflow

```
*create-tech-spec
```

Or simply describe what you want to build:

```
I want to fix the login validation bug
```

### 3. Answer Discovery Questions

The workflow will ask:
- What problem are you solving?
- What's the scope of the change?
- Any specific constraints?

### 4. Review Detected Context

For brownfield projects, the agent will:
- Detect your project stack
- Analyze existing code patterns
- Detect test frameworks
- Ask: "Should I follow these existing conventions?"

### 5. Get Your Tech Spec

The agent generates a comprehensive tech-spec with ready-to-implement stories.

---

## What You Get

### tech-spec.md

- Problem statement and solution
- Detected framework versions and dependencies
- Brownfield code patterns (if applicable)
- Existing test patterns to follow
- Specific file paths to modify
- Complete implementation guidance

### Story Files

For single changes:
- `story-[slug].md` - Single user story ready for development

For small features:
- `epics.md` - Epic organization
- `story-[epic-slug]-1.md`, `story-[epic-slug]-2.md`, etc.

---

## Example: Bug Fix (Single Change)

**You:** "I want to fix the login validation bug that allows empty passwords"

**Agent:**
1. Asks clarifying questions about the issue
2. Detects your Node.js stack (Express 4.18.2, Jest for testing)
3. Analyzes existing UserService code patterns
4. Asks: "Should I follow your existing conventions?" → Yes
5. Generates tech-spec.md with specific file paths
6. Creates story-login-fix.md

**Total time:** 15-30 minutes (mostly implementation)

---

## Example: Small Feature (Multi-Story)

**You:** "I want to add OAuth social login (Google, GitHub)"

**Agent:**
1. Asks about feature scope
2. Detects your stack (Next.js 13.4, NextAuth.js already installed!)
3. Analyzes existing auth patterns
4. Confirms conventions
5. Generates:
   - tech-spec.md (comprehensive implementation guide)
   - epics.md (OAuth Integration epic)
   - story-oauth-1.md (Backend OAuth setup)
   - story-oauth-2.md (Frontend login buttons)

**Total time:** 1-3 hours (mostly implementation)

---

## Implementing After Tech Spec

```bash
# Single change:
# Load DEV agent and run dev-story

# Multi-story feature:
# Optional: Load SM agent and run sprint-planning
# Then: Load DEV agent and run dev-story for each story
```

---

## Tips

### Be Specific in Discovery

- ✅ "Fix email validation in UserService to allow plus-addressing"
- ❌ "Fix validation bug"

### Trust Convention Detection

If it detects your patterns correctly, say yes! It's faster than establishing new conventions.

### Keep Single Changes Atomic

If your "single change" needs 3+ files, it might be a multi-story feature. Let the workflow guide you.

---

## Related

- [Quick Flow](../../explanation/features/quick-flow.md) - Understanding Quick Spec Flow
- [Implement Story](./implement-story.md) - After tech spec
- [Create PRD](./create-prd.md) - For larger projects needing full BMad Method
