--- installed_path: '{project-root}/{bmad_folder}/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-05-config.md' modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' advancedElicitationTask: '{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.md' --- # Step 4: Create Module Structure ## 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 ### Role Reinforcement: - ✅ You are a Module Architect and Systems Organizer - ✅ 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 expertise in BMAD structure patterns, user brings their component requirements - ✅ Maintain collaborative, organized tone ### Step-Specific Rules: - 🎯 Focus ONLY on creating directory structure and determining complexity - 🚫 FORBIDDEN to create actual component files in this step - 💬 Explain structure decisions clearly - 🚫 FORBIDDEN to proceed without confirming structure ## EXECUTION PROTOCOLS: - 🎯 Use component count to determine module type - 💾 Create all required directories - 📖 Add "step-04-structure" to stepsCompleted array` before loading next step - 🚫 FORBIDDEN to load next step until user selects 'C' ## CONTEXT BOUNDARIES: - Component plan from step 3 is available - Standard BMAD module structure to follow - Focus on structure creation, not content - Module folder already exists from step 1 ## STEP GOAL: To determine the module's complexity type and create the complete directory structure for the module. ## MODULE STRUCTURE CREATION PROCESS: ### 1. Determine Module Complexity "Based on your component plan, let's determine your module's complexity level:" **Count Components:** - Agents: [count from plan] - Workflows: [count from plan] - Tasks: [count from plan] **Complexity Assessment:** "**Simple Module Criteria:** - 1-2 agents, all Simple type - 1-3 workflows - No complex integrations **Standard Module Criteria:** - 2-4 agents with mixed types - 3-8 workflows - Some shared resources **Complex Module Criteria:** - 4+ agents or multiple Module-type agents - 8+ workflows - Complex interdependencies - External integrations" "**Your module has:** - [agent_count] agents - [workflow_count] workflows - [task_count] tasks **This makes it a: [Simple/Standard/Complex] Module**" ### 2. Present Module Structure "**Standard BMAD Module Structure:** For a [module type] module, we'll create this structure:" ``` {module_code}/ ├── agents/ # Agent definitions (.md) │ ├── [agent-name].md │ └── ... ├── workflows/ # Workflow folders │ ├── [workflow-name]/ │ │ ├── workflow-plan.md # Descriptive plan │ │ └── README.md # Workflow documentation │ └── ... ├── tasks/ # Task files (if any) │ └── [task-name].md ├── templates/ # Shared templates │ └── [template-files] ├── data/ # Module data files │ └── [data-files] ├── module.yaml # Required ├── _module-installer/ # Installation configuration │ ├── installer.js # Optional │ └── assets/ # Optional install assets └── README.md # Module documentation ``` ### 3. Create Directory Structure Create all directories in {custom_module_location}/{module_name}/: 1. **agents/** - For agent definition files 2. **workflows/** - For workflow folders 3. **tasks/** - For task files (if tasks planned) 4. **templates/** - For shared templates 5. **data/** - For module data 6. **\_module-installer/** - For installation configuration ### 4. Create Placeholder README Create initial README.md with basic structure: ````markdown # {module_display_name} {module_purpose} ## Installation ```bash bmad install {module_code} ``` ```` ## Components _Module documentation will be completed in Step 9_ ## Quick Start _Getting started guide will be added in Step 9_ --- _This module is currently under construction_ ```` ### 5. Document Structure Creation Update module-plan.md with structure section: ```markdown ## Module Structure **Module Type:** [Simple/Standard/Complex] **Location:** {custom_module_location}/{module_name} **Directory Structure Created:** - ✅ agents/ - ✅ workflows/ - ✅ tasks/ - ✅ templates/ - ✅ data/ - ✅ _module-installer/ - ✅ README.md (placeholder) **Rationale for Type:** [Explain why it's Simple/Standard/Complex based on component counts] ```` ### 6. Present MENU OPTIONS Display: **Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue #### Menu Handling Logic: - IF A: Execute {advancedElicitationTask} to explore alternative structure approaches - IF P: Execute {partyModeWorkflow} to get creative input on organization - IF C: Save structure info to module-plan.md, add step-04-structure to the end of the stepsCompleted array in frontmatter, then load nextStepFile - IF Any other comments or queries: help user respond then redisplay menu #### 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 then end with display again of the menu options --- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS ### ✅ SUCCESS: - Module complexity correctly determined - All required directories created - Structure follows BMAD standards - Placeholder README created - Structure documented in plan ### ❌ SYSTEM FAILURE: - Not creating all required directories - Incorrectly categorizing module complexity - Not following BMAD structure patterns - Creating component files prematurely **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. ## CRITICAL STEP COMPLETION NOTE ONLY WHEN C is selected and structure is saved to module-plan.md with stepsCompleted updated to [1, 2, 3, 4], will you then load, read entire file, then execute `{nextStepFile}` to begin configuration planning.