src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-06-structure.md
π 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 architectural peers
π YOU ARE A FACILITATOR, not a content generator
π¬ FOCUS on defining complete project structure and clear boundaries
πΊοΈ MAP requirements/epics to architectural components
β οΈ ABSOLUTELY NO TIME ESTIMATES - AI development speed has fundamentally changed
β
YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config {communication_language}
stepsCompleted: [1, 2, 3, 4, 5, 6] before loading next stepThis step will generate content and present choices:
bmad-advanced-elicitation skillbmad-party-mode skillDefine the complete project structure and architectural boundaries based on all decisions made, creating a concrete implementation guide for AI agents.
Map project requirements to architectural components:
From Epics (if available): "Epic: {{epic_name}} β Lives in {{module/directory/service}}"
From FR Categories (if no epics): "FR Category: {{fr_category_name}} β Lives in {{module/directory/service}}"
Based on technology stack and patterns, create the complete project structure:
Root Configuration Files:
Source Code Organization:
Test Organization:
Build and Distribution:
Map how components communicate and where boundaries exist:
API Boundaries:
Component Boundaries:
Data Boundaries:
Generate a comprehensive directory structure showing all files and directories:
Technology-Specific Structure Examples:
Next.js Full-Stack:
project-name/
βββ README.md
βββ package.json
βββ next.config.js
βββ tailwind.config.js
βββ tsconfig.json
βββ .env.local
βββ .env.example
βββ .gitignore
βββ .github/
β βββ workflows/
β βββ ci.yml
βββ src/
β βββ app/
β β βββ globals.css
β β βββ layout.tsx
β β βββ page.tsx
β βββ components/
β β βββ ui/
β β βββ forms/
β β βββ features/
β βββ lib/
β β βββ db.ts
β β βββ auth.ts
β β βββ utils.ts
β βββ types/
β βββ middleware.ts
βββ prisma/
β βββ schema.prisma
β βββ migrations/
βββ tests/
β βββ __mocks__/
β βββ components/
β βββ e2e/
βββ public/
βββ assets/
API Backend (NestJS):
project-name/
βββ package.json
βββ nest-cli.json
βββ tsconfig.json
βββ .env
βββ .env.example
βββ .gitignore
βββ README.md
βββ src/
β βββ main.ts
β βββ app.module.ts
β βββ config/
β βββ modules/
β β βββ auth/
β β βββ users/
β β βββ common/
β βββ services/
β βββ repositories/
β βββ decorators/
β βββ pipes/
β βββ guards/
β βββ interceptors/
βββ test/
β βββ unit/
β βββ integration/
β βββ e2e/
βββ prisma/
β βββ schema.prisma
β βββ migrations/
βββ docker-compose.yml
Create explicit mapping from project requirements to specific files/directories:
Epic/Feature Mapping: "Epic: User Management
Cross-Cutting Concerns: "Authentication System
Prepare the content to append to the document:
## Project Structure & Boundaries
### Complete Project Directory Structure
{{complete_project_tree_with_all_files_and_directories}}
### Architectural Boundaries
**API Boundaries:**
{{api_boundary_definitions_and_endpoints}}
**Component Boundaries:**
{{component_communication_patterns_and_boundaries}}
**Service Boundaries:**
{{service_integration_patterns_and_boundaries}}
**Data Boundaries:**
{{data_access_patterns_and_boundaries}}
### Requirements to Structure Mapping
**Feature/Epic Mapping:**
{{mapping_of_epics_or_features_to_specific_directories}}
**Cross-Cutting Concerns:**
{{mapping_of_shared_functionality_to_locations}}
### Integration Points
**Internal Communication:**
{{how_components_within_the_project_communicate}}
**External Integrations:**
{{third_party_service_integration_points}}
**Data Flow:**
{{how_data_flows_through_the_architecture}}
### File Organization Patterns
**Configuration Files:**
{{where_and_how_config_files_are_organized}}
**Source Organization:**
{{how_source_code_is_structured_and_organized}}
**Test Organization:**
{{how_tests_are_structured_and_organized}}
**Asset Organization:**
{{how_static_and_dynamic_assets_are_organized}}
### Development Workflow Integration
**Development Server Structure:**
{{how_the_project_is organized_for_development}}
**Build Process Structure:**
{{how_the_build_process_uses_the_project_structure}}
**Deployment Structure:**
{{how_the_project_structure_supports_deployment}}
Show the generated project structure content and present choices:
"I've created a complete project structure based on all our architectural decisions.
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 - Explore innovative project organization approaches [P] Party Mode - Review structure from different development perspectives [C] Continue - Save this structure and move to architecture validation"
bmad-advanced-elicitation skill with current project structurebmad-party-mode skill with project structure context{planning_artifacts}/architecture.mdstepsCompleted: [1, 2, 3, 4, 5, 6]./step-07-validation.mdWhen user selects 'C', append the content directly to the document using the structure from step 6.
β Complete project tree defined with all files and directories β All architectural boundaries clearly documented β Requirements/epics mapped to specific locations β Integration points and communication patterns defined β Project structure aligned with chosen technology stack β A/P/C menu presented and handled correctly β Content properly appended to document when C selected
β Creating generic placeholder structure instead of specific, complete tree β Not mapping requirements to specific files and directories β Missing important integration boundaries β Not considering the chosen technology stack in structure design β Not defining how components communicate across boundaries β Not presenting A/P/C menu after content generation
β 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
After user selects 'C' and content is saved to document, load ./step-07-validation.md to validate architectural coherence and completeness.
Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu and content is saved!