Nimble PRD Creation
This skill provides comprehensive guidance for creating Product Requirements Documents (PRDs) according to Nimble's standard, optimized for clarity, action, and AI augmentation.
When to Use This Skill
Use this skill when:
- Creating a new PRD for a feature or product
- Defining functional and non-functional requirements
- Documenting user flows and technical approaches
- Planning features that involve multiple teams or systems
- Creating specs that will feed into AI-assisted backlog creation
When NOT to write a PRD:
- Small, isolated changes - write stories directly instead
- Features with minimal ambiguity that don't need extensive documentation
Documentation Source
This skill references Nimble's Compass documentation. Always fetch the latest from:
Core Principles
- Outcome Over Process: State what success looks like, not how to do the work
- Context First, Details Second: Lead with the problem and why it matters
- Structured for Parsing: Use consistent sections and explicit logic that both AI and humans can understand
- Minimal but Complete: Include everything needed to build, exclude everything else
- Decisions, Not Debates: Document what we're doing and why
PRD Structure
Every PRD must follow this structure:
1. Overview
PRD ID (Required)
- Format:
UPPERCASE-WITH-HYPHENS
- Keep it concise (2-4 words max)
- Make it descriptive of the feature/domain
- Examples:
AUTH-PWD-RESET, CHECKOUT-FLOW, ADMIN-DASH, USER-PROFILE
- Used as prefix for all requirements to ensure global uniqueness
What are we building?
- One clear sentence
- No jargon, no hedging
Why does it matter?
- The business or user problem this solves
- Keep it to 2-3 sentences
Success looks like:
- Concrete, measurable outcomes
- Examples: "Users complete onboarding in under 2 minutes" or "API latency drops below 200ms"
2. Context
Current State
- What exists today
- What's broken, missing, or limiting
User/Business Problem
- Who is affected and how
- Use real scenarios, not hypotheticals
Constraints
- Technical, timeline, resource, or business limitations
Assumptions
- What we're assuming to be true
- Call these out explicitly - if they're wrong, the plan changes
3. Proposed Solution
High-Level Approach
- What we're building and how it works
- Description of the system's behavior, not a detailed spec
Key Components
- Break solution into logical parts
- Examples: "User authentication flow," "Notification engine," "Admin dashboard"
User Flow (if applicable)
- Step-by-step description of user interaction
- Plain language for simple flows
- MUST use Mermaid diagrams for complex flows with branching logic (ensures AI readability)
Technical Approach (if relevant)
- High-level tech decisions: architecture, integrations, data models, APIs
- Just enough to orient the team, not exhaustive
UI/UX Details (if applicable)
- Wireframes/Mockups: Link to Figma, Sketch, or design files
- Key Screens: List of screens/views needed with brief descriptions
4. Scope
In Scope
- What we're delivering in this release
- Be explicit
Out of Scope
- What we're NOT doing and why
- This prevents scope drift
5. Requirements
Functional Requirements
Table format with columns:
- ID:
[PRD-ID]-FR-[NUMBER] (e.g., AUTH-PWD-RESET-FR-001)
- Requirement: What must be built
- Acceptance Criteria: Bullet list starting with action verbs (Accept, Validate, Display, etc.)
- Priority: Must-have / Should-have / Nice-to-have
- User Impact: How this benefits users
Priority Levels:
- Must-have: Core functionality, blocks release without it
- Should-have: Important but can be deferred if needed
- Nice-to-have: Desirable but not critical
Non-Functional Requirements
Table format with columns:
- ID:
[PRD-ID]-NFR-[NUMBER] (e.g., AUTH-PWD-RESET-NFR-001)
- Requirement: Performance, security, compliance requirements
- Acceptance Criteria: How to verify/test (use action verbs)
- Priority: Must-have / Should-have / Nice-to-have
CRUD Operations (if applicable)
Table showing which roles can Create/Read/Update/Delete each entity:
- Entity name
- Create / Read / Update / Delete permissions
- Notes about special handling
Edge Cases
Table format:
- Scenario: What unusual situation might occur
- Expected Behavior: How system should handle it (use action verbs)
- Priority: Must-have / Should-have
6. Roles & Permissions (if applicable)
Table showing which roles can perform which actions:
- Action
- Guest / User / Admin / Other roles
- Notes about special conditions
7. Dependencies
Table format:
- Dependency: What's needed
- Type: Technical / External / Infrastructure
- Owner: Who's responsible
- Status: Complete / In Progress / Pending
AI-Friendly Formatting Rules
To maximize AI effectiveness when augmenting story creation:
- Define unique PRD ID at the top of every document in the Overview section
- Use tables for requirements and dependencies
- MUST use Mermaid diagrams for all visual diagrams and flows (images/screenshots are not AI-readable)
- Label requirements with IDs using consistent format to ensure global uniqueness
- Write acceptance criteria as bullet lists within table cells, starting with verbs
- Use "must/should/may" language in priority column for clear signal
- Keep one requirement per row - don't combine multiple requirements
- Use consistent column headers across all PRDs (AI learns the pattern)
- Separate user impact from technical detail - AI can route these to appropriate story fields
- Include explicit scope boundaries in the Scope section to prevent hallucinated features
Working with This Skill
Step 1: Gather Context
Before creating the PRD, understand:
- What problem are we solving?
- Who is affected?
- What are the constraints?
- What does success look like?
Step 2: Define PRD ID
Create a unique, descriptive PRD ID:
- Use 2-4 words
- UPPERCASE with hyphens
- Describes the feature/domain
- Will be used as prefix for all requirements
Step 3: Start with Overview & Context
Write these sections first:
- What we're building (one sentence)
- Why it matters (2-3 sentences)
- Success metrics (concrete outcomes)
- Current state and problem
- Constraints and assumptions
This ensures the PRD is grounded in real user/business needs.
Step 4: Design the Solution
Document:
- High-level approach
- Key components
- User flow (with Mermaid for complex flows)
- Technical approach (high-level only)
- UI/UX details (wireframes + key screens)
Step 5: Define Scope Boundaries
Be explicit about:
- What IS in scope for this release
- What is NOT in scope and why
Step 6: Write Requirements
For each requirement:
- Assign unique ID with PRD prefix
- Write clear requirement description
- List acceptance criteria starting with action verbs
- Set priority level
- Explain user impact (for FRs)
Don't forget:
- Non-functional requirements (performance, security, compliance)
- CRUD operations table (if applicable)
- Edge cases with expected behaviors
Step 7: Document Roles, Permissions, Dependencies
Complete the PRD with:
- Roles & Permissions table (if applicable)
- Dependencies table with owners and status
Step 8: Quality Check
Before finalizing, verify:
Example Requirement Formats
Good Functional Requirement
| ID |
Requirement |
Acceptance Criteria |
Priority |
User Impact |
| AUTH-PWD-RESET-FR-001 |
Users can request password reset via email |
• Accept email input in form• Validate email format• Display success message regardless of email existence• Send email within 30s if account exists |
Must-have |
Enables self-service account recovery |
Why this is good:
- Unique ID with PRD prefix
- Clear requirement description
- Action verbs in acceptance criteria (Accept, Validate, Display, Send)
- Priority defined
- User impact clearly stated
Good Non-Functional Requirement
| ID |
Requirement |
Acceptance Criteria |
Priority |
| AUTH-PWD-RESET-NFR-001 |
API response time <200ms at p95 |
Verify performance with load test of 1000 concurrent users |
Must-have |
Why this is good:
- Unique ID with PRD prefix
- Measurable requirement
- Action verb in criteria (Verify)
- Testable
Good Edge Case
| Scenario |
Expected Behavior |
Priority |
| Non-existent email provided |
Display success message (don't reveal account status) |
Must-have |
Why this is good:
- Specific scenario
- Clear expected behavior with action verb
- Security consideration documented
- Priority assigned
Common Pitfalls to Avoid
- Forgetting PRD ID: Every PRD must have a unique ID in Overview section
- Inconsistent requirement IDs: All requirements must use
[PRD-ID]-FR-### or [PRD-ID]-NFR-### format
- Acceptance criteria without verbs: "Form accepts" → "Accept email in form"
- Using images instead of Mermaid: AI cannot parse images; always use Mermaid for flows
- Vague success metrics: "Better performance" → "95% of users complete flow in <2 minutes"
- Missing scope boundaries: Always document what's out of scope to prevent drift
- Combining multiple requirements: Keep one requirement per table row
- No user impact: For FRs, always explain how it benefits users
- Missing edge cases: Document how system handles unusual scenarios
- No UI/UX details: Include wireframe links and key screens for frontend work
Tips for Success
- Always fetch latest documentation: The PRD standard may have been updated since this skill was created
- Start with Why: If you can't articulate user problem and business value, the PRD isn't ready
- Use action verbs consistently: Accept, Validate, Display, Send, Verify, etc.
- Link to designs and specs: Don't make developers hunt for information
- Keep requirements atomic: One requirement = one testable outcome
- Document edge cases early: They're often discovered during implementation; capture them upfront
- Get feedback before finalizing: Review with engineering and design teams
- Think about AI consumption: Structure and consistency help AI generate accurate stories
Remember: A good PRD removes ambiguity. It gives engineers what they need to build, designers what they need to create, and AI what it needs to augment PM work with clean, actionable output.
1---2name: nimble-create-prd-23description: Guide for creating Product Requirements Documents (PRDs) following Nimble's standard. Use when creating new PRDs, defining requirements, documenting features, or planning product releases. Covers structure, AI-friendly formatting, requirement IDs, and all PRD sections.4---56# Nimble PRD Creation78This skill provides comprehensive guidance for creating Product Requirements Documents (PRDs) according to Nimble's standard, optimized for clarity, action, and AI augmentation.910## When to Use This Skill1112Use this skill when:13- Creating a new PRD for a feature or product14- Defining functional and non-functional requirements15- Documenting user flows and technical approaches16- Planning features that involve multiple teams or systems17- Creating specs that will feed into AI-assisted backlog creation1819**When NOT to write a PRD:**20- Small, isolated changes - write stories directly instead21- Features with minimal ambiguity that don't need extensive documentation2223## Documentation Source2425This skill references Nimble's Compass documentation. Always fetch the latest from:26- **PRD Standard**: https://nimblehq.co/compass/product/technical-documentation/product-requirements-document/27- **PRD Example**: https://nimblehq.co/compass/product/technical-documentation/product-requirements-document-example/2829## Core Principles30311. **Outcome Over Process**: State what success looks like, not how to do the work322. **Context First, Details Second**: Lead with the problem and why it matters333. **Structured for Parsing**: Use consistent sections and explicit logic that both AI and humans can understand344. **Minimal but Complete**: Include everything needed to build, exclude everything else355. **Decisions, Not Debates**: Document what we're doing and why3637## PRD Structure3839Every PRD must follow this structure:4041### 1. Overview4243**PRD ID** (Required)44- Format: `UPPERCASE-WITH-HYPHENS`45- Keep it concise (2-4 words max)46- Make it descriptive of the feature/domain47- Examples: `AUTH-PWD-RESET`, `CHECKOUT-FLOW`, `ADMIN-DASH`, `USER-PROFILE`48- Used as prefix for all requirements to ensure global uniqueness4950**What are we building?**51- One clear sentence52- No jargon, no hedging5354**Why does it matter?**55- The business or user problem this solves56- Keep it to 2-3 sentences5758**Success looks like:**59- Concrete, measurable outcomes60- Examples: "Users complete onboarding in under 2 minutes" or "API latency drops below 200ms"6162### 2. Context6364**Current State**65- What exists today66- What's broken, missing, or limiting6768**User/Business Problem**69- Who is affected and how70- Use real scenarios, not hypotheticals7172**Constraints**73- Technical, timeline, resource, or business limitations7475**Assumptions**76- What we're assuming to be true77- Call these out explicitly - if they're wrong, the plan changes7879### 3. Proposed Solution8081**High-Level Approach**82- What we're building and how it works83- Description of the system's behavior, not a detailed spec8485**Key Components**86- Break solution into logical parts87- Examples: "User authentication flow," "Notification engine," "Admin dashboard"8889**User Flow** (if applicable)90- Step-by-step description of user interaction91- Plain language for simple flows92- **MUST use Mermaid diagrams for complex flows with branching logic** (ensures AI readability)9394**Technical Approach** (if relevant)95- High-level tech decisions: architecture, integrations, data models, APIs96- Just enough to orient the team, not exhaustive9798**UI/UX Details** (if applicable)99- **Wireframes/Mockups**: Link to Figma, Sketch, or design files100- **Key Screens**: List of screens/views needed with brief descriptions101102### 4. Scope103104**In Scope**105- What we're delivering in this release106- Be explicit107108**Out of Scope**109- What we're NOT doing and why110- This prevents scope drift111112### 5. Requirements113114**Functional Requirements**115116Table format with columns:117- **ID**: `[PRD-ID]-FR-[NUMBER]` (e.g., `AUTH-PWD-RESET-FR-001`)118- **Requirement**: What must be built119- **Acceptance Criteria**: Bullet list starting with action verbs (Accept, Validate, Display, etc.)120- **Priority**: Must-have / Should-have / Nice-to-have121- **User Impact**: How this benefits users122123**Priority Levels:**124- **Must-have**: Core functionality, blocks release without it125- **Should-have**: Important but can be deferred if needed126- **Nice-to-have**: Desirable but not critical127128**Non-Functional Requirements**129130Table format with columns:131- **ID**: `[PRD-ID]-NFR-[NUMBER]` (e.g., `AUTH-PWD-RESET-NFR-001`)132- **Requirement**: Performance, security, compliance requirements133- **Acceptance Criteria**: How to verify/test (use action verbs)134- **Priority**: Must-have / Should-have / Nice-to-have135136**CRUD Operations** (if applicable)137138Table showing which roles can Create/Read/Update/Delete each entity:139- Entity name140- Create / Read / Update / Delete permissions141- Notes about special handling142143**Edge Cases**144145Table format:146- **Scenario**: What unusual situation might occur147- **Expected Behavior**: How system should handle it (use action verbs)148- **Priority**: Must-have / Should-have149150### 6. Roles & Permissions (if applicable)151152Table showing which roles can perform which actions:153- Action154- Guest / User / Admin / Other roles155- Notes about special conditions156157### 7. Dependencies158159Table format:160- **Dependency**: What's needed161- **Type**: Technical / External / Infrastructure162- **Owner**: Who's responsible163- **Status**: Complete / In Progress / Pending164165## AI-Friendly Formatting Rules166167To maximize AI effectiveness when augmenting story creation:1681691. **Define unique PRD ID** at the top of every document in the Overview section1702. **Use tables** for requirements and dependencies1713. **MUST use Mermaid diagrams** for all visual diagrams and flows (images/screenshots are not AI-readable)1724. **Label requirements with IDs** using consistent format to ensure global uniqueness1735. **Write acceptance criteria as bullet lists** within table cells, **starting with verbs**1746. **Use "must/should/may"** language in priority column for clear signal1757. **Keep one requirement per row** - don't combine multiple requirements1768. **Use consistent column headers** across all PRDs (AI learns the pattern)1779. **Separate user impact from technical detail** - AI can route these to appropriate story fields17810. **Include explicit scope boundaries** in the Scope section to prevent hallucinated features179180## Working with This Skill181182### Step 1: Gather Context183184Before creating the PRD, understand:185- What problem are we solving?186- Who is affected?187- What are the constraints?188- What does success look like?189190### Step 2: Define PRD ID191192Create a unique, descriptive PRD ID:193- Use 2-4 words194- UPPERCASE with hyphens195- Describes the feature/domain196- Will be used as prefix for all requirements197198### Step 3: Start with Overview & Context199200Write these sections first:201- What we're building (one sentence)202- Why it matters (2-3 sentences)203- Success metrics (concrete outcomes)204- Current state and problem205- Constraints and assumptions206207This ensures the PRD is grounded in real user/business needs.208209### Step 4: Design the Solution210211Document:212- High-level approach213- Key components214- User flow (with Mermaid for complex flows)215- Technical approach (high-level only)216- UI/UX details (wireframes + key screens)217218### Step 5: Define Scope Boundaries219220Be explicit about:221- What IS in scope for this release222- What is NOT in scope and why223224### Step 6: Write Requirements225226For each requirement:2271. Assign unique ID with PRD prefix2282. Write clear requirement description2293. List acceptance criteria starting with action verbs2304. Set priority level2315. Explain user impact (for FRs)232233Don't forget:234- Non-functional requirements (performance, security, compliance)235- CRUD operations table (if applicable)236- Edge cases with expected behaviors237238### Step 7: Document Roles, Permissions, Dependencies239240Complete the PRD with:241- Roles & Permissions table (if applicable)242- Dependencies table with owners and status243244### Step 8: Quality Check245246Before finalizing, verify:247- [ ] PRD ID is defined and used consistently in all requirement IDs248- [ ] "What/Why/Success" clearly stated in Overview249- [ ] All requirements have unique IDs with PRD prefix250- [ ] Acceptance criteria start with action verbs251- [ ] Complex flows use Mermaid diagrams (not images)252- [ ] UI/UX details include wireframe links and key screens253- [ ] Scope boundaries are explicit254- [ ] Priority levels are assigned to all requirements255- [ ] Edge cases are documented256- [ ] Dependencies are listed with owners257258## Example Requirement Formats259260### Good Functional Requirement261262| ID | Requirement | Acceptance Criteria | Priority | User Impact |263|----|-------------|---------------------|----------|-------------|264| AUTH-PWD-RESET-FR-001 | Users can request password reset via email | • Accept email input in form<br>• Validate email format<br>• Display success message regardless of email existence<br>• Send email within 30s if account exists | Must-have | Enables self-service account recovery |265266**Why this is good:**267- Unique ID with PRD prefix268- Clear requirement description269- Action verbs in acceptance criteria (Accept, Validate, Display, Send)270- Priority defined271- User impact clearly stated272273### Good Non-Functional Requirement274275| ID | Requirement | Acceptance Criteria | Priority |276|----|-------------|---------------------|----------|277| AUTH-PWD-RESET-NFR-001 | API response time <200ms at p95 | Verify performance with load test of 1000 concurrent users | Must-have |278279**Why this is good:**280- Unique ID with PRD prefix281- Measurable requirement282- Action verb in criteria (Verify)283- Testable284285### Good Edge Case286287| Scenario | Expected Behavior | Priority |288|----------|-------------------|----------|289| Non-existent email provided | Display success message (don't reveal account status) | Must-have |290291**Why this is good:**292- Specific scenario293- Clear expected behavior with action verb294- Security consideration documented295- Priority assigned296297## Common Pitfalls to Avoid2982991. **Forgetting PRD ID**: Every PRD must have a unique ID in Overview section3002. **Inconsistent requirement IDs**: All requirements must use `[PRD-ID]-FR-###` or `[PRD-ID]-NFR-###` format3013. **Acceptance criteria without verbs**: "Form accepts" → "Accept email in form"3024. **Using images instead of Mermaid**: AI cannot parse images; always use Mermaid for flows3035. **Vague success metrics**: "Better performance" → "95% of users complete flow in <2 minutes"3046. **Missing scope boundaries**: Always document what's out of scope to prevent drift3057. **Combining multiple requirements**: Keep one requirement per table row3068. **No user impact**: For FRs, always explain how it benefits users3079. **Missing edge cases**: Document how system handles unusual scenarios30810. **No UI/UX details**: Include wireframe links and key screens for frontend work309310## Tips for Success3113121. **Always fetch latest documentation**: The PRD standard may have been updated since this skill was created3132. **Start with Why**: If you can't articulate user problem and business value, the PRD isn't ready3143. **Use action verbs consistently**: Accept, Validate, Display, Send, Verify, etc.3154. **Link to designs and specs**: Don't make developers hunt for information3165. **Keep requirements atomic**: One requirement = one testable outcome3176. **Document edge cases early**: They're often discovered during implementation; capture them upfront3187. **Get feedback before finalizing**: Review with engineering and design teams3198. **Think about AI consumption**: Structure and consistency help AI generate accurate stories320321Remember: A good PRD removes ambiguity. It gives engineers what they need to build, designers what they need to create, and AI what it needs to augment PM work with clean, actionable output.