2025-10-19 23:28:38 -05:00
# Decision Architecture Workflow Instructions
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<workflow name="architecture">
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
2025-10-16 08:58:09 -05:00
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
2025-10-19 23:28:38 -05:00
<critical>This workflow uses ADAPTIVE FACILITATION - adjust your communication style based on {user_skill_level}</critical>
<critical>The goal is ARCHITECTURAL DECISIONS that prevent AI agent conflicts, not detailed implementation specs</critical>
<critical>Communicate all responses in {communication_language} and tailor to {user_skill_level}</critical>
2025-10-17 19:46:25 -05:00
<critical>Generate all documents in {document_output_language}</critical>
2025-10-20 19:01:18 -05:00
<critical>This workflow replaces architecture with a conversation-driven approach</critical>
refactor: comprehensive workflow modernization and standardization
## Major Improvements
### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
- PRD: After success criteria, scope, functional requirements, and final review
- Create-Epics-And-Stories: After epic proposals and each epic's stories
- Architecture: After decisions, structure, patterns, implementation patterns, and final doc
- Updated audit-workflow tag scanner to remove obsolete elicit-required reference
### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat
### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)
### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections
### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths
## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery
## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
<critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
<critical>ELICITATION POINTS: After completing each major architectural decision area (identified by template-output tags for decision_record, project_structure, novel_pattern_designs, implementation_patterns, and architecture_document), invoke advanced elicitation to refine decisions before proceeding</critical>
feat: add universal document sharding support with dual-strategy loading
Implement comprehensive document sharding system across all BMM workflows enabling 90%+ token savings for large multi-epic projects through selective loading optimization.
## Document Sharding System
### Core Features
- **Universal Support**: All 12 BMM workflows (Phase 1-4) handle both whole and sharded documents
- **Dual Loading Strategy**: Full Load (Phase 1-3) vs Selective Load (Phase 4)
- **Automatic Discovery**: Workflows detect format transparently (whole → sharded priority)
- **Efficiency Optimization**: 90%+ token reduction for 10+ epic projects in Phase 4
### Implementation Details
**Phase 1-3 Workflows (7 workflows) - Full Load Strategy:**
- product-brief, prd, gdd, create-ux-design, tech-spec, architecture, solutioning-gate-check
- Load entire sharded documents when present
- Transparent to user experience
- Better organization for large projects
**Phase 4 Workflows (5 workflows) - Selective Load Strategy:**
- sprint-planning (Full Load exception - needs all epics)
- epic-tech-context, create-story, story-context, code-review (Selective Load)
- Load ONLY the specific epic needed (e.g., epic-3.md for Epic 3 stories)
- Massive efficiency: Skip loading 9 other epics in 10-epic project
### Workflow Enhancements
**Added to all workflows:**
- `input_file_patterns` in workflow.yaml with wildcard discovery
- Document Discovery section in instructions.md
- Support for sharded index + section files
- Brownfield `docs/index.md` support
**Pattern standardization:**
```yaml
input_file_patterns:
document:
whole: "{output_folder}/*doc*.md"
sharded: "{output_folder}/*doc*/index.md"
sharded_single: "{output_folder}/*doc*/section-{{id}}.md" # Selective load
```
### Retrospective Workflow Major Overhaul
Transformed retrospective into immersive, interactive team experience:
**Epic Discovery Priority (Fixed):**
- Priority 1: Check sprint-status.yaml for last completed epic
- Priority 2: Ask user directly
- Priority 3: Scan stories folder (last resort)
**New Capabilities:**
- Deep story analysis: Extract dev notes, mistakes, review feedback, lessons learned
- Previous retro integration: Track action items, verify lessons applied
- Significant change detection: Alert when discoveries require epic updates
- Intent-based facilitation: Natural conversation vs scripted phrases
- Party mode protocol: Clear speaker identification (Name (Role): dialogue)
- Team dynamics: Drama, disagreements, diverse perspectives, authentic conflict
**Structure:**
- 12 whole-number steps (no decimals)
- Highly interactive with constant user engagement
- Cross-references previous retro for accountability
- Synthesizes patterns across all stories
- Detects architectural assumption changes
## Documentation
**Created:**
- `docs/document-sharding-guide.md` - Comprehensive 300+ line guide
- What is sharding, when to use it (token thresholds)
- How sharding works (discovery system, loading strategies)
- Using shard-doc tool
- Full Load vs Selective Load patterns
- Complete examples and troubleshooting
- Custom workflow integration patterns
**Updated:**
- `README.md` - Added Document Sharding feature section
- `docs/index.md` - Added under Advanced Topics → Optimization
- `src/modules/bmm/workflows/README.md` - Added sharding section with usage
- `src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md` - Added complete implementation patterns for workflow builders
**Documentation levels:**
1. Overview (README.md) - Quick feature highlight
2. User guide (BMM workflows README) - Practical usage
3. Reference (document-sharding-guide.md) - Complete details
4. Builder guide (workflow-creation-guide.md) - Implementation patterns
## Efficiency Gains
**Example: 10-Epic Project**
Before sharding:
- epic-tech-context for Epic 3: Load all 10 epics (~50k tokens)
- create-story for Epic 3: Load all 10 epics (~50k tokens)
- story-context for Epic 3: Load all 10 epics (~50k tokens)
After sharding with selective load:
- epic-tech-context for Epic 3: Load Epic 3 only (~5k tokens) = 90% reduction
- create-story for Epic 3: Load Epic 3 only (~5k tokens) = 90% reduction
- story-context for Epic 3: Load Epic 3 only (~5k tokens) = 90% reduction
## Breaking Changes
None - fully backward compatible. Workflows work with existing whole documents.
## Files Changed
**Workflows Updated (25 files):**
- 7 Phase 1-3 workflows: Added full load sharding support
- 5 Phase 4 workflows: Added selective load sharding support
- 1 retrospective workflow: Complete overhaul with sharding support
**Documentation (5 files):**
- Created: document-sharding-guide.md
- Updated: README.md, docs/index.md, BMM workflows README, BMB workflow-creation-guide
- Removed: Old conversion report (obsolete)
## Future Extensibility
- BMB workflows now aware of sharding patterns
- Custom modules can easily implement sharding support
- Standard patterns documented for consistency
- No need to explain concept in future development
2025-11-02 00:13:33 -05:00
2025-10-30 08:13:18 -05:00
<step n="0" goal="Validate workflow readiness" tag="workflow-status">
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
<check if="status file not found">
<output>No workflow status file found. Decision Architecture can run standalone or as part of BMM workflow path.</output>
<output>**Recommended:** Run `workflow-init` first for project context tracking and workflow sequencing.</output>
<ask>Continue in standalone mode or exit to run workflow-init? (continue/exit)</ask>
<check if="continue">
<action>Set standalone_mode = true</action>
</check>
<check if="exit">
<action>Exit workflow</action>
</check>
2025-10-19 23:28:38 -05:00
</check>
2025-10-30 08:13:18 -05:00
<check if="status file found">
<action>Load the FULL file: {output_folder}/bmm-workflow-status.yaml</action>
<action>Parse workflow_status section</action>
<action>Check status of "create-architecture" workflow</action>
<action>Get project_level from YAML metadata</action>
<action>Find first non-completed workflow (next expected workflow)</action>
2025-10-19 23:28:38 -05:00
<check if="project_level < 3">
<output>**Note: Level {{project_level}} Project**
2025-11-01 19:37:20 -05:00
The Detailed Architecture is typically for Level 3-4 projects, but can be used for any project that needs architectural planning.
2025-10-19 23:28:38 -05:00
For Level {{project_level}}, we'll keep the architecture appropriately scoped.
</output>
</check>
2025-10-17 16:44:06 -05:00
2025-10-30 08:13:18 -05:00
<check if="create-architecture status is file path (already completed)">
<output>⚠️ Architecture already completed: {{create-architecture status}}</output>
<ask>Re-running will overwrite the existing architecture. Continue? (y/n)</ask>
<check if="n">
<output>Exiting. Use workflow-status to see your next step.</output>
<action>Exit workflow</action>
</check>
</check>
2025-10-17 16:44:06 -05:00
2025-10-30 08:13:18 -05:00
<check if="create-architecture is not the next expected workflow">
<output>⚠️ Next expected workflow: {{next_workflow}}. Architecture is out of sequence.</output>
<ask>Continue with Architecture anyway? (y/n)</ask>
<check if="n">
<output>Exiting. Run {{next_workflow}} instead.</output>
<action>Exit workflow</action>
</check>
2025-10-17 16:44:06 -05:00
</check>
2025-10-30 08:13:18 -05:00
<action>Set standalone_mode = false</action>
2025-10-17 16:44:06 -05:00
</check>
2025-10-19 23:28:38 -05:00
<action>Check for existing PRD and epics files using fuzzy matching</action>
2025-10-17 16:44:06 -05:00
2025-10-19 23:28:38 -05:00
<action>Fuzzy match PRD file: {prd_file}</action>
<check if="PRD_not_found">
<output>**PRD Not Found**
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
Decision Architecture works from your Product Requirements Document (PRD).
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
Looking for: _ PRD _ , PRD.md, or prd/index.md + files in {output_folder}
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
Please run the PRD workflow first to define your requirements.
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
Architect: `create-prd`
2025-10-19 23:28:38 -05:00
</output>
<action>Exit workflow - PRD required</action>
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
</step>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<step n="1" goal="Load and understand project context">
2025-11-01 19:37:20 -05:00
<action>Load the PRD using fuzzy matching: {prd_file}, if the PRD is mulitple files in a folder, load the index file and all files associated with the PRD</action>
2025-10-19 23:28:38 -05:00
<action>Load epics file using fuzzy matching: {epics_file}</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Check for UX specification using fuzzy matching:
<action>Attempt to locate: {ux_spec_file}</action>
<check if="ux_spec_found">
<action>Load UX spec and extract architectural implications: - 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)
</action>
</check>
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Extract and understand from PRD: - Functional Requirements (what it must do) - Non-Functional Requirements (performance, security, compliance, etc.) - Epic structure and user stories - Acceptance criteria - Any technical constraints mentioned
</action>
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
<action>Count and assess project scale: - Number of epics: {{epic_count}} - Number of stories: {{story_count}} - Complexity indicators (real-time, multi-tenant, regulated, etc.) - UX complexity level (if UX spec exists) - Novel features
2025-10-19 23:28:38 -05:00
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Reflect understanding back to {user_name}:
"I'm reviewing your project documentation for {{project_name}}.
I see {{epic_count}} epics with {{story_count}} total stories.
{{if_ux_spec}}I also found your UX specification which defines the user experience requirements.{{/if_ux_spec}}
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
Key aspects I notice:
- [Summarize core functionality]
- [Note critical NFRs]
{{if_ux_spec}}- [Note UX complexity and requirements]{{/if_ux_spec}}
- [Identify unique challenges]
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
This will help me guide you through the architectural decisions needed
to ensure AI agents implement this consistently."
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<ask>Does this match your understanding of the project?</ask>
<template-output>project_context_understanding</template-output>
</step>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<step n="2" goal="Discover and evaluate starter templates">
<critical>Modern starter templates make many good architectural decisions by default</critical>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Based on PRD analysis, identify the primary technology domain: - Web application → Look for Next.js, Vite, Remix starters - Mobile app → Look for React Native, Expo, Flutter starters - API/Backend → Look for NestJS, Express, Fastify starters - CLI tool → Look for CLI framework starters - Full-stack → Look for T3, RedwoodJS, Blitz starters
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="ux_spec_loaded">
<action>Consider UX requirements when selecting starter:
- Rich animations → Framer Motion compatible starter
- Complex forms → React Hook Form included starter
- Real-time features → Socket.io or WebSocket ready starter
- Accessibility focus → WCAG-compliant component library starter
- Design system → Storybook-enabled starter
</action>
</check>
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
<action>Search for relevant starter templates with websearch, examples:
<WebSearch>{{primary_technology}} starter template CLI create command latest {date}</WebSearch>
2025-10-19 23:28:38 -05:00
<WebSearch>{{primary_technology}} boilerplate generator latest options</WebSearch>
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="starter_templates_found">
<action>Investigate what each starter provides:
<WebSearch>{{starter_name}} default setup technologies included latest</WebSearch>
<WebSearch>{{starter_name}} project structure file organization</WebSearch>
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'expert'">
<action>Present starter options concisely:
"Found {{starter_name}} which provides:
{{quick_decision_list}}
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
This would establish our base architecture. Use it?"
</action>
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'beginner'">
<action>Explain starter benefits:
"I found {{starter_name}}, which is like a pre-built foundation for your project.
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
Think of it like buying a prefab house frame instead of cutting each board yourself.
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
It makes these decisions for you:
{{friendly_decision_list}}
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
This is a great starting point that follows best practices. Should we use it?"
</action>
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<ask>Use {{starter_name}} as the foundation? (recommended) [y/n]</ask>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="user_accepts_starter">
<action>Get current starter command and options:
<WebSearch>{{starter_name}} CLI command options flags latest 2024</WebSearch>
</action>
2025-10-17 19:46:25 -05:00
2025-10-19 23:28:38 -05:00
<action>Document the initialization command:
Store command: {{full_starter_command_with_options}}
Example: "npx create-next-app@latest my-app --typescript --tailwind --app"
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Extract and document starter-provided decisions:
Starter provides these architectural decisions:
- Language/TypeScript: {{provided_or_not}}
- Styling solution: {{provided_or_not}}
- Testing framework: {{provided_or_not}}
- Linting/Formatting: {{provided_or_not}}
- Build tooling: {{provided_or_not}}
- Project structure: {{provided_pattern}}
</action>
2025-10-17 19:46:25 -05:00
2025-10-19 23:28:38 -05:00
<action>Mark these decisions as "PROVIDED BY STARTER" in our decision tracking</action>
<action>Note for first implementation story:
"Project initialization using {{starter_command}} should be the first implementation story"
</action>
</check>
<check if="user_rejects_starter">
<ask>Any specific reason to avoid the starter? (helps me understand constraints)</ask>
<action>Note: Manual setup required, all decisions need to be made explicitly</action>
</check>
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="no_starter_found_or_applicable">
<action>Note: No standard starter template found for this project type.
2025-11-01 19:37:20 -05:00
We will make all architectural decisions explicitly.</action>
2025-10-19 23:28:38 -05:00
</check>
<template-output>starter_template_decision</template-output>
2025-09-28 23:17:07 -05:00
</step>
2025-10-19 23:28:38 -05:00
<step n="3" goal="Adapt facilitation style and identify remaining decisions">
<action>Based on {user_skill_level} from config, set facilitation approach:
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'expert'">
Set mode: EXPERT
- Use technical terminology freely
- Move quickly through decisions
- Assume familiarity with patterns and tools
- Focus on edge cases and advanced concerns
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'intermediate'">
Set mode: INTERMEDIATE
- Balance technical accuracy with clarity
- Explain complex patterns briefly
- Confirm understanding at key points
- Provide context for non-obvious choices
</check>
<check if="{user_skill_level} == 'beginner'">
Set mode: BEGINNER
- Use analogies and real-world examples
- Explain technical concepts in simple terms
- Provide education about why decisions matter
- Protect from complexity overload
</check>
2025-10-17 16:44:06 -05:00
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Load decision catalog: {decision_catalog}</action>
<action>Load architecture patterns: {architecture_patterns}</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Analyze PRD against patterns to identify needed decisions: - Match functional requirements to known patterns - Identify which categories of decisions are needed - Flag any novel/unique aspects requiring special attention - Consider which decisions the starter template already made (if applicable)
</action>
<action>Create decision priority list:
CRITICAL (blocks everything): - {{list_of_critical_decisions}}
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
IMPORTANT (shapes architecture):
- {{list_of_important_decisions}}
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
NICE-TO-HAVE (can defer):
- {{list_of_optional_decisions}}
2025-09-28 23:17:07 -05:00
2025-10-17 16:44:06 -05:00
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Announce plan to {user_name} based on mode:
<check if="mode == 'EXPERT'">
"Based on your PRD, we need to make {{total_decision_count}} architectural decisions.
{{starter_covered_count}} are covered by the starter template.
Let's work through the remaining {{remaining_count}} decisions."
</check>
<check if="mode == 'BEGINNER'">
"Great! I've analyzed your requirements and found {{total_decision_count}} technical
choices we need to make. Don't worry - I'll guide you through each one and explain
why it matters. {{if_starter}}The starter template handles {{starter_covered_count}}
of these automatically.{{/if_starter}}"
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
</action>
<template-output>decision_identification</template-output>
2025-09-28 23:17:07 -05:00
</step>
2025-10-19 23:28:38 -05:00
<step n="4" goal="Facilitate collaborative decision making" repeat="for-each-decision">
<critical>Each decision must be made WITH the user, not FOR them</critical>
<critical>ALWAYS verify current versions using WebSearch - NEVER trust hardcoded versions</critical>
<action>For each decision in priority order:</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Present the decision based on mode:
<check if="mode == 'EXPERT'">
"{{Decision_Category}}: {{Specific_Decision}}
2025-10-17 19:46:25 -05:00
2025-11-01 19:37:20 -05:00
Options: {{concise_option_list_with_tradeoffs}}
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
Recommendation: {{recommendation}} for {{reason}}"
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
</check>
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
<check if="mode == 'INTERMEDIATE'">
"Next decision: {{Human_Friendly_Category}}
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
We need to choose {{Specific_Decision}}.
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
Common options:
{{option_list_with_brief_explanations}}
2025-10-17 19:46:25 -05:00
2025-11-01 19:37:20 -05:00
For your project, {{recommendation}} would work well because {{reason}}."
2025-09-28 23:17:07 -05:00
2025-11-01 19:37:20 -05:00
</check>
2025-10-19 23:28:38 -05:00
2025-11-01 19:37:20 -05:00
<check if="mode == 'BEGINNER'">
"Let's talk about {{Human_Friendly_Category}}.
{{Educational_Context_About_Why_This_Matters}}
Think of it like {{real_world_analogy}}.
Your main options:
{{friendly_options_with_pros_cons}}
My suggestion: {{recommendation}}
This is good for you because {{beginner_friendly_reason}}."
</check>
2025-09-28 23:17:07 -05:00
2025-10-17 16:44:06 -05:00
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="decision_involves_specific_technology">
<action>Verify current stable version:
<WebSearch>{{technology}} latest stable version 2024</WebSearch>
<WebSearch>{{technology}} current LTS version</WebSearch>
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Update decision record with verified version:
Technology: {{technology}}
Verified Version: {{version_from_search}}
Verification Date: {{today}}
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<ask>What's your preference? (or 'explain more' for details)</ask>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="user_wants_more_info">
<action>Provide deeper explanation appropriate to skill level</action>
<check if="complex_tradeoffs">
<action>Consider using advanced elicitation:
"Would you like to explore innovative approaches to this decision?
I can help brainstorm unconventional solutions if you have specific goals."
</action>
</check>
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Record decision:
Category: {{category}}
Decision: {{user_choice}}
Version: {{verified_version_if_applicable}}
Affects Epics: {{list_of_affected_epics}}
Rationale: {{user_reasoning_or_default}}
Provided by Starter: {{yes_if_from_starter}}
</action>
2025-10-17 19:46:25 -05:00
2025-10-19 23:28:38 -05:00
<action>Check for cascading implications:
"This choice means we'll also need to {{related_decisions}}"
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<template-output>decision_record</template-output>
refactor: comprehensive workflow modernization and standardization
## Major Improvements
### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
- PRD: After success criteria, scope, functional requirements, and final review
- Create-Epics-And-Stories: After epic proposals and each epic's stories
- Architecture: After decisions, structure, patterns, implementation patterns, and final doc
- Updated audit-workflow tag scanner to remove obsolete elicit-required reference
### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat
### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)
### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections
### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths
## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery
## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
2025-10-19 23:28:38 -05:00
</step>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<step n="5" goal="Address cross-cutting concerns">
<critical>These decisions affect EVERY epic and story</critical>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Facilitate decisions for consistency patterns: - Error handling strategy (How will all agents handle errors?) - Logging approach (Structured? Format? Levels?) - Date/time handling (Timezone? Format? Library?) - Authentication pattern (Where? How? Token format?) - API response format (Structure? Status codes? Errors?) - Testing strategy (Unit? Integration? E2E?)
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'beginner'">
2025-11-01 19:37:20 -05:00
<action>Explain why these matter why its critical to go through and decide these things now.</action>
2025-10-19 23:28:38 -05:00
</check>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<template-output>cross_cutting_decisions</template-output>
</step>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<step n="6" goal="Define project structure and boundaries">
<action>Based on all decisions made, define the project structure</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Create comprehensive source tree: - Root configuration files - Source code organization - Test file locations - Build/dist directories - Documentation structure
</action>
2025-09-28 23:17:07 -05:00
2025-10-19 23:28:38 -05:00
<action>Map epics to architectural boundaries:
"Epic: {{epic_name}} → Lives in {{module/directory/service}}"
</action>
<action>Define integration points: - Where do components communicate? - What are the API boundaries? - How do services interact?
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<template-output>project_structure</template-output>
refactor: comprehensive workflow modernization and standardization
## Major Improvements
### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
- PRD: After success criteria, scope, functional requirements, and final review
- Create-Epics-And-Stories: After epic proposals and each epic's stories
- Architecture: After decisions, structure, patterns, implementation patterns, and final doc
- Updated audit-workflow tag scanner to remove obsolete elicit-required reference
### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat
### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)
### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections
### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths
## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery
## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
2025-10-17 16:44:06 -05:00
</step>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<step n="7" goal="Design novel architectural patterns" optional="true">
<critical>Some projects require INVENTING new patterns, not just choosing existing ones</critical>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Scan PRD for concepts that don't have standard solutions: - Novel interaction patterns (e.g., "swipe to match" before Tinder existed) - Unique multi-component workflows (e.g., "viral invitation system") - New data relationships (e.g., "social graph" before Facebook) - Unprecedented user experiences (e.g., "ephemeral messages" before Snapchat) - Complex state machines crossing multiple epics
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<check if="novel_patterns_detected">
<action>For each novel pattern identified:</action>
<action>Engage user in design collaboration:
<check if="{user_skill_level} == 'expert'">
"The {{pattern_name}} concept requires architectural innovation.
Core challenge: {{challenge_description}}
Let's design the component interaction model:"
</check>
<check if="{user_skill_level} == 'beginner'">
"Your idea about {{pattern_name}} is unique - there isn't a standard way to build this yet!
This is exciting - we get to invent the architecture together.
Let me help you think through how this should work:"
</check>
</action>
<action>Facilitate pattern design:
1. Identify core components involved
2. Map data flow between components
3. Design state management approach
4. Create sequence diagrams for complex flows
5. Define API contracts for the pattern
6. Consider edge cases and failure modes
</action>
<action>Use advanced elicitation for innovation:
"What if we approached this differently?
- What would the ideal user experience look like?
- Are there analogies from other domains we could apply?
- What constraints can we challenge?"
</action>
<action>Document the novel pattern:
Pattern Name: {{pattern_name}}
Purpose: {{what_problem_it_solves}}
Components:
{{component_list_with_responsibilities}}
Data Flow:
{{sequence_description_or_diagram}}
Implementation Guide:
{{how_agents_should_build_this}}
Affects Epics:
{{epics_that_use_this_pattern}}
</action>
<action>Validate pattern completeness:
"Does this {{pattern_name}} design cover all the use cases in your epics?
- {{use_case_1}}: ✓ Handled by {{component}}
- {{use_case_2}}: ✓ Handled by {{component}}
..."
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
</check>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<check if="no_novel_patterns">
<action>Note: All patterns in this project have established solutions.
Proceeding with standard architectural patterns.</action>
</check>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<template-output>novel_pattern_designs</template-output>
refactor: comprehensive workflow modernization and standardization
## Major Improvements
### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
- PRD: After success criteria, scope, functional requirements, and final review
- Create-Epics-And-Stories: After epic proposals and each epic's stories
- Architecture: After decisions, structure, patterns, implementation patterns, and final doc
- Updated audit-workflow tag scanner to remove obsolete elicit-required reference
### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat
### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)
### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections
### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths
## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery
## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
2025-10-19 23:28:38 -05:00
</step>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<step n="8" goal="Define implementation patterns to prevent agent conflicts">
<critical>These patterns ensure multiple AI agents write compatible code</critical>
<critical>Focus on what agents could decide DIFFERENTLY if not specified</critical>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Load pattern categories: {pattern_categories}</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Based on chosen technologies, identify potential conflict points:
"Given that we're using {{tech_stack}}, agents need consistency rules for:"
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>For each relevant pattern category, facilitate decisions:
NAMING PATTERNS (How things are named):
<check if="has_api">
- REST endpoint naming: /users or /user? Plural or singular?
- Route parameter format: :id or {id}?
</check>
<check if="has_database">
- Table naming: users or Users or user?
- Column naming: user_id or userId?
- Foreign key format: user_id or fk_user?
</check>
<check if="has_frontend">
- Component naming: UserCard or user-card?
- File naming: UserCard.tsx or user-card.tsx?
</check>
STRUCTURE PATTERNS (How things are organized):
- Where do tests live? __tests __ / or *.test.ts co-located?
- How are components organized? By feature or by type?
- Where do shared utilities go?
FORMAT PATTERNS (Data exchange formats):
<check if="has_api">
- API response wrapper? {data: ..., error: ...} or direct response?
- Error format? {message, code} or {error: {type, detail}}?
- Date format in JSON? ISO strings or timestamps?
</check>
COMMUNICATION PATTERNS (How components interact):
<check if="has_events">
- Event naming convention?
- Event payload structure?
</check>
<check if="has_state_management">
- State update pattern?
- Action naming convention?
</check>
LIFECYCLE PATTERNS (State and flow):
- How are loading states handled?
- What's the error recovery pattern?
- How are retries implemented?
LOCATION PATTERNS (Where things go):
- API route structure?
- Static asset organization?
- Config file locations?
CONSISTENCY PATTERNS (Cross-cutting):
- How are dates formatted in the UI?
- What's the logging format?
- How are user-facing errors written?
2025-10-12 16:59:54 -05:00
2025-10-17 16:44:06 -05:00
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'expert'">
<action>Rapid-fire through patterns:
"Quick decisions on implementation patterns:
- {{pattern}}: {{suggested_convention}} OK? [y/n/specify]"
</action>
</check>
<check if="{user_skill_level} == 'beginner'">
<action>Explain each pattern's importance:
"Let me explain why this matters:
If one AI agent names database tables 'users' and another names them 'Users',
your app will crash. We need to pick one style and make sure everyone follows it."
</action>
</check>
<action>Document implementation patterns:
Category: {{pattern_category}}
Pattern: {{specific_pattern}}
Convention: {{decided_convention}}
Example: {{concrete_example}}
Enforcement: "All agents MUST follow this pattern"
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<template-output>implementation_patterns</template-output>
refactor: comprehensive workflow modernization and standardization
## Major Improvements
### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
- PRD: After success criteria, scope, functional requirements, and final review
- Create-Epics-And-Stories: After epic proposals and each epic's stories
- Architecture: After decisions, structure, patterns, implementation patterns, and final doc
- Updated audit-workflow tag scanner to remove obsolete elicit-required reference
### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat
### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)
### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections
### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths
## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery
## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
2025-10-17 16:44:06 -05:00
</step>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<step n="9" goal="Validate architectural coherence">
<action>Run coherence checks:</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Check decision compatibility: - Do all decisions work together? - Are there any conflicting choices? - Do the versions align properly?
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Verify epic coverage: - Does every epic have architectural support? - Are all user stories implementable with these decisions? - Are there any gaps?
</action>
<action>Validate pattern completeness: - Are there any patterns we missed that agents would need? - Do novel patterns integrate with standard architecture? - Are implementation patterns comprehensive enough?
</action>
<check if="issues_found">
<action>Address issues with {user_name}:
"I notice {{issue_description}}.
We should {{suggested_resolution}}."
</action>
<ask>How would you like to resolve this?</ask>
<action>Update decisions based on resolution</action>
</check>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<template-output>coherence_validation</template-output>
2025-10-17 16:44:06 -05:00
</step>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<step n="10" goal="Generate decision architecture document">
<critical>The document must be complete, specific, and validation-ready</critical>
<critical>This is the consistency contract for all AI agents</critical>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Load template: {architecture_template}</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Generate sections: 1. Executive Summary (2-3 sentences about the architecture approach) 2. Project Initialization (starter command if applicable) 3. Decision Summary Table (with verified versions and epic mapping) 4. Complete Project Structure (full tree, no placeholders) 5. Epic to Architecture Mapping (every epic placed) 6. Technology Stack Details (versions, configurations) 7. Integration Points (how components connect) 8. Novel Pattern Designs (if any were created) 9. Implementation Patterns (all consistency rules) 10. Consistency Rules (naming, organization, formats) 11. Data Architecture (models and relationships) 12. API Contracts (request/response formats) 13. Security Architecture (auth, authorization, data protection) 14. Performance Considerations (from NFRs) 15. Deployment Architecture (where and how) 16. Development Environment (setup and prerequisites) 17. Architecture Decision Records (key decisions with rationale)
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Fill template with all collected decisions and patterns</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Ensure starter command is first implementation story:
<check if="using_starter_template">
"## Project Initialization
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
First implementation story should execute:
```bash
{{starter_command_with_options}}
```
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
This establishes the base architecture with these decisions:
{{starter_provided_decisions}}"
</check>
2025-10-12 16:59:54 -05:00
2025-10-17 16:44:06 -05:00
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<template-output>architecture_document</template-output>
refactor: comprehensive workflow modernization and standardization
## Major Improvements
### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
- PRD: After success criteria, scope, functional requirements, and final review
- Create-Epics-And-Stories: After epic proposals and each epic's stories
- Architecture: After decisions, structure, patterns, implementation patterns, and final doc
- Updated audit-workflow tag scanner to remove obsolete elicit-required reference
### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat
### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)
### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections
### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths
## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery
## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
2025-10-19 23:28:38 -05:00
</step>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<step n="11" goal="Validate document completeness">
<action>Load validation checklist: {installed_path}/checklist.md</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Run validation checklist from {installed_path}/checklist.md</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<action>Verify MANDATORY items:
□ Decision table has Version column with specific versions
□ Every epic is mapped to architecture components
□ Source tree is complete, not generic
□ No placeholder text remains
□ All FRs from PRD have architectural support
□ All NFRs from PRD are addressed
□ Implementation patterns cover all potential conflicts
□ Novel patterns are fully documented (if applicable)
</action>
2025-10-12 16:59:54 -05:00
2025-10-19 23:28:38 -05:00
<check if="validation_failed">
<action>Fix missing items automatically</action>
<goto step="10">Regenerate document section</goto>
</check>
<template-output>validation_results</template-output>
2025-09-28 23:17:07 -05:00
</step>
2025-10-19 23:28:38 -05:00
<step n="12" goal="Final review and update workflow status">
<action>Present completion summary:</action>
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'expert'">
"Architecture complete. {{decision_count}} decisions documented.
Ready for implementation phase."
</check>
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
<check if="{user_skill_level} == 'beginner'">
"Excellent! Your architecture is complete. You made {{decision_count}} important
decisions that will keep AI agents consistent as they build your app.
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
What happens next:
1. AI agents will read this architecture before implementing each story
2. They'll follow your technical choices exactly
3. Your app will be built with consistent patterns throughout
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
You're ready to move to the implementation phase!"
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
</check>
2025-10-17 16:44:06 -05:00
2025-10-19 23:28:38 -05:00
<action>Save document to {output_folder}/architecture.md</action>
2025-10-12 22:19:28 -05:00
2025-10-30 08:13:18 -05:00
<check if="standalone_mode != true">
<action>Load the FULL file: {output_folder}/bmm-workflow-status.yaml</action>
<action>Find workflow_status key "create-architecture"</action>
<critical>ONLY write the file path as the status value - no other text, notes, or metadata</critical>
<action>Update workflow_status["create-architecture"] = "{output_folder}/bmm-architecture-{{date}}.md"</action>
<action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
2025-10-17 16:44:06 -05:00
2025-10-30 08:13:18 -05:00
<action>Find first non-completed workflow in workflow_status (next workflow to do)</action>
<action>Determine next agent from path file based on next workflow</action>
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
</check>
2025-10-12 22:19:28 -05:00
2025-10-30 08:13:18 -05:00
<output>✅ Decision Architecture workflow complete!</output>
2025-10-19 23:28:38 -05:00
<output>**Deliverables Created:**
2025-10-17 16:44:06 -05:00
2025-10-19 23:28:38 -05:00
- ✅ architecture.md - Complete architectural decisions document
{{if_novel_patterns}}
- ✅ Novel pattern designs for unique concepts
{{/if_novel_patterns}}
{{if_starter_template}}
- ✅ Project initialization command documented
{{/if_starter_template}}
2025-10-12 22:19:28 -05:00
2025-10-19 23:28:38 -05:00
The architecture is ready to guide AI agents through consistent implementation.
2025-10-24 23:16:08 -05:00
**Next Steps:**
- **Next required:** {{next_workflow}} ({{next_agent}} agent)
- Review the architecture.md document before proceeding
Check status anytime with: `workflow-status`
2025-10-12 22:19:28 -05:00
</output>
2025-10-19 23:28:38 -05:00
<template-output>completion_summary</template-output>
2025-10-12 22:19:28 -05:00
</step>
2025-09-28 23:17:07 -05:00
</workflow>