feat: major overhaul of BMM planning workflows with intent-driven discovery

This comprehensive update transforms the Product Brief and PRD workflows from rigid template-filling exercises into adaptive, context-aware discovery processes. Changes span workflow instructions, templates, agent configurations, and supporting infrastructure.

## Product Brief Workflow (96% audit compliance)

### Intent-Driven Facilitation
- Transform from linear Q&A to natural conversational discovery
- Adaptive questioning based on project context (hobby/startup/enterprise)
- Real-time document building instead of end-of-session generation
- Skill-level aware facilitation (expert/intermediate/beginner)
- Context detection from user responses to guide exploration depth

### Living Document Approach
- Continuous template updates throughout conversation
- Progressive refinement vs batch generation
- Template-output tags aligned with discovery flow
- Better variable mapping between instructions and template

### Enhanced Discovery Areas
- Problem exploration with context-appropriate probing
- Solution vision shaping based on user's mental model
- User understanding through storytelling vs demographics
- Success metrics tailored to project type
- Ruthless MVP scope management with feature prioritization

### Template Improvements
- Added context-aware conditional sections
- Better organization of optional vs required content
- Clearer structure for different project types
- Improved reference material handling

## PRD Workflow (improved from 65% to 85%+ compliance)

### Critical Fixes
- Add missing `date: system-generated` config variable
- Fix status file extension mismatch (.yaml not .md)
- Remove 38% bloat (unused technical_decisions variables)
- Add explicit template-output tags for runtime variables

### Scale-Adaptive Intelligence
- Project type detection (API/Web App/Mobile/SaaS/etc)
- Domain complexity mapping (14 domain types)
- Automatic requirement tailoring based on detected context
- CSV-driven project type and domain knowledge base

### Separated Epic Planning
- Move epic/story breakdown to dedicated child workflow
- Create create-epics-and-stories workflow for Phase 2
- Cleaner separation: PRD defines WHAT, epics define HOW
- Updated PM agent menu with new workflow triggers

### Enhanced Requirements Coverage
- Project-type specific requirement sections (endpoints, auth, platform)
- Domain-specific considerations (healthcare compliance, fintech security)
- UX principles with interaction patterns
- Non-functional requirements with integration needs
- Technical preferences capture

### Template Restructuring
- Separate PRD template from epic planning
- Context-aware conditional sections
- Better scale level indicators (L0-L4)
- Improved reference document handling
- Clearer success criteria sections

## Architecture Workflow Updates

### Template Enhancements
- Add domain complexity context support
- Better integration with PRD outputs
- Improved technical decision capture
- Enhanced system architecture sections

### Instruction Improvements
- Reference new domain-research workflow
- Better handling of PRD inputs
- Clearer architectural decision framework

## Agent Configuration Updates

### BMad Master Agent
- Fix workflow invocation instructions
- Better fuzzy matching guidance
- Clearer menu handler documentation
- Remove workflow invention warnings

### PM Agent
- Add create-prd trigger (renamed from 'prd')
- Add create-epics-and-stories workflow trigger
- Add validate-prd workflow trigger with checklist
- Better workflow status integration

### Game Designer Agent
- Rename triggers for consistency (create-game-brief, create-gdd)
- Align with PM agent naming conventions

## New Supporting Infrastructure

### Domain Research Workflow
- New discovery workflow for domain-specific research
- Complements product brief for complex domains
- Web research integration for domain insights

### Create Epics and Stories Workflow
- Dedicated epic/story breakdown process
- Separates planning (PRD) from decomposition
- Better Epic → Story → Task hierarchy
- Acceptance criteria generation

### Data Files
- project-types.csv: 12 project type definitions with requirements
- domain-complexity.csv: 14 domain types with complexity indicators

## Quality Improvements

### Validation & Compliance
- Product Brief: 96% BMAD v6 compliance (EXCELLENT rating)
- PRD: Improved from 65% to ~85% after critical fixes
- Zero bloat in Product Brief (0%)
- Reduced PRD bloat from 38% to ~15%

### Template Variable Mapping
- All template variables explicitly populated via template-output tags
- Runtime variables properly tracked
- Config variables consistently used
- Better separation of concerns

### Web Bundle Configuration
- Complete web_bundle sections for all workflows
- Proper child workflow references
- Data file inclusions (CSV files)
- Correct bmad/-relative paths

## Breaking Changes

### File Removals
- Delete src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md
  (replaced by create-epics-and-stories child workflow)

### Workflow Trigger Changes
- PM agent: 'prd' → 'create-prd'
- PM agent: 'gdd' → 'create-gdd'
- New: 'create-epics-and-stories'
- New: 'validate-prd'

## Impact

This update significantly improves the BMM module's ability to:
- Adapt to different project types and scales
- Guide users through discovery naturally vs mechanically
- Generate higher quality planning documents
- Support complex domains with specialized knowledge
- Scale from Level 0 quick changes to Level 4 enterprise projects

The workflows now feel like collaborative discovery sessions with an expert consultant rather than form-filling exercises.
This commit is contained in:
Brian Madison
2025-11-01 19:37:20 -05:00
parent 4f4b191e8f
commit f77babcd5e
20 changed files with 2519 additions and 834 deletions

View File

@@ -1,4 +1,4 @@
# Decision Architecture
# Architecture
## Executive Summary

View File

@@ -35,7 +35,7 @@
<check if="project_level < 3">
<output>**Note: Level {{project_level}} Project**
Decision Architecture is typically for Level 3-4 projects, but can be used for any project that needs architectural planning.
The Detailed Architecture is typically for Level 3-4 projects, but can be used for any project that needs architectural planning.
For Level {{project_level}}, we'll keep the architecture appropriately scoped.
</output>
@@ -70,11 +70,11 @@ For Level {{project_level}}, we'll keep the architecture appropriately scoped.
Decision Architecture works from your Product Requirements Document (PRD).
Looking for: bmm-PRD.md, PRD.md, or product-requirements.md in {output_folder}
Looking for: _PRD_, PRD.md, or prd/index.md + files in {output_folder}
Please run the PRD workflow first to define your requirements.
Run: `workflow prd`
Architect: `create-prd`
</output>
<action>Exit workflow - PRD required</action>
</check>
@@ -82,7 +82,7 @@ Run: `workflow prd`
</step>
<step n="1" goal="Load and understand project context">
<action>Load the PRD using fuzzy matching: {prd_file}</action>
<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>
<action>Load epics file using fuzzy matching: {epics_file}</action>
<action>Check for UX specification using fuzzy matching:
@@ -96,7 +96,7 @@ Run: `workflow prd`
<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>
<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)
<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
</action>
<action>Reflect understanding back to {user_name}:
@@ -135,8 +135,8 @@ I see {{epic_count}} epics with {{story_count}} total stories.
</action>
</check>
<action>Search for relevant starter templates:
<WebSearch>{{primary_technology}} starter template CLI create command latest 2024</WebSearch>
<action>Search for relevant starter templates with websearch, examples:
<WebSearch>{{primary_technology}} starter template CLI create command latest {date}</WebSearch>
<WebSearch>{{primary_technology}} boilerplate generator latest options</WebSearch>
</action>
@@ -206,7 +206,7 @@ I see {{epic_count}} epics with {{story_count}} total stories.
<check if="no_starter_found_or_applicable">
<action>Note: No standard starter template found for this project type.
Will need to make all architectural decisions explicitly.</action>
We will make all architectural decisions explicitly.</action>
</check>
<template-output>starter_template_decision</template-output>
@@ -285,34 +285,39 @@ Let's work through the remaining {{remaining_count}} decisions."
<action>Present the decision based on mode:
<check if="mode == 'EXPERT'">
"{{Decision_Category}}: {{Specific_Decision}}
Options: {{concise_option_list_with_tradeoffs}}
Recommendation: {{recommendation}} for {{reason}}"
</check>
<check if="mode == 'INTERMEDIATE'">
"Next decision: {{Human_Friendly_Category}}
Options: {{concise_option_list_with_tradeoffs}}
We need to choose {{Specific_Decision}}.
Recommendation: {{recommendation}} for {{reason}}"
Common options:
{{option_list_with_brief_explanations}}
</check>
For your project, {{recommendation}} would work well because {{reason}}."
</check>
<check if="mode == 'INTERMEDIATE'">
"Next decision: {{Human_Friendly_Category}}
<check if="mode == 'BEGINNER'">
"Let's talk about {{Human_Friendly_Category}}.
We need to choose {{Specific_Decision}}.
{{Educational_Context_About_Why_This_Matters}}
Common options:
{{option_list_with_brief_explanations}}
Think of it like {{real_world_analogy}}.
For your project, {{recommendation}} would work well because {{reason}}."
Your main options:
{{friendly_options_with_pros_cons}}
</check>
My suggestion: {{recommendation}}
This is good for you because {{beginner_friendly_reason}}."
</check>
<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>
</action>
@@ -365,11 +370,7 @@ Provided by Starter: {{yes_if_from_starter}}
</action>
<check if="{user_skill_level} == 'beginner'">
<action>Explain why these matter:
"These are rules that EVERY part of your app must follow.
If we don't decide now, each AI agent will do it differently,
and your app won't work properly when the pieces come together."
</action>
<action>Explain why these matter why its critical to go through and decide these things now.</action>
</check>
<template-output>cross_cutting_decisions</template-output>

View File

@@ -19,7 +19,7 @@ recommended_inputs:
- ux_spec: "UX specification with interface designs and interaction patterns (optional)"
# Input file references (fuzzy matched from output folder)
prd_file: "{output_folder}/bmm-PRD.md or PRD.md or product-requirements.md"
prd_file: "{output_folder}/*PRD*, PRD.md, or prd/index.md + files"
epics_file: "{output_folder}/bmm-epics.md or epics.md or user-stories.md"
ux_spec_file: "{output_folder}/ux-spec.md or ux-specification.md or user-experience.md"