Technical/Architecture Research Instructions
The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml
You MUST have already loaded and processed: {installed_path}/workflow.yaml
This workflow conducts technical research for architecture and technology decisions
Understand the technical research requirements
Welcome to Technical/Architecture Research!
What technical decision or research do you need?
Common scenarios:
- Evaluate technology stack for a new project
- Compare frameworks or libraries (React vs Vue, Postgres vs MongoDB)
- Research architecture patterns (microservices, event-driven, CQRS)
- Investigate specific technologies or tools
- Best practices for specific use cases
- Performance and scalability considerations
- Security and compliance research
<template-output>technical_question</template-output>
What’s the context for this decision?
- New greenfield project
- Adding to existing system (brownfield)
- Refactoring/modernizing legacy system
- Proof of concept / prototype
- Production-ready implementation
- Academic/learning purpose
<template-output>project_context</template-output>
Gather requirements and constraints that will guide the research
Let’s define your technical requirements:
Functional Requirements - What must the technology do?
Examples:
- Handle 1M requests per day
- Support real-time data processing
- Provide full-text search capabilities
- Enable offline-first mobile app
- Support multi-tenancy
<template-output>functional_requirements</template-output>
Non-Functional Requirements - Performance, scalability, security needs?
Consider:
- Performance targets (latency, throughput)
- Scalability requirements (users, data volume)
- Reliability and availability needs
- Security and compliance requirements
- Maintainability and developer experience
<template-output>non_functional_requirements</template-output>
Constraints - What limitations or requirements exist?
- Programming language preferences or requirements
- Cloud platform (AWS, Azure, GCP, on-prem)
- Budget constraints
- Team expertise and skills
- Timeline and urgency
- Existing technology stack (if brownfield)
- Open source vs commercial requirements
- Licensing considerations
<template-output>technical_constraints</template-output>
Research and identify technology options to evaluate
Do you have specific technologies in mind to compare, or should I discover options?
If you have specific options, list them. Otherwise, I’ll research current leading solutions based on your requirements.
<template-output if=“user provides options”>user_provided_options</template-output>
Conduct web research to identify current leading solutions
Search for:
Present discovered options (typically 3-5 main candidates)
<template-output>technology_options</template-output>
Research each technology option in depth
For each technology option, research thoroughly
Research and document:
Overview:
- What is it and what problem does it solve?
- Maturity level (experimental, stable, mature, legacy)
- Community size and activity
- Maintenance status and release cadence
Technical Characteristics:
- Architecture and design philosophy
- Core features and capabilities
- Performance characteristics
- Scalability approach
- Integration capabilities
Developer Experience:
- Learning curve
- Documentation quality
- Tooling ecosystem
- Testing support
- Debugging capabilities
Operations:
- Deployment complexity
- Monitoring and observability
- Operational overhead
- Cloud provider support
- Container/K8s compatibility
Ecosystem:
- Available libraries and plugins
- Third-party integrations
- Commercial support options
- Training and educational resources
Community and Adoption:
- GitHub stars/contributors (if applicable)
- Production usage examples
- Case studies from similar use cases
- Community support channels
- Job market demand
Costs:
- Licensing model
- Hosting/infrastructure costs
- Support costs
- Training costs
- Total cost of ownership estimate
<invoke-task halt=“true”>{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
<template-output>techprofile{{option_number}}</template-output>
Create structured comparison across all options
Create comparison matrices:
Generate comparison table with key dimensions:
Comparison Dimensions:
- Meets Requirements - How well does each meet functional requirements?
- Performance - Speed, latency, throughput benchmarks
- Scalability - Horizontal/vertical scaling capabilities
- Complexity - Learning curve and operational complexity
- Ecosystem - Maturity, community, libraries, tools
- Cost - Total cost of ownership
- Risk - Maturity, vendor lock-in, abandonment risk
- Developer Experience - Productivity, debugging, testing
- Operations - Deployment, monitoring, maintenance
- Future-Proofing - Roadmap, innovation, sustainability
Rate each option on relevant dimensions (High/Medium/Low or 1-5 scale)
<template-output>comparative_analysis</template-output>
Analyze trade-offs between options
Identify key trade-offs:
For each pair of leading options, identify trade-offs:
- What do you gain by choosing Option A over Option B?
- What do you sacrifice?
- Under what conditions would you choose one vs the other?
Decision factors by priority:
What are your top 3 decision factors?
Examples:
- Time to market
- Performance
- Developer productivity
- Operational simplicity
- Cost efficiency
- Future flexibility
- Team expertise match
- Community and support
<template-output>decision_priorities</template-output>
Weight the comparison analysis by decision priorities
<template-output>weighted_analysis</template-output>
Evaluate fit for specific use case
Match technologies to your specific use case:
Based on:
- Your functional and non-functional requirements
- Your constraints (team, budget, timeline)
- Your context (greenfield vs brownfield)
- Your decision priorities
Analyze which option(s) best fit your specific scenario.
Are there any specific concerns or “must-haves” that would immediately eliminate any options?
<template-output>use_case_fit</template-output>
Gather production experience evidence
Search for real-world experiences:
For top 2-3 candidates:
- Production war stories and lessons learned
- Known issues and gotchas
- Migration experiences (if replacing existing tech)
- Performance benchmarks from real deployments
- Team scaling experiences
- Reddit/HackerNews discussions
- Conference talks and blog posts from practitioners
<template-output>real_world_evidence</template-output>
If researching architecture patterns, provide pattern analysis
Are you researching architecture patterns (microservices, event-driven, etc.)?
Research and document:
Pattern Overview:
- Core principles and concepts
- When to use vs when not to use
- Prerequisites and foundations
Implementation Considerations:
- Technology choices for the pattern
- Reference architectures
- Common pitfalls and anti-patterns
- Migration path from current state
Trade-offs:
- Benefits and drawbacks
- Complexity vs benefits analysis
- Team skill requirements
- Operational overhead
<template-output>architecture_pattern_analysis</template-output>
Synthesize research into clear recommendations
Generate recommendations:
Top Recommendation:
- Primary technology choice with rationale
- Why it best fits your requirements and constraints
- Key benefits for your use case
- Risks and mitigation strategies
Alternative Options:
- Second and third choices
- When you might choose them instead
- Scenarios where they would be better
Implementation Roadmap:
- Proof of concept approach
- Key decisions to make during implementation
- Migration path (if applicable)
- Success criteria and validation approach
Risk Mitigation:
- Identified risks and mitigation plans
- Contingency options if primary choice doesn’t work
- Exit strategy considerations
<invoke-task halt=“true”>{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
<template-output>recommendations</template-output>
Create architecture decision record (ADR) template
Generate Architecture Decision Record:
Create ADR format documentation:
# ADR-XXX: [Decision Title]
## Status
[Proposed | Accepted | Superseded]
## Context
[Technical context and problem statement]
## Decision Drivers
[Key factors influencing the decision]
## Considered Options
[Technologies/approaches evaluated]
## Decision
[Chosen option and rationale]
## Consequences
**Positive:**
- [Benefits of this choice]
**Negative:**
- [Drawbacks and risks]
**Neutral:**
- [Other impacts]
## Implementation Notes
[Key considerations for implementation]
## References
[Links to research, benchmarks, case studies]
<template-output>architecture_decision_record</template-output>
Compile complete technical research report
Your Technical Research Report includes:
- Executive Summary - Key findings and recommendation
- Requirements and Constraints - What guided the research
- Technology Options - All candidates evaluated
- Detailed Profiles - Deep dive on each option
- Comparative Analysis - Side-by-side comparison
- Trade-off Analysis - Key decision factors
- Real-World Evidence - Production experiences
- Recommendations - Detailed recommendation with rationale
- Architecture Decision Record - Formal decision documentation
- Next Steps - Implementation roadmap
Save complete report to {default_output_file}
Would you like to:
- Deep dive into specific technology
- Research implementation patterns for chosen technology
- Generate proof-of-concept plan
- Create deep research prompt for ongoing investigation
- Exit workflow
Select option (1-5):
LOAD: {installed_path}/instructions-deep-prompt.md
Pre-populate with technical research context
Search {output_folder}/ for files matching pattern: bmm-workflow-status.md
Find the most recent file (by date in filename)
Load the status file
<template-output file=“{{status_file_path}}”>current_step</template-output>
Set to: “research (technical)”
<template-output file=“{{status_file_path}}”>current_workflow</template-output>
Set to: “research (technical) - Complete”
<template-output file=“{{status_file_path}}”>progress_percentage</template-output>
Increment by: 5% (optional Phase 1 workflow)
<template-output file=“{{status_file_path}}”>decisions_log</template-output>
Add entry:
- **{{date}}**: Completed research workflow (technical mode). Technical research report generated and saved. Next: Review findings and consider plan-project workflow.
Research Report:
- Technical research report generated and saved
Status file updated:
- Current step: research (technical) ✓
- Progress: {{new_progress_percentage}}%
Next Steps:
- Review technical research findings
- Share with architecture team
- Run
plan-project to incorporate findings into PRD
Check status anytime with: workflow-status
Research Report:
- Technical research report generated and saved
Note: Running in standalone mode (no status file).
Next Steps:
- Review technical research findings
- Run plan-project workflow