{communication_language}stepsCompleted: [1, 2, 3] before loading next stepThis step will generate content and present choices:
Discover technical preferences and evaluate starter template options, leveraging existing technical preferences and establishing solid architectural foundations.
Check Project Context for Existing Technical Preferences: "Before we dive into starter templates, let me check if you have any technical preferences already documented.
{{if_project_context_exists}} I found some technical rules in your project context file: {{extracted_technical_preferences_from_project_context}}
Project Context Technical Rules Found:
{{else}} No existing technical preferences found in project context file. We'll establish your technical preferences now. {{/if_project_context}}"
Discover User Technical Preferences: "Based on your project context, let's discuss your technical preferences:
{{primary_technology_category}} Preferences:
Development Experience:
Platform/Deployment Preferences:
Integrations:
These preferences will help me recommend the most suitable starter templates and guide our architectural decisions."
Based on project context analysis and technical preferences, identify the primary technology stack:
If UX specification was loaded, consider UX requirements when selecting starter:
Search the web to find current, maintained starter templates:
Search the web: "{{primary_technology}} starter template CLI create command latest"
Search the web: "{{primary_technology}} boilerplate generator latest options"
Search the web: "{{primary_technology}} production-ready starter best practices"
For each promising starter found, investigate details:
Search the web: "{{starter_name}} default setup technologies included latest"
Search the web: "{{starter_name}} project structure file organization"
Search the web: "{{starter_name}} production deployment capabilities"
Search the web: "{{starter_name}} recent updates maintenance status"
For each viable starter option, document:
Technology Decisions Made:
Architectural Patterns Established:
Development Experience Features:
Based on user skill level and project needs:
For Expert Users: "Found {{starter_name}} which provides: {{quick_decision_list_of_key_decisions}}
This would establish our base architecture with these technical decisions already made. Use it?"
For Intermediate Users: "I found {{starter_name}}, which is a well-maintained starter for {{project_type}} projects.
It makes these architectural decisions for us: {{decision_list_with_explanations}}
This gives us a solid foundation following current best practices. Should we use it?"
For Beginner Users: "I found {{starter_name}}, which is like a pre-built foundation for your project.
Think of it like buying a prefab house frame instead of cutting each board yourself.
It makes these decisions for us: {{friendly_explanation_of_decisions}}
This is a great starting point that follows best practices and saves us from making dozens of small technical choices. Should we use it?"
If user shows interest in a starter, get the exact current commands:
Search the web: "{{starter_name}} CLI command options flags latest"
Search the web: "{{starter_name}} create new project command examples"
Prepare the content to append to the document:
## Starter Template Evaluation
### Primary Technology Domain
{{identified_domain}} based on project requirements analysis
### Starter Options Considered
{{analysis_of_evaluated_starters}}
### Selected Starter: {{starter_name}}
**Rationale for Selection:**
{{why_this_starter_was_chosen}}
**Initialization Command:**
```bash
{{full_starter_command_with_options}}
```
Architectural Decisions Provided by Starter:
Language & Runtime: {{language_typescript_setup}}
Styling Solution: {{styling_solution_configuration}}
Build Tooling: {{build_tools_and_optimization}}
Testing Framework: {{testing_setup_and_configuration}}
Code Organization: {{project_structure_and_patterns}}
Development Experience: {{development_tools_and_workflow}}
Note: Project initialization using this command should be the first implementation story.
### 9. Present Content and Menu
Show the generated content and present choices:
"I've analyzed starter template options for {{project_type}} projects.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 8]
**What would you like to do?**
[A] Advanced Elicitation - Explore custom approaches or unconventional starters
[P] Party Mode - Evaluate trade-offs from different perspectives
[C] Continue - Save this decision and move to architectural decisions"
### 10. Handle Menu Selection
#### If 'A' (Advanced Elicitation):
- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with current starter analysis
- Process enhanced insights about starter options or custom approaches
- Ask user: "Accept these changes to the starter template evaluation? (y/n)"
- If yes: Update content, 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 starter evaluation context
- Process collaborative insights about starter trade-offs
- Ask user: "Accept these changes to the starter template evaluation? (y/n)"
- If yes: Update content, 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 `{planning_artifacts}/architecture.md`
- Update frontmatter: `stepsCompleted: [1, 2, 3]`
- Load `./step-04-decisions.md`
## APPEND TO DOCUMENT:
When user selects 'C', append the content directly to the document using the structure from step 8.
## SUCCESS METRICS:
✅ Primary technology domain correctly identified from project context
✅ Current, maintained starter templates researched and evaluated
✅ All versions verified using web search, not hardcoded
✅ Architectural implications of starter choice clearly documented
✅ User provided with clear rationale for starter selection
✅ A/P/C menu presented and handled correctly
✅ Content properly appended to document when C selected
## FAILURE MODES:
❌ Not verifying current versions with web search
❌ Ignoring UX requirements when evaluating starters
❌ Not documenting what architectural decisions the starter makes
❌ Failing to consider maintenance status of starter templates
❌ Not providing clear rationale for starter selection
❌ 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-04-decisions.md` to begin making specific architectural decisions.
Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved!