name: 'step-10-nonfunctional' description: 'Define quality attributes that matter for this specific product'
workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-10-nonfunctional.md' nextStepFile: '{workflow_path}/steps/step-11-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/prd.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
Progress: Step 10 of 11 - Next: Complete PRD
🛑 NEVER generate content without user input
📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
✅ 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
✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config {communication_language}
stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9] before loading next stepThis step will generate content and present choices:
Define non-functional requirements that specify quality attributes for the product, focusing only on what matters for THIS specific product.
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.
Evaluate which NFR categories matter based on product context:
Quick Assessment Questions:
For each relevant category, conduct targeted discovery:
"Let's talk about performance requirements for {{project_name}}.
Performance Questions:
"Security is critical for products that handle sensitive information.
Security Questions:
"Scalability matters if we expect growth or have variable demand.
Scalability Questions:
"Accessibility ensures the product works for users with disabilities.
Accessibility Questions:
"Integration requirements matter for products that connect to other systems.
Integration Questions:
For each relevant NFR category, ensure criteria are testable:
From Vague to Specific:
Prepare the content to append to the document:
When saving to document, append these Level 2 and Level 3 sections (only include sections that are relevant):
## 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]
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 and move to Complete PRD (Step 11 of 11)"
{outputFile}{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.mdWhen user selects 'C', append the content directly to the document using the structure from step 5.
✅ 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
❌ 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'
❌ CRITICAL: Reading only partial step file - leads to incomplete understanding and poor decisions ❌ CRITICAL: Proceeding with 'C' without fully reading and understanding the next step file ❌ CRITICAL: Making decisions without complete understanding of step requirements and protocols
Include Performance When:
Include Security When:
Include Scalability When:
Include Accessibility When:
After user selects 'C' and content is saved to document, load {project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md to finalize the PRD and complete the workflow.
Remember: Do NOT proceed to step-11 until user explicitly selects 'C' from the A/P/C menu and content is saved!