---
installed_path: '{project-root}/{bmad_folder}/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-04-structure.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
agent_examples_path: '{project-root}/src/modules/bmb/reference/agents/module-examples'
advancedElicitationTask: '{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.md'
---

# Step 3: Plan Module Components

## 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 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 expertise in BMAD component design patterns, user brings their domain requirements
- ✅ Maintain collaborative, design-focused tone

### Step-Specific Rules:

- 🎯 Focus ONLY on planning component architecture
- 🚫 FORBIDDEN to create actual components in this step
- 💬 Present component options with reasoning
- 🚫 FORBIDDEN to finalize component list without user agreement

## EXECUTION PROTOCOLS:

- 🎯 Reference agent examples for patterns
- 💾 Document component plan in detail
- 📖 Add "step-03-components" to stepsCompleted array` before loading next step
- 🚫 FORBIDDEN to load next step until user selects 'C'

## CONTEXT BOUNDARIES:

- Module concept from step 2 is available
- Focus on planning, not implementation
- Consider BMAD patterns and best practices
- Reference examples but don't copy exactly

## STEP GOAL:

To design the component architecture for the module, determining what agents, workflows, and tasks are needed to fulfill the module's purpose.

## COMPONENT PLANNING PROCESS:

### 1. Initialize Component Planning

"Now that we have a clear module concept, let's plan the components that will bring it to life.

Based on your module's purpose and scope, we'll design:

- **Agents** - The AI personas that will help users
- **Workflows** - The step-by-step processes for accomplishing tasks
- **Tasks** - Quick utilities and supporting functions"

### 2. Agent Planning

"**Agent Architecture:**

Think about the different roles or perspectives needed to accomplish your module's goals. Each agent should have a clear, distinct purpose."

Reference agent examples for patterns
Load and browse agent examples: {agent_examples_path}

"**Common Agent Patterns:**

- **Primary Agent** - The main interface/orchestrator
- **Specialist Agents** - Domain-specific experts
- **Utility Agents** - Helper/support functions

**Example by Module Type:**

**Technical Modules (e.g., DevOps, Testing):**

- Implementation Specialist
- Reviewer/Auditor
- Documentation Expert

**Creative Modules (e.g., Story Writing, Game Design):**

- Creative Director
- World Builder
- Content Generator

**Business Modules (e.g., Project Management):**

- Project Coordinator
- Facilitator
- Analyst"

"**For your {module_category} module, I suggest considering:**

[Suggest 2-4 specific agent types based on module concept]

**What resonates with your vision?** Which of these agents would be most valuable, and are there any others you'd like to add?"

### 3. Workflow Planning

"**Workflow Design:**

Workflows are the step-by-step processes that users will follow to accomplish specific tasks. Each workflow should solve a specific problem or achieve a particular outcome."

**Types of Workflows:**

- **Document Workflows** - Generate reports, plans, specifications
- **Action Workflows** - Perform operations, create structures
- **Interactive Workflows** - Guided sessions, coaching, training

**Example Workflow Patterns:**

"For your module's purpose, consider these potential workflows:

1. **[Primary Workflow Name]** - Main workflow for core functionality
2. **[Supporting Workflow 1]** - For specific use case
3. **[Supporting Workflow 2]** - For another use case

Remember: We'll create workflow PLANS first, not full implementations. These plans can be used later with the create-workflow workflow."

### 4. Task Planning (Optional)

"**Task Planning (if needed):**

Tasks are single-operation utilities that don't need full workflows. They're good for:

- Quick actions
- Shared subroutines
- Helper functions

Does your module need any tasks? For example:

- Status checking
- Quick formatting
- Validation utilities"

### 5. Component Integration Planning

"**How Components Work Together:**

Let's think about how your components will interact:

- **Agent Collaboration**: Will agents work together or independently?
- **Workflow Dependencies**: Do workflows need to call each other?
- **Task Usage**: Which workflows will use which tasks?"

### 6. Component Priority and MVP

"**Starting Point (MVP):**

To ensure success, let's identify the minimum viable set:

**Must Have (Phase 1):**

- [List essential agents]
- [List essential workflows]

**Nice to Have (Phase 2):**

- [Additional agents]
- [Additional workflows]
- [Tasks if any]

This approach lets you launch with core functionality and expand later."

### 7. Document Component Plan

Update module-plan.md with component section:

```markdown
## Component Architecture

### Agents (N planned)

1. **[Agent Name]** - [Brief purpose]
   - Type: [Primary/Specialist/Utility]
   - Role: [Specific role description]

2. **[Agent Name]** - [Brief purpose]
   - Type: [Primary/Specialist/Utility]
   - Role: [Specific role description]

### Workflows (N planned)

1. **[Workflow Name]** - [Purpose]
   - Type: [Document/Action/Interactive]
   - Primary user: [Who uses this]
   - Key output: [What it produces]

2. **[Workflow Name]** - [Purpose]
   - Type: [Document/Action/Interactive]
   - Primary user: [Who uses this]
   - Key output: [What it produces]

### Tasks (N planned)

1. **[Task Name]** - [Single-purpose function]
   - Used by: [Which workflows/agents]

### Component Integration

- Agents collaborate via: [description]
- Workflow dependencies: [description]
- Task usage patterns: [description]

### Development Priority

**Phase 1 (MVP):**

- [List of components to create first]

**Phase 2 (Enhancement):**

- [List of components for later]
```

### 8. 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 component architectures
- IF P: Execute {partyModeWorkflow} to get creative input on component design
- IF C: Save component plan to module-plan.md, add step-03-components 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:

- Component architecture planned and documented
- Agent types and purposes clearly defined
- Workflow requirements identified
- Integration patterns established
- Development priority set (MVP vs enhancements)

### ❌ SYSTEM FAILURE:

- Planning components without module purpose context
- Not considering BMAD patterns and examples
- Over-engineering (too many components)
- Under-planning (missing essential components)
- Not establishing development priorities

**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 component plan is saved to module-plan.md with stepsCompleted updated to [1, 2, 3], will you then load, read entire file, then execute `{nextStepFile}` to begin creating the module structure.
