---
title: PRD Creation and Parsing
sidebarTitle: "PRD Creation and Parsing"
---

# Writing a PRD

A PRD (Product Requirements Document) is the starting point of every task flow in Task Master. It defines what you're building and why. A clear PRD dramatically improves the quality of your tasks, your model outputs, and your final product — so it’s worth taking the time to get it right.

<Tip>
You don’t need to define your whole app up front. You can write a focused PRD just for the next feature or module you’re working on.
</Tip>

<Tip>
You can start with an empty project or you can start with a feature PRD on an existing project.
</Tip>

<Tip>
You can add and parse multiple PRDs per project using the --append flag
</Tip>

## What Makes a Good PRD?

- Clear objective — what’s the outcome or feature?
- Context — what’s already in place or assumed?
- Constraints — what limits or requirements need to be respected?
- Reasoning — why are you building it this way?

The more context you give the model, the better the breakdown and results.

---

## Writing a PRD for Task Master

<Note>
Two example PRD templates are available in `.taskmaster/templates/`:
- `example_prd.md` - Simple template for straightforward projects (`.md` recommended for better editor support)
- `example_prd_rpg.md` - Advanced RPG (Repository Planning Graph) template for complex projects with dependencies

**Why `.md`?** While both `.txt` and `.md` work, Markdown files provide syntax highlighting, proper rendering in VS Code/GitHub, and better collaboration through formatted documentation.
</Note>


You can co-write your PRD with an LLM model using the following workflow:

1. **Chat about requirements** — explain what you want to build.
2. **Show an example PRD** — share the example PRD so the model understands the expected format. The example uses formatting that work well with Task Master's code. Following the example will yield better results.
3. **Iterate and refine** — work with the model to shape the draft into a clear and well-structured PRD.

This approach works great in Cursor, or anywhere you use a chat-based LLM.

### Choosing Between Templates

**Use `example_prd.md` when:**
- Building straightforward features
- Working on smaller projects
- Dependencies are simple and obvious

**Use `example_prd_rpg.md` when:**
- Building complex systems with multiple modules
- Need explicit dependency management
- Want structured guidance on architecture decisions
- Planning a large codebase from scratch

The RPG template teaches you to think about:
1. **Functional decomposition** (WHAT the system does)
2. **Structural decomposition** (HOW it's organized in code)
3. **Explicit dependencies** (WHAT depends on WHAT)
4. **Topological ordering** (build foundation first, then layers)

<Tip>
For complex projects, using the RPG template with a code-context-aware ai agent produces the best results because the AI can understand your existing codebase structure. [Learn more about the RPG method →](/capabilities/rpg-method)
</Tip>

---

## Where to Save Your PRD

Place your PRD file in the `.taskmaster/docs` folder in your project.

- You can have **multiple PRDs** per project.
- Name your PRDs clearly so they're easy to reference later.
  - Examples: `dashboard_redesign.md`, `user_onboarding.md`
  - Tip: Use `.md` extension for better editor support and syntax highlighting

---

# Parse your PRD into Tasks

This is where the Task Master magic begins.

In Cursor's AI chat, instruct the agent to generate tasks from your PRD:

```
Please use the task-master parse-prd command to generate tasks from my PRD. The PRD is located at .taskmaster/docs/<prd-name>.md.
```

The agent will execute the following command which you can alternatively paste into the CLI:

```bash
task-master parse-prd .taskmaster/docs/<prd-name>.md
```

This will:

- Parse your PRD document
- Generate a structured `tasks.json` file with tasks, dependencies, priorities, and test strategies

Now that you have written and parsed a PRD, you are ready to start setting up your tasks.


