--- name: 'step-05-domain' description: 'Explore domain-specific requirements for complex domains (optional step)' # Path Definitions workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' # File References thisStepFile: '{workflow_path}/steps/step-05-domain.md' nextStepFile: '{workflow_path}/steps/step-06-innovation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/prd.md' # Data Files domainComplexityCSV: '{workflow_path}/domain-complexity.csv' # Task References advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' --- # Step 5: Domain-Specific Exploration **Progress: Step 5 of 11** - Next: Innovation Focus ## MANDATORY EXECUTION RULES (READ FIRST): - 🛑 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 domain-specific requirements and compliance needs - 🎯 OPTIONAL STEP: Only proceed if complexity_level = "high" from step-02 - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` ## 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/core/workflows/advanced-elicitation/workflow.xml - When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md - 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" and/or 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 `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/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 `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/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 and move to Innovation Focus (Step 6 of 11)" ### 8. Handle Menu Selection #### If 'A' (Advanced Elicitation): - Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.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 {project-root}/_bmad/core/workflows/party-mode/workflow.md 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 content to `{outputFile}` - Update frontmatter: add this step name to the end of the steps completed array - Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/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' ❌ **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 ## SKIP CONDITIONS: Skip this step and load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/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 `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/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!