BMAD-METHOD/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md

8.4 KiB

Step 2: Project Context Analysis

MANDATORY EXECUTION RULES (READ FIRST):

  • 🛑 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 understanding project scope and requirements for architecture

  • 🎯 ANALYZE loaded documents, don't assume or generate requirements

  • ⚠️ ABSOLUTELY NO TIME ESTIMATES - AI development speed has fundamentally changed

EXECUTION PROTOCOLS:

  • 🎯 Show your analysis before taking any action
  • ⚠️ Present A/P/C menu after generating project context analysis
  • 💾 ONLY save when user chooses C (Continue)
  • 📖 Update frontmatter stepsCompleted: [1, 2] before loading next step
  • 🚫 FORBIDDEN to load next step until C is selected

COLLABORATION MENUS (A/P/C):

This step will generate content and present choices:

  • A (Advanced Elicitation): Use discovery protocols to develop deeper insights about project context and architectural implications
  • P (Party Mode): Bring multiple perspectives to analyze project requirements from different architectural angles
  • C (Continue): Save the content to the document and proceed to next step

PROTOCOL INTEGRATION:

  • When 'A' selected: Execute {project-root}/_bmad/core/tasks/advanced-elicitation.xml
  • When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md
  • PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
  • User accepts/rejects protocol changes before proceeding

CONTEXT BOUNDARIES:

  • Current document and frontmatter from step 1 are available
  • Input documents already loaded are in memory (PRD, epics, UX spec, etc.)
  • Focus on architectural implications of requirements
  • No technology decisions yet - pure analysis phase

YOUR TASK:

Fully read and Analyze the loaded project documents to understand architectural scope, requirements, and constraints before beginning decision making.

CONTEXT ANALYSIS SEQUENCE:

1. Review Project Requirements

From PRD Analysis:

  • Extract and analyze Functional Requirements (FRs)
  • Identify Non-Functional Requirements (NFRs) like performance, security, compliance
  • Note any technical constraints or dependencies mentioned
  • Count and categorize requirements to understand project scale

From Epics/Stories (if available):

  • Map epic structure and user stories to architectural components
  • Extract acceptance criteria for technical implications
  • Identify cross-cutting concerns that span multiple epics
  • Estimate story complexity for architectural planning

From UX Design (if available):

  • Extract architectural implications from UX requirements:
    • Component complexity (simple forms vs rich interactions)
    • Animation/transition requirements
    • Real-time update needs (live data, collaborative features)
    • Platform-specific UI requirements
    • Accessibility standards (WCAG compliance level)
    • Responsive design breakpoints
    • Offline capability requirements
    • Performance expectations (load times, interaction responsiveness)

2. Project Scale Assessment

Calculate and present project complexity:

Complexity Indicators:

  • Real-time features requirements
  • Multi-tenancy needs
  • Regulatory compliance requirements
  • Integration complexity
  • User interaction complexity
  • Data complexity and volume

3. Reflect Understanding

Present your analysis back to user for validation:

"I'm reviewing your project documentation for {{project_name}}.

{if_epics_loaded}I see {{epic_count}} epics with {{story_count}} total stories.{/if_epics_loaded} {if_no_epics}I found {{fr_count}} functional requirements organized into {{fr_category_list}}.{/if_no_epics} {if_ux_loaded}I also found your UX specification which defines the user experience requirements.{/if_ux_loaded}

Key architectural aspects I notice:

  • [Summarize core functionality from FRs]
  • [Note critical NFRs that will shape architecture]
  • {if_ux_loaded}[Note UX complexity and technical requirements]{/if_ux_loaded}
  • [Identify unique technical challenges or constraints]
  • [Highlight any regulatory or compliance requirements]

Scale indicators:

  • Project complexity appears to be: [low/medium/high/enterprise]
  • Primary technical domain: [web/mobile/api/backend/full-stack/etc]
  • Cross-cutting concerns identified: [list major ones]

This analysis will help me guide you through the architectural decisions needed to ensure AI agents implement this consistently.

Does this match your understanding of the project scope and requirements?"

4. Generate Project Context Content

Prepare the content to append to the document:

Content Structure:

## Project Context Analysis

### Requirements Overview

**Functional Requirements:**
{{analysis of FRs and what they mean architecturally}}

**Non-Functional Requirements:**
{{NFRs that will drive architectural decisions}}

**Scale & Complexity:**
{{project_scale_assessment}}

- Primary domain: {{technical_domain}}
- Complexity level: {{complexity_level}}
- Estimated architectural components: {{component_count}}

### Technical Constraints & Dependencies

{{known_constraints_dependencies}}

### Cross-Cutting Concerns Identified

{{concerns_that_will_affect_multiple_components}}

5. Present Content and Menu

Show the generated content and present choices:

"I've drafted the Project Context Analysis based on your requirements. This sets the foundation for our architectural decisions.

Here's what I'll add to the document:

[Show the complete markdown content from step 4]

What would you like to do? [A] Advanced Elicitation - Let's dive deeper into architectural implications [P] Party Mode - Bring different perspectives to analyze requirements [C] Continue - Save this analysis and begin architectural decisions"

6. Handle Menu Selection

If 'A' (Advanced Elicitation):

  • Execute {project-root}/_bmad/core/tasks/advanced-elicitation.xml with the current context analysis
  • Process the enhanced architectural insights that come back
  • Ask user: "Accept these enhancements to the project context analysis? (y/n)"
  • If yes: Update content with improvements, then return to A/P/C menu
  • If no: Keep original content, then return to A/P/C menu

If 'P' (Party Mode):

  • Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current project context
  • Process the collaborative improvements to architectural understanding
  • Ask user: "Accept these changes to the project context analysis? (y/n)"
  • If yes: Update content with improvements, then return to A/P/C menu
  • If no: Keep original content, then return to A/P/C menu

If 'C' (Continue):

  • Append the final content to {output_folder}/architecture.md
  • Update frontmatter: stepsCompleted: [1, 2]
  • Load ./step-03-starter.md

APPEND TO DOCUMENT:

When user selects 'C', append the content directly to the document using the structure from step 4.

SUCCESS METRICS:

All input documents thoroughly analyzed for architectural implications Project scope and complexity clearly assessed and validated Technical constraints and dependencies identified Cross-cutting concerns mapped for architectural planning User confirmation of project understanding A/P/C menu presented and handled correctly Content properly appended to document when C selected

FAILURE MODES:

Skimming documents without deep architectural analysis Missing or misinterpreting critical NFRs Not validating project understanding with user Underestimating complexity indicators Generating content without real analysis of loaded documents 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

NEXT STEP:

After user selects 'C' and content is saved to document, load ./step-03-starter.md to evaluate starter template options.

Remember: Do NOT proceed to step-03 until user explicitly selects 'C' from the A/P/C menu and content is saved!