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!