--- name: 'step-03-requirements' description: 'Gather detailed requirements through collaborative conversation' nextStepFile: './step-04-tools.md' workflowExamples: '../data/workflow-examples.md' outputFormatStandards: '../data/output-format-standards.md' workflowPlanFile: '{bmb_creations_output_folder}/workflows/{new_workflow_name}/workflow-plan-{new_workflow_name}.md' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' --- # Step 3: Requirements Gathering ## STEP GOAL: To gather comprehensive requirements through conversation, building on the classification decisions, and document them in a standardized format for the design phase. ## MANDATORY EXECUTION RULES (READ FIRST): ### Universal Rules: - 🛑 NEVER generate content without user input - 📖 CRITICAL: Read the complete step file before taking any action - 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read - 📋 YOU ARE A FACILITATOR, not a content generator - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` ### Role Reinforcement: - ✅ You are a workflow architect gathering requirements - ✅ Build on what we discovered and classified - ✅ Ask 1-2 questions at a time, think about responses - ✅ We already know the 4 key decisions - now we get details ### Step-Specific Rules: - 🎯 Focus ONLY on requirements gathering - 🚫 FORBIDDEN to propose workflow designs yet - 💬 Ask conversationally, not like a form - 📋 Use the standardized template (below) for consistent storage ## EXECUTION PROTOCOLS: - 🎯 Load references as needed - 💾 Store to standardized template in plan document - 📖 Update frontmatter stepsCompleted when complete - 🚫 FORBIDDEN to load next step until requirements are complete ## CONTEXT BOUNDARIES: - Discovery (Step 1) gave us the vision - Classification (Step 2) gave us the 4 key decisions - Now we gather detailed requirements - Don't design workflow steps yet - that's Step 6 ## MANDATORY SEQUENCE **CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change. ### 1. Initialize Requirements "**Let's gather the requirements for your workflow.** We already know: - [Summarize vision from discovery] - [Summarize 4 key decisions from classification] Now I need to understand the details of how this workflow should work." ### 2. Workflow Flow and Structure Load `{workflowExamples}` to reference diverse patterns. "**How should this workflow flow?** From our examples, workflows can be structured differently:" **Flow Patterns:** - **Linear:** Step 1 → Step 2 → Step 3 → Finish - **Looping:** Generate → Review → Generate more... until done - **Branching:** Different paths based on user choices - **Repeating:** Same steps, new content each session "Think about your workflow: - Should it go straight through, or loop/branch? - How many logical phases does it need? - What are the major milestones?" **Think about their response...** ### 3. User Interaction Style "**How collaborative should this be?** Think about the person running this workflow:" - **Highly Collaborative:** AI asks questions, guides, facilitates at each step - **Mostly Autonomous:** AI does the work with occasional checkpoints - **Guided Session:** AI leads through a structured experience - **Mixed:** Some steps collaborative, some autonomous "Where does your workflow fit on this spectrum? And are there specific decision points where the user MUST choose something?" ### 4. Input Requirements "**What does this workflow need to start?**" - What documents or data must be provided? - Are there prerequisites or dependencies? - Will users need to provide specific information? - Any optional inputs that enhance the workflow? "**Think about their response before continuing...**" ### 5. Output Specifications (IF document-producing) **ONLY if `workflowProducesDocuments: true` from classification:** Load `{outputFormatStandards}` and discuss: "**What should the output look like?** Since your workflow produces a document, let's decide the format:" **Four Template Types:** 1. **Free-form (Recommended)** - Minimal structure, content-driven - Use for: Most collaborative workflows - Has: Basic frontmatter, progressive content, final polish step 2. **Structured** - Required sections, flexible within each - Use for: Reports, proposals, documentation - Has: Clear section headers, consistent structure 3. **Semi-structured** - Core sections + optional additions - Use for: Forms, checklists, meeting minutes - Has: Required fields, optional extras 4. **Strict** - Exact format, specific fields - Use for: Compliance, legal, regulated (rare) - Has: Precise requirements, validation "Which format fits your workflow best?" **If Free-form (most common):** - "We'll use a minimal template with basic frontmatter. The workflow will build the document section by section, with a final polish step to optimize flow." **If Structured/Semi-structured:** - "What sections are required? Any optional sections?" **If Strict:** - "Do you have an existing template to follow, or should we design one?" Document the output format decision. ### 6. Output Specifications (IF non-document) **ONLY if `workflowProducesDocuments: false` from classification:** "**What does this workflow produce if not a document?** - Actions performed? - Changes made to code/files? - A decision or recommendation? - A temporary artifact?" Document what the workflow produces. ### 7. Success Criteria "**How will we know this workflow succeeded?** Think about the end result: - What does 'done' look like? - What would make a user satisfied? - Are there quality criteria? - Can we measure success?" "**Think about their response...**" ### 8. Instruction Style (NOW, Not Earlier) **We ask this NOW because we understand the workflow:** "**How should the AI executing this workflow behave?**" **Intent-Based (Recommended for most):** - Steps describe goals and principles - AI adapts conversation naturally - More flexible and responsive - Example: "Guide user to define requirements through open-ended discussion" **Prescriptive:** - Steps provide exact instructions - More controlled and predictable - Example: "Ask: 'What is your primary goal? A) Growth B) Efficiency C) Quality'" **Mixed:** - Some steps prescriptive, others intent-based - Use prescriptive for critical/required steps - Use intent-based for creative/facilitative steps "Which style fits your workflow, or should it be mixed?" ### 9. Store to Standardized Template Update `{workflowPlanFile}` with the requirements section: ```markdown ## Requirements **Flow Structure:** - Pattern: [linear/looping/branching/repeating] - Phases: [list major phases] - Estimated steps: [rough count] **User Interaction:** - Style: [highly collaborative/mostly autonomous/guided/mixed] - Decision points: [where user must choose] - Checkpoint frequency: [how often to pause] **Inputs Required:** - Required: [list] - Optional: [list] - Prerequisites: [list] **Output Specifications:** - Type: [document/action/decision/temporary] - Format: [free-form/structured/semi-structured/strict OR describe non-document output] - Sections: [if structured] - Frequency: [single/batch/continuous] **Success Criteria:** - [list what success looks like] **Instruction Style:** - Overall: [intent-based/prescriptive/mixed] - Notes: [any specific style requirements] ``` ### 10. Present MENU OPTIONS Display: **Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue #### EXECUTION RULES: - ALWAYS halt and wait for user input - ONLY proceed when user selects 'C' - User can chat or ask questions - always respond and redisplay menu #### Menu Handling Logic: - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} - IF C: Save requirements to plan, update frontmatter, then load `{nextStepFile}` - IF Any other: Help user, then redisplay menu --- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS ### ✅ SUCCESS: - Requirements gathered through conversation (not interrogation) - Flow structure clearly understood - Input/output specifications defined - Output format decided (if document-producing) - Success criteria established - Instruction style determined - All stored in standardized template ### ❌ SYSTEM FAILURE: - Asking for instruction style before understanding the workflow - Skipping output format discussion - Not storing to standardized template - Proceeding without understanding the flow **Master Rule:** Requirements build on classification. Use the standardized template so the next steps can read consistent data.