mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-17 09:45:25 +00:00
the first reworked sharded workflow, prd, works great and resolves the issues with latest sonnet udpates
This commit is contained in:
parent
dcaf02f665
commit
3c81d78991
@ -6,14 +6,14 @@
|
||||
<mandate>Instructions are MANDATORY - either as file path, steps or embedded list in YAML, XML or markdown</mandate>
|
||||
<mandate>Execute ALL steps in instructions IN EXACT ORDER</mandate>
|
||||
<mandate>Save to template output file after EVERY "template-output" tag</mandate>
|
||||
<mandate>NEVER delegate a step - YOU are responsible for every steps execution</mandate>
|
||||
<mandate>NEVER skip a step - YOU are responsible for every steps execution without fail or excuse</mandate>
|
||||
</llm>
|
||||
|
||||
<WORKFLOW-RULES critical="true">
|
||||
<rule n="1">Steps execute in exact numerical order (1, 2, 3...)</rule>
|
||||
<rule n="2">Optional steps: Ask user unless #yolo mode active</rule>
|
||||
<rule n="3">Template-output tags: Save content → Show user → Get approval before continuing</rule>
|
||||
<rule n="4">User must approve each major section before continuing UNLESS #yolo mode active</rule>
|
||||
<rule n="3">Template-output tags: Save content, discuss with the user the section completed, and NEVER proceed until the users indicates
|
||||
to proceed (unless YOLO mode has been activated)</rule>
|
||||
</WORKFLOW-RULES>
|
||||
|
||||
<flow>
|
||||
@ -43,7 +43,7 @@
|
||||
</substep>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Process Each Instruction Step">
|
||||
<step n="2" title="Process Each Instruction Step in Order">
|
||||
<iterate>For each step in instructions:</iterate>
|
||||
|
||||
<substep n="2a" title="Handle Step Attributes">
|
||||
@ -60,7 +60,7 @@
|
||||
<tag>action xml tag → Perform the action</tag>
|
||||
<tag>check if="condition" xml tag → Conditional block wrapping actions (requires closing </check>)</tag>
|
||||
<tag>ask xml tag → Prompt user and WAIT for response</tag>
|
||||
<tag>invoke-workflow xml tag → Execute another workflow with given inputs</tag>
|
||||
<tag>invoke-workflow xml tag → Execute another workflow with given inputs and the workflow.xml runner</tag>
|
||||
<tag>invoke-task xml tag → Execute specified task</tag>
|
||||
<tag>invoke-protocol name="protocol_name" xml tag → Execute reusable protocol from protocols section</tag>
|
||||
<tag>goto step="x" → Jump to specified step</tag>
|
||||
@ -98,16 +98,14 @@
|
||||
</step>
|
||||
|
||||
<step n="3" title="Completion">
|
||||
<check>If checklist exists → Run validation</check>
|
||||
<check>If template: false → Confirm actions completed</check>
|
||||
<check>Else → Confirm document saved to output path</check>
|
||||
<check>Confirm document saved to output path</check>
|
||||
<action>Report workflow completion</action>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<execution-modes>
|
||||
<mode name="normal">Full user interaction at all decision points</mode>
|
||||
<mode name="#yolo">Skip all confirmations and elicitation, minimize prompts and try to produce all of the workflow automatically by
|
||||
<mode name="normal">Full user interaction and confirmation of EVERY step at EVERY template output - NO EXCEPTIONS except yolo MODE</mode>
|
||||
<mode name="yolo">Skip all confirmations and elicitation, minimize prompts and try to produce all of the workflow automatically by
|
||||
simulating the remaining discussions with an simulated expert user</mode>
|
||||
</execution-modes>
|
||||
|
||||
@ -123,7 +121,7 @@
|
||||
<tag>action - Required action to perform</tag>
|
||||
<tag>action if="condition" - Single conditional action (inline, no closing tag needed)</tag>
|
||||
<tag>check if="condition">...</check> - Conditional block wrapping multiple items (closing tag required)</tag>
|
||||
<tag>ask - Get user input (wait for response)</tag>
|
||||
<tag>ask - Get user input (ALWAYS wait for response before continuing)</tag>
|
||||
<tag>goto - Jump to another step</tag>
|
||||
<tag>invoke-workflow - Call another workflow</tag>
|
||||
<tag>invoke-task - Call a task</tag>
|
||||
@ -136,35 +134,6 @@
|
||||
</output>
|
||||
</supported-tags>
|
||||
|
||||
<conditional-execution-patterns desc="When to use each pattern">
|
||||
<pattern type="single-action">
|
||||
<use-case>One action with a condition</use-case>
|
||||
<syntax><action if="condition">Do something</action></syntax>
|
||||
<example><action if="file exists">Load the file</action></example>
|
||||
<rationale>Cleaner and more concise for single items</rationale>
|
||||
</pattern>
|
||||
|
||||
<pattern type="multi-action-block">
|
||||
<use-case>Multiple actions/tags under same condition</use-case>
|
||||
<syntax><check if="condition">
|
||||
<action>First action</action>
|
||||
<action>Second action</action>
|
||||
</check></syntax>
|
||||
<example><check if="validation fails">
|
||||
<action>Log error</action>
|
||||
<goto step="1">Retry</goto>
|
||||
</check></example>
|
||||
<rationale>Explicit scope boundaries prevent ambiguity</rationale>
|
||||
</pattern>
|
||||
|
||||
<pattern type="nested-conditions">
|
||||
<use-case>Else/alternative branches</use-case>
|
||||
<syntax><check if="condition A">...</check>
|
||||
<check if="else">...</check></syntax>
|
||||
<rationale>Clear branching logic with explicit blocks</rationale>
|
||||
</pattern>
|
||||
</conditional-execution-patterns>
|
||||
|
||||
<protocols desc="Reusable workflow protocols that can be invoked via invoke-protocol tag">
|
||||
<protocol name="discover_inputs" desc="Smart file discovery and loading based on input_file_patterns">
|
||||
<objective>Intelligently load project files (whole or sharded) based on workflow's input_file_patterns configuration</objective>
|
||||
@ -180,17 +149,8 @@
|
||||
<step n="2" title="Load Files Using Smart Strategies">
|
||||
<iterate>For each pattern in input_file_patterns:</iterate>
|
||||
|
||||
<substep n="2a" title="Try Whole Document First">
|
||||
<action>Attempt glob match on 'whole' pattern (e.g., "{output_folder}/*prd*.md")</action>
|
||||
<check if="matches found">
|
||||
<action>Load ALL matching files completely (no offset/limit)</action>
|
||||
<action>Store content in variable: {pattern_name_content} (e.g., {prd_content})</action>
|
||||
<action>Mark pattern as RESOLVED, skip to next pattern</action>
|
||||
</check>
|
||||
</substep>
|
||||
|
||||
<substep n="2b" title="Try Sharded Document if Whole Not Found">
|
||||
<check if="no whole matches AND sharded pattern exists">
|
||||
<substep n="2a" title="Try Sharded Documents First">
|
||||
<check if="sharded pattern exists">
|
||||
<action>Determine load_strategy from pattern config (defaults to FULL_LOAD if not specified)</action>
|
||||
|
||||
<strategy name="FULL_LOAD">
|
||||
@ -223,11 +183,23 @@
|
||||
<action>Store combined content in variable: {pattern_name_content}</action>
|
||||
<note>When in doubt, LOAD IT - context is valuable, being thorough is better than missing critical info</note>
|
||||
</strategy>
|
||||
<action>Mark pattern as RESOLVED, skip to next pattern</action>
|
||||
</check>
|
||||
</substep>
|
||||
|
||||
<substep n="2b" title="Try Whole Document if No Sharded Found">
|
||||
<check if="no sharded matches found OR no sharded pattern exists">
|
||||
<action>Attempt glob match on 'whole' pattern (e.g., "{output_folder}/*prd*.md")</action>
|
||||
<check if="matches found">
|
||||
<action>Load ALL matching files completely (no offset/limit)</action>
|
||||
<action>Store content in variable: {pattern_name_content} (e.g., {prd_content})</action>
|
||||
<action>Mark pattern as RESOLVED, skip to next pattern</action>
|
||||
</check>
|
||||
</check>
|
||||
</substep>
|
||||
|
||||
<substep n="2c" title="Handle Not Found">
|
||||
<check if="no matches for whole OR sharded">
|
||||
<check if="no matches for sharded OR whole">
|
||||
<action>Set {pattern_name_content} to empty string</action>
|
||||
<action>Note in session: "No {pattern_name} files found" (not an error, just unavailable, offer use change to provide)</action>
|
||||
</check>
|
||||
@ -237,8 +209,8 @@
|
||||
<step n="3" title="Report Discovery Results">
|
||||
<action>List all loaded content variables with file counts</action>
|
||||
<example>
|
||||
✓ Loaded {prd_content} from 1 file: PRD.md
|
||||
✓ Loaded {architecture_content} from 5 sharded files: architecture/index.md, architecture/system-design.md, ...
|
||||
✓ Loaded {prd_content} from 5 sharded files: prd/index.md, prd/requirements.md, ...
|
||||
✓ Loaded {architecture_content} from 1 file: Architecture.md
|
||||
✓ Loaded {epics_content} from selective load: epics/epic-3.md
|
||||
○ No ux_design files found
|
||||
</example>
|
||||
@ -246,24 +218,18 @@
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<usage-in-instructions>
|
||||
<example desc="Typical usage in workflow instructions.md">
|
||||
<step n="0" goal="Discover and load project context">
|
||||
<invoke-protocol name="discover_inputs" />
|
||||
</step>
|
||||
|
||||
<step n="1" goal="Analyze requirements">
|
||||
<action>Review {prd_content} for functional requirements</action>
|
||||
<action>Cross-reference with {architecture_content} for technical constraints</action>
|
||||
</step>
|
||||
</example>
|
||||
</usage-in-instructions>
|
||||
</protocol>
|
||||
</protocols>
|
||||
|
||||
<llm final="true">
|
||||
<mandate>This is the complete workflow execution engine</mandate>
|
||||
<mandate>You MUST Follow instructions exactly as written and maintain conversation context between steps</mandate>
|
||||
<mandate>If confused, re-read this task, the workflow yaml, and any yaml indicated files</mandate>
|
||||
<critical-rules>
|
||||
• This is the complete workflow execution engine
|
||||
• You MUST Follow instructions exactly as written
|
||||
• The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml
|
||||
• You MUST have already loaded and processed: {installed_path}/workflow.yaml
|
||||
• This workflow uses INTENT-DRIVEN PLANNING - adapt organically to product type and context
|
||||
• YOU ARE FACILITATING A CONVERSATION With a user to produce a final document step by step. The whole process is meant to be
|
||||
collaborative helping the user flesh out their ideas. Do not rush or optimize and skip any section.
|
||||
</critical-rules>
|
||||
</llm>
|
||||
</task>
|
||||
</task>
|
||||
@ -24,7 +24,7 @@ agent:
|
||||
description: Get workflow status or initialize a workflow if not already done (optional)
|
||||
|
||||
- trigger: create-prd
|
||||
workflow: "{project-root}/{bmad_folder}/bmm/workflows/2-plan-workflows/prd/workflow.yaml"
|
||||
exec: "{project-root}/{bmad_folder}/bmm/workflows/2-plan-workflows/prd/workflow.md"
|
||||
description: Create Product Requirements Document (PRD) (Required for BMad Method flow)
|
||||
|
||||
- trigger: validate-prd
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Project Brainstorming Context
|
||||
# Project Brainstorming Focus
|
||||
|
||||
This context guide provides project-specific considerations for brainstorming sessions focused on software and product development.
|
||||
|
||||
@ -18,7 +18,7 @@ template: false
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
|
||||
# Context document for project brainstorming
|
||||
project_context: "{installed_path}/project-context.md"
|
||||
project_context: "{installed_path}/brainstorming-focus.md"
|
||||
|
||||
# CORE brainstorming workflow to invoke
|
||||
core_brainstorming: "{project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.yaml"
|
||||
@ -33,7 +33,7 @@ web_bundle:
|
||||
template: false
|
||||
web_bundle_files:
|
||||
- "{bmad_folder}/bmm/workflows/1-analysis/brainstorm-project/instructions.md"
|
||||
- "{bmad_folder}/bmm/workflows/1-analysis/brainstorm-project/project-context.md"
|
||||
- "{bmad_folder}/bmm/workflows/1-analysis/brainstorm-project/brainstorming-focus.md"
|
||||
- "{bmad_folder}/core/workflows/brainstorming/workflow.yaml"
|
||||
existing_workflows:
|
||||
- core_brainstorming: "{bmad_folder}/core/workflows/brainstorming/workflow.yaml"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,346 +0,0 @@
|
||||
# PRD + Epics + Stories Validation Checklist
|
||||
|
||||
**Purpose**: Comprehensive validation that PRD, epics, and stories form a complete, implementable product plan.
|
||||
|
||||
**Scope**: Validates the complete planning output (PRD.md + epics.md) for Levels 2-4 software projects
|
||||
|
||||
**Expected Outputs**:
|
||||
|
||||
- PRD.md with complete requirements
|
||||
- epics.md with detailed epic and story breakdown
|
||||
- Updated bmm-workflow-status.yaml
|
||||
|
||||
---
|
||||
|
||||
## 1. PRD Document Completeness
|
||||
|
||||
### Core Sections Present
|
||||
|
||||
- [ ] Executive Summary with vision alignment
|
||||
- [ ] Product differentiator clearly articulated
|
||||
- [ ] Project classification (type, domain, complexity)
|
||||
- [ ] Success criteria defined
|
||||
- [ ] Product scope (MVP, Growth, Vision) clearly delineated
|
||||
- [ ] Functional requirements comprehensive and numbered
|
||||
- [ ] Non-functional requirements (when applicable)
|
||||
- [ ] References section with source documents
|
||||
|
||||
### Project-Specific Sections
|
||||
|
||||
- [ ] **If complex domain:** Domain context and considerations documented
|
||||
- [ ] **If innovation:** Innovation patterns and validation approach documented
|
||||
- [ ] **If API/Backend:** Endpoint specification and authentication model included
|
||||
- [ ] **If Mobile:** Platform requirements and device features documented
|
||||
- [ ] **If SaaS B2B:** Tenant model and permission matrix included
|
||||
- [ ] **If UI exists:** UX principles and key interactions documented
|
||||
|
||||
### Quality Checks
|
||||
|
||||
- [ ] No unfilled template variables ({{variable}})
|
||||
- [ ] All variables properly populated with meaningful content
|
||||
- [ ] Product differentiator reflected throughout (not just stated once)
|
||||
- [ ] Language is clear, specific, and measurable
|
||||
- [ ] Project type correctly identified and sections match
|
||||
- [ ] Domain complexity appropriately addressed
|
||||
|
||||
---
|
||||
|
||||
## 2. Functional Requirements Quality
|
||||
|
||||
### FR Format and Structure
|
||||
|
||||
- [ ] Each FR has unique identifier (FR-001, FR-002, etc.)
|
||||
- [ ] FRs describe WHAT capabilities, not HOW to implement
|
||||
- [ ] FRs are specific and measurable
|
||||
- [ ] FRs are testable and verifiable
|
||||
- [ ] FRs focus on user/business value
|
||||
- [ ] No technical implementation details in FRs (those belong in architecture)
|
||||
|
||||
### FR Completeness
|
||||
|
||||
- [ ] All MVP scope features have corresponding FRs
|
||||
- [ ] Growth features documented (even if deferred)
|
||||
- [ ] Vision features captured for future reference
|
||||
- [ ] Domain-mandated requirements included
|
||||
- [ ] Innovation requirements captured with validation needs
|
||||
- [ ] Project-type specific requirements complete
|
||||
|
||||
### FR Organization
|
||||
|
||||
- [ ] FRs organized by capability/feature area (not by tech stack)
|
||||
- [ ] Related FRs grouped logically
|
||||
- [ ] Dependencies between FRs noted when critical
|
||||
- [ ] Priority/phase indicated (MVP vs Growth vs Vision)
|
||||
|
||||
---
|
||||
|
||||
## 3. Epics Document Completeness
|
||||
|
||||
### Required Files
|
||||
|
||||
- [ ] epics.md exists in output folder
|
||||
- [ ] Epic list in PRD.md matches epics in epics.md (titles and count)
|
||||
- [ ] All epics have detailed breakdown sections
|
||||
|
||||
### Epic Quality
|
||||
|
||||
- [ ] Each epic has clear goal and value proposition
|
||||
- [ ] Each epic includes complete story breakdown
|
||||
- [ ] Stories follow proper user story format: "As a [role], I want [goal], so that [benefit]"
|
||||
- [ ] Each story has numbered acceptance criteria
|
||||
- [ ] Prerequisites/dependencies explicitly stated per story
|
||||
- [ ] Stories are AI-agent sized (completable in 2-4 hour session)
|
||||
|
||||
---
|
||||
|
||||
## 4. FR Coverage Validation (CRITICAL)
|
||||
|
||||
### Complete Traceability
|
||||
|
||||
- [ ] **Every FR from PRD.md is covered by at least one story in epics.md**
|
||||
- [ ] Each story references relevant FR numbers
|
||||
- [ ] No orphaned FRs (requirements without stories)
|
||||
- [ ] No orphaned stories (stories without FR connection)
|
||||
- [ ] Coverage matrix verified (can trace FR → Epic → Stories)
|
||||
|
||||
### Coverage Quality
|
||||
|
||||
- [ ] Stories sufficiently decompose FRs into implementable units
|
||||
- [ ] Complex FRs broken into multiple stories appropriately
|
||||
- [ ] Simple FRs have appropriately scoped single stories
|
||||
- [ ] Non-functional requirements reflected in story acceptance criteria
|
||||
- [ ] Domain requirements embedded in relevant stories
|
||||
|
||||
---
|
||||
|
||||
## 5. Story Sequencing Validation (CRITICAL)
|
||||
|
||||
### Epic 1 Foundation Check
|
||||
|
||||
- [ ] **Epic 1 establishes foundational infrastructure**
|
||||
- [ ] Epic 1 delivers initial deployable functionality
|
||||
- [ ] Epic 1 creates baseline for subsequent epics
|
||||
- [ ] Exception: If adding to existing app, foundation requirement adapted appropriately
|
||||
|
||||
### Vertical Slicing
|
||||
|
||||
- [ ] **Each story delivers complete, testable functionality** (not horizontal layers)
|
||||
- [ ] No "build database" or "create UI" stories in isolation
|
||||
- [ ] Stories integrate across stack (data + logic + presentation when applicable)
|
||||
- [ ] Each story leaves system in working/deployable state
|
||||
|
||||
### No Forward Dependencies
|
||||
|
||||
- [ ] **No story depends on work from a LATER story or epic**
|
||||
- [ ] Stories within each epic are sequentially ordered
|
||||
- [ ] Each story builds only on previous work
|
||||
- [ ] Dependencies flow backward only (can reference earlier stories)
|
||||
- [ ] Parallel tracks clearly indicated if stories are independent
|
||||
|
||||
### Value Delivery Path
|
||||
|
||||
- [ ] Each epic delivers significant end-to-end value
|
||||
- [ ] Epic sequence shows logical product evolution
|
||||
- [ ] User can see value after each epic completion
|
||||
- [ ] MVP scope clearly achieved by end of designated epics
|
||||
|
||||
---
|
||||
|
||||
## 6. Scope Management
|
||||
|
||||
### MVP Discipline
|
||||
|
||||
- [ ] MVP scope is genuinely minimal and viable
|
||||
- [ ] Core features list contains only true must-haves
|
||||
- [ ] Each MVP feature has clear rationale for inclusion
|
||||
- [ ] No obvious scope creep in "must-have" list
|
||||
|
||||
### Future Work Captured
|
||||
|
||||
- [ ] Growth features documented for post-MVP
|
||||
- [ ] Vision features captured to maintain long-term direction
|
||||
- [ ] Out-of-scope items explicitly listed
|
||||
- [ ] Deferred features have clear reasoning for deferral
|
||||
|
||||
### Clear Boundaries
|
||||
|
||||
- [ ] Stories marked as MVP vs Growth vs Vision
|
||||
- [ ] Epic sequencing aligns with MVP → Growth progression
|
||||
- [ ] No confusion about what's in vs out of initial scope
|
||||
|
||||
---
|
||||
|
||||
## 7. Research and Context Integration
|
||||
|
||||
### Source Document Integration
|
||||
|
||||
- [ ] **If product brief exists:** Key insights incorporated into PRD
|
||||
- [ ] **If domain brief exists:** Domain requirements reflected in FRs and stories
|
||||
- [ ] **If research documents exist:** Research findings inform requirements
|
||||
- [ ] **If competitive analysis exists:** Differentiation strategy clear in PRD
|
||||
- [ ] All source documents referenced in PRD References section
|
||||
|
||||
### Research Continuity to Architecture
|
||||
|
||||
- [ ] Domain complexity considerations documented for architects
|
||||
- [ ] Technical constraints from research captured
|
||||
- [ ] Regulatory/compliance requirements clearly stated
|
||||
- [ ] Integration requirements with existing systems documented
|
||||
- [ ] Performance/scale requirements informed by research data
|
||||
|
||||
### Information Completeness for Next Phase
|
||||
|
||||
- [ ] PRD provides sufficient context for architecture decisions
|
||||
- [ ] Epics provide sufficient detail for technical design
|
||||
- [ ] Stories have enough acceptance criteria for implementation
|
||||
- [ ] Non-obvious business rules documented
|
||||
- [ ] Edge cases and special scenarios captured
|
||||
|
||||
---
|
||||
|
||||
## 8. Cross-Document Consistency
|
||||
|
||||
### Terminology Consistency
|
||||
|
||||
- [ ] Same terms used across PRD and epics for concepts
|
||||
- [ ] Feature names consistent between documents
|
||||
- [ ] Epic titles match between PRD and epics.md
|
||||
- [ ] No contradictions between PRD and epics
|
||||
|
||||
### Alignment Checks
|
||||
|
||||
- [ ] Success metrics in PRD align with story outcomes
|
||||
- [ ] Product differentiator articulated in PRD reflected in epic goals
|
||||
- [ ] Technical preferences in PRD align with story implementation hints
|
||||
- [ ] Scope boundaries consistent across all documents
|
||||
|
||||
---
|
||||
|
||||
## 9. Readiness for Implementation
|
||||
|
||||
### Architecture Readiness (Next Phase)
|
||||
|
||||
- [ ] PRD provides sufficient context for architecture workflow
|
||||
- [ ] Technical constraints and preferences documented
|
||||
- [ ] Integration points identified
|
||||
- [ ] Performance/scale requirements specified
|
||||
- [ ] Security and compliance needs clear
|
||||
|
||||
### Development Readiness
|
||||
|
||||
- [ ] Stories are specific enough to estimate
|
||||
- [ ] Acceptance criteria are testable
|
||||
- [ ] Technical unknowns identified and flagged
|
||||
- [ ] Dependencies on external systems documented
|
||||
- [ ] Data requirements specified
|
||||
|
||||
### Track-Appropriate Detail
|
||||
|
||||
**If BMad Method:**
|
||||
|
||||
- [ ] PRD supports full architecture workflow
|
||||
- [ ] Epic structure supports phased delivery
|
||||
- [ ] Scope appropriate for product/platform development
|
||||
- [ ] Clear value delivery through epic sequence
|
||||
|
||||
**If Enterprise Method:**
|
||||
|
||||
- [ ] PRD addresses enterprise requirements (security, compliance, multi-tenancy)
|
||||
- [ ] Epic structure supports extended planning phases
|
||||
- [ ] Scope includes security, devops, and test strategy considerations
|
||||
- [ ] Clear value delivery with enterprise gates
|
||||
|
||||
---
|
||||
|
||||
## 10. Quality and Polish
|
||||
|
||||
### Writing Quality
|
||||
|
||||
- [ ] Language is clear and free of jargon (or jargon is defined)
|
||||
- [ ] Sentences are concise and specific
|
||||
- [ ] No vague statements ("should be fast", "user-friendly")
|
||||
- [ ] Measurable criteria used throughout
|
||||
- [ ] Professional tone appropriate for stakeholder review
|
||||
|
||||
### Document Structure
|
||||
|
||||
- [ ] Sections flow logically
|
||||
- [ ] Headers and numbering consistent
|
||||
- [ ] Cross-references accurate (FR numbers, section references)
|
||||
- [ ] Formatting consistent throughout
|
||||
- [ ] Tables/lists formatted properly
|
||||
|
||||
### Completeness Indicators
|
||||
|
||||
- [ ] No [TODO] or [TBD] markers remain
|
||||
- [ ] No placeholder text
|
||||
- [ ] All sections have substantive content
|
||||
- [ ] Optional sections either complete or omitted (not half-done)
|
||||
|
||||
---
|
||||
|
||||
## Critical Failures (Auto-Fail)
|
||||
|
||||
If ANY of these are true, validation FAILS:
|
||||
|
||||
- [ ] ❌ **No epics.md file exists** (two-file output required)
|
||||
- [ ] ❌ **Epic 1 doesn't establish foundation** (violates core sequencing principle)
|
||||
- [ ] ❌ **Stories have forward dependencies** (breaks sequential implementation)
|
||||
- [ ] ❌ **Stories not vertically sliced** (horizontal layers block value delivery)
|
||||
- [ ] ❌ **Epics don't cover all FRs** (orphaned requirements)
|
||||
- [ ] ❌ **FRs contain technical implementation details** (should be in architecture)
|
||||
- [ ] ❌ **No FR traceability to stories** (can't validate coverage)
|
||||
- [ ] ❌ **Template variables unfilled** (incomplete document)
|
||||
|
||||
---
|
||||
|
||||
## Validation Summary
|
||||
|
||||
- **Pass Rate ≥ 95%:** ✅ EXCELLENT - Ready for architecture phase
|
||||
- **Pass Rate 85-94%:** ⚠️ GOOD - Minor fixes needed
|
||||
- **Pass Rate 70-84%:** ⚠️ FAIR - Important issues to address
|
||||
- **Pass Rate < 70%:** ❌ POOR - Significant rework required
|
||||
|
||||
### Critical Issue Threshold
|
||||
|
||||
- **0 Critical Failures:** Proceed to fixes
|
||||
- **1+ Critical Failures:** STOP - Must fix critical issues first
|
||||
|
||||
---
|
||||
|
||||
## Validation Execution Notes
|
||||
|
||||
**When validating:**
|
||||
|
||||
1. **Load ALL documents - whole or sharded (but not both of each) for example epics.md vs epics/\*.md:**
|
||||
- PRD.md (required)
|
||||
- epics.md (required)
|
||||
- product-brief.md (if exists)
|
||||
- domain-brief.md (if exists)
|
||||
- research documents (if referenced)
|
||||
|
||||
2. **Validate in order:**
|
||||
- Check critical failures first (immediate stop if any found)
|
||||
- Verify PRD completeness
|
||||
- Verify epics completeness
|
||||
- Cross-reference FR coverage (most important)
|
||||
- Check sequencing (second most important)
|
||||
- Validate research integration
|
||||
- Check polish and quality
|
||||
|
||||
3. **Report findings:**
|
||||
- List critical failures prominently
|
||||
- Group issues by severity
|
||||
- Provide specific line numbers/sections
|
||||
- Suggest concrete fixes
|
||||
- Highlight what's working well
|
||||
|
||||
4. **Provide actionable next steps:**
|
||||
- If validation passes: "Ready for architecture workflow"
|
||||
- If minor issues: "Fix [X] items then re-validate"
|
||||
- If major issues: "Rework [sections] then re-validate"
|
||||
- If critical failures: "Must fix critical items before proceeding"
|
||||
|
||||
---
|
||||
|
||||
**Remember:** This validation ensures the entire planning phase is complete and the implementation phase has everything needed to succeed. Be thorough but fair - the goal is quality, not perfection.
|
||||
@ -1,820 +0,0 @@
|
||||
# PRD Workflow - Intent-Driven Product Planning
|
||||
|
||||
<critical-rules>
|
||||
- <critical>The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml</critical>
|
||||
- <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
||||
- <critical>This workflow uses INTENT-DRIVEN PLANNING - adapt organically to product type and context</critical>
|
||||
- <critical>Communicate all responses in {communication_language} and adapt deeply to {user_skill_level}</critical>
|
||||
- <critical>Generate all documents in {document_output_language}</critical>
|
||||
- <critical>LIVING DOCUMENT: Write to PRD.md continuously as you discover - never wait until the end</critical>
|
||||
- <critical>GUIDING PRINCIPLE: Identify what makes this product special and ensure it's reflected throughout the PRD</critical>
|
||||
- <critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
||||
- <critical>⚠️ CHECKPOINT PROTOCOL: After EVERY template-output tag, you MUST follow workflow.xml substep 2c. </critical>
|
||||
- <critical>YOU ARE FACILITATING A CONVERSATION With a user to produce a final document step by step. The whole process is meant to be collaborative helping the user flesh out their ideas</critical>
|
||||
</critical-rules>
|
||||
<workflow>
|
||||
|
||||
<step n="0" goal="Validate workflow readiness" tag="workflow-status">
|
||||
<action>Check if {status_file} exists</action>
|
||||
|
||||
<action if="status file not found">Set standalone_mode = true</action>
|
||||
|
||||
<check if="status file found">
|
||||
<action>Load the FULL file: {status_file}</action>
|
||||
<action>Parse workflow_status section</action>
|
||||
<action>Check status of "prd" workflow</action>
|
||||
<action>Get project_track from YAML metadata</action>
|
||||
<action>Find first non-completed workflow (next expected workflow)</action>
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="prd status is file path (already completed)">
|
||||
<output>⚠️ PRD already completed: {{prd status}}</output>
|
||||
<ask>Re-running will overwrite the existing PRD. Continue? (y/n)</ask>
|
||||
<check if="n">
|
||||
<output>Exiting. Use workflow-status to see your next step.</output>
|
||||
<action>Exit workflow</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<action>Set standalone_mode = false</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="0.5" goal="Discover and load input documents">
|
||||
<invoke-protocol name="discover_inputs" />
|
||||
<note>After discovery, these content variables are available: {product_brief_content}, {research_content}, {document_project_content}</note>
|
||||
</step>
|
||||
|
||||
<step n="1" goal="Discovery - Project, Domain, and Vision">
|
||||
<action>Welcome {user_name} and begin comprehensive discovery, and then start to GATHER ALL CONTEXT:
|
||||
1. Check workflow-status.yaml for project_context (if exists)
|
||||
2. Review loaded content: {product_brief_content}, {research_content}, {document_project_content} (auto-loaded in Step 0.5)
|
||||
3. Detect project type AND domain complexity using data-driven classification
|
||||
</action>
|
||||
|
||||
<action>Load classification data files COMPLETELY:
|
||||
|
||||
- Load {project_types_data} - contains project type definitions, detection signals, and requirements
|
||||
- Load {domain_complexity_data} - contains domain classifications, complexity levels, and special requirements
|
||||
|
||||
Parse CSV structure:
|
||||
|
||||
- project_types_data has columns: project_type, detection_signals, key_questions, required_sections, skip_sections, web_search_triggers, innovation_signals
|
||||
- domain_complexity_data has columns: domain, signals, complexity, key_concerns, required_knowledge, suggested_workflow, web_searches, special_sections
|
||||
|
||||
Store these in memory for use throughout the workflow.
|
||||
</action>
|
||||
|
||||
<action>Begin natural discovery conversation:
|
||||
"Tell me about what you want to build - what problem does it solve and for whom?"
|
||||
|
||||
As the user describes their product, listen for signals to classify:
|
||||
|
||||
1. PROJECT TYPE classification
|
||||
2. DOMAIN classification
|
||||
</action>
|
||||
|
||||
<action>DUAL DETECTION - Use CSV data to match:
|
||||
|
||||
**Project Type Detection:**
|
||||
|
||||
- Compare user's description against detection_signals from each row in project_types_data
|
||||
- Look for keyword matches (semicolon-separated in CSV)
|
||||
- Identify best matching project_type (api_backend, mobile_app, saas_b2b, developer_tool, cli_tool, web_app, game, desktop_app, iot_embedded, blockchain_web3)
|
||||
- If multiple matches, ask clarifying question
|
||||
- Store matched project_type value
|
||||
|
||||
**Domain Detection:**
|
||||
|
||||
- Compare user's description against signals from each row in domain_complexity_data
|
||||
- Match domain keywords (semicolon-separated in CSV)
|
||||
- Identify domain (healthcare, fintech, govtech, edtech, aerospace, automotive, scientific, legaltech, insuretech, energy, gaming, general)
|
||||
- Get complexity level from matched row (high/medium/low/redirect)
|
||||
- Store matched domain and complexity_level values
|
||||
|
||||
**Special Cases from CSV:**
|
||||
|
||||
- If project_type = "game" → Use project_types_data row to get redirect message
|
||||
- If domain = "gaming" → Use domain_complexity_data redirect action
|
||||
- If complexity = "high" → Note suggested_workflow and web_searches from domain row
|
||||
</action>
|
||||
|
||||
<action>SPECIAL ROUTING based on detected values:
|
||||
|
||||
**If game detected (from project_types_data):**
|
||||
"Game development requires the BMGD module (BMad Game Development) which has specialized workflows for game design."
|
||||
Exit workflow and redirect to BMGD.
|
||||
|
||||
**If complex domain detected (complexity = "high" from domain_complexity_data):**
|
||||
Extract suggested_workflow and web_searches from the matched domain row.
|
||||
Offer domain research options:
|
||||
A) Run {suggested_workflow} workflow (thorough) - from CSV
|
||||
B) Quick web search using {web_searches} queries - from CSV
|
||||
C) User provides their own domain context
|
||||
D) Continue with general knowledge
|
||||
|
||||
Present the options and WAIT for user choice.
|
||||
</action>
|
||||
|
||||
<action>IDENTIFY WHAT MAKES IT SPECIAL early in conversation:
|
||||
Ask questions like:
|
||||
|
||||
- "What excites you most about this product?"
|
||||
- "What would make users love this?"
|
||||
- "What's the unique value or compelling moment?"
|
||||
- "What makes this different from alternatives?"
|
||||
|
||||
Capture this differentiator - it becomes a thread connecting throughout the PRD.
|
||||
</action>
|
||||
|
||||
<template-output>vision_alignment</template-output>
|
||||
<template-output>project_classification</template-output>
|
||||
<template-output>project_type</template-output>
|
||||
<template-output>domain_type</template-output>
|
||||
<template-output>complexity_level</template-output>
|
||||
<check if="complexity_level == 'high'">
|
||||
<template-output>domain_context_summary</template-output>
|
||||
</check>
|
||||
<template-output>product_differentiator</template-output>
|
||||
<template-output>product_brief_path</template-output>
|
||||
<template-output>domain_brief_path</template-output>
|
||||
<template-output>research_documents</template-output>
|
||||
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="Discovery Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Success Definition">
|
||||
<action>Define what winning looks like for THIS specific product
|
||||
|
||||
**User Success First**
|
||||
Ask:
|
||||
|
||||
- "What would make a user say 'this was worth it'?"
|
||||
- "What moment makes them tell a friend about this?"
|
||||
- "After [key journey], what outcome are they walking away with?"
|
||||
|
||||
**Business Success Second**
|
||||
Ask:
|
||||
|
||||
- "What does success look like for your business at 3 months? 12 months?"
|
||||
- "Is this about revenue, user growth, engagement, something else?"
|
||||
- "What metric would make you say 'this is working'?"
|
||||
|
||||
**Make It Specific**
|
||||
Challenge vague metrics:
|
||||
|
||||
- NOT: "10,000 users" → "What kind of users? Doing what?"
|
||||
- NOT: "99.9% uptime" → "What's the real concern - data loss? Failed payments?"
|
||||
- NOT: "Fast" → "How fast, and what specifically needs to be fast?"
|
||||
|
||||
Ask: "Can we measure this? How would you know if you hit it?"
|
||||
|
||||
**Connect to Differentiator**
|
||||
Bring it back to the core:
|
||||
"So success means users experience [differentiator] and achieve [outcome] - does that capture it?"
|
||||
|
||||
Adapt success criteria to context:
|
||||
|
||||
- Consumer: User love, engagement, retention
|
||||
- B2B: ROI, efficiency, adoption
|
||||
- Developer tools: Developer experience, community
|
||||
- Regulated: Compliance, safety, validation</action>
|
||||
|
||||
<template-output>success_criteria</template-output>
|
||||
<check if="business focus">
|
||||
<template-output>business_metrics</template-output>
|
||||
</check>
|
||||
|
||||
<action>Smart scope negotiation - find the sweet spot based on success:
|
||||
|
||||
The Scoping Game:
|
||||
|
||||
1. "What must work for this to be useful?" → MVP
|
||||
2. "What makes it competitive?" → Growth
|
||||
3. "What's the dream version?" → Vision
|
||||
|
||||
Challenge scope creep conversationally:
|
||||
|
||||
- "Could that wait until after launch?"
|
||||
- "Is that essential for proving the concept?"
|
||||
|
||||
For complex domains:
|
||||
|
||||
- Include compliance minimums in MVP
|
||||
- Note regulatory gates between phases</action>
|
||||
|
||||
<template-output>mvp_scope</template-output>
|
||||
<template-output>growth_features</template-output>
|
||||
<template-output>vision_features</template-output>
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="Success and Scope Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode [u] User Interview</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="u">Load and execute {party_mode} but the party will include the users from the User Journeys section. The discussion can start with each user saying hello and giving their initial thoughts, then return to this checkpoint.</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
</step>
|
||||
|
||||
<step n="3" goal="User Journeys">
|
||||
<critical>This step covers ALL user types - end users, admins, moderators, support, API consumers. If a human interacts with the system, there's a journey. No journey = no FRs = doesn't exist.</critical>
|
||||
|
||||
<action>Identify all user types first:
|
||||
|
||||
Before exploring journeys, ask the user:
|
||||
|
||||
"Besides the primary user, who else interacts with this system?"
|
||||
|
||||
Consider these common user types:
|
||||
|
||||
- End users (primary)
|
||||
- Admins - manage users, settings, content
|
||||
- Moderators - review flagged content, enforce rules
|
||||
- Support staff - help users, investigate issues
|
||||
- API consumers - if dev tool or platform
|
||||
- Internal ops - analytics, monitoring, billing
|
||||
|
||||
List all user types before proceeding.</action>
|
||||
|
||||
<action>Create detailed narrative user journeys with personas:
|
||||
|
||||
For each user type identified, create rich, detailed journeys following this pattern:
|
||||
|
||||
**Journey Creation Process:**
|
||||
|
||||
**1. Develop the Persona**
|
||||
Give them a name, context, and motivation:
|
||||
|
||||
- **Name**: Realistic name (Maria, Marcus, Jordan, etc.)
|
||||
- **Backstory**: Who they are, what they want, why they need this
|
||||
- **Motivation**: Core problem they're trying to solve
|
||||
- **Emotional state**: How they feel about solving this problem
|
||||
|
||||
Example: "Maria is a working parent who wants to cook healthy meals for her family but struggles with meal planning and limited evening time. She's tired of the same rotating dishes and wants inspiration that fits her schedule."
|
||||
|
||||
**2. Map Their Complete Journey**
|
||||
Document their end-to-end experience:
|
||||
|
||||
- **Entry point**: How they discover and access the product
|
||||
- **Key steps**: Each touchpoint in sequence (use arrows →)
|
||||
- **Critical actions**: What they do at each step
|
||||
- **Decision points**: Choices they make
|
||||
- **Success moment**: Where they achieve their goal
|
||||
- **Exit point**: How the journey concludes
|
||||
|
||||
**3. Use This Exact Format for Each Journey:**
|
||||
|
||||
**Journey [Number]: [Persona Name] - [Journey Theme]**
|
||||
[Persona description with backstory and motivation]
|
||||
|
||||
- [Entry point] → [step 1] → [step 2] → [step 3] → [critical moment] → [step N] → [completion]
|
||||
|
||||
**4. Explore Journey Details Conversationally**
|
||||
For each journey, ask:
|
||||
|
||||
- "What happens at each step specifically?"
|
||||
- "What could go wrong here? What's the recovery path?"
|
||||
- "What information do they need to see/hear?"
|
||||
- "What's their emotional state at each point?"
|
||||
- "Where does this journey succeed or fail?"
|
||||
|
||||
**5. Connect Journeys to Requirements**
|
||||
After each journey, explicitly state:
|
||||
"This journey reveals requirements for:"
|
||||
|
||||
- List specific capability areas (e.g., onboarding, meal planning, admin dashboard)
|
||||
- Help user see how different journeys create different feature sets
|
||||
|
||||
**Example Output Structure:**
|
||||
|
||||
**Journey 1: Maria - First Recipe Discovery**
|
||||
Maria is a working parent who wants to cook healthy meals for her family but struggles with meal planning...
|
||||
|
||||
- Discovers via search → lands on recipe page → signs up → completes preferences → browses recommendations → saves first recipe → adds to meal plan
|
||||
|
||||
**Journey 2: [Persona] - [Theme]**
|
||||
[Persona description with context]
|
||||
|
||||
- [Step sequence] → [critical moment] → [completion]
|
||||
|
||||
**Journey 3: [Admin/Support Persona] - [Admin Theme]**
|
||||
[Admin persona description]
|
||||
|
||||
- [Admin workflow] → [decision point] → [system outcome]</action>
|
||||
|
||||
<action>Guide journey exploration to cover all key areas:
|
||||
|
||||
**Aim for 3-4 journeys minimum:**
|
||||
|
||||
1. Primary user - happy path (core experience)
|
||||
2. Primary user - edge case (different goal, error recovery)
|
||||
3. Secondary user (admin, moderator, support, etc.)
|
||||
4. API consumer (if applicable)
|
||||
|
||||
**Ask after each:** "Another journey? We should cover [suggest uncovered user type]"
|
||||
|
||||
**Use journeys to reveal requirements:**
|
||||
Each journey reveals different capabilities needed:
|
||||
|
||||
- Admin journey → admin dashboard, user management
|
||||
- Support journey → ticket system, user lookup tools
|
||||
- API journey → documentation, rate limiting, keys
|
||||
- Error recovery → retry mechanisms, help content</action>
|
||||
|
||||
<template-output>user_journeys</template-output>
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="User Journeys Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode [u] User Interview</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="u">Load and execute {party_mode} but the party will include the users from the User Journeys section. The discussion can start with each user saying hello and giving their initial thoughts, then return to this checkpoint.</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
</step>
|
||||
|
||||
<step n="5" goal="Domain-Specific Exploration" optional="true">
|
||||
<critical>This step is DATA-DRIVEN using {domain_complexity_data} CSV loaded in Step 1</critical>
|
||||
|
||||
<action>Retrieve domain-specific configuration from CSV:
|
||||
|
||||
1. Find the row in {domain_complexity_data} where domain column matches the detected {domain} from Step 1
|
||||
2. Extract these columns from the matched row:
|
||||
- key_concerns (semicolon-separated list)
|
||||
- required_knowledge (describes what expertise is needed)
|
||||
- web_searches (suggested search queries if research needed)
|
||||
- special_sections (semicolon-separated list of domain-specific sections to document)
|
||||
3. Parse the semicolon-separated values into lists
|
||||
4. Store for use in this step
|
||||
</action>
|
||||
|
||||
<action>Explore domain-specific requirements using key_concerns from CSV:
|
||||
|
||||
Parse key_concerns into individual concern areas.
|
||||
For each concern:
|
||||
|
||||
- Ask the user about their approach to this concern
|
||||
- Discuss implications for the product
|
||||
- Document requirements, constraints, and compliance needs
|
||||
|
||||
Example for healthcare domain:
|
||||
If key_concerns = "FDA approval;Clinical validation;HIPAA compliance;Patient safety;Medical device classification;Liability"
|
||||
Then explore:
|
||||
|
||||
- "Will this product require FDA approval? What classification?"
|
||||
- "How will you validate clinical accuracy and safety?"
|
||||
- "What HIPAA compliance measures are needed?"
|
||||
- "What patient safety protocols must be in place?"
|
||||
- "What liability considerations affect the design?"
|
||||
|
||||
Synthesize domain requirements that will shape everything:
|
||||
|
||||
- Regulatory requirements (from key_concerns)
|
||||
- Compliance needs (from key_concerns)
|
||||
- Industry standards (from required_knowledge)
|
||||
- Safety/risk factors (from key_concerns)
|
||||
- Required validations (from key_concerns)
|
||||
- Special expertise needed (from required_knowledge)
|
||||
|
||||
These inform:
|
||||
|
||||
- What features are mandatory
|
||||
- What NFRs are critical
|
||||
- How to sequence development
|
||||
- What validation is required
|
||||
</action>
|
||||
|
||||
<template-output>domain_considerations</template-output>
|
||||
|
||||
<action>Generate domain-specific special sections if defined:
|
||||
Parse special_sections list from the matched CSV row.
|
||||
For each section name, generate corresponding template-output.
|
||||
|
||||
Example mappings from CSV:
|
||||
|
||||
- "clinical_requirements" → <template-output>clinical_requirements</template-output>
|
||||
- "regulatory_pathway" → <template-output>regulatory_pathway</template-output>
|
||||
- "safety_measures" → <template-output>safety_measures</template-output>
|
||||
- "compliance_matrix" → <template-output>compliance_matrix</template-output>
|
||||
</action>
|
||||
</check>
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="Domain Exploration Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode [u] User Interview</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="u">Load and execute {party_mode} but the party will include the users from the User Journeys section. The discussion can start with each user saying hello and giving their initial thoughts, then return to this checkpoint.</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
</step>
|
||||
|
||||
<step n="6" goal="Innovation Discovery" optional="true">
|
||||
<critical>This step uses innovation_signals from project_types_data CSV loaded in Step 1</critical>
|
||||
|
||||
<action>Check for innovation in this product:
|
||||
|
||||
1. Retrieve innovation_signals from the project_type row in {project_types_data}
|
||||
2. Parse the semicolon-separated innovation signals specific to this project type
|
||||
3. Listen for these signals in user's description and throughout conversation
|
||||
|
||||
Example for api_backend:
|
||||
innovation_signals = "API composition;New protocol"
|
||||
|
||||
Example for mobile_app:
|
||||
innovation_signals = "Gesture innovation;AR/VR features"
|
||||
|
||||
Example for saas_b2b:
|
||||
innovation_signals = "Workflow automation;AI agents"
|
||||
</action>
|
||||
|
||||
<action>Listen for general innovation signals in conversation:
|
||||
|
||||
User language indicators:
|
||||
|
||||
- "Nothing like this exists"
|
||||
- "We're rethinking how [X] works"
|
||||
- "Combining [A] with [B] for the first time"
|
||||
- "Novel approach to [problem]"
|
||||
- "No one has done [concept] before"
|
||||
|
||||
Project-type-specific signals (from CSV innovation_signals column):
|
||||
|
||||
- Match user's descriptions against the innovation_signals for their project_type
|
||||
- If matches found, flag as innovation opportunity
|
||||
</action>
|
||||
|
||||
<action>If innovation detected (general OR project-type-specific):
|
||||
|
||||
Explore deeply:
|
||||
|
||||
- What makes it unique?
|
||||
- What assumption are you challenging?
|
||||
- How do we validate it works?
|
||||
- What's the fallback if it doesn't?
|
||||
- Has anyone tried this before?
|
||||
|
||||
Use web_search_triggers from project_types_data CSV if relevant:
|
||||
<WebSearch if="novel">{web_search_triggers} {concept} innovations {date}</WebSearch>
|
||||
</action>
|
||||
|
||||
<check if="innovation detected">
|
||||
<template-output>innovation_patterns</template-output>
|
||||
<template-output>validation_approach</template-output>
|
||||
</check>
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="Innovation Discovery Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode [u] User Interview</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="u">Load and execute {party_mode} but the party will include the users from the User Journeys section. The discussion can start with each user saying hello and giving their initial thoughts, then return to this checkpoint.</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
</step>
|
||||
|
||||
<step n="7" goal="Project-Specific Deep Dive">
|
||||
<critical>This step is DATA-DRIVEN using project_types_data CSV loaded in Step 1</critical>
|
||||
|
||||
<action>Retrieve project-specific configuration from CSV:
|
||||
|
||||
1. Find the row in {project_types_data} where project_type column matches the detected {project_type} from Step 1
|
||||
2. Extract these columns from the matched row:
|
||||
- key_questions (semicolon-separated list)
|
||||
- required_sections (semicolon-separated list)
|
||||
- skip_sections (semicolon-separated list)
|
||||
- innovation_signals (semicolon-separated list)
|
||||
3. Parse the semicolon-separated values into lists
|
||||
4. Store for use in this step
|
||||
</action>
|
||||
|
||||
<action>Conduct guided discovery using key_questions from CSV:
|
||||
|
||||
Parse key_questions into individual questions.
|
||||
For each question:
|
||||
|
||||
- Ask the user naturally in conversational style
|
||||
- Listen for their response
|
||||
- Ask clarifying follow-ups as needed
|
||||
- Connect answers to product value proposition
|
||||
|
||||
Example flow:
|
||||
If key_questions = "Endpoints needed?;Authentication method?;Data formats?"
|
||||
Then ask:
|
||||
|
||||
- "What are the main endpoints your API needs to expose?"
|
||||
- "How will you handle authentication and authorization?"
|
||||
- "What data formats will you support for requests and responses?"
|
||||
|
||||
Adapt questions to the user's context and skill level.
|
||||
</action>
|
||||
|
||||
<action>Document project-type-specific requirements:
|
||||
|
||||
Based on the user's answers to key_questions, synthesize comprehensive requirements for this project type.
|
||||
|
||||
Cover the areas indicated by required_sections from CSV (semicolon-separated list).
|
||||
Skip areas indicated by skip_sections from CSV.
|
||||
|
||||
For each required section:
|
||||
|
||||
- Summarize what was discovered
|
||||
- Document specific requirements, constraints, and decisions
|
||||
- Connect to product differentiator when relevant
|
||||
|
||||
Always connect requirements to product value:
|
||||
"How does [requirement] support the product's core value proposition?"
|
||||
</action>
|
||||
|
||||
<template-output>project_type_requirements</template-output>
|
||||
|
||||
<!-- Dynamic template outputs based on required_sections from CSV -->
|
||||
|
||||
<action>Generate dynamic template outputs based on required_sections:
|
||||
|
||||
Parse required_sections list from the matched CSV row.
|
||||
For each section name in the list, generate a corresponding template-output.
|
||||
|
||||
Common mappings (adapt based on actual CSV values):
|
||||
|
||||
- "endpoint_specs" or "endpoint_specification" → <template-output>endpoint_specification</template-output>
|
||||
- "auth_model" or "authentication_model" → <template-output>authentication_model</template-output>
|
||||
- "platform_reqs" or "platform_requirements" → <template-output>platform_requirements</template-output>
|
||||
- "device_permissions" or "device_features" → <template-output>device_features</template-output>
|
||||
- "tenant_model" → <template-output>tenant_model</template-output>
|
||||
- "rbac_matrix" or "permission_matrix" → <template-output>permission_matrix</template-output>
|
||||
|
||||
Generate all outputs dynamically - do not hardcode specific project types.
|
||||
</action>
|
||||
|
||||
<note>Example CSV row for api_backend:
|
||||
key_questions = "Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?"
|
||||
required_sections = "endpoint_specs;auth_model;data_schemas;error_codes;rate_limits;api_docs"
|
||||
skip_sections = "ux_ui;visual_design;user_journeys"
|
||||
|
||||
The LLM should parse these and generate corresponding template outputs dynamically.
|
||||
|
||||
**Template Variable Strategy:**
|
||||
The prd-template.md has common template variables defined (endpoint_specification, authentication_model, platform_requirements, device_features, tenant_model, permission_matrix).
|
||||
|
||||
For required_sections that match these common variables:
|
||||
|
||||
- Generate the specific template-output (e.g., endpoint_specs → endpoint_specification)
|
||||
- These will render in their own subsections in the template
|
||||
|
||||
For required_sections that DON'T have matching template variables:
|
||||
|
||||
- Include the content in the main project_type_requirements variable
|
||||
- This ensures all requirements are captured even if template doesn't have dedicated sections
|
||||
|
||||
This hybrid approach balances template structure with CSV-driven flexibility.
|
||||
</note>
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="Project-Specific Deep Dive Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode [u] User Interview</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="u">Load and execute {party_mode} but the party will include the users from the User Journeys section. The discussion can start with each user saying hello and giving their initial thoughts, then return to this checkpoint.</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
</step>
|
||||
|
||||
<step n="9" goal="Functional Requirements Synthesis">
|
||||
<critical>This section is THE CAPABILITY CONTRACT for all downstream work</critical>
|
||||
<critical>UX designers will ONLY design what's listed here</critical>
|
||||
<critical>Architects will ONLY support what's listed here</critical>
|
||||
<critical>Epic breakdown will ONLY implement what's listed here</critical>
|
||||
<critical>If a capability is missing from FRs, it will NOT exist in the final product</critical>
|
||||
|
||||
<action>Before writing FRs, understand their PURPOSE and USAGE:
|
||||
|
||||
**Purpose:**
|
||||
FRs define WHAT capabilities the product must have. They are the complete inventory
|
||||
of user-facing and system capabilities that deliver the product vision.
|
||||
|
||||
**Notice:**
|
||||
✅ Each FR is a testable capability
|
||||
✅ Each FR is implementation-agnostic (could be built many ways)
|
||||
✅ Each FR specifies WHO and WHAT, not HOW
|
||||
✅ No UI details, no performance numbers, no technology choices
|
||||
✅ Comprehensive coverage of capability areas
|
||||
|
||||
**How They Will Be Used:**
|
||||
|
||||
1. UX Designer reads FRs → designs interactions for each capability
|
||||
2. Architect reads FRs → designs systems to support each capability
|
||||
3. PM reads FRs → creates epics and stories to implement each capability
|
||||
|
||||
**Critical Property - COMPLETENESS:**
|
||||
Every capability discussed in vision, scope, domain requirements, and project-specific
|
||||
sections MUST be represented as an FR. Missing FRs = missing capabilities.
|
||||
|
||||
**Critical Property - ALTITUDE:**
|
||||
FRs state WHAT capability exists and WHO it serves, NOT HOW it's implemented or
|
||||
specific UI/UX details. Those come later from UX and Architecture.
|
||||
</action>
|
||||
|
||||
<action>Transform everything discovered into comprehensive functional requirements:
|
||||
|
||||
**Organization - Group by CAPABILITY AREA:**
|
||||
Don't organize by technology or layer. Group by what users/system can DO:
|
||||
|
||||
- ✅ "User Management" (not "Authentication System")
|
||||
- ✅ "Content Discovery" (not "Search Algorithm")
|
||||
- ✅ "Team Collaboration" (not "WebSocket Infrastructure")
|
||||
|
||||
**Format - Flat, Numbered List:**
|
||||
Each FR is one clear capability statement:
|
||||
|
||||
- FR#: [Actor] can [capability] [context/constraint if needed]
|
||||
- Number sequentially (FR1, FR2, FR3...)
|
||||
- Aim for 20-50 FRs for typical projects (fewer for simple, more for complex)
|
||||
|
||||
**Altitude Check:**
|
||||
Each FR should answer "WHAT capability exists?" NOT "HOW is it implemented?"
|
||||
|
||||
- ✅ "Users can customize appearance settings"
|
||||
- ❌ "Users can toggle light/dark theme with 3 font size options stored in LocalStorage"
|
||||
|
||||
The second example belongs in Epic Breakdown, not PRD.
|
||||
</action>
|
||||
|
||||
<example>
|
||||
**Well-written FRs at the correct altitude:**
|
||||
|
||||
**User Account & Access:**
|
||||
|
||||
- FR1: Users can create accounts with email or social authentication
|
||||
- FR2: Users can log in securely and maintain sessions across devices
|
||||
- FR3: Users can reset passwords via email verification
|
||||
- ...
|
||||
|
||||
**Data Ownership (local-first products):**
|
||||
|
||||
- FR10: All user data stored locally on user's device
|
||||
- FR11: Users can export complete data at any time
|
||||
- ...
|
||||
|
||||
**Collaboration:**
|
||||
|
||||
- FR14: Users can share content with specific users or teams
|
||||
- FR15: Users can comment on shared content
|
||||
- ...
|
||||
|
||||
</example>
|
||||
|
||||
<action>Generate the complete FR list by systematically extracting capabilities from all discussed so far for all that is in scope.
|
||||
|
||||
Organize FRs by logical capability groups (5-8 groups typically).
|
||||
Number sequentially across all groups (FR1, FR2... FR47).
|
||||
</action>
|
||||
|
||||
<action>SELF-VALIDATION - Before finalizing, ask yourself:
|
||||
|
||||
**Completeness Check:**
|
||||
|
||||
1. "Did I cover EVERY capability mentioned in the MVP scope section?"
|
||||
2. "Did I include domain-specific requirements as FRs?"
|
||||
3. "Did I cover the project-type specific needs (API/Mobile/SaaS/etc)?"
|
||||
4. "Could a UX designer read ONLY the FRs and know what to design?"
|
||||
5. "Could an Architect read ONLY the FRs and know what to support?"
|
||||
6. "Are there any user actions or system behaviors we discussed that have no FR?"
|
||||
|
||||
**Altitude Check:**
|
||||
|
||||
1. "Am I stating capabilities (WHAT) or implementation (HOW)?"
|
||||
2. "Am I listing acceptance criteria or UI specifics?" (Remove if yes)
|
||||
3. "Could this FR be implemented 5 different ways?" (Good - means it's not prescriptive)
|
||||
|
||||
**Quality Check:**
|
||||
|
||||
1. "Is each FR clear enough that someone could test whether it exists?"
|
||||
2. "Is each FR independent (not dependent on reading other FRs to understand)?"
|
||||
3. "Did I avoid vague terms like 'good', 'fast', 'easy'?" (Use NFRs for quality attributes)
|
||||
|
||||
COMPLETENESS GATE: Review your FR list against the entire PRD written so far and think hard - did you miss anything? Add it now before proceeding.
|
||||
</action>
|
||||
|
||||
<template-output>functional_requirements_complete</template-output>
|
||||
<critical>You MUST display the checkpoint display and HALT for user input, unless the user enabled YOLO mode.</critical>
|
||||
|
||||
<checkpoint title="Functional Requirements Complete">
|
||||
<display>[a] Advanced Elicitation [c] Continue [p] Party Mode [u] User Interview</display>
|
||||
<checkpoint-handlers>
|
||||
<on-select key="a">Load and execute {advanced_elicitation} task, then return to this checkpoint</on-select>
|
||||
<on-select key="p">Load and execute {party_mode}, then return to this checkpoint</on-select>
|
||||
<on-select key="u">Load and execute {party_mode} but the party will include the users from the User Journeys section. The discussion can start with each user saying hello and giving their initial thoughts, then return to this checkpoint.</on-select>
|
||||
<on-select key="c"> Ensure all content is written to {default_output_file}</on-select>
|
||||
</checkpoint-handlers>
|
||||
</checkpoint>
|
||||
</step>
|
||||
|
||||
<step n="10" goal="Non-Functional Requirements Discovery">
|
||||
<action>Only document NFRs that matter for THIS product
|
||||
|
||||
Performance: Only if user-facing impact
|
||||
Security: Only if handling sensitive data
|
||||
Scale: Only if growth expected
|
||||
Accessibility: Only if broad audience
|
||||
Integration: Only if connecting systems
|
||||
|
||||
For each NFR:
|
||||
|
||||
- Why it matters for THIS product
|
||||
- Specific measurable criteria
|
||||
- Domain-driven requirements
|
||||
|
||||
Skip categories that don't apply!</action>
|
||||
|
||||
<!-- Only output sections that were discussed -->
|
||||
<check if="performance matters">
|
||||
<template-output>performance_requirements</template-output>
|
||||
</check>
|
||||
<check if="security matters">
|
||||
<template-output>security_requirements</template-output>
|
||||
</check>
|
||||
<check if="scale matters">
|
||||
<template-output>scalability_requirements</template-output>
|
||||
</check>
|
||||
<check if="accessibility matters">
|
||||
<template-output>accessibility_requirements</template-output>
|
||||
</check>
|
||||
<check if="integration matters">
|
||||
<template-output>integration_requirements</template-output>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="11" goal="Complete PRD and determine next steps">
|
||||
<action>Announce that the PRD is complete and the unused sections will be cleaned up from the output document!</action>
|
||||
|
||||
<action>CRITICAL: Clean up the PRD document before validation:
|
||||
|
||||
Before running validation, you MUST remove any empty sections from the generated PRD:
|
||||
|
||||
1. **Scan for empty sections** - Look for sections with no meaningful content (just whitespace or placeholder text)
|
||||
2. **Remove entire empty sections** - Delete the section header and any empty content
|
||||
3. **Keep relevant sections only** - If a project type doesn't need certain sections (e.g., API specs for a mobile app), remove those sections entirely
|
||||
4. **Ensure document flows logically** - The final PRD should only contain sections with actual content
|
||||
|
||||
**This cleanup step is essential because:**
|
||||
|
||||
- The template includes all possible sections for maximum flexibility
|
||||
- Not all sections apply to every project type
|
||||
- Empty sections make the PRD look incomplete and unprofessional
|
||||
- Validation expects meaningful content in all included sections
|
||||
|
||||
**Example:** If building a CLI tool, you'd typically remove: API Specification, Platform Support, Device Capabilities, Multi-Tenancy Architecture, User Experience Principles sections.</action>
|
||||
|
||||
<check if="standalone_mode != true">
|
||||
<action>Load the FULL file: {status_file}</action>
|
||||
<action>Update workflow_status["prd"] = "{default_output_file}"</action>
|
||||
<action>Save file, preserving ALL comments and structure</action>
|
||||
|
||||
<action>Check workflow path to determine next expected workflows:
|
||||
|
||||
- Look for "create-epics-and-stories" as optional after PRD
|
||||
- Look for "create-ux-design" as conditional (if_has_ui)
|
||||
- Look for "create-epics-and-stories-after-ux" as optional
|
||||
- Identify the required next phase workflow
|
||||
</action>
|
||||
</check>
|
||||
|
||||
<output>**✅ PRD Complete, {user_name}!**
|
||||
|
||||
**Next Steps:**
|
||||
|
||||
**Typical next workflows:**
|
||||
|
||||
1. `workflow create-ux-design` - UX Design (if UI exists)
|
||||
2. `workflow create-architecture` - Technical architecture
|
||||
3. `workflow create-epics-and-stories` - Epic breakdown
|
||||
|
||||
**Note:** Epics can be created at any point but have richer detail when created after UX/Architecture.
|
||||
|
||||
</output>
|
||||
</step>
|
||||
|
||||
</workflow>
|
||||
@ -1,151 +0,0 @@
|
||||
# {{project_name}} - Product Requirements Document
|
||||
|
||||
**Author:** {{user_name}}
|
||||
**Date:** {{date}}
|
||||
**Version:** 1.0
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
{{vision_alignment}}
|
||||
|
||||
### What Makes This Special
|
||||
|
||||
{{product_differentiator}}
|
||||
|
||||
---
|
||||
|
||||
## User Journeys
|
||||
|
||||
{{user_journeys}}
|
||||
|
||||
---
|
||||
|
||||
## Project Classification
|
||||
|
||||
**Technical Type:** {{project_type}}
|
||||
**Domain:** {{domain_type}}
|
||||
**Complexity:** {{complexity_level}}
|
||||
|
||||
{{project_classification}}
|
||||
|
||||
### Domain Context
|
||||
|
||||
{{domain_context_summary}}
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
{{success_criteria}}
|
||||
|
||||
---
|
||||
|
||||
## Product Scope
|
||||
|
||||
### MVP - Minimum Viable Product
|
||||
|
||||
{{mvp_scope}}
|
||||
|
||||
### Growth Features (Post-MVP)
|
||||
|
||||
{{growth_features}}
|
||||
|
||||
### Vision (Future)
|
||||
|
||||
{{vision_features}}
|
||||
|
||||
---
|
||||
|
||||
## Domain-Specific Requirements
|
||||
|
||||
{{domain_considerations}}
|
||||
|
||||
This section shapes all functional and non-functional requirements below.
|
||||
|
||||
---
|
||||
|
||||
## Innovation & Novel Patterns
|
||||
|
||||
{{innovation_patterns}}
|
||||
|
||||
### Validation Approach
|
||||
|
||||
{{validation_approach}}
|
||||
|
||||
---
|
||||
|
||||
## {{project_type}} Specific Requirements
|
||||
|
||||
{{project_type_requirements}}
|
||||
|
||||
### API Specification
|
||||
|
||||
{{endpoint_specification}}
|
||||
|
||||
### Authentication & Authorization
|
||||
|
||||
{{authentication_model}}
|
||||
|
||||
### Platform Support
|
||||
|
||||
{{platform_requirements}}
|
||||
|
||||
### Device Capabilities
|
||||
|
||||
{{device_features}}
|
||||
|
||||
### Multi-Tenancy Architecture
|
||||
|
||||
{{tenant_model}}
|
||||
|
||||
### Permissions & Roles
|
||||
|
||||
{{permission_matrix}}
|
||||
|
||||
---
|
||||
|
||||
## User Experience Principles
|
||||
|
||||
{{ux_principles}}
|
||||
|
||||
### Key Interactions
|
||||
|
||||
{{key_interactions}}
|
||||
|
||||
---
|
||||
|
||||
## Functional Requirements
|
||||
|
||||
{{functional_requirements_complete}}
|
||||
|
||||
---
|
||||
|
||||
## Non-Functional Requirements
|
||||
|
||||
### Performance
|
||||
|
||||
{{performance_requirements}}
|
||||
|
||||
### Security
|
||||
|
||||
{{security_requirements}}
|
||||
|
||||
### Scalability
|
||||
|
||||
{{scalability_requirements}}
|
||||
|
||||
### Accessibility
|
||||
|
||||
{{accessibility_requirements}}
|
||||
|
||||
### Integration
|
||||
|
||||
{{integration_requirements}}
|
||||
|
||||
---
|
||||
|
||||
_This PRD captures the essence of {{project_name}} - {{product_value_summary}}_
|
||||
|
||||
_Created through collaborative discovery between {{user_name}} and AI facilitator._
|
||||
@ -0,0 +1,9 @@
|
||||
---
|
||||
stepsCompleted: []
|
||||
inputDocuments: []
|
||||
---
|
||||
|
||||
# Product Requirements Document - {{project_name}}
|
||||
|
||||
**Author:** {{user_name}}
|
||||
**Date:** {{date}}
|
||||
@ -0,0 +1,144 @@
|
||||
# Step 1: Workflow Initialization
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on initialization and setup only - don't look ahead to future steps
|
||||
- 🚪 DETECT existing workflow state and handle continuation properly
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- 💾 Initialize document and update frontmatter
|
||||
- 📖 Set up frontmatter `stepsCompleted: [1]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until setup is complete
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Variables from workflow.md are available in memory
|
||||
- Previous context = what's in output document + frontmatter
|
||||
- Don't assume knowledge from other steps
|
||||
- Input document discovery happens in this step
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Initialize the PRD workflow by detecting continuation state and setting up the document.
|
||||
|
||||
## INITIALIZATION SEQUENCE:
|
||||
|
||||
### 1. Check for Existing Workflow
|
||||
|
||||
First, check if the output document already exists:
|
||||
|
||||
- Look for file at `{output_folder}/prd.md`
|
||||
- If exists, read the complete file including frontmatter
|
||||
- If not exists, this is a fresh workflow
|
||||
|
||||
### 2. Handle Continuation (If Document Exists)
|
||||
|
||||
If the document exists and has frontmatter with `stepsCompleted`:
|
||||
|
||||
- **STOP here** and load `./step-01b-continue.md` immediately
|
||||
- Do not proceed with any initialization tasks
|
||||
- Let step-01b handle the continuation logic
|
||||
|
||||
### 3. Fresh Workflow Setup (If No Document)
|
||||
|
||||
If no document exists or no `stepsCompleted` in frontmatter:
|
||||
|
||||
#### A. Input Document Discovery
|
||||
|
||||
Discover and load context documents using smart discovery:
|
||||
|
||||
**Product Brief (Priority: Sharded → Whole):**
|
||||
|
||||
1. Check for sharded brief folder: `{output_folder}/*brief*/**/*.md`
|
||||
2. If folder exists: Load EVERY file in that folder completely to build comprehensive brief context
|
||||
3. If no folder exists: Try whole file: `{output_folder}/*brief*.md`
|
||||
4. Add discovered files to `inputDocuments` frontmatter
|
||||
|
||||
**Research Documents (Priority: Sharded → Whole):**
|
||||
|
||||
1. Check for sharded research folder: `{output_folder}/*research*/**/*.md`
|
||||
2. If folder exists: Load useful research files completely
|
||||
3. If no folder exists: Try whole file: `{output_folder}/*research*.md`
|
||||
4. Add discovered files to `inputDocuments` frontmatter
|
||||
|
||||
**Project Documentation (Existing Projects):**
|
||||
|
||||
1. Look for index file: `{output_folder}/**/index.md`
|
||||
2. CRITICAL: Load index.md to understand what project files are available
|
||||
3. Read available files from index to understand existing project context
|
||||
4. This provides essential context for extending existing project with new PRD
|
||||
5. Add discovered files to `inputDocuments` frontmatter
|
||||
|
||||
**Loading Rules:**
|
||||
|
||||
- Load ALL discovered files completely (no offset/limit)
|
||||
- For sharded folders, load ALL files to get complete picture
|
||||
- For existing projects, use index.md as guide to what's relevant
|
||||
- Track all successfully loaded files in frontmatter `inputDocuments` array
|
||||
|
||||
#### B. Create Initial Document
|
||||
|
||||
Copy the template from `{installed_path}/prd-template.md` to `{output_folder}/prd.md`
|
||||
Initialize frontmatter with:
|
||||
|
||||
```yaml
|
||||
---
|
||||
stepsCompleted: []
|
||||
inputDocuments: []
|
||||
workflowType: 'prd'
|
||||
lastStep: 0
|
||||
project_name: '{{project_name}}'
|
||||
user_name: '{{user_name}}'
|
||||
date: '{{date}}'
|
||||
---
|
||||
```
|
||||
|
||||
#### C. Complete Initialization and Report
|
||||
|
||||
Complete setup and report to user:
|
||||
|
||||
**Document Setup:**
|
||||
|
||||
- Created: `{output_folder}/prd.md` from template
|
||||
- Initialized frontmatter with workflow state
|
||||
|
||||
**Input Documents Discovered:**
|
||||
Report what was found:
|
||||
"Welcome {{user_name}}! I've set up your PRD workspace for {{project_name}}.
|
||||
|
||||
**Documents Found:**
|
||||
|
||||
- Product brief: {number of brief files loaded or "None found"}
|
||||
- Research: {number of research files loaded or "None found"}
|
||||
- Project docs: {number of project files loaded or "None found"}
|
||||
|
||||
**Files loaded:** {list of specific file names or "No additional documents found"}
|
||||
|
||||
Do you have any other documents you'd like me to include, or shall we continue to the next step?
|
||||
|
||||
[C] Continue to project discovery
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Existing workflow detected and handed off to step-01b correctly
|
||||
✅ Fresh workflow initialized with template and frontmatter
|
||||
✅ Input documents discovered and loaded using sharded-first logic
|
||||
✅ All discovered files tracked in frontmatter `inputDocuments`
|
||||
✅ User confirmed document setup and can proceed
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Proceeding with fresh initialization when existing workflow exists
|
||||
❌ Not updating frontmatter with discovered input documents
|
||||
❌ Creating document without proper template
|
||||
❌ Not checking sharded folders first before whole files
|
||||
❌ Not reporting what documents were found to user
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects [C] to continue, load `./step-02-discovery.md` to begin the project discovery phase.
|
||||
@ -0,0 +1,116 @@
|
||||
# Step 1B: Workflow Continuation
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on understanding where we left off and continuing appropriately
|
||||
- 🚪 RESUME workflow from exact point where it was interrupted
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis of current state before taking action
|
||||
- 💾 Keep existing frontmatter `stepsCompleted` values
|
||||
- 📖 Only load documents that were already tracked in `inputDocuments`
|
||||
- 🚫 FORBIDDEN to modify content completed in previous steps
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter are already loaded
|
||||
- Previous context = complete document + existing frontmatter
|
||||
- Input documents listed in frontmatter were already processed
|
||||
- Last completed step = `lastStep` value from frontmatter
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Resume the PRD workflow from where it was left off, ensuring smooth continuation.
|
||||
|
||||
## CONTINUATION SEQUENCE:
|
||||
|
||||
### 1. Analyze Current State
|
||||
|
||||
Review the frontmatter to understand:
|
||||
|
||||
- `stepsCompleted`: Which steps are already done
|
||||
- `lastStep`: The most recently completed step number
|
||||
- `inputDocuments`: What context was already loaded
|
||||
- All other frontmatter variables
|
||||
|
||||
### 2. Load All Input Documents
|
||||
|
||||
Reload the context documents listed in `inputDocuments`:
|
||||
|
||||
- For each document in `inputDocuments`, load the complete file
|
||||
- This ensures you have full context for continuation
|
||||
- Don't discover new documents - only reload what was previously processed
|
||||
|
||||
### 3. Summarize Current Progress
|
||||
|
||||
Welcome the user back and provide context:
|
||||
"Welcome back {{user_name}}! I'm resuming our PRD collaboration for {{project_name}}.
|
||||
|
||||
**Current Progress:**
|
||||
|
||||
- Steps completed: {stepsCompleted}
|
||||
- Last worked on: Step {lastStep}
|
||||
- Context documents available: {len(inputDocuments)} files
|
||||
|
||||
**Document Status:**
|
||||
|
||||
- Current PRD document is ready with all completed sections
|
||||
- Ready to continue from where we left off
|
||||
|
||||
Does this look right, or do you want to make any adjustments before we proceed?"
|
||||
|
||||
### 4. Determine Next Step
|
||||
|
||||
Based on `lastStep` value, determine which step to load next:
|
||||
|
||||
- If `lastStep = 1` → Load `./step-02-discovery.md`
|
||||
- If `lastStep = 2` → Load `./step-03-success.md`
|
||||
- If `lastStep = 3` → Load `./step-04-journeys.md`
|
||||
- Continue this pattern for all steps
|
||||
- If `lastStep = 10` → Workflow already complete
|
||||
|
||||
### 5. Present Continuation Options
|
||||
|
||||
After presenting current progress, ask:
|
||||
"Ready to continue with Step {nextStepNumber}: {nextStepTitle}?
|
||||
|
||||
[C] Continue to Step {nextStepNumber}"
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ All previous input documents successfully reloaded
|
||||
✅ Current workflow state accurately analyzed and presented
|
||||
✅ User confirms understanding of progress
|
||||
✅ Correct next step identified and prepared for loading
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Discovering new input documents instead of reloading existing ones
|
||||
❌ Modifying content from already completed steps
|
||||
❌ Loading wrong next step based on `lastStep` value
|
||||
❌ Proceeding without user confirmation of current state
|
||||
|
||||
## WORKFLOW ALREADY COMPLETE?
|
||||
|
||||
If `lastStep = 10` (final step completed):
|
||||
"Great news! It looks like we've already completed the PRD workflow for {{project_name}}.
|
||||
|
||||
The final document is ready at {output_folder}/prd.md with all sections completed through step 10.
|
||||
|
||||
Would you like me to:
|
||||
|
||||
- Review the completed PRD with you
|
||||
- Suggest next workflow steps (like architecture or epic creation)
|
||||
- Start a new PRD revision
|
||||
|
||||
What would be most helpful?"
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user confirms they're ready to continue, load the appropriate next step file based on the `lastStep` value from frontmatter.
|
||||
|
||||
Remember: Do NOT load the next step until user explicitly selects [C] to continue!
|
||||
@ -0,0 +1,206 @@
|
||||
# Step 2: Project & Domain Discovery
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on project classification and vision alignment only
|
||||
- 🎯 LOAD classification data BEFORE starting discovery conversation
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating executive summary content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper insights about the generated content
|
||||
- **P (Party Mode)**: Bring multiple perspectives to discuss and improve the generated content
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from step 1 are available
|
||||
- Input documents already loaded are in memory
|
||||
- Classification CSV data will be loaded in this step only
|
||||
- This will be the first content section appended to the document
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Conduct comprehensive project discovery with data-driven classification and generate the first content section.
|
||||
|
||||
## DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Load Classification Data
|
||||
|
||||
Load and prepare CSV data for intelligent classification:
|
||||
|
||||
- Load `./project-types.csv` completely
|
||||
- Load `./domain-complexity.csv` completely
|
||||
- Parse column structures and store in memory for this step only
|
||||
|
||||
### 2. Begin Natural Discovery Conversation
|
||||
|
||||
Start with open-ended discovery:
|
||||
"As your PM peer, I'm excited to help you shape {{project_name}}. Let me start by understanding what you want to build.
|
||||
|
||||
**Tell me about what you want to create:**
|
||||
|
||||
- What problem does it solve?
|
||||
- Who are you building this for?
|
||||
- What excites you most about this product?
|
||||
|
||||
I'll be listening for signals to help us classify the project and domain so we can ask the right questions throughout our process."
|
||||
|
||||
### 3. Listen for Classification Signals
|
||||
|
||||
As the user describes their product, listen for and match against:
|
||||
|
||||
#### Project Type Signals
|
||||
|
||||
Compare user description against `detection_signals` from `project-types.csv`:
|
||||
|
||||
- Look for keyword matches from semicolon-separated signals
|
||||
- Examples: "API,REST,GraphQL" → api_backend
|
||||
- Examples: "iOS,Android,app,mobile" → mobile_app
|
||||
- Store the best matching `project_type`
|
||||
|
||||
#### Domain Signals
|
||||
|
||||
Compare user description against `signals` from `domain-complexity.csv`:
|
||||
|
||||
- Look for domain keyword matches
|
||||
- Examples: "medical,diagnostic,clinical" → healthcare
|
||||
- Examples: "payment,banking,trading" → fintech
|
||||
- Store the matched `domain` and `complexity_level`
|
||||
|
||||
### 4. Validate Classifications
|
||||
|
||||
Present your classifications for user validation:
|
||||
"Based on our conversation, I'm hearing this as:
|
||||
|
||||
- **Project Type:** {detected_project_type}
|
||||
- **Domain:** {detected_domain}
|
||||
- **Complexity:** {complexity_level}
|
||||
|
||||
Does this sound right to you? I want to make sure we're on the same page before diving deeper."
|
||||
|
||||
### 5. Identify What Makes It Special
|
||||
|
||||
Ask focused questions to capture the product's unique value:
|
||||
|
||||
- "What would make users say 'this is exactly what I needed'?"
|
||||
- "What's the moment where users realize this is different/better?"
|
||||
- "What assumption about [problem space] are you challenging?"
|
||||
- "If this succeeds wildly, what changed for your users?"
|
||||
|
||||
### 6. Generate Executive Summary Content
|
||||
|
||||
Based on the conversation, prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
```markdown
|
||||
## Executive Summary
|
||||
|
||||
{vision_alignment_content}
|
||||
|
||||
### What Makes This Special
|
||||
|
||||
{product_differentiator_content}
|
||||
|
||||
## Project Classification
|
||||
|
||||
**Technical Type:** {project_type}
|
||||
**Domain:** {domain}
|
||||
**Complexity:** {complexity_level}
|
||||
|
||||
{project_classification_content}
|
||||
```
|
||||
|
||||
### 7. Present Content and Menu
|
||||
|
||||
Show the generated content to the user and present:
|
||||
"I've drafted our Executive Summary based on our conversation. This will be the first section of your PRD.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 6]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's dive deeper and refine this content
|
||||
[P] Party Mode - Bring in different perspectives to improve this
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 8. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current content
|
||||
- Process the enhanced content that comes back
|
||||
- Ask user: "Accept these changes to the Executive Summary? (y/n)"
|
||||
- If yes: Update the content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current content
|
||||
- Process the collaborative improvements that come back
|
||||
- Ask user: "Accept these changes to the Executive Summary? (y/n)"
|
||||
- If yes: Update the content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2]`
|
||||
- Load `./step-03-success.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Classification data loaded and used effectively
|
||||
✅ User classifications validated and confirmed
|
||||
✅ Product differentiator clearly identified
|
||||
✅ Executive summary content generated collaboratively
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Skipping classification data loading and guessing classifications
|
||||
❌ Not validating classifications with user before proceeding
|
||||
❌ Generating executive summary without real user input
|
||||
❌ Missing the "what makes it special" discovery
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## COMPLEXITY HANDLING:
|
||||
|
||||
If `complexity_level = "high"`:
|
||||
|
||||
- Note the `suggested_workflow` and `web_searches` from domain CSV
|
||||
- Consider mentioning domain research needs in classification section
|
||||
- Document complexity implications in project classification
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-03-success.md` to define success criteria.
|
||||
|
||||
Remember: Do NOT proceed to step-03 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,234 @@
|
||||
# Step 3: Success Criteria Definition
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on defining what winning looks like for this product
|
||||
- 🎯 COLLABORATIVE discovery, not assumption-based goal setting
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating success criteria content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper insights about success metrics
|
||||
- **P (Party Mode)**: Bring multiple perspectives to define comprehensive success criteria
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Executive Summary and Project Classification already exist in document
|
||||
- No additional data files needed for this step
|
||||
- Focus on measurable, specific success criteria
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Define comprehensive success criteria that cover user success, business success, and technical success.
|
||||
|
||||
## SUCCESS DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Begin Success Definition Conversation
|
||||
|
||||
Start with user-centered success:
|
||||
"Now that we understand what makes {{project_name}} special, let's define what success looks like.
|
||||
|
||||
**User Success First:**
|
||||
|
||||
- What would make a user say 'this was worth it'?
|
||||
- What's the moment where they realize this solved their problem?
|
||||
- After using {{project_name}}, what outcome are they walking away with?
|
||||
|
||||
Let's start with the user experience of success."
|
||||
|
||||
### 2. Explore User Success Metrics
|
||||
|
||||
Listen for specific user outcomes and help make them measurable:
|
||||
|
||||
- Guide from vague to specific: NOT "users are happy" → "users complete [key action] within [timeframe]"
|
||||
- Ask about emotional success: "When do they feel delighted/relieved/empowered?"
|
||||
- Identify success moments: "What's the 'aha!' moment?"
|
||||
- Define completion scenarios: "What does 'done' look like for the user?"
|
||||
|
||||
### 3. Define Business Success
|
||||
|
||||
Transition to business metrics:
|
||||
"Now let's look at success from the business perspective.
|
||||
|
||||
**Business Success:**
|
||||
|
||||
- What does success look like at 3 months? 12 months?
|
||||
- Are we measuring revenue, user growth, engagement, something else?
|
||||
- What metric would make you say 'this is working'?
|
||||
|
||||
Help me understand what success means for your business."
|
||||
|
||||
### 4. Challenge Vague Metrics
|
||||
|
||||
Push for specificity on business metrics:
|
||||
|
||||
- "10,000 users" → "What kind of users? Doing what?"
|
||||
- "99.9% uptime" → "What's the real concern - data loss? Failed payments?"
|
||||
- "Fast" → "How fast, and what specifically needs to be fast?"
|
||||
- "Good adoption" → "What percentage adoption by when?"
|
||||
|
||||
### 5. Connect to Product Differentiator
|
||||
|
||||
Tie success metrics back to what makes the product special:
|
||||
"So success means users experience [differentiator] and achieve [outcome]. Does that capture it?"
|
||||
|
||||
Adapt success criteria to context:
|
||||
|
||||
- Consumer: User love, engagement, retention
|
||||
- B2B: ROI, efficiency, adoption
|
||||
- Developer tools: Developer experience, community
|
||||
- Regulated: Compliance, safety, validation
|
||||
- GovTech: Government compliance, accessibility, procurement
|
||||
|
||||
### 6. Smart Scope Negotiation
|
||||
|
||||
Guide scope definition through success lens:
|
||||
"The Scoping Game:
|
||||
|
||||
1. What must work for this to be useful? → MVP
|
||||
2. What makes it competitive? → Growth
|
||||
3. What's the dream version? → Vision
|
||||
|
||||
Challenge scope creep conversationally:
|
||||
|
||||
- Could that wait until after launch?
|
||||
- Is that essential for proving the concept?
|
||||
|
||||
For complex domains, include compliance minimums in MVP."
|
||||
|
||||
### 7. Generate Success Criteria Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Success Criteria
|
||||
|
||||
### User Success
|
||||
|
||||
[Content about user success criteria based on conversation]
|
||||
|
||||
### Business Success
|
||||
|
||||
[Content about business success metrics based on conversation]
|
||||
|
||||
### Technical Success
|
||||
|
||||
[Content about technical success requirements based on conversation]
|
||||
|
||||
### Measurable Outcomes
|
||||
|
||||
[Content about specific measurable outcomes based on conversation]
|
||||
|
||||
## Product Scope
|
||||
|
||||
### MVP - Minimum Viable Product
|
||||
|
||||
[Content about MVP scope based on conversation]
|
||||
|
||||
### Growth Features (Post-MVP)
|
||||
|
||||
[Content about growth features based on conversation]
|
||||
|
||||
### Vision (Future)
|
||||
|
||||
[Content about future vision based on conversation]
|
||||
```
|
||||
|
||||
### 8. Present Content and Menu
|
||||
|
||||
Show the generated content and present choices:
|
||||
"I've drafted our success criteria and scope definition based on our conversation.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 7]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's dive deeper and refine these success metrics
|
||||
[P] Party Mode - Bring in different perspectives on success criteria
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 9. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current success criteria content
|
||||
- Process the enhanced success metrics that come back
|
||||
- Ask user: "Accept these improvements to the success criteria? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current success criteria
|
||||
- Process the collaborative improvements to metrics and scope
|
||||
- Ask user: "Accept these changes to the success criteria? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3]`
|
||||
- Load `./step-04-journeys.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 7.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ User success criteria clearly identified and made measurable
|
||||
✅ Business success metrics defined with specific targets
|
||||
✅ Success criteria connected to product differentiator
|
||||
✅ Scope properly negotiated (MVP, Growth, Vision)
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Accepting vague success metrics without pushing for specificity
|
||||
❌ Not connecting success criteria back to product differentiator
|
||||
❌ Missing scope negotiation and leaving it undefined
|
||||
❌ Generating content without real user input on what success looks like
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## DOMAIN CONSIDERATIONS:
|
||||
|
||||
If working in regulated domains (healthcare, fintech, govtech):
|
||||
|
||||
- Include compliance milestones in success criteria
|
||||
- Add regulatory approval timelines to MVP scope
|
||||
- Consider audit requirements as technical success metrics
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-04-journeys.md` to map user journeys.
|
||||
|
||||
Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,220 @@
|
||||
# Step 4: User Journey Mapping
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on mapping ALL user types that interact with the system
|
||||
- 🎯 CRITICAL: No journey = no functional requirements = product doesn't exist
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating journey content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper journey insights
|
||||
- **P (Party Mode)**: Bring multiple perspectives to map comprehensive user journeys
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Success criteria and scope already defined
|
||||
- No additional data files needed for this step
|
||||
- Every human interaction with the system needs a journey
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Map comprehensive user journeys for ALL user types that interact with the system.
|
||||
|
||||
## JOURNEY MAPPING SEQUENCE:
|
||||
|
||||
### 1. Identify All User Types
|
||||
|
||||
Start with comprehensive user type discovery:
|
||||
"Now that we know what success looks like, let's map out ALL the people who will interact with {{project_name}}.
|
||||
|
||||
**Beyond primary users, who else touches this system?**
|
||||
Consider:
|
||||
|
||||
- End users (the primary focus)
|
||||
- Admins - manage users, settings, content
|
||||
- Moderators - review flagged content, enforce rules
|
||||
- Support staff - help users, investigate issues
|
||||
- API consumers - if dev tool or platform
|
||||
- Internal ops - analytics, monitoring, billing
|
||||
|
||||
What user types should we map for this product?"
|
||||
|
||||
### 2. Create Detailed Narrative Journeys
|
||||
|
||||
For each user type, create rich, detailed journeys following this structure:
|
||||
|
||||
#### Journey Creation Process:
|
||||
|
||||
**1. Develop the Persona:**
|
||||
|
||||
- **Name**: Realistic name (Maria, Marcus, Jordan, etc.)
|
||||
- **Backstory**: Who they are, what they want, why they need this
|
||||
- **Motivation**: Core problem they're trying to solve
|
||||
- **Emotional state**: How they feel about solving this problem
|
||||
|
||||
**2. Map Complete Journey:**
|
||||
|
||||
- **Entry point**: How they discover and access the product
|
||||
- **Key steps**: Each touchpoint in sequence (use arrows →)
|
||||
- **Critical actions**: What they do at each step
|
||||
- **Decision points**: Choices they make
|
||||
- **Success moment**: Where they achieve their goal
|
||||
- **Exit point**: How the journey concludes
|
||||
|
||||
**3. Use This Exact Format:**
|
||||
|
||||
```markdown
|
||||
**Journey [Number]: [Persona Name] - [Journey Theme]**
|
||||
[Persona description with backstory and motivation]
|
||||
|
||||
- [Entry point] → [step 1] → [step 2] → [step 3] → [critical moment] → [step N] → [completion]
|
||||
```
|
||||
|
||||
### 3. Guide Journey Exploration
|
||||
|
||||
For each journey, facilitate detailed exploration:
|
||||
|
||||
- "What happens at each step specifically?"
|
||||
- "What could go wrong here? What's the recovery path?"
|
||||
- "What information do they need to see/hear?"
|
||||
- "What's their emotional state at each point?"
|
||||
- "Where does this journey succeed or fail?"
|
||||
|
||||
### 4. Connect Journeys to Requirements
|
||||
|
||||
After each journey, explicitly state:
|
||||
"This journey reveals requirements for:
|
||||
|
||||
- List specific capability areas (e.g., onboarding, meal planning, admin dashboard)
|
||||
- Help user see how different journeys create different feature sets"
|
||||
|
||||
### 5. Aim for Comprehensive Coverage
|
||||
|
||||
Guide toward complete journey set:
|
||||
|
||||
- **Primary user** - happy path (core experience)
|
||||
- **Primary user** - edge case (different goal, error recovery)
|
||||
- **Secondary user** (admin, moderator, support, etc.)
|
||||
- **API consumer** (if applicable)
|
||||
|
||||
Ask: "Another journey? We should cover [suggest uncovered user type]"
|
||||
|
||||
### 6. Generate User Journey Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## User Journeys
|
||||
|
||||
[All journey narratives based on conversation]
|
||||
|
||||
### Journey Requirements Summary
|
||||
|
||||
[Summary of capabilities revealed by journeys based on conversation]
|
||||
```
|
||||
|
||||
### 7. Present Content and Menu
|
||||
|
||||
Show the generated journey content and present choices:
|
||||
"I've mapped out the user journeys based on our conversation. Each journey reveals different capabilities needed for {{project_name}}.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 6]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's dive deeper into these user journeys
|
||||
[P] Party Mode - Bring different perspectives to ensure we have all journeys
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 8. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current journey content
|
||||
- Process the enhanced journey insights that come back
|
||||
- Ask user: "Accept these improvements to the user journeys? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current journeys
|
||||
- Process the collaborative journey improvements and additions
|
||||
- Ask user: "Accept these changes to the user journeys? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
|
||||
- Load `./step-05-domain.md` (or determine if step is optional based on domain complexity)
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ All user types identified (not just primary users)
|
||||
✅ Rich persona development for each journey
|
||||
✅ Complete end-to-end journey mapping with critical moments
|
||||
✅ Journey requirements clearly connected to capabilities needed
|
||||
✅ Minimum 3-4 comprehensive journeys covering different user types
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Only mapping primary user journeys and missing secondary users
|
||||
❌ Creating generic journeys without rich persona details
|
||||
❌ Missing critical decision points and failure scenarios
|
||||
❌ Not connecting journeys to required capabilities
|
||||
❌ Not having enough journey diversity (admin, support, API, etc.)
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## JOURNEY TYPES TO ENSURE:
|
||||
|
||||
**Minimum Coverage:**
|
||||
|
||||
1. **Primary User - Success Path**: Core experience journey
|
||||
2. **Primary User - Edge Case**: Error recovery, alternative goals
|
||||
3. **Admin/Operations User**: Management, configuration, monitoring
|
||||
4. **Support/Troubleshooting**: Help, investigation, issue resolution
|
||||
5. **API/Integration** (if applicable): Developer/technical user journey
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-05-domain.md`.
|
||||
|
||||
Note: Step-05 is optional - check if domain complexity from step-02 warrants domain-specific exploration.
|
||||
|
||||
Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,241 @@
|
||||
# Step 5: Domain-Specific Exploration
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on domain-specific requirements and compliance needs
|
||||
- 🎯 OPTIONAL STEP: Only proceed if complexity_level = "high" from step-02
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating domain content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper domain insights
|
||||
- **P (Party Mode)**: Bring domain expertise perspectives to explore requirements
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Domain complexity from step-02 should be "high" to justify this step
|
||||
- Domain-specific CSV data will be loaded in this step
|
||||
- Focus on compliance, regulations, and domain-specific constraints
|
||||
|
||||
## OPTIONAL STEP CHECK:
|
||||
|
||||
Before proceeding with this step, verify:
|
||||
|
||||
- Is `complexity_level` from step-02 equal to "high"?
|
||||
- Does the domain have specific regulatory/compliance needs?
|
||||
- Would domain exploration significantly impact the product requirements?
|
||||
|
||||
If NO to these questions, skip this step and load `./step-06-innovation.md`.
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Explore domain-specific requirements for complex domains that need specialized compliance, regulatory, or industry-specific considerations.
|
||||
|
||||
## DOMAIN EXPLORATION SEQUENCE:
|
||||
|
||||
### 1. Load Domain Configuration Data
|
||||
|
||||
Load domain-specific configuration for complex domains:
|
||||
|
||||
- Load `./domain-complexity.csv` completely
|
||||
- Find the row where `domain` matches the detected domain from step-02
|
||||
- Extract these columns:
|
||||
- `key_concerns` (semicolon-separated list)
|
||||
- `required_knowledge` (domain expertise needed)
|
||||
- `web_searches` (suggested research queries)
|
||||
- `special_sections` (domain-specific sections to document)
|
||||
|
||||
### 2. Present Domain Complexity Context
|
||||
|
||||
Start by explaining why this step is needed:
|
||||
"Since {{project_name}} is in the {domain} domain with high complexity, we need to explore domain-specific requirements.
|
||||
|
||||
**Key Concerns for {domain}:**
|
||||
[List the key_concerns from CSV]
|
||||
|
||||
This step will help us understand regulatory requirements, compliance needs, and industry-specific constraints that will shape our product."
|
||||
|
||||
### 3. Explore Domain-Specific Requirements
|
||||
|
||||
For each concern in `key_concerns` from the CSV:
|
||||
|
||||
#### Domain Concern Exploration:
|
||||
|
||||
- Ask the user about their approach to this concern
|
||||
- Discuss implications for the product design and requirements
|
||||
- Document specific requirements, constraints, and compliance needs
|
||||
|
||||
**Example for Healthcare Domain:**
|
||||
If key_concerns = "FDA approval;Clinical validation;HIPAA compliance;Patient safety;Medical device classification;Liability"
|
||||
|
||||
Ask about each:
|
||||
|
||||
- "Will this product require FDA approval? What classification?"
|
||||
- "How will you validate clinical accuracy and safety?"
|
||||
- "What HIPAA compliance measures are needed?"
|
||||
- "What patient safety protocols must be in place?"
|
||||
- "What liability considerations affect the design?"
|
||||
|
||||
### 4. Synthesize Domain Requirements
|
||||
|
||||
Based on the conversation, synthesize domain requirements that will shape everything:
|
||||
|
||||
#### Categories to Document:
|
||||
|
||||
- **Regulatory requirements** (from key_concerns)
|
||||
- **Compliance needs** (from key_concerns)
|
||||
- **Industry standards** (from required_knowledge)
|
||||
- **Safety/risk factors** (from key_concerns)
|
||||
- **Required validations** (from key_concerns)
|
||||
- **Special expertise needed** (from required_knowledge)
|
||||
|
||||
Explain how these inform:
|
||||
|
||||
- What features are mandatory
|
||||
- What NFRs are critical
|
||||
- How to sequence development
|
||||
- What validation is required
|
||||
|
||||
### 5. Generate Domain-Specific Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Domain-Specific Requirements
|
||||
|
||||
### [Domain Name] Compliance & Regulatory Overview
|
||||
|
||||
[Domain context summary based on conversation]
|
||||
|
||||
### Key Domain Concerns
|
||||
|
||||
[Key concerns addressed based on conversation]
|
||||
|
||||
### Compliance Requirements
|
||||
|
||||
[Compliance requirements based on conversation]
|
||||
|
||||
### Industry Standards & Best Practices
|
||||
|
||||
[Industry standards based on conversation]
|
||||
|
||||
### Required Expertise & Validation
|
||||
|
||||
[Required knowledge and validation based on conversation]
|
||||
|
||||
### Implementation Considerations
|
||||
|
||||
[Implementation implications based on conversation]
|
||||
```
|
||||
|
||||
### 6. Handle Special Sections
|
||||
|
||||
Parse `special_sections` list from the matched CSV row. For each section name, generate corresponding subsections:
|
||||
|
||||
**Example mappings from CSV:**
|
||||
|
||||
- "clinical_requirements" → Add clinical validation requirements
|
||||
- "regulatory_pathway" → Document approval pathway timeline
|
||||
- "safety_measures" → Specify safety protocols and monitoring
|
||||
- "compliance_matrix" → Create compliance tracking matrix
|
||||
|
||||
### 7. Present Content and Menu
|
||||
|
||||
Show the generated domain content and present choices:
|
||||
"I've documented the {domain}-specific requirements that will shape {{project_name}}. These constraints are critical for success in this complex domain.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 6]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's dive deeper into these domain requirements
|
||||
[P] Party Mode - Bring domain expertise perspectives to validate requirements
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 8. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current domain content
|
||||
- Process the enhanced domain insights that come back
|
||||
- Ask user: "Accept these domain requirement improvements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current domain requirements
|
||||
- Process the collaborative domain expertise and validation
|
||||
- Ask user: "Accept these changes to domain requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5]`
|
||||
- Load `./step-06-innovation.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Domain complexity properly validated as high before proceeding
|
||||
✅ All key concerns from CSV explored with user input
|
||||
✅ Compliance requirements clearly documented
|
||||
✅ Domain expertise needs identified and documented
|
||||
✅ Special sections generated per CSV configuration
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Proceeding with domain exploration when complexity is not high
|
||||
❌ Not loading or using CSV domain configuration properly
|
||||
❌ Missing critical domain concerns from the key_concerns list
|
||||
❌ Not connecting domain requirements to product implications
|
||||
❌ Generating generic content without domain-specific details
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## SKIP CONDITIONS:
|
||||
|
||||
Skip this step and load `./step-06-innovation.md` if:
|
||||
|
||||
- `complexity_level` from step-02 is not "high"
|
||||
- Domain has no specific regulatory/compliance requirements
|
||||
- User confirms domain exploration is not needed
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-06-innovation.md`.
|
||||
|
||||
Remember: Do NOT proceed to step-06 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,231 @@
|
||||
# Step 6: Innovation Discovery
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on detecting and exploring innovative aspects of the product
|
||||
- 🎯 OPTIONAL STEP: Only proceed if innovation signals are detected
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating innovation content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper innovation insights
|
||||
- **P (Party Mode)**: Bring creative perspectives to explore innovation opportunities
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Project type from step-02 is available for innovation signal matching
|
||||
- Project-type CSV data will be loaded in this step
|
||||
- Focus on detecting genuine innovation, not forced creativity
|
||||
|
||||
## OPTIONAL STEP CHECK:
|
||||
|
||||
Before proceeding with this step, scan for innovation signals:
|
||||
|
||||
- Listen for language like "nothing like this exists", "rethinking how X works"
|
||||
- Check for project-type innovation signals from CSV
|
||||
- Look for novel approaches or unique combinations
|
||||
- If no innovation detected, skip this step
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Detect and explore innovation patterns in the product, focusing on what makes it truly novel and how to validate the innovative aspects.
|
||||
|
||||
## INNOVATION DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Load Project-Type Innovation Data
|
||||
|
||||
Load innovation signals specific to this project type:
|
||||
|
||||
- Load `./project-types.csv` completely
|
||||
- Find the row where `project_type` matches detected type from step-02
|
||||
- Extract `innovation_signals` (semicolon-separated list)
|
||||
- Extract `web_search_triggers` for potential innovation research
|
||||
|
||||
### 2. Listen for Innovation Indicators
|
||||
|
||||
Monitor conversation for both general and project-type-specific innovation signals:
|
||||
|
||||
#### General Innovation Language:
|
||||
|
||||
- "Nothing like this exists"
|
||||
- "We're rethinking how [X] works"
|
||||
- "Combining [A] with [B] for the first time"
|
||||
- "Novel approach to [problem]"
|
||||
- "No one has done [concept] before"
|
||||
|
||||
#### Project-Type-Specific Signals (from CSV):
|
||||
|
||||
Match user descriptions against innovation_signals for their project_type:
|
||||
|
||||
- **api_backend**: "API composition;New protocol"
|
||||
- **mobile_app**: "Gesture innovation;AR/VR features"
|
||||
- **saas_b2b**: "Workflow automation;AI agents"
|
||||
- **developer_tool**: "New paradigm;DSL creation"
|
||||
|
||||
### 3. Initial Innovation Screening
|
||||
|
||||
Ask targeted innovation discovery questions:
|
||||
"As we explore {{project_name}}, I'm listening for what makes it innovative.
|
||||
|
||||
**Innovation Indicators:**
|
||||
|
||||
- Are you challenging any existing assumptions about how things work?
|
||||
- Are you combining technologies or approaches in new ways?
|
||||
- Is there something about this that hasn't been done before?
|
||||
|
||||
What aspects of {{project_name}} feel most innovative to you?"
|
||||
|
||||
### 4. Deep Innovation Exploration (If Detected)
|
||||
|
||||
If innovation signals are found, explore deeply:
|
||||
|
||||
#### Innovation Discovery Questions:
|
||||
|
||||
- "What makes it unique compared to existing solutions?"
|
||||
- "What assumption are you challenging?"
|
||||
- "How do we validate it works?"
|
||||
- "What's the fallback if it doesn't?"
|
||||
- "Has anyone tried this before?"
|
||||
|
||||
#### Market Context Research:
|
||||
|
||||
If relevant innovation detected, consider web search for context:
|
||||
Use `web_search_triggers` from project-type CSV:
|
||||
`[web_search_triggers] {concept} innovations {date}`
|
||||
|
||||
### 5. Generate Innovation Content (If Innovation Detected)
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Innovation & Novel Patterns
|
||||
|
||||
### Detected Innovation Areas
|
||||
|
||||
[Innovation patterns identified based on conversation]
|
||||
|
||||
### Market Context & Competitive Landscape
|
||||
|
||||
[Market context and research based on conversation]
|
||||
|
||||
### Validation Approach
|
||||
|
||||
[Validation methodology based on conversation]
|
||||
|
||||
### Risk Mitigation
|
||||
|
||||
[Innovation risks and fallbacks based on conversation]
|
||||
```
|
||||
|
||||
### 6. Present Content and Menu (Only if Innovation Detected)
|
||||
|
||||
Show the generated innovation content and present choices:
|
||||
"I've identified some innovative aspects of {{project_name}} that differentiate it from existing solutions.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 5]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's dive deeper into these innovation opportunities
|
||||
[P] Party Mode - Bring creative perspectives to explore innovation further
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 7. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current innovation content
|
||||
- Process the enhanced innovation insights that come back
|
||||
- Ask user: "Accept these improvements to the innovation analysis? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current innovation content
|
||||
- Process the collaborative innovation exploration and ideation
|
||||
- Ask user: "Accept these changes to the innovation analysis? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6]`
|
||||
- Load `./step-07-project-type.md`
|
||||
|
||||
## NO INNOVATION DETECTED:
|
||||
|
||||
If no genuine innovation signals are found after exploration:
|
||||
"After exploring {{project_name}}, I don't see clear innovation signals that warrant a dedicated innovation section. This is perfectly fine - many successful products are excellent executions of existing concepts rather than breakthrough innovations.
|
||||
|
||||
**Options:**
|
||||
[A] Force innovation exploration - Let's try to find innovative angles
|
||||
[C] Continue - Skip innovation section and move to next step"
|
||||
|
||||
If user selects 'A', proceed with content generation anyway. If 'C', skip this step and load `./step-07-project-type.md`.
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 5.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Innovation signals properly detected from user conversation
|
||||
✅ Project-type innovation signals used to guide discovery
|
||||
✅ Genuine innovation explored (not forced creativity)
|
||||
✅ Validation approach clearly defined for innovative aspects
|
||||
✅ Risk mitigation strategies identified
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Forced innovation when none genuinely exists
|
||||
❌ Not using project-type innovation signals from CSV
|
||||
❌ Missing market context research for novel concepts
|
||||
❌ Not addressing validation approach for innovative features
|
||||
❌ Creating innovation theater without real innovative aspects
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## SKIP CONDITIONS:
|
||||
|
||||
Skip this step and load `./step-07-project-type.md` if:
|
||||
|
||||
- No innovation signals detected in conversation
|
||||
- Product is incremental improvement rather than breakthrough
|
||||
- User confirms innovation exploration is not needed
|
||||
- Project-type CSV has no innovation signals for this type
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document (or step is skipped), load `./step-07-project-type.md`.
|
||||
|
||||
Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu (or confirms step skip)!
|
||||
@ -0,0 +1,227 @@
|
||||
# Step 7: Project-Type Deep Dive
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on project-type specific requirements and technical considerations
|
||||
- 🎯 DATA-DRIVEN: Use CSV configuration to guide discovery
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating project-type content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper project-type insights
|
||||
- **P (Party Mode)**: Bring technical perspectives to explore project-specific requirements
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Project type from step-02 is available for configuration loading
|
||||
- Project-type CSV data will be loaded in this step
|
||||
- Focus on technical and functional requirements specific to this project type
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Conduct project-type specific discovery using CSV-driven guidance to define technical requirements.
|
||||
|
||||
## PROJECT-TYPE DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Load Project-Type Configuration Data
|
||||
|
||||
Load project-type specific configuration:
|
||||
|
||||
- Load `./project-types.csv` completely
|
||||
- Find the row where `project_type` matches detected type from step-02
|
||||
- Extract these columns:
|
||||
- `key_questions` (semicolon-separated list of discovery questions)
|
||||
- `required_sections` (semicolon-separated list of sections to document)
|
||||
- `skip_sections` (semicolon-separated list of sections to skip)
|
||||
- `innovation_signals` (already explored in step-6)
|
||||
|
||||
### 2. Conduct Guided Discovery Using Key Questions
|
||||
|
||||
Parse `key_questions` from CSV and explore each:
|
||||
|
||||
#### Question-Based Discovery:
|
||||
|
||||
For each question in `key_questions` from CSV:
|
||||
|
||||
- Ask the user naturally in conversational style
|
||||
- Listen for their response and ask clarifying follow-ups
|
||||
- Connect answers to product value proposition
|
||||
|
||||
**Example Flow:**
|
||||
If key_questions = "Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?"
|
||||
|
||||
Ask naturally:
|
||||
|
||||
- "What are the main endpoints your API needs to expose?"
|
||||
- "How will you handle authentication and authorization?"
|
||||
- "What data formats will you support for requests and responses?"
|
||||
|
||||
### 3. Document Project-Type Specific Requirements
|
||||
|
||||
Based on user answers to key_questions, synthesize comprehensive requirements:
|
||||
|
||||
#### Requirement Categories:
|
||||
|
||||
Cover the areas indicated by `required_sections` from CSV:
|
||||
|
||||
- Synthesize what was discovered for each required section
|
||||
- Document specific requirements, constraints, and decisions
|
||||
- Connect to product differentiator when relevant
|
||||
|
||||
#### Skip Irrelevant Sections:
|
||||
|
||||
Skip areas indicated by `skip_sections` from CSV to avoid wasting time on irrelevant aspects.
|
||||
|
||||
### 4. Generate Dynamic Content Sections
|
||||
|
||||
Parse `required_sections` list from the matched CSV row. For each section name, generate corresponding content:
|
||||
|
||||
#### Common CSV Section Mappings:
|
||||
|
||||
- "endpoint_specs" or "endpoint_specification" → API endpoints documentation
|
||||
- "auth_model" or "authentication_model" → Authentication approach
|
||||
- "platform_reqs" or "platform_requirements" → Platform support needs
|
||||
- "device_permissions" or "device_features" → Device capabilities
|
||||
- "tenant_model" → Multi-tenancy approach
|
||||
- "rbac_matrix" or "permission_matrix" → Permission structure
|
||||
|
||||
#### Template Variable Strategy:
|
||||
|
||||
- For sections matching common template variables: generate specific content
|
||||
- For sections without template matches: include in main project_type_requirements
|
||||
- Hybrid approach balances template structure with CSV-driven flexibility
|
||||
|
||||
### 5. Generate Project-Type Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## [Project Type] Specific Requirements
|
||||
|
||||
### Project-Type Overview
|
||||
|
||||
[Project type summary based on conversation]
|
||||
|
||||
### Technical Architecture Considerations
|
||||
|
||||
[Technical architecture requirements based on conversation]
|
||||
|
||||
[Dynamic sections based on CSV and conversation]
|
||||
|
||||
### Implementation Considerations
|
||||
|
||||
[Implementation specific requirements based on conversation]
|
||||
```
|
||||
|
||||
### 6. Present Content and Menu
|
||||
|
||||
Show the generated project-type content and present choices:
|
||||
"I've documented the {project_type}-specific requirements for {{project_name}} based on our conversation and best practices for this type of product.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 5]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's dive deeper into these technical requirements
|
||||
[P] Party Mode - Bring technical expertise perspectives to validate requirements
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 7. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current project-type content
|
||||
- Process the enhanced technical insights that come back
|
||||
- Ask user: "Accept these improvements to the technical requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current project-type requirements
|
||||
- Process the collaborative technical expertise and validation
|
||||
- Ask user: "Accept these changes to the technical requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`
|
||||
- Load `./step-08-functional.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 5.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Project-type configuration loaded and used effectively
|
||||
✅ All key questions from CSV explored with user input
|
||||
✅ Required sections generated per CSV configuration
|
||||
✅ Skip sections properly avoided to save time
|
||||
✅ Technical requirements connected to product value
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Not loading or using project-type CSV configuration
|
||||
❌ Missing key questions from CSV in discovery process
|
||||
❌ Not generating required sections per CSV configuration
|
||||
❌ Documenting sections that should be skipped per CSV
|
||||
❌ Creating generic content without project-type specificity
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## PROJECT-TYPE EXAMPLES:
|
||||
|
||||
**For api_backend:**
|
||||
|
||||
- Focus on endpoints, authentication, data schemas, rate limiting
|
||||
- Skip visual design and user journey sections
|
||||
- Generate API specification documentation
|
||||
|
||||
**For mobile_app:**
|
||||
|
||||
- Focus on platform requirements, device permissions, offline mode
|
||||
- Skip API endpoint documentation unless needed
|
||||
- Generate mobile-specific technical requirements
|
||||
|
||||
**For saas_b2b:**
|
||||
|
||||
- Focus on multi-tenancy, permissions, integrations
|
||||
- Skip mobile-first considerations unless relevant
|
||||
- Generate enterprise-specific requirements
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-08-functional.md` to synthesize functional requirements.
|
||||
|
||||
Remember: Do NOT proceed to step-08 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,242 @@
|
||||
# Step 8: Functional Requirements Synthesis
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on creating comprehensive capability inventory for the product
|
||||
- 🎯 CRITICAL: This is THE CAPABILITY CONTRACT for all downstream work
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating functional requirements
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to ensure comprehensive requirement coverage
|
||||
- **P (Party Mode)**: Bring multiple perspectives to validate complete requirement set
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- ALL previous content (executive summary, success criteria, journeys, domain, innovation, project-type) must be referenced
|
||||
- No additional data files needed for this step
|
||||
- Focus on capabilities, not implementation details
|
||||
|
||||
## CRITICAL IMPORTANCE:
|
||||
|
||||
**This section defines THE CAPABILITY CONTRACT for the entire product:**
|
||||
|
||||
- UX designers will ONLY design what's listed here
|
||||
- Architects will ONLY support what's listed here
|
||||
- Epic breakdown will ONLY implement what's listed here
|
||||
- If a capability is missing from FRs, it will NOT exist in the final product
|
||||
|
||||
## FUNCTIONAL REQUIREMENTS SYNTHESIS SEQUENCE:
|
||||
|
||||
### 1. Understand FR Purpose and Usage
|
||||
|
||||
Start by explaining the critical role of functional requirements:
|
||||
|
||||
**Purpose:**
|
||||
FRs define WHAT capabilities the product must have. They are the complete inventory of user-facing and system capabilities that deliver the product vision.
|
||||
|
||||
**Critical Properties:**
|
||||
✅ Each FR is a testable capability
|
||||
✅ Each FR is implementation-agnostic (could be built many ways)
|
||||
✅ Each FR specifies WHO and WHAT, not HOW
|
||||
✅ No UI details, no performance numbers, no technology choices
|
||||
✅ Comprehensive coverage of capability areas
|
||||
|
||||
**How They Will Be Used:**
|
||||
|
||||
1. UX Designer reads FRs → designs interactions for each capability
|
||||
2. Architect reads FRs → designs systems to support each capability
|
||||
3. PM reads FRs → creates epics and stories to implement each capability
|
||||
|
||||
### 2. Review Existing Content for Capability Extraction
|
||||
|
||||
Systematically review all previous sections to extract capabilities:
|
||||
|
||||
**Extract From:**
|
||||
|
||||
- Executive Summary → Core product differentiator capabilities
|
||||
- Success Criteria → Success-enabling capabilities
|
||||
- User Journeys → Journey-revealed capabilities
|
||||
- Domain Requirements → Compliance and regulatory capabilities
|
||||
- Innovation Patterns → Innovative feature capabilities
|
||||
- Project-Type Requirements → Technical capability needs
|
||||
|
||||
### 3. Organize Requirements by Capability Area
|
||||
|
||||
Group FRs by logical capability areas (NOT by technology or layer):
|
||||
|
||||
**Good Grouping Examples:**
|
||||
|
||||
- ✅ "User Management" (not "Authentication System")
|
||||
- ✅ "Content Discovery" (not "Search Algorithm")
|
||||
- ✅ "Team Collaboration" (not "WebSocket Infrastructure")
|
||||
|
||||
**Target 5-8 Capability Areas** for typical projects.
|
||||
|
||||
### 4. Generate Comprehensive FR List
|
||||
|
||||
Create complete functional requirements using this format:
|
||||
|
||||
**Format:**
|
||||
|
||||
- FR#: [Actor] can [capability] [context/constraint if needed]
|
||||
- Number sequentially (FR1, FR2, FR3...)
|
||||
- Aim for 20-50 FRs for typical projects
|
||||
|
||||
**Altitude Check:**
|
||||
Each FR should answer "WHAT capability exists?" NOT "HOW it's implemented?"
|
||||
|
||||
**Examples:**
|
||||
|
||||
- ✅ "Users can customize appearance settings"
|
||||
- ❌ "Users can toggle light/dark theme with 3 font size options stored in LocalStorage"
|
||||
|
||||
### 5. Self-Validation Process
|
||||
|
||||
Before presenting to user, validate the FR list:
|
||||
|
||||
**Completeness Check:**
|
||||
|
||||
1. "Did I cover EVERY capability mentioned in the MVP scope section?"
|
||||
2. "Did I include domain-specific requirements as FRs?"
|
||||
3. "Did I cover the project-type specific needs?"
|
||||
4. "Could a UX designer read ONLY the FRs and know what to design?"
|
||||
5. "Could an Architect read ONLY the FRs and know what to support?"
|
||||
6. "Are there any user actions or system behaviors we discussed that have no FR?"
|
||||
|
||||
**Altitude Check:**
|
||||
|
||||
1. "Am I stating capabilities (WHAT) or implementation (HOW)?"
|
||||
2. "Am I listing acceptance criteria or UI specifics?" (Remove if yes)
|
||||
3. "Could this FR be implemented 5 different ways?" (Good - means it's not prescriptive)
|
||||
|
||||
**Quality Check:**
|
||||
|
||||
1. "Is each FR clear enough that someone could test whether it exists?"
|
||||
2. "Is each FR independent (not dependent on reading other FRs to understand)?"
|
||||
3. "Did I avoid vague terms like 'good', 'fast', 'easy'?" (Use NFRs for quality attributes)
|
||||
|
||||
### 6. Generate Functional Requirements Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Functional Requirements
|
||||
|
||||
### [Capability Area Name]
|
||||
|
||||
- FR1: [Specific Actor] can [specific capability]
|
||||
- FR2: [Specific Actor] can [specific capability]
|
||||
- FR3: [Specific Actor] can [specific capability]
|
||||
|
||||
### [Another Capability Area]
|
||||
|
||||
- FR4: [Specific Actor] can [specific capability]
|
||||
- FR5: [Specific Actor] can [specific capability]
|
||||
|
||||
[Continue for all capability areas discovered in conversation]
|
||||
```
|
||||
|
||||
### 7. Present Content and Menu
|
||||
|
||||
Show the generated functional requirements and present choices:
|
||||
"I've synthesized all our discussions into comprehensive functional requirements. This becomes the capability contract that UX designers, architects, and developers will all work from.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete FR list from step 6]
|
||||
|
||||
**This is critical because:**
|
||||
|
||||
- Every feature we build must trace back to one of these requirements
|
||||
- UX designers will ONLY design interactions for these capabilities
|
||||
- Architects will ONLY build systems to support these capabilities
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's ensure we haven't missed any capabilities
|
||||
[P] Party Mode - Bring different perspectives to validate complete coverage
|
||||
[C] Continue - Save this to the document and move to next step"
|
||||
|
||||
### 8. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current FR list
|
||||
- Process the enhanced capability coverage that comes back
|
||||
- Ask user: "Accept these additions to the functional requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current FR list
|
||||
- Process the collaborative capability validation and additions
|
||||
- Ask user: "Accept these changes to the functional requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]`
|
||||
- Load `./step-09-nonfunctional.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ All previous discovery content synthesized into FRs
|
||||
✅ FRs organized by capability areas (not technology)
|
||||
✅ Each FR states WHAT capability exists, not HOW to implement
|
||||
✅ Comprehensive coverage with 20-50 FRs typical
|
||||
✅ Altitude validation ensures implementation-agnostic requirements
|
||||
✅ Completeness check validates coverage of all discussed capabilities
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Missing capabilities from previous discovery sections
|
||||
❌ Organizing FRs by technology instead of capability areas
|
||||
❌ Including implementation details or UI specifics in FRs
|
||||
❌ Not achieving comprehensive coverage of discussed capabilities
|
||||
❌ Using vague terms instead of testable capabilities
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## CAPABILITY CONTRACT REMINDER:
|
||||
|
||||
Emphasize to user: "This FR list is now binding. Any feature not listed here will not exist in the final product unless we explicitly add it. This is why it's critical to ensure completeness now."
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-09-nonfunctional.md` to define non-functional requirements.
|
||||
|
||||
Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,266 @@
|
||||
# Step 9: Non-Functional Requirements
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on quality attributes that matter for THIS specific product
|
||||
- 🎯 SELECTIVE: Only document NFRs that actually apply to the product
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating NFR content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to ensure comprehensive quality attributes
|
||||
- **P (Party Mode)**: Bring technical perspectives to validate NFR completeness
|
||||
- **C (Continue)**: Save the content to the document and proceed to final step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Execute {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml
|
||||
- When 'P' selected: Execute {project-root}/{bmad_folder}/core/workflows/party-mode
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Functional requirements already defined and will inform NFRs
|
||||
- Domain and project-type context will guide which NFRs matter
|
||||
- Focus on specific, measurable quality criteria
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Define non-functional requirements that specify quality attributes for the product, focusing only on what matters for THIS specific product.
|
||||
|
||||
## NON-FUNCTIONAL REQUIREMENTS SEQUENCE:
|
||||
|
||||
### 1. Explain NFR Purpose and Scope
|
||||
|
||||
Start by clarifying what NFRs are and why we're selective:
|
||||
|
||||
**NFR Purpose:**
|
||||
NFRs define HOW WELL the system must perform, not WHAT it must do. They specify quality attributes like performance, security, scalability, etc.
|
||||
|
||||
**Selective Approach:**
|
||||
We only document NFRs that matter for THIS product. If a category doesn't apply, we skip it entirely. This prevents requirement bloat and focuses on what's actually important.
|
||||
|
||||
### 2. Assess Product Context for NFR Relevance
|
||||
|
||||
Evaluate which NFR categories matter based on product context:
|
||||
|
||||
**Quick Assessment Questions:**
|
||||
|
||||
- **Performance**: Is there user-facing impact of speed?
|
||||
- **Security**: Are we handling sensitive data or payments?
|
||||
- **Scalability**: Do we expect rapid user growth?
|
||||
- **Accessibility**: Are we serving broad public audiences?
|
||||
- **Integration**: Do we need to connect with other systems?
|
||||
- **Reliability**: Would downtime cause significant problems?
|
||||
|
||||
### 3. Explore Relevant NFR Categories
|
||||
|
||||
For each relevant category, conduct targeted discovery:
|
||||
|
||||
#### Performance NFRs (If relevant):
|
||||
|
||||
"Let's talk about performance requirements for {{project_name}}.
|
||||
|
||||
**Performance Questions:**
|
||||
|
||||
- What parts of the system need to be fast for users to be successful?
|
||||
- Are there specific response time expectations?
|
||||
- What happens if performance is slower than expected?
|
||||
- Are there concurrent user scenarios we need to support?"
|
||||
|
||||
#### Security NFRs (If relevant):
|
||||
|
||||
"Security is critical for products that handle sensitive information.
|
||||
|
||||
**Security Questions:**
|
||||
|
||||
- What data needs to be protected?
|
||||
- Who should have access to what?
|
||||
- What are the security risks we need to mitigate?
|
||||
- Are there compliance requirements (GDPR, HIPAA, PCI-DSS)?"
|
||||
|
||||
#### Scalability NFRs (If relevant):
|
||||
|
||||
"Scalability matters if we expect growth or have variable demand.
|
||||
|
||||
**Scalability Questions:**
|
||||
|
||||
- How many users do we expect initially? Long-term?
|
||||
- Are there seasonal or event-based traffic spikes?
|
||||
- What happens if we exceed our capacity?"
|
||||
- What growth scenarios should we plan for?"
|
||||
|
||||
#### Accessibility NFRs (If relevant):
|
||||
|
||||
"Accessibility ensures the product works for users with disabilities.
|
||||
|
||||
**Accessibility Questions:**
|
||||
|
||||
- Are we serving users with visual, hearing, or motor impairments?
|
||||
- Are there legal accessibility requirements (WCAG, Section 508)?
|
||||
- What accessibility features are most important for our users?"
|
||||
|
||||
#### Integration NFRs (If relevant):
|
||||
|
||||
"Integration requirements matter for products that connect to other systems.
|
||||
|
||||
**Integration Questions:**
|
||||
|
||||
- What external systems do we need to connect with?
|
||||
- Are there APIs or data formats we must support?
|
||||
- How reliable do these integrations need to be?"
|
||||
|
||||
### 4. Make NFRs Specific and Measurable
|
||||
|
||||
For each relevant NFR category, ensure criteria are testable:
|
||||
|
||||
**From Vague to Specific:**
|
||||
|
||||
- NOT: "The system should be fast" → "User actions complete within 2 seconds"
|
||||
- NOT: "The system should be secure" → "All data is encrypted at rest and in transit"
|
||||
- NOT: "The system should scale" → "System supports 10x user growth with <10% performance degradation"
|
||||
|
||||
### 5. Generate NFR Content (Only Relevant Categories)
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure (Dynamic based on relevance):
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections (only include sections that are relevant):
|
||||
|
||||
```markdown
|
||||
## Non-Functional Requirements
|
||||
|
||||
### Performance
|
||||
|
||||
[Performance requirements based on conversation - only include if relevant]
|
||||
|
||||
### Security
|
||||
|
||||
[Security requirements based on conversation - only include if relevant]
|
||||
|
||||
### Scalability
|
||||
|
||||
[Scalability requirements based on conversation - only include if relevant]
|
||||
|
||||
### Accessibility
|
||||
|
||||
[Accessibility requirements based on conversation - only include if relevant]
|
||||
|
||||
### Integration
|
||||
|
||||
[Integration requirements based on conversation - only include if relevant]
|
||||
```
|
||||
|
||||
### 6. Present Content and Menu
|
||||
|
||||
Show the generated NFR content and present choices:
|
||||
"I've defined the non-functional requirements that specify how well {{project_name}} needs to perform. I've only included categories that actually matter for this product.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete NFR content from step 5]
|
||||
|
||||
**Note:** We've skipped categories that don't apply to avoid unnecessary requirements.
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's ensure we haven't missed critical quality attributes
|
||||
[P] Party Mode - Bring technical perspectives to validate NFR specifications
|
||||
[C] Continue - Save this to the document and move to final step"
|
||||
|
||||
### 7. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Execute advanced-elicitation.xml with the current NFR content
|
||||
- Process the enhanced quality attribute insights that come back
|
||||
- Ask user: "Accept these improvements to the non-functional requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Execute party-mode workflow with the current NFR list
|
||||
- Process the collaborative technical validation and additions
|
||||
- Ask user: "Accept these changes to the non-functional requirements? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{output_folder}/prd.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]`
|
||||
- Load `./step-10-complete.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 5.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Only relevant NFR categories documented (no requirement bloat)
|
||||
✅ Each NFR is specific and measurable
|
||||
✅ NFRs connected to actual user needs and business context
|
||||
✅ Vague requirements converted to testable criteria
|
||||
✅ Domain-specific compliance requirements included if relevant
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Documenting NFR categories that don't apply to the product
|
||||
❌ Leaving requirements vague and unmeasurable
|
||||
❌ Not connecting NFRs to actual user or business needs
|
||||
❌ Missing domain-specific compliance requirements
|
||||
❌ Creating overly prescriptive technical requirements
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
## NFR CATEGORY GUIDANCE:
|
||||
|
||||
**Include Performance When:**
|
||||
|
||||
- User-facing response times impact success
|
||||
- Real-time interactions are critical
|
||||
- Performance is a competitive differentiator
|
||||
|
||||
**Include Security When:**
|
||||
|
||||
- Handling sensitive user data
|
||||
- Processing payments or financial information
|
||||
- Subject to compliance regulations
|
||||
- Protecting intellectual property
|
||||
|
||||
**Include Scalability When:**
|
||||
|
||||
- Expecting rapid user growth
|
||||
- Handling variable traffic patterns
|
||||
- Supporting enterprise-scale usage
|
||||
- Planning for market expansion
|
||||
|
||||
**Include Accessibility When:**
|
||||
|
||||
- Serving broad public audiences
|
||||
- Subject to accessibility regulations
|
||||
- Targeting users with disabilities
|
||||
- B2B customers with accessibility requirements
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-10-complete.md` to finalize the PRD and complete the workflow.
|
||||
|
||||
Remember: Do NOT proceed to step-10 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
@ -0,0 +1,201 @@
|
||||
# Step 10: Workflow Completion
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- ✅ THIS IS A FINAL STEP - Workflow completion required
|
||||
- 🛑 NO content generation - this is a wrap-up step
|
||||
- 📋 FINALIZE document and update workflow status
|
||||
- 💬 FOCUS on completion, next steps, and suggestions
|
||||
- 🎯 UPDATE workflow status files with completion information
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- 💾 Update the main workflow status file with completion information
|
||||
- 📖 Suggest potential next workflow steps for the user
|
||||
- 🚫 DO NOT load additional steps after this one
|
||||
|
||||
## TERMINATION STEP PROTOCOLS:
|
||||
|
||||
- This is a FINAL step - workflow completion required
|
||||
- Output any remaining content if needed (none for this step)
|
||||
- Update the main workflow status file with finalized document
|
||||
- Suggest potential next steps for the user
|
||||
- Mark workflow as complete in status tracking
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Complete PRD document is available from all previous steps
|
||||
- Workflow frontmatter shows all completed steps
|
||||
- All collaborative content has been generated and saved
|
||||
- Focus on completion, validation, and next steps
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Complete the PRD workflow, update status files, and suggest next steps for the project.
|
||||
|
||||
## WORKFLOW COMPLETION SEQUENCE:
|
||||
|
||||
### 1. Announce Workflow Completion
|
||||
|
||||
Inform user that the PRD is complete:
|
||||
"🎉 **PRD Complete, {{user_name}}!**
|
||||
|
||||
I've successfully collaborated with you to create a comprehensive Product Requirements Document for {{project_name}}.
|
||||
|
||||
**What we've accomplished:**
|
||||
|
||||
- ✅ Executive Summary with vision and product differentiator
|
||||
- ✅ Success Criteria with measurable outcomes and scope definition
|
||||
- ✅ User Journeys covering all interaction patterns
|
||||
- ✅ Domain-specific requirements (if applicable)
|
||||
- ✅ Innovation analysis (if applicable)
|
||||
- ✅ Project-type specific technical requirements
|
||||
- ✅ Comprehensive Functional Requirements (capability contract)
|
||||
- ✅ Non-Functional Requirements for quality attributes
|
||||
|
||||
**The complete PRD is now available at:** `{output_folder}/prd.md`
|
||||
|
||||
This document is now ready to guide UX design, technical architecture, and development planning."
|
||||
|
||||
### 2. Workflow Status Update
|
||||
|
||||
Update the main workflow status file:
|
||||
|
||||
- Load `{status_file}` from workflow configuration (if exists)
|
||||
- Update workflow_status["prd"] = "{default_output_file}"
|
||||
- Save file, preserving all comments and structure
|
||||
- Mark current timestamp as completion time
|
||||
|
||||
### 3. Suggest Next Steps
|
||||
|
||||
Provide guidance on logical next workflows:
|
||||
|
||||
**Typical Next Workflows:**
|
||||
|
||||
**Immediate Next Steps:**
|
||||
|
||||
1. `workflow create-ux-design` - UX Design (if UI exists)
|
||||
- User journey insights from step-04 will inform interaction design
|
||||
- Functional requirements from step-08 define design scope
|
||||
|
||||
2. `workflow create-architecture` - Technical architecture
|
||||
- Project-type requirements from step-07 guide technical decisions
|
||||
- Non-functional requirements from step-09 inform architecture choices
|
||||
|
||||
3. `workflow create-epics-and-stories` - Epic breakdown
|
||||
- Functional requirements from step-08 become epics and stories
|
||||
- Scope definition from step-03 guides sprint planning
|
||||
|
||||
**Strategic Considerations:**
|
||||
|
||||
- UX design and architecture can happen in parallel
|
||||
- Epics/stories are richer when created after UX/architecture
|
||||
- Consider your team's capacity and priorities
|
||||
|
||||
**What would be most valuable to tackle next?**
|
||||
|
||||
### 4. Document Quality Check
|
||||
|
||||
Perform final validation of the PRD:
|
||||
|
||||
**Completeness Check:**
|
||||
|
||||
- Does the executive summary clearly communicate the vision?
|
||||
- Are success criteria specific and measurable?
|
||||
- Do user journeys cover all major user types?
|
||||
- Are functional requirements comprehensive and testable?
|
||||
- Are non-functional requirements relevant and specific?
|
||||
|
||||
**Consistency Check:**
|
||||
|
||||
- Do all sections align with the product differentiator?
|
||||
- Is scope consistent across all sections?
|
||||
- Are requirements traceable to user needs and success criteria?
|
||||
|
||||
### 5. Final Completion Confirmation
|
||||
|
||||
Confirm completion with user:
|
||||
"**Your PRD for {{project_name}} is now complete and ready for the next phase!**
|
||||
|
||||
The document contains everything needed to guide:
|
||||
|
||||
- UX/UI design decisions
|
||||
- Technical architecture planning
|
||||
- Development prioritization and sprint planning
|
||||
|
||||
**Ready to continue with:**
|
||||
|
||||
- UX design workflow?
|
||||
- Architecture workflow?
|
||||
- Epic and story creation?
|
||||
|
||||
**Or would you like to review the complete PRD first?**
|
||||
|
||||
[Workflow Complete]"
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ PRD document contains all required sections
|
||||
✅ All collaborative content properly saved to document
|
||||
✅ Workflow status file updated with completion information
|
||||
✅ Clear next step guidance provided to user
|
||||
✅ Document quality validation completed
|
||||
✅ User acknowledges completion and understands next options
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Not updating workflow status file with completion information
|
||||
❌ Missing clear next step guidance for user
|
||||
❌ Not confirming document completeness with user
|
||||
❌ Workflow not properly marked as complete in status tracking
|
||||
❌ User unclear about what happens next
|
||||
|
||||
## WORKFLOW COMPLETION CHECKLIST:
|
||||
|
||||
### Document Structure Complete:
|
||||
|
||||
- [ ] Executive Summary with vision and differentiator
|
||||
- [ ] Success Criteria with measurable outcomes
|
||||
- [ ] Product Scope (MVP, Growth, Vision)
|
||||
- [ ] User Journeys (comprehensive coverage)
|
||||
- [ ] Domain Requirements (if applicable)
|
||||
- [ ] Innovation Analysis (if applicable)
|
||||
- [ ] Project-Type Requirements
|
||||
- [ ] Functional Requirements (capability contract)
|
||||
- [ ] Non-Functional Requirements
|
||||
|
||||
### Process Complete:
|
||||
|
||||
- [ ] All steps completed with user confirmation
|
||||
- [ ] All content saved to document
|
||||
- [ ] Frontmatter properly updated
|
||||
- [ ] Workflow status file updated
|
||||
- [ ] Next steps clearly communicated
|
||||
|
||||
## NEXT STEPS GUIDANCE:
|
||||
|
||||
**Immediate Options:**
|
||||
|
||||
1. **UX Design** - If product has UI components
|
||||
2. **Technical Architecture** - System design and technology choices
|
||||
3. **Epic Creation** - Break down FRs into implementable stories
|
||||
4. **Review** - Validate PRD with stakeholders before proceeding
|
||||
|
||||
**Recommended Sequence:**
|
||||
For products with UI: UX → Architecture → Epics
|
||||
For API/backend products: Architecture → Epics
|
||||
Consider team capacity and timeline constraints
|
||||
|
||||
## WORKFLOW FINALIZATION:
|
||||
|
||||
- Set `lastStep = 10` in document frontmatter
|
||||
- Update workflow status file with completion timestamp
|
||||
- Provide completion summary to user
|
||||
- Do NOT load any additional steps
|
||||
|
||||
## FINAL REMINDER:
|
||||
|
||||
This workflow is now complete. The PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD.
|
||||
|
||||
**Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉
|
||||
43
src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md
Normal file
43
src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md
Normal file
@ -0,0 +1,43 @@
|
||||
# PRD Workflow
|
||||
|
||||
**Goal:** Create comprehensive PRDs through collaborative step-by-step discovery between two product managers working as peers.
|
||||
|
||||
**Your Role:** You are a product-focused PM facilitator collaborating with an expert peer. This is a partnership, not a client-vendor relationship. You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision. Work together as equals.
|
||||
|
||||
---
|
||||
|
||||
## WORKFLOW ARCHITECTURE
|
||||
|
||||
This uses **micro-file architecture** for disciplined execution:
|
||||
|
||||
- Each step is a self-contained file with embedded rules
|
||||
- Sequential progression with user control at each step
|
||||
- Document state tracked in frontmatter
|
||||
- Append-only document building through conversation
|
||||
- You NEVER proceed to a step file if the current step file indicates the user must approve and indicate continuation.
|
||||
|
||||
---
|
||||
|
||||
## INITIALIZATION
|
||||
|
||||
### Configuration Loading
|
||||
|
||||
Load config from `{project-root}/{bmad_folder}/bmm/config.yaml` and resolve:
|
||||
|
||||
- `project_name`, `output_folder`, `user_name`
|
||||
- `communication_language`, `document_output_language`, `user_skill_level`
|
||||
- `date` as system-generated current datetime
|
||||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `{project-root}/{bmad_folder}/bmm/workflows/2-plan-workflows/prd`
|
||||
- `template_path` = `{installed_path}/prd-template.md`
|
||||
- `data_files_path` = `{installed_path}/data/`
|
||||
|
||||
---
|
||||
|
||||
## EXECUTION
|
||||
|
||||
Load and execute `steps/step-01-init.md` to begin the workflow.
|
||||
|
||||
**Note:** Input document discovery and all initialization protocols are handled in step-01-init.md.
|
||||
@ -1,80 +0,0 @@
|
||||
# Product Requirements Document (PRD) Workflow
|
||||
name: prd
|
||||
description: "Unified PRD workflow for BMad Method and Enterprise Method tracks. Produces strategic PRD and tactical epic breakdown. Hands off to architecture workflow for technical design. Note: Quick Flow track uses tech-spec workflow."
|
||||
author: "BMad"
|
||||
|
||||
# Critical variables from config
|
||||
config_source: "{project-root}/{bmad_folder}/bmm/config.yaml"
|
||||
project_name: "{config_source}:project_name"
|
||||
output_folder: "{config_source}:output_folder"
|
||||
user_name: "{config_source}:user_name"
|
||||
communication_language: "{config_source}:communication_language"
|
||||
document_output_language: "{config_source}:document_output_language"
|
||||
user_skill_level: "{config_source}:user_skill_level"
|
||||
date: system-generated
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/{bmad_folder}/bmm/workflows/2-plan-workflows/prd"
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
|
||||
# Templates
|
||||
prd_template: "{installed_path}/prd-template.md"
|
||||
|
||||
# Data files for data-driven behavior
|
||||
project_types_data: "{installed_path}/project-types.csv"
|
||||
domain_complexity_data: "{installed_path}/domain-complexity.csv"
|
||||
|
||||
# External workflows for checkpoints
|
||||
advanced_elicitation: "{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.md"
|
||||
party_mode: "{project-root}/{bmad_folder}/core/workflows/party-mode.md"
|
||||
|
||||
# Output files
|
||||
status_file: "{output_folder}/bmm-workflow-status.yaml"
|
||||
default_output_file: "{output_folder}/prd.md"
|
||||
|
||||
# Smart input file references - handles both whole docs and sharded docs
|
||||
# Priority: Whole document first, then sharded version
|
||||
# Strategy: How to load sharded documents (FULL_LOAD, SELECTIVE_LOAD, INDEX_GUIDED)
|
||||
input_file_patterns:
|
||||
product_brief:
|
||||
description: "Product vision and goals (optional)"
|
||||
whole: "{output_folder}/*brief*.md"
|
||||
sharded: "{output_folder}/*brief*/index.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
research:
|
||||
description: "Market or domain research (optional)"
|
||||
whole: "{output_folder}/*research*.md"
|
||||
sharded: "{output_folder}/*research*/index.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
document_project:
|
||||
description: "Brownfield project documentation (optional)"
|
||||
sharded: "{output_folder}/index.md"
|
||||
load_strategy: "INDEX_GUIDED"
|
||||
|
||||
standalone: true
|
||||
|
||||
web_bundle:
|
||||
name: "prd"
|
||||
description: "Unified PRD workflow for BMad Method and Enterprise Method tracks. Produces strategic PRD and tactical epic breakdown. Hands off to architecture workflow for technical design. Note: Quick Flow track uses tech-spec workflow."
|
||||
author: "BMad"
|
||||
instructions: "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/instructions.md"
|
||||
validation: "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/checklist.md"
|
||||
web_bundle_files:
|
||||
# Core workflow files
|
||||
- "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/instructions.md"
|
||||
- "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/prd-template.md"
|
||||
- "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/project-types.csv"
|
||||
- "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv"
|
||||
- "{bmad_folder}/bmm/workflows/2-plan-workflows/prd/checklist.md"
|
||||
|
||||
# Child workflow and its files
|
||||
- "{bmad_folder}/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml"
|
||||
- "{bmad_folder}/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md"
|
||||
- "{bmad_folder}/bmm/workflows/3-solutioning/create-epics-and-stories/epics-template.md"
|
||||
|
||||
# Task dependencies (referenced in instructions.md)
|
||||
- "{bmad_folder}/core/tasks/workflow.xml"
|
||||
- "{bmad_folder}/core/tasks/advanced-elicitation.xml"
|
||||
- "{bmad_folder}/core/tasks/advanced-elicitation-methods.csv"
|
||||
child_workflows:
|
||||
- create-epics-and-stories: "{bmad_folder}/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml"
|
||||
@ -15,10 +15,7 @@
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
{{project_root}}/
|
||||
{{source_tree}}
|
||||
```
|
||||
|
||||
## Epic to Architecture Mapping
|
||||
|
||||
@ -86,12 +83,6 @@ These patterns ensure consistent implementation across all AI agents:
|
||||
|
||||
{{development_prerequisites}}
|
||||
|
||||
### Setup Commands
|
||||
|
||||
```bash
|
||||
{{setup_commands}}
|
||||
```
|
||||
|
||||
## Architecture Decision Records (ADRs)
|
||||
|
||||
{{key_architecture_decisions}}
|
||||
|
||||
@ -1,18 +1,20 @@
|
||||
# Decision Architecture Workflow Instructions
|
||||
|
||||
<workflow name="architecture">
|
||||
<critical-rules>
|
||||
- <critical>The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml</critical>
|
||||
- <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
||||
- <critical>This workflow uses ADAPTIVE FACILITATION - adjust your communication style based on {user_skill_level}</critical>
|
||||
- <critical>The goal is ARCHITECTURAL DECISIONS that prevent AI agent conflicts, not detailed implementation specs</critical>
|
||||
- <critical>Communicate all responses in {communication_language} and tailor to {user_skill_level}</critical>
|
||||
- <critical>Generate all documents in {document_output_language}</critical>
|
||||
- <critical>This workflow replaces architecture with a conversation-driven approach</critical>
|
||||
- <critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
||||
- <critical>⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever.</critical>
|
||||
- <critical>⚠️ CHECKPOINT PROTOCOL: After writing to a template-output tag, you must stop and offer a menu to the user to run the {advanced_elicitation} or {party-mode} workflow. </critical>
|
||||
- <critical>YOU ARE FACILITATING A CONVERSATION With a user to produce a final document step by step. The whole process is meant to be collaborative helping the user flesh out their ideas</critical>
|
||||
</critical-rules>
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
||||
<critical>This workflow uses ADAPTIVE FACILITATION - adjust your communication style based on {user_skill_level}</critical>
|
||||
<critical>The goal is ARCHITECTURAL DECISIONS that prevent AI agent conflicts, not detailed implementation specs</critical>
|
||||
<critical>Communicate all responses in {communication_language} and tailor to {user_skill_level}</critical>
|
||||
<critical>Generate all documents in {document_output_language}</critical>
|
||||
<critical>This workflow replaces architecture with a conversation-driven approach</critical>
|
||||
<critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
||||
<critical>ELICITATION POINTS: After completing each major architectural decision area (identified by template-output tags for decision_record, project_structure, novel_pattern_designs, implementation_patterns, and architecture_document), invoke advanced elicitation to refine decisions before proceeding</critical>
|
||||
<critical>⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever.</critical>
|
||||
<critical>⚠️ CHECKPOINT PROTOCOL: After EVERY <template-output> tag, you MUST follow workflow.xml substep 2c: SAVE content to file immediately → SHOW checkpoint separator (━━━━━━━━━━━━━━━━━━━━━━━) → DISPLAY generated content → PRESENT options [a]Advanced Elicitation/[c]Continue/[p]Party-Mode/[y]YOLO → WAIT for user response. Never batch saves or skip checkpoints.</critical>
|
||||
<workflow name="architecture">
|
||||
|
||||
<step n="0" goal="Validate workflow readiness" tag="workflow-status">
|
||||
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
|
||||
@ -766,3 +768,17 @@ Check status anytime with: `workflow-status`
|
||||
</step>
|
||||
|
||||
</workflow>
|
||||
|
||||
<critical-rules>
|
||||
- <critical>The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml</critical>
|
||||
- <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
||||
- <critical>This workflow uses ADAPTIVE FACILITATION - adjust your communication style based on {user_skill_level}</critical>
|
||||
- <critical>The goal is ARCHITECTURAL DECISIONS that prevent AI agent conflicts, not detailed implementation specs</critical>
|
||||
- <critical>Communicate all responses in {communication_language} and tailor to {user_skill_level}</critical>
|
||||
- <critical>Generate all documents in {document_output_language}</critical>
|
||||
- <critical>This workflow replaces architecture with a conversation-driven approach</critical>
|
||||
- <critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
||||
- <critical>⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever.</critical>
|
||||
- <critical>⚠️ CHECKPOINT PROTOCOL: After writing to a template-output tag, you must stop and offer a menu to the user to run the {advanced_elicitation} or {party-mode} workflow. </critical>
|
||||
- <critical>YOU ARE FACILITATING A CONVERSATION With a user to produce a final document step by step. The whole process is meant to be collaborative helping the user flesh out their ideas</critical>
|
||||
</critical-rules>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user