--- name: 'step-06-design' description: 'Design the workflow structure and step sequence based on gathered requirements, tools configuration, and output format' nextStepFile: './step-07-foundation.md' targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/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' stepTemplate: '../templates/step-template.md' stepTypePatterns: '../data/step-type-patterns.md' menuHandlingStandards: '../data/menu-handling-standards.md' frontmatterStandards: '../data/frontmatter-standards.md' outputFormatStandards: '../data/output-format-standards.md' inputDiscoveryStandards: '../data/input-discovery-standards.md' workflowChainingStandards: '../data/workflow-chaining-standards.md' trimodalWorkflowStructure: '../data/trimodal-workflow-structure.md' subprocessPatterns: '../data/subprocess-optimization-patterns.md' --- # Step 6: Workflow Structure Design ## STEP GOAL: To collaboratively design the workflow structure, step sequence, and interaction patterns based on the approved plan and output format requirements. ## 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 and systems designer - ✅ If you already have been given communication or persona patterns, continue to use those while playing this new role - ✅ We engage in collaborative dialogue, not command-response - ✅ You bring workflow design patterns and architectural expertise - ✅ User brings their domain requirements and workflow preferences ### Step-Specific Rules: - 🎯 Focus ONLY on designing structure, not implementation details - 🚫 FORBIDDEN to write actual step content or code in this step - 💬 Collaboratively design the flow and sequence - 🚫 DO NOT finalize design without user agreement ## EXECUTION PROTOCOLS: - 🎯 Guide collaborative design process - 💾 After completing design, append to {workflowPlanFile} - 📖 Update frontmatter stepsCompleted to add this step when completed. - 🚫 FORBIDDEN to load next step until user selects 'C' and design is saved ## CONTEXT BOUNDARIES: - Approved plan from step 4 is available and should inform design - Output format design from step 5 (if completed) guides structure - Load architecture documentation when needed for guidance - Focus ONLY on structure and flow design - Don't implement actual files in this step - This is about designing the blueprint, not building ## DESIGN REFERENCE MATERIALS: When designing, you will load these data standards as needed (ideally within subprocesses that can return the relevant insights during the design step): - {stepTemplate} - Step file structure template - {stepTypePatterns} - Templates for different step types (init, middle, branch, validation, final) - {menuHandlingStandards} - Menu patterns and handler rules - {frontmatterStandards} - Variable definitions and path rules - {outputFormatStandards} - Output document patterns - {inputDiscoveryStandards} - How to discover documents from prior workflows - {workflowChainingStandards} - How workflows connect in sequences - {trimodalWorkflowStructure} - Tri-modal workflow patterns (if applicable) Example [Workflow.md](../workflow.md) for reference of a perfect workflow.md with some complex options (not all workflows will offer multiple next step options like this one - most will just auto route right to a step 1 file) ## MANDATORY SEQUENCE **CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change. ### 1. Step Structure Design Load {stepTypePatterns} for available step type templates: This shows the standard structure for all step types: - Init Step (Continuable) - Continuation Step (01b) - Middle Step (Standard/Simple) - Branch Step - Validation Sequence Step - Init Step (With Input Discovery) - Final Polish Step - Final Step Based on the approved plan, collaboratively design the info to answer the following for the build plan: - How many major steps does this workflow need? - What is the goal of each step? - Which steps are optional vs required? - Should any steps repeat or loop? - What are the decision points within steps? ### 1a. Continuation Support Assessment **Ask the user:** "Will this workflow potentially take multiple sessions to complete? Consider: - Does this workflow generate a document/output file? - Might users need to pause and resume the workflow? - Does the workflow involve extensive data collection or analysis? - Are there complex decisions that might require multiple sessions? If **YES** to any of these, we should include continuation support using step-01b-continue.md." **If continuation support is needed:** - Include step-01-init.md (with continuation detection logic) - Include step-01b-continue.md (for resuming workflows) - Ensure every step updates `stepsCompleted` in output frontmatter - Design the workflow to persist state between sessions ### 2. Interaction Pattern Design Load {menuHandlingStandards} for menu pattern options: Design how users will interact with the workflow: - Where should users provide input vs where the AI works autonomously? - What menu pattern does each step need? (Standard A/P/C, Auto-proceed, Custom, Conditional) - Should there be Advanced Elicitation or Party Mode options? - How will users know their progress? - What confirmation points are needed? ### 3. Data Flow Design Map how information flows through the workflow: - What data is needed at each step? - What outputs does each step produce? - How is state tracked between steps? - Where are checkpoints and saves needed? - How are errors or exceptions handled? ### 4. File Structure Design Plan the workflow's file organization: - Will this workflow need templates? - Are there data files required? - Is a validation checklist needed? - What supporting files will be useful? - How will variables be managed? ### 5. Role and Persona Definition Define the AI's role for this workflow: - What expertise should the AI embody? - How should the AI communicate with users? - What tone and style is appropriate? - How collaborative vs prescriptive should the AI be? ### 6. Validation and Error Handling Design quality assurance: - How will the workflow validate its outputs? - What happens if a user provides invalid input? - Are there checkpoints for review? - How can users recover from errors? - What constitutes successful completion? ### 6a. Subprocess Optimization Design Load {subprocessPatterns} to understand subprocess optimization patterns that can save context and improve performance during workflow execution. Ask the user: "**Should we design this workflow to leverage subprocess optimization patterns?** Consider: - **Pattern 1 (Grep/Regex):** Will any step search across many files or documents for patterns? - **Pattern 2 (Deep Analysis):** Will any step analyze multiple files for prose, logic, quality, or flow? - **Pattern 3 (Data Operations):** Will any step load large reference data, knowledge bases, or datasets? - **Pattern 4 (Parallel Execution):** Can any validation or analysis checks run in parallel instead of sequentially? If **YES** to any of these, we should design those steps with subprocess optimization in mind." **If subprocess optimization is applicable:** For each step that could benefit from subprocesses: - Identify which pattern(s) apply (Pattern 1, 2, 3, or 4) - Design what the subprocess should return (findings only, not full content) - Plan graceful fallback for LLMs without subprocess capability - Document optimization strategy in the build plan **Example subprocess integration:** ```markdown ### Step-Specific Rules: - 🎯 Analyze X files for Y - use subprocess per file (Pattern 2) - 💬 Subprocess returns structured findings, not full content - ⚙️ If subprocess unavailable: Perform analysis in main thread ``` **Document in the plan:** For each step identified for subprocess optimization, record: - Step number and name - Pattern type(s) to apply - What the subprocess will analyze - Expected return structure - Fallback approach ### 7. Special Features Design Identify unique requirements: - Does this workflow need conditional logic? - Are there branch points based on user choices? - Should it integrate with other workflows? - Does it need to handle multiple scenarios? **Input Discovery:** If this workflow depends on documents from prior workflows, load {inputDiscoveryStandards}: - What prior workflow outputs does this workflow need? - Are these required or optional inputs? - How will the workflow discover these documents? **Workflow Chaining:** If this workflow is part of a sequence, load {workflowChainingStandards}: - What workflow comes before this one? - What workflow comes after this one? - What outputs does this workflow produce for the next? ### 8. Design Review and Refinement Present the design for review: - Walk through the complete flow - Identify potential issues or improvements - Ensure all requirements are addressed - Get user agreement on the design ## DESIGN PRINCIPLES TO APPLY: ### Micro-File Architecture - Keep each step focused and self-contained - Ensure steps can be loaded independently - Design for Just-In-Time loading ### Sequential Flow with Clear Progression - Each step should build on previous work - Include clear decision points - Maintain logical progression toward goal ### Menu-Based Interactions - Include consistent menu patterns - Provide clear options at decision points - Allow for conversation within steps ### State Management - Track progress using `stepsCompleted` array - Persist state in output file frontmatter - Support continuation where appropriate ### 9. Document Design in Plan Append to {workflowPlanFile}: - Complete step outline with names and purposes - Flow diagram or sequence description - Interaction patterns - File structure requirements - Special features and handling ### 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 after presenting menu - ONLY proceed to next step when user selects 'C' - After other menu items execution, return to this menu - User can chat or ask questions - always respond and then end with display again of the menu options - Use menu handling logic section below #### Menu Handling Logic: - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} - IF C: Save design to {workflowPlanFile}, update frontmatter, then load, read entire file, then execute {nextStepFile} - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#10-present-menu-options) ## CRITICAL STEP COMPLETION NOTE ONLY WHEN C is selected and design is saved will you load {nextStepFile} to begin implementation. --- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS ### ✅ SUCCESS: - Workflow structure designed collaboratively - All steps clearly defined and sequenced - Interaction patterns established - File structure planned - User agreement on design ### ❌ SYSTEM FAILURE: - Designing without user collaboration - Skipping design principles - Not documenting design in plan - Proceeding without user agreement **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.