From 9f8f7f4a3eb2acfe2138c9c7c1639dfb15dfe8e2 Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Sat, 14 Mar 2026 16:05:52 -0600 Subject: [PATCH 1/2] refactor(skills): convert create-prd to native skill directory Move the create-prd workflow into src/core/tasks/bmad-create-prd/ as a self-contained native skill with SKILL.md, workflow.md, steps-c/, data/, and templates/. Update all internal path references from absolute {project-root}/_bmad/... to relative paths. Mark the source workflow-create-prd.md as standalone:false to prevent duplicate manifest entries. Update pm.agent.yaml and module-help.csv to use skill:bmad-create-prd. --- src/bmm/agents/pm.agent.yaml | 2 +- src/bmm/module-help.csv | 2 +- .../create-prd/bmad-skill-manifest.yaml | 5 - .../create-prd/workflow-create-prd.md | 1 + src/core/tasks/bmad-create-prd/SKILL.md | 6 + .../bmad-create-prd/bmad-skill-manifest.yaml | 1 + .../data/domain-complexity.csv | 15 ++ .../tasks/bmad-create-prd/data/prd-purpose.md | 197 ++++++++++++++ .../bmad-create-prd/data/project-types.csv | 11 + .../bmad-create-prd/steps-c/step-01-init.md | 191 ++++++++++++++ .../steps-c/step-01b-continue.md | 152 +++++++++++ .../steps-c/step-02-discovery.md | 225 ++++++++++++++++ .../steps-c/step-02b-vision.md | 155 +++++++++++ .../steps-c/step-02c-executive-summary.md | 171 ++++++++++++ .../steps-c/step-03-success.md | 227 ++++++++++++++++ .../steps-c/step-04-journeys.md | 214 +++++++++++++++ .../bmad-create-prd/steps-c/step-05-domain.md | 208 +++++++++++++++ .../steps-c/step-06-innovation.md | 227 ++++++++++++++++ .../steps-c/step-07-project-type.md | 238 +++++++++++++++++ .../steps-c/step-08-scoping.md | 229 +++++++++++++++++ .../steps-c/step-09-functional.md | 232 +++++++++++++++++ .../steps-c/step-10-nonfunctional.md | 243 ++++++++++++++++++ .../bmad-create-prd/steps-c/step-11-polish.md | 235 +++++++++++++++++ .../steps-c/step-12-complete.md | 124 +++++++++ .../bmad-create-prd/templates/prd-template.md | 10 + src/core/tasks/bmad-create-prd/workflow.md | 62 +++++ 26 files changed, 3376 insertions(+), 7 deletions(-) create mode 100644 src/core/tasks/bmad-create-prd/SKILL.md create mode 100644 src/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml create mode 100644 src/core/tasks/bmad-create-prd/data/domain-complexity.csv create mode 100644 src/core/tasks/bmad-create-prd/data/prd-purpose.md create mode 100644 src/core/tasks/bmad-create-prd/data/project-types.csv create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-01-init.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-03-success.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md create mode 100644 src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md create mode 100644 src/core/tasks/bmad-create-prd/templates/prd-template.md create mode 100644 src/core/tasks/bmad-create-prd/workflow.md diff --git a/src/bmm/agents/pm.agent.yaml b/src/bmm/agents/pm.agent.yaml index c8fc271cd..707d17da6 100644 --- a/src/bmm/agents/pm.agent.yaml +++ b/src/bmm/agents/pm.agent.yaml @@ -20,7 +20,7 @@ agent: menu: - trigger: CP or fuzzy match on create-prd - exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md" + exec: "skill:bmad-create-prd" description: "[CP] Create PRD: Expert led facilitation to produce your Product Requirements Document" - trigger: VP or fuzzy match on validate-prd diff --git a/src/bmm/module-help.csv b/src/bmm/module-help.csv index 1c21ac015..df5118a58 100644 --- a/src/bmm/module-help.csv +++ b/src/bmm/module-help.csv @@ -15,7 +15,7 @@ bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/wor bmm,1-analysis,Domain Research,DR,21,skill:bmad-domain-research,bmad-bmm-domain-research,false,analyst,Create Mode,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project_knowledge","research documents", bmm,1-analysis,Technical Research,TR,22,skill:bmad-technical-research,bmad-bmm-technical-research,false,analyst,Create Mode,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project_knowledge","research documents", bmm,1-analysis,Create Brief,CB,30,skill:bmad-create-product-brief,bmad-bmm-create-product-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief", -bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd, +bmm,2-planning,Create PRD,CP,10,skill:bmad-create-prd,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd, bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report", bmm,2-planning,Edit PRD,EP,25,skill:bmad-edit-prd,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd", bmm,2-planning,Create UX,CU,30,skill:bmad-create-ux-design,bmad-bmm-create-ux-design,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design", diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/bmad-skill-manifest.yaml b/src/bmm/workflows/2-plan-workflows/create-prd/bmad-skill-manifest.yaml index 32464dcc8..f7eed5f7b 100644 --- a/src/bmm/workflows/2-plan-workflows/create-prd/bmad-skill-manifest.yaml +++ b/src/bmm/workflows/2-plan-workflows/create-prd/bmad-skill-manifest.yaml @@ -1,8 +1,3 @@ -workflow-create-prd.md: - canonicalId: bmad-create-prd - type: workflow - description: "Create a PRD from scratch. Use when the user says 'lets create a product requirements document' or 'I want to create a new PRD'" - workflow-validate-prd.md: canonicalId: bmad-validate-prd type: workflow diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md b/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md index ecc71bbdd..f7dd26163 100644 --- a/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +++ b/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md @@ -1,6 +1,7 @@ --- name: create-prd description: 'Create a PRD from scratch. Use when the user says "lets create a product requirements document" or "I want to create a new PRD"' +standalone: false main_config: '{project-root}/_bmad/bmm/config.yaml' nextStep: './steps-c/step-01-init.md' --- diff --git a/src/core/tasks/bmad-create-prd/SKILL.md b/src/core/tasks/bmad-create-prd/SKILL.md new file mode 100644 index 000000000..dc0c844ce --- /dev/null +++ b/src/core/tasks/bmad-create-prd/SKILL.md @@ -0,0 +1,6 @@ +--- +name: bmad-create-prd +description: 'Create a PRD from scratch. Use when the user says "lets create a product requirements document" or "I want to create a new PRD"' +--- + +Follow the instructions in [workflow.md](workflow.md). diff --git a/src/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml b/src/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml new file mode 100644 index 000000000..d0f08abdb --- /dev/null +++ b/src/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml @@ -0,0 +1 @@ +type: skill diff --git a/src/core/tasks/bmad-create-prd/data/domain-complexity.csv b/src/core/tasks/bmad-create-prd/data/domain-complexity.csv new file mode 100644 index 000000000..60a7b503f --- /dev/null +++ b/src/core/tasks/bmad-create-prd/data/domain-complexity.csv @@ -0,0 +1,15 @@ +domain,signals,complexity,key_concerns,required_knowledge,suggested_workflow,web_searches,special_sections +healthcare,"medical,diagnostic,clinical,FDA,patient,treatment,HIPAA,therapy,pharma,drug",high,"FDA approval;Clinical validation;HIPAA compliance;Patient safety;Medical device classification;Liability","Regulatory pathways;Clinical trial design;Medical standards;Data privacy;Integration requirements","domain-research","FDA software medical device guidance {date};HIPAA compliance software requirements;Medical software standards {date};Clinical validation software","clinical_requirements;regulatory_pathway;validation_methodology;safety_measures" +fintech,"payment,banking,trading,investment,crypto,wallet,transaction,KYC,AML,funds,fintech",high,"Regional compliance;Security standards;Audit requirements;Fraud prevention;Data protection","KYC/AML requirements;PCI DSS;Open banking;Regional laws (US/EU/APAC);Crypto regulations","domain-research","fintech regulations {date};payment processing compliance {date};open banking API standards;cryptocurrency regulations {date}","compliance_matrix;security_architecture;audit_requirements;fraud_prevention" +govtech,"government,federal,civic,public sector,citizen,municipal,voting",high,"Procurement rules;Security clearance;Accessibility (508);FedRAMP;Privacy;Transparency","Government procurement;Security frameworks;Accessibility standards;Privacy laws;Open data requirements","domain-research","government software procurement {date};FedRAMP compliance requirements;section 508 accessibility;government security standards","procurement_compliance;security_clearance;accessibility_standards;transparency_requirements" +edtech,"education,learning,student,teacher,curriculum,assessment,K-12,university,LMS",medium,"Student privacy (COPPA/FERPA);Accessibility;Content moderation;Age verification;Curriculum standards","Educational privacy laws;Learning standards;Accessibility requirements;Content guidelines;Assessment validity","domain-research","educational software privacy {date};COPPA FERPA compliance;WCAG education requirements;learning management standards","privacy_compliance;content_guidelines;accessibility_features;curriculum_alignment" +aerospace,"aircraft,spacecraft,aviation,drone,satellite,propulsion,flight,radar,navigation",high,"Safety certification;DO-178C compliance;Performance validation;Simulation accuracy;Export controls","Aviation standards;Safety analysis;Simulation validation;ITAR/export controls;Performance requirements","domain-research + technical-model","DO-178C software certification;aerospace simulation standards {date};ITAR export controls software;aviation safety requirements","safety_certification;simulation_validation;performance_requirements;export_compliance" +automotive,"vehicle,car,autonomous,ADAS,automotive,driving,EV,charging",high,"Safety standards;ISO 26262;V2X communication;Real-time requirements;Certification","Automotive standards;Functional safety;V2X protocols;Real-time systems;Testing requirements","domain-research","ISO 26262 automotive software;automotive safety standards {date};V2X communication protocols;EV charging standards","safety_standards;functional_safety;communication_protocols;certification_requirements" +scientific,"research,algorithm,simulation,modeling,computational,analysis,data science,ML,AI",medium,"Reproducibility;Validation methodology;Peer review;Performance;Accuracy;Computational resources","Scientific method;Statistical validity;Computational requirements;Domain expertise;Publication standards","technical-model","scientific computing best practices {date};research reproducibility standards;computational modeling validation;peer review software","validation_methodology;accuracy_metrics;reproducibility_plan;computational_requirements" +legaltech,"legal,law,contract,compliance,litigation,patent,attorney,court",high,"Legal ethics;Bar regulations;Data retention;Attorney-client privilege;Court system integration","Legal practice rules;Ethics requirements;Court filing systems;Document standards;Confidentiality","domain-research","legal technology ethics {date};law practice management software requirements;court filing system standards;attorney client privilege technology","ethics_compliance;data_retention;confidentiality_measures;court_integration" +insuretech,"insurance,claims,underwriting,actuarial,policy,risk,premium",high,"Insurance regulations;Actuarial standards;Data privacy;Fraud detection;State compliance","Insurance regulations by state;Actuarial methods;Risk modeling;Claims processing;Regulatory reporting","domain-research","insurance software regulations {date};actuarial standards software;insurance fraud detection;state insurance compliance","regulatory_requirements;risk_modeling;fraud_detection;reporting_compliance" +energy,"energy,utility,grid,solar,wind,power,electricity,oil,gas",high,"Grid compliance;NERC standards;Environmental regulations;Safety requirements;Real-time operations","Energy regulations;Grid standards;Environmental compliance;Safety protocols;SCADA systems","domain-research","energy sector software compliance {date};NERC CIP standards;smart grid requirements;renewable energy software standards","grid_compliance;safety_protocols;environmental_compliance;operational_requirements" +process_control,"industrial automation,process control,PLC,SCADA,DCS,HMI,operational technology,OT,control system,cyberphysical,MES,historian,instrumentation,I&C,P&ID",high,"Functional safety;OT cybersecurity;Real-time control requirements;Legacy system integration;Process safety and hazard analysis;Environmental compliance and permitting;Engineering authority and PE requirements","Functional safety standards;OT security frameworks;Industrial protocols;Process control architecture;Plant reliability and maintainability","domain-research + technical-model","IEC 62443 OT cybersecurity requirements {date};functional safety software requirements {date};industrial process control architecture;ISA-95 manufacturing integration","functional_safety;ot_security;process_requirements;engineering_authority" +building_automation,"building automation,BAS,BMS,HVAC,smart building,lighting control,fire alarm,fire protection,fire suppression,life safety,elevator,access control,DDC,energy management,sequence of operations,commissioning",high,"Life safety codes;Building energy standards;Multi-trade coordination and interoperability;Commissioning and ongoing operational performance;Indoor environmental quality and occupant comfort;Engineering authority and PE requirements","Building automation protocols;HVAC and mechanical controls;Fire alarm, fire protection, and life safety design;Commissioning process and sequence of operations;Building codes and energy standards","domain-research","smart building software architecture {date};BACnet integration best practices;building automation cybersecurity {date};ASHRAE building standards","life_safety;energy_compliance;commissioning_requirements;engineering_authority" +gaming,"game,player,gameplay,level,character,multiplayer,quest",redirect,"REDIRECT TO GAME WORKFLOWS","Game design","game-brief","NA","NA" +general,"",low,"Standard requirements;Basic security;User experience;Performance","General software practices","continue","software development best practices {date}","standard_requirements" \ No newline at end of file diff --git a/src/core/tasks/bmad-create-prd/data/prd-purpose.md b/src/core/tasks/bmad-create-prd/data/prd-purpose.md new file mode 100644 index 000000000..755230be7 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/data/prd-purpose.md @@ -0,0 +1,197 @@ +# BMAD PRD Purpose + +**The PRD is the top of the required funnel that feeds all subsequent product development work in rhw BMad Method.** + +--- + +## What is a BMAD PRD? + +A dual-audience document serving: +1. **Human Product Managers and builders** - Vision, strategy, stakeholder communication +2. **LLM Downstream Consumption** - UX Design → Architecture → Epics → Development AI Agents + +Each successive document becomes more AI-tailored and granular. + +--- + +## Core Philosophy: Information Density + +**High Signal-to-Noise Ratio** + +Every sentence must carry information weight. LLMs consume precise, dense content efficiently. + +**Anti-Patterns (Eliminate These):** +- ❌ "The system will allow users to..." → ✅ "Users can..." +- ❌ "It is important to note that..." → ✅ State the fact directly +- ❌ "In order to..." → ✅ "To..." +- ❌ Conversational filler and padding → ✅ Direct, concise statements + +**Goal:** Maximum information per word. Zero fluff. + +--- + +## The Traceability Chain + +**PRD starts the chain:** +``` +Vision → Success Criteria → User Journeys → Functional Requirements → (future: User Stories) +``` + +**In the PRD, establish:** +- Vision → Success Criteria alignment +- Success Criteria → User Journey coverage +- User Journey → Functional Requirement mapping +- All requirements traceable to user needs + +**Why:** Each downstream artifact (UX, Architecture, Epics, Stories) must trace back to documented user needs and business objectives. This chain ensures we build the right thing. + +--- + +## What Makes Great Functional Requirements? + +### FRs are Capabilities, Not Implementation + +**Good FR:** "Users can reset their password via email link" +**Bad FR:** "System sends JWT via email and validates with database" (implementation leakage) + +**Good FR:** "Dashboard loads in under 2 seconds for 95th percentile" +**Bad FR:** "Fast loading time" (subjective, unmeasurable) + +### SMART Quality Criteria + +**Specific:** Clear, precisely defined capability +**Measurable:** Quantifiable with test criteria +**Attainable:** Realistic within constraints +**Relevant:** Aligns with business objectives +**Traceable:** Links to source (executive summary or user journey) + +### FR Anti-Patterns + +**Subjective Adjectives:** +- ❌ "easy to use", "intuitive", "user-friendly", "fast", "responsive" +- ✅ Use metrics: "completes task in under 3 clicks", "loads in under 2 seconds" + +**Implementation Leakage:** +- ❌ Technology names, specific libraries, implementation details +- ✅ Focus on capability and measurable outcomes + +**Vague Quantifiers:** +- ❌ "multiple users", "several options", "various formats" +- ✅ "up to 100 concurrent users", "3-5 options", "PDF, DOCX, TXT formats" + +**Missing Test Criteria:** +- ❌ "The system shall provide notifications" +- ✅ "The system shall send email notifications within 30 seconds of trigger event" + +--- + +## What Makes Great Non-Functional Requirements? + +### NFRs Must Be Measurable + +**Template:** +``` +"The system shall [metric] [condition] [measurement method]" +``` + +**Examples:** +- ✅ "The system shall respond to API requests in under 200ms for 95th percentile as measured by APM monitoring" +- ✅ "The system shall maintain 99.9% uptime during business hours as measured by cloud provider SLA" +- ✅ "The system shall support 10,000 concurrent users as measured by load testing" + +### NFR Anti-Patterns + +**Unmeasurable Claims:** +- ❌ "The system shall be scalable" → ✅ "The system shall handle 10x load growth through horizontal scaling" +- ❌ "High availability required" → ✅ "99.9% uptime as measured by cloud provider SLA" + +**Missing Context:** +- ❌ "Response time under 1 second" → ✅ "API response time under 1 second for 95th percentile under normal load" + +--- + +## Domain-Specific Requirements + +**Auto-Detect and Enforce Based on Project Context** + +Certain industries have mandatory requirements that must be present: + +- **Healthcare:** HIPAA Privacy & Security Rules, PHI encryption, audit logging, MFA +- **Fintech:** PCI-DSS Level 1, AML/KYC compliance, SOX controls, financial audit trails +- **GovTech:** NIST framework, Section 508 accessibility (WCAG 2.1 AA), FedRAMP, data residency +- **E-Commerce:** PCI-DSS for payments, inventory accuracy, tax calculation by jurisdiction + +**Why:** Missing these requirements in the PRD means they'll be missed in architecture and implementation, creating expensive rework. During PRD creation there is a step to cover this - during validation we want to make sure it was covered. For this purpose steps will utilize a domain-complexity.csv and project-types.csv. + +--- + +## Document Structure (Markdown, Human-Readable) + +### Required Sections +1. **Executive Summary** - Vision, differentiator, target users +2. **Success Criteria** - Measurable outcomes (SMART) +3. **Product Scope** - MVP, Growth, Vision phases +4. **User Journeys** - Comprehensive coverage +5. **Domain Requirements** - Industry-specific compliance (if applicable) +6. **Innovation Analysis** - Competitive differentiation (if applicable) +7. **Project-Type Requirements** - Platform-specific needs +8. **Functional Requirements** - Capability contract (FRs) +9. **Non-Functional Requirements** - Quality attributes (NFRs) + +### Formatting for Dual Consumption + +**For Humans:** +- Clear, professional language +- Logical flow from vision to requirements +- Easy for stakeholders to review and approve + +**For LLMs:** +- ## Level 2 headers for all main sections (enables extraction) +- Consistent structure and patterns +- Precise, testable language +- High information density + +--- + +## Downstream Impact + +**How the PRD Feeds Next Artifacts:** + +**UX Design:** +- User journeys → interaction flows +- FRs → design requirements +- Success criteria → UX metrics + +**Architecture:** +- FRs → system capabilities +- NFRs → architecture decisions +- Domain requirements → compliance architecture +- Project-type requirements → platform choices + +**Epics & Stories (created after architecture):** +- FRs → user stories (1 FR could map to 1-3 stories potentially) +- Acceptance criteria → story acceptance tests +- Priority → sprint sequencing +- Traceability → stories map back to vision + +**Development AI Agents:** +- Precise requirements → implementation clarity +- Test criteria → automated test generation +- Domain requirements → compliance enforcement +- Measurable NFRs → performance targets + +--- + +## Summary: What Makes a Great BMAD PRD? + +✅ **High Information Density** - Every sentence carries weight, zero fluff +✅ **Measurable Requirements** - All FRs and NFRs are testable with specific criteria +✅ **Clear Traceability** - Each requirement links to user need and business objective +✅ **Domain Awareness** - Industry-specific requirements auto-detected and included +✅ **Zero Anti-Patterns** - No subjective adjectives, implementation leakage, or vague quantifiers +✅ **Dual Audience Optimized** - Human-readable AND LLM-consumable +✅ **Markdown Format** - Professional, clean, accessible to all stakeholders + +--- + +**Remember:** The PRD is the foundation. Quality here ripples through every subsequent phase. A dense, precise, well-traced PRD makes UX design, architecture, epic breakdown, and AI development dramatically more effective. diff --git a/src/core/tasks/bmad-create-prd/data/project-types.csv b/src/core/tasks/bmad-create-prd/data/project-types.csv new file mode 100644 index 000000000..6f71c513a --- /dev/null +++ b/src/core/tasks/bmad-create-prd/data/project-types.csv @@ -0,0 +1,11 @@ +project_type,detection_signals,key_questions,required_sections,skip_sections,web_search_triggers,innovation_signals +api_backend,"API,REST,GraphQL,backend,service,endpoints","Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?","endpoint_specs;auth_model;data_schemas;error_codes;rate_limits;api_docs","ux_ui;visual_design;user_journeys","framework best practices;OpenAPI standards","API composition;New protocol" +mobile_app,"iOS,Android,app,mobile,iPhone,iPad","Native or cross-platform?;Offline needed?;Push notifications?;Device features?;Store compliance?","platform_reqs;device_permissions;offline_mode;push_strategy;store_compliance","desktop_features;cli_commands","app store guidelines;platform requirements","Gesture innovation;AR/VR features" +saas_b2b,"SaaS,B2B,platform,dashboard,teams,enterprise","Multi-tenant?;Permission model?;Subscription tiers?;Integrations?;Compliance?","tenant_model;rbac_matrix;subscription_tiers;integration_list;compliance_reqs","cli_interface;mobile_first","compliance requirements;integration guides","Workflow automation;AI agents" +developer_tool,"SDK,library,package,npm,pip,framework","Language support?;Package managers?;IDE integration?;Documentation?;Examples?","language_matrix;installation_methods;api_surface;code_examples;migration_guide","visual_design;store_compliance","package manager best practices;API design patterns","New paradigm;DSL creation" +cli_tool,"CLI,command,terminal,bash,script","Interactive or scriptable?;Output formats?;Config method?;Shell completion?","command_structure;output_formats;config_schema;scripting_support","visual_design;ux_principles;touch_interactions","CLI design patterns;shell integration","Natural language CLI;AI commands" +web_app,"website,webapp,browser,SPA,PWA","SPA or MPA?;Browser support?;SEO needed?;Real-time?;Accessibility?","browser_matrix;responsive_design;performance_targets;seo_strategy;accessibility_level","native_features;cli_commands","web standards;WCAG guidelines","New interaction;WebAssembly use" +game,"game,player,gameplay,level,character","REDIRECT TO USE THE BMad Method Game Module Agent and Workflows - HALT","game-brief;GDD","most_sections","game design patterns","Novel mechanics;Genre mixing" +desktop_app,"desktop,Windows,Mac,Linux,native","Cross-platform?;Auto-update?;System integration?;Offline?","platform_support;system_integration;update_strategy;offline_capabilities","web_seo;mobile_features","desktop guidelines;platform requirements","Desktop AI;System automation" +iot_embedded,"IoT,embedded,device,sensor,hardware","Hardware specs?;Connectivity?;Power constraints?;Security?;OTA updates?","hardware_reqs;connectivity_protocol;power_profile;security_model;update_mechanism","visual_ui;browser_support","IoT standards;protocol specs","Edge AI;New sensors" +blockchain_web3,"blockchain,crypto,DeFi,NFT,smart contract","Chain selection?;Wallet integration?;Gas optimization?;Security audit?","chain_specs;wallet_support;smart_contracts;security_audit;gas_optimization","traditional_auth;centralized_db","blockchain standards;security patterns","Novel tokenomics;DAO structure" \ No newline at end of file diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md b/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md new file mode 100644 index 000000000..4b53688d0 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md @@ -0,0 +1,191 @@ +--- +name: 'step-01-init' +description: 'Initialize the PRD workflow by detecting continuation state and setting up the document' + +# File References +nextStepFile: './step-02-discovery.md' +continueStepFile: './step-01b-continue.md' +outputFile: '{planning_artifacts}/prd.md' + +# Template Reference +prdTemplate: '../templates/prd-template.md' +--- + +# Step 1: Workflow Initialization + +**Progress: Step 1 of 11** - Next: Project Discovery + +## STEP GOAL: + +Initialize the PRD workflow by detecting continuation state, discovering input documents, and setting up the document structure for collaborative product requirement discovery. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ If you already have been given a name, communication_style and persona, continue to use those while playing this new role +- ✅ We engage in collaborative dialogue, not command-response +- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision + +### Step-Specific Rules: + +- 🎯 Focus only on initialization and setup - no content generation yet +- 🚫 FORBIDDEN to look ahead to future steps or assume knowledge from them +- 💬 Approach: Systematic setup with clear reporting to user +- 🚪 Detect existing workflow state and handle continuation properly + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis of current state before taking any action +- 💾 Initialize document structure and update frontmatter appropriately +- Update frontmatter: add this step name to the end of the steps completed array (it should be the first entry in the steps array since this is step 1) +- 🚫 FORBIDDEN to load next step until user selects 'C' (Continue) + +## CONTEXT BOUNDARIES: + +- Available context: Variables from workflow.md are available in memory +- Focus: Workflow initialization and document setup only +- Limits: Don't assume knowledge from other steps or create content yet +- Dependencies: Configuration loaded from workflow.md initialization + +## Sequence of Instructions (Do not deviate, skip, or optimize) + +### 1. Check for Existing Workflow State + +First, check if the output document already exists: + +**Workflow State Detection:** + +- Look for file at `{outputFile}` +- If exists, read the complete file including frontmatter +- If not exists, this is a fresh workflow + +### 2. Handle Continuation (If Document Exists) + +If the document exists and has frontmatter with `stepsCompleted` BUT `step-11-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete: + +**Continuation Protocol:** + +- **STOP immediately** and load `{continueStepFile}` +- Do not proceed with any initialization tasks +- Let step-01b handle all continuation logic +- This is an auto-proceed situation - no user choice needed + +### 3. Fresh Workflow Setup (If No Document) + +If no document exists or no `stepsCompleted` in frontmatter: + +#### A. Input Document Discovery + +Discover and load context documents using smart discovery. Documents can be in the following locations: +- {planning_artifacts}/** +- {output_folder}/** +- {product_knowledge}/** +- docs/** + +Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content) + +Try to discover the following: +- Product Brief (`*brief*.md`) +- Research Documents (`/*research*.md`) +- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.) +- Project Context (`**/project-context.md`) + +Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules + +**Loading Rules:** + +- Load ALL discovered files completely that the user confirmed or provided (no offset/limit) +- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process +- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document +- index.md is a guide to what's relevant whenever available +- Track all successfully loaded files in frontmatter `inputDocuments` array + +#### B. Create Initial Document + +**Document Setup:** + +- Copy the template from `{prdTemplate}` to `{outputFile}` +- Initialize frontmatter with proper structure including inputDocuments array. + +#### C. Present Initialization Results + +**Setup Report to User:** + +"Welcome {{user_name}}! I've set up your PRD workspace for {{project_name}}. + +**Document Setup:** + +- Created: `{outputFile}` from template +- Initialized frontmatter with workflow state + +**Input Documents Discovered:** + +- Product briefs: {{briefCount}} files {if briefCount > 0}✓ loaded{else}(none found){/if} +- Research: {{researchCount}} files {if researchCount > 0}✓ loaded{else}(none found){/if} +- Brainstorming: {{brainstormingCount}} files {if brainstormingCount > 0}✓ loaded{else}(none found){/if} +- Project docs: {{projectDocsCount}} files {if projectDocsCount > 0}✓ loaded (brownfield project){else}(none found - greenfield project){/if} + +**Files loaded:** {list of specific file names or "No additional documents found"} + +{if projectDocsCount > 0} +📋 **Note:** This is a **brownfield project**. Your existing project documentation has been loaded. In the next step, I'll ask specifically about what new features or changes you want to add to your existing system. +{/if} + +Do you have any other documents you'd like me to include, or shall we continue to the next step?" + +### 4. Present MENU OPTIONS + +Display menu after setup report: + +"[C] Continue - Save this and move to Project Discovery (Step 2 of 11)" + +#### Menu Handling Logic: + +- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: {nextStepFile} +- IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report +- IF user asks questions: Answer and redisplay menu + +#### EXECUTION RULES: + +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then read fully and follow: `{nextStepFile}` to begin project discovery. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Existing workflow detected and properly handed off to step-01b +- Fresh workflow initialized with template and proper frontmatter +- Input documents discovered and loaded using sharded-first logic +- All discovered files tracked in frontmatter `inputDocuments` +- User clearly informed of brownfield vs greenfield status +- Menu presented and user input handled correctly +- Frontmatter updated with this step name added to stepsCompleted before proceeding + +### ❌ SYSTEM FAILURE: + +- Proceeding with fresh initialization when existing workflow exists +- Not updating frontmatter with discovered input documents +- **Not storing document counts in frontmatter** +- Creating document without proper template structure +- Not checking sharded folders first before whole files +- Not reporting discovered documents to user clearly +- Proceeding without user selecting 'C' (Continue) + +**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md b/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md new file mode 100644 index 000000000..d4ae2911d --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md @@ -0,0 +1,152 @@ +--- +name: 'step-01b-continue' +description: 'Resume an interrupted PRD workflow from the last completed step' + +# File References +outputFile: '{planning_artifacts}/prd.md' +--- + +# Step 1B: Workflow Continuation + +## STEP GOAL: + +Resume the PRD workflow from where it was left off, ensuring smooth continuation with full context restoration. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ Resume workflow from exact point where it was interrupted + +### Step-Specific Rules: + +- 💬 FOCUS on understanding where we left off and continuing appropriately +- 🚫 FORBIDDEN to modify content completed in previous steps +- 📖 Only reload documents that were already tracked in `inputDocuments` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis of current state before taking action +- Update frontmatter: add this step name to the end of the steps completed array +- 📖 Only load documents that were already tracked in `inputDocuments` +- 🚫 FORBIDDEN to discover new input documents during continuation + +## CONTEXT BOUNDARIES: + +- Available context: Current document and frontmatter are already loaded +- Focus: Workflow state analysis and continuation logic only +- Limits: Don't assume knowledge beyond what's in the document +- Dependencies: Existing workflow state from previous session + +## Sequence of Instructions (Do not deviate, skip, or optimize) + +### 1. Analyze Current State + +**State Assessment:** +Review the frontmatter to understand: + +- `stepsCompleted`: Array of completed step filenames +- Last element of `stepsCompleted` array: The most recently completed step +- `inputDocuments`: What context was already loaded +- All other frontmatter variables + +### 2. Restore Context Documents + +**Context Reloading:** + +- For each document in `inputDocuments`, load the complete file +- This ensures you have full context for continuation +- Don't discover new documents - only reload what was previously processed + +### 3. Determine Next Step + +**Simplified Next Step Logic:** +1. Get the last element from the `stepsCompleted` array (this is the filename of the last completed step, e.g., "step-03-success.md") +2. Load that step file and read its frontmatter +3. Extract the `nextStepFile` value from the frontmatter +4. That's the next step to load! + +**Example:** +- If `stepsCompleted = ["step-01-init.md", "step-02-discovery.md", "step-03-success.md"]` +- Last element is `"step-03-success.md"` +- Load `./step-03-success.md`, read its frontmatter +- Read fully and follow: `./step-04-journeys.md` + +### 4. Handle Workflow Completion + +**If `stepsCompleted` array contains `"step-11-complete.md"`:** +"Great news! It looks like we've already completed the PRD workflow for {{project_name}}. + +The final document is ready at `{outputFile}` with all sections completed. + +Would you like me to: + +- Review the completed PRD with you +- Suggest next workflow steps (like architecture or epic creation) +- Start a new PRD revision + +What would be most helpful?" + +### 5. Present Current Progress + +**If workflow not complete:** +"Welcome back {{user_name}}! I'm resuming our PRD collaboration for {{project_name}}. + +**Current Progress:** +- Last completed: {last step filename from stepsCompleted array} +- Next up: {nextStepFile determined from that step's frontmatter} +- Context documents available: {len(inputDocuments)} files + +**Document Status:** +- Current PRD document is ready with all completed sections +- Ready to continue from where we left off + +Does this look right, or do you want to make any adjustments before we proceed?" + +### 6. Present MENU OPTIONS + +Display: "**Select an Option:** [C] Continue to {next step name}" + +#### Menu Handling Logic: + +- IF C: Read fully and follow the {nextStepFile} determined in step 3 +- IF Any other comments or queries: respond and redisplay menu + +#### EXECUTION RULES: + +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow: {nextStepFile} to resume the workflow. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- All previous input documents successfully reloaded +- Current workflow state accurately analyzed and presented +- User confirms understanding of progress before continuation +- Correct next step identified and prepared for loading + +### ❌ SYSTEM FAILURE: + +- Discovering new input documents instead of reloading existing ones +- Modifying content from already completed steps +- Failing to extract nextStepFile from the last completed step's frontmatter +- Proceeding without user confirmation of current state + +**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md b/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md new file mode 100644 index 000000000..76c8915cb --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md @@ -0,0 +1,225 @@ +--- +name: 'step-02-discovery' +description: 'Discover project type, domain, and context through collaborative dialogue' + +# File References +nextStepFile: './step-02b-vision.md' +outputFile: '{planning_artifacts}/prd.md' + +# Data Files +projectTypesCSV: '../data/project-types.csv' +domainComplexityCSV: '../data/domain-complexity.csv' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 2: Project Discovery + +**Progress: Step 2 of 13** - Next: Product Vision + +## STEP GOAL: + +Discover and classify the project - understand what type of product this is, what domain it operates in, and the project context (greenfield vs brownfield). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read +- ✅ ALWAYS treat this as collaborative discovery between PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision + +### Step-Specific Rules: + +- 🎯 Focus on classification and understanding - no content generation yet +- 🚫 FORBIDDEN to generate executive summary or vision statements (that's next steps) +- 💬 APPROACH: Natural conversation to understand the project +- 🎯 LOAD classification data BEFORE starting discovery conversation + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after classification complete +- 💾 ONLY save classification to frontmatter when user chooses C (Continue) +- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from step 1 are available +- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs) +- **Document counts available in frontmatter `documentCounts`** +- Classification CSV data will be loaded in this step only +- No executive summary or vision content yet (that's steps 2b and 2c) + +## YOUR TASK: + +Discover and classify the project through natural conversation: +- What type of product is this? (web app, API, mobile, etc.) +- What domain does it operate in? (healthcare, fintech, e-commerce, etc.) +- What's the project context? (greenfield new product vs brownfield existing system) +- How complex is this domain? (low, medium, high) + +## DISCOVERY SEQUENCE: + +### 1. Check Document State + +Read the frontmatter from `{outputFile}` to get document counts: +- `briefCount` - Product briefs available +- `researchCount` - Research documents available +- `brainstormingCount` - Brainstorming docs available +- `projectDocsCount` - Existing project documentation + +**Announce your understanding:** + +"From step 1, I have loaded: +- Product briefs: {{briefCount}} +- Research: {{researchCount}} +- Brainstorming: {{brainstormingCount}} +- Project docs: {{projectDocsCount}} + +{{if projectDocsCount > 0}}This is a brownfield project - I'll focus on understanding what you want to add or change.{{else}}This is a greenfield project - I'll help you define the full product vision.{{/if}}" + +### 2. Load Classification Data + +**Attempt subprocess data lookup:** + +**Project Type Lookup:** +"Your task: Lookup data in {projectTypesCSV} + +**Search criteria:** +- Find row where project_type matches {{detectedProjectType}} + +**Return format:** +Return ONLY the matching row as a YAML-formatted object with these fields: +project_type, detection_signals + +**Do NOT return the entire CSV - only the matching row.**" + +**Domain Complexity Lookup:** +"Your task: Lookup data in {domainComplexityCSV} + +**Search criteria:** +- Find row where domain matches {{detectedDomain}} + +**Return format:** +Return ONLY the matching row as a YAML-formatted object with these fields: +domain, complexity, typical_concerns, compliance_requirements + +**Do NOT return the entire CSV - only the matching row.**" + +**Graceful degradation (if Task tool unavailable):** +- Load the CSV files directly +- Find the matching rows manually +- Extract required fields +- Keep in memory for intelligent classification + +### 3. Begin Discovery Conversation + +**Start with what you know:** + +If the user has a product brief or project docs, acknowledge them and share your understanding. Then ask clarifying questions to deepen your understanding. + +If this is a greenfield project with no docs, start with open-ended discovery: +- What problem does this solve? +- Who's it for? +- What excites you about building this? + +**Listen for classification signals:** + +As the user describes their product, match against: +- **Project type signals** (API, mobile, SaaS, etc.) +- **Domain signals** (healthcare, fintech, education, etc.) +- **Complexity indicators** (regulated industries, novel technology, etc.) + +### 4. Confirm Classification + +Once you have enough understanding, share your classification: + +"I'm hearing this as: +- **Project Type:** {{detectedType}} +- **Domain:** {{detectedDomain}} +- **Complexity:** {{complexityLevel}} + +Does this sound right to you?" + +Let the user confirm or refine your classification. + +### 5. Save Classification to Frontmatter + +When user selects 'C', update frontmatter with classification: +```yaml +classification: + projectType: {{projectType}} + domain: {{domain}} + complexity: {{complexityLevel}} + projectContext: {{greenfield|brownfield}} +``` + +### N. Present MENU OPTIONS + +Present the project classification for review, then display menu: + +"Based on our conversation, I've discovered and classified your project. + +**Here's the classification:** + +**Project Type:** {{detectedType}} +**Domain:** {{detectedDomain}} +**Complexity:** {{complexityLevel}} +**Project Context:** {{greenfield|brownfield}} + +**What would you like to do?**" + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menu +- IF C: Save classification to {outputFile} frontmatter, add this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `{nextStepFile}` to explore product vision. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Document state checked and announced to user +- Classification data loaded and used intelligently +- Natural conversation to understand project type, domain, complexity +- Classification validated with user before saving +- Frontmatter updated with classification when C selected +- User's existing documents acknowledged and built upon + +### ❌ SYSTEM FAILURE: + +- Not reading documentCounts from frontmatter first +- Skipping classification data loading +- Generating executive summary or vision content (that's later steps!) +- Not validating classification with user +- Being prescriptive instead of having natural conversation +- Proceeding without user selecting 'C' + +**Master Rule:** This is classification and understanding only. No content generation yet. Build on what the user already has. Have natural conversations, don't follow scripts. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md b/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md new file mode 100644 index 000000000..6c9e31da0 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md @@ -0,0 +1,155 @@ +--- +name: 'step-02b-vision' +description: 'Discover the product vision and differentiator through collaborative dialogue' + +# File References +nextStepFile: './step-02c-executive-summary.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 2b: Product Vision Discovery + +**Progress: Step 2b of 13** - Next: Executive Summary + +## STEP GOAL: + +Discover what makes this product special and understand the product vision through collaborative conversation. No content generation — facilitation only. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read +- ✅ ALWAYS treat this as collaborative discovery between PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision + +### Step-Specific Rules: + +- 🎯 Focus on discovering vision and differentiator — no content generation yet +- 🚫 FORBIDDEN to generate executive summary content (that's the next step) +- 🚫 FORBIDDEN to append anything to the document in this step +- 💬 APPROACH: Natural conversation to understand what makes this product special +- 🎯 BUILD ON classification insights from step 2 + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after vision discovery is complete +- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from steps 1 and 2 are available +- Project classification exists from step 2 (project type, domain, complexity, context) +- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs) +- No executive summary content yet (that's step 2c) +- This step ONLY discovers — it does NOT write to the document + +## YOUR TASK: + +Discover the product vision and differentiator through natural conversation. Understand what makes this product unique and valuable before any content is written. + +## VISION DISCOVERY SEQUENCE: + +### 1. Acknowledge Classification Context + +Reference the classification from step 2 and use it to frame the vision conversation: + +"We've established this is a {{projectType}} in the {{domain}} domain with {{complexityLevel}} complexity. Now let's explore what makes this product special." + +### 2. Explore What Makes It Special + +Guide the conversation to uncover the product's unique value: + +- **User delight:** "What would make users say 'this is exactly what I needed'?" +- **Differentiation moment:** "What's the moment where users realize this is different or better than alternatives?" +- **Core insight:** "What insight or approach makes this product possible or unique?" +- **Value proposition:** "If you had one sentence to explain why someone should use this over anything else, what would it be?" + +### 3. Understand the Vision + +Dig deeper into the product vision: + +- **Problem framing:** "What's the real problem you're solving — not the surface symptom, but the deeper need?" +- **Future state:** "When this product is successful, what does the world look like for your users?" +- **Why now:** "Why is this the right time to build this?" + +### 4. Validate Understanding + +Reflect back what you've heard and confirm: + +"Here's what I'm hearing about your vision and differentiator: + +**Vision:** {{summarized_vision}} +**What Makes It Special:** {{summarized_differentiator}} +**Core Insight:** {{summarized_insight}} + +Does this capture it? Anything I'm missing?" + +Let the user confirm or refine your understanding. + +### N. Present MENU OPTIONS + +Present your understanding of the product vision for review, then display menu: + +"Based on our conversation, I have a clear picture of your product vision and what makes it special. I'll use these insights to draft the Executive Summary in the next step. + +**What would you like to do?**" + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Executive Summary (Step 2c of 13)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu +- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `{nextStepFile}` to generate the Executive Summary. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Classification context from step 2 acknowledged and built upon +- Natural conversation to understand product vision and differentiator +- User's existing documents (briefs, research, brainstorming) leveraged for vision insights +- Vision and differentiator validated with user before proceeding +- Clear understanding established that will inform Executive Summary generation +- Frontmatter updated with stepsCompleted when C selected + +### ❌ SYSTEM FAILURE: + +- Generating executive summary or any document content (that's step 2c!) +- Appending anything to the PRD document +- Not building on classification from step 2 +- Being prescriptive instead of having natural conversation +- Proceeding without user selecting 'C' + +❌ **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 + +**Master Rule:** This step is vision discovery only. No content generation, no document writing. Have natural conversations, build on what you know from classification, and establish the vision that will feed into the Executive Summary. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md b/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md new file mode 100644 index 000000000..ed7b6b3ac --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md @@ -0,0 +1,171 @@ +--- +name: 'step-02c-executive-summary' +description: 'Generate and append the Executive Summary section to the PRD document' + +# File References +nextStepFile: './step-03-success.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 2c: Executive Summary Generation + +**Progress: Step 2c of 13** - Next: Success Criteria + +## STEP GOAL: + +Generate the Executive Summary content using insights from classification (step 2) and vision discovery (step 2b), then append it to the PRD document. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read +- ✅ ALWAYS treat this as collaborative discovery between PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ Content is drafted collaboratively — present for review before saving + +### Step-Specific Rules: + +- 🎯 Generate Executive Summary content based on discovered insights +- 💬 Present draft content for user review and refinement before appending +- 🚫 FORBIDDEN to append content without user approval via 'C' +- 🎯 Content must be dense, precise, and zero-fluff (PRD quality standards) + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating executive summary content +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from steps 1, 2, and 2b are available +- Project classification exists from step 2 (project type, domain, complexity, context) +- Vision and differentiator insights exist from step 2b +- Input documents from step 1 are available (product briefs, research, brainstorming, project docs) +- This step generates and appends the first substantive content to the PRD + +## YOUR TASK: + +Draft the Executive Summary section using all discovered insights, present it for user review, and append it to the PRD document when approved. + +## EXECUTIVE SUMMARY GENERATION SEQUENCE: + +### 1. Synthesize Available Context + +Review all available context before drafting: +- Classification from step 2: project type, domain, complexity, project context +- Vision and differentiator from step 2b: what makes this special, core insight +- Input documents: product briefs, research, brainstorming, project docs + +### 2. Draft Executive Summary Content + +Generate the Executive Summary section using the content structure below. Apply PRD quality standards: +- High information density — every sentence carries weight +- Zero fluff — no filler phrases or vague language +- Precise and actionable — clear, specific statements +- Dual-audience optimized — readable by humans, consumable by LLMs + +### 3. Present Draft for Review + +Present the drafted content to the user for review: + +"Here's the Executive Summary I've drafted based on our discovery work. Please review and let me know if you'd like any changes:" + +Show the full drafted content using the structure from the Content Structure section below. + +Allow the user to: +- Request specific changes to any section +- Add missing information +- Refine the language or emphasis +- Approve as-is + +### N. Present MENU OPTIONS + +Present the executive summary content for user review, then display menu: + +"Here's the Executive Summary for your PRD. Review the content above and let me know what you'd like to do." + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Success Criteria (Step 3 of 13)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current executive summary content, process the enhanced content that comes back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current executive summary content, process the collaborative improvements, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the following content structure directly to the document: + +```markdown +## Executive Summary + +{vision_alignment_content} + +### What Makes This Special + +{product_differentiator_content} + +## Project Classification + +{project_classification_content} +``` + +Where: +- `{vision_alignment_content}` — Product vision, target users, and the problem being solved. Dense, precise summary drawn from step 2b vision discovery. +- `{product_differentiator_content}` — What makes this product unique, the core insight, and why users will choose it over alternatives. Drawn from step 2b differentiator discovery. +- `{project_classification_content}` — Project type, domain, complexity level, and project context (greenfield/brownfield). Drawn from step 2 classification. + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `{nextStepFile}` to define success criteria. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Executive Summary drafted using insights from steps 2 and 2b +- Content meets PRD quality standards (dense, precise, zero-fluff) +- Draft presented to user for review before saving +- User given opportunity to refine content +- Content properly appended to document when C selected +- A/P/C menu presented and handled correctly +- Frontmatter updated with stepsCompleted when C selected + +### ❌ SYSTEM FAILURE: + +- Generating content without incorporating discovered vision and classification +- Appending content without user selecting 'C' +- Producing vague, fluffy, or low-density content +- Not presenting draft for user review +- Not presenting A/P/C menu after content generation +- Skipping directly to next step without appending content + +❌ **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 + +**Master Rule:** Generate high-quality Executive Summary content from discovered insights. Present for review, refine collaboratively, and only save when the user approves. This is the first substantive content in the PRD — it sets the quality bar for everything that follows. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md b/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md new file mode 100644 index 000000000..e1aa04edc --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md @@ -0,0 +1,227 @@ +--- +name: 'step-03-success' +description: 'Define comprehensive success criteria covering user, business, and technical success' + +# File References +nextStepFile: './step-04-journeys.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 3: Success Criteria Definition + +**Progress: Step 3 of 11** - Next: User Journey Mapping + +## 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on defining what winning looks like for this product +- 🎯 COLLABORATIVE discovery, not assumption-based goal setting +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating success criteria content +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from previous steps are available +- Executive Summary and Project Classification already exist in document +- Input documents from step-01 are available (product briefs, research, brainstorming) +- No additional data files needed for this step +- Focus on measurable, specific success criteria +- LEVERAGE existing input documents to inform success criteria + +## YOUR TASK: + +Define comprehensive success criteria that cover user success, business success, and technical success, using input documents as a foundation while allowing user refinement. + +## SUCCESS DISCOVERY SEQUENCE: + +### 1. Begin Success Definition Conversation + +**Check Input Documents for Success Indicators:** +Analyze product brief, research, and brainstorming documents for success criteria already mentioned. + +**If Input Documents Contain Success Criteria:** +Guide user to refine existing success criteria: +- Acknowledge what's already documented in their materials +- Extract key success themes from brief, research, and brainstorming +- Help user identify gaps and areas for expansion +- Probe for specific, measurable outcomes: When do users feel delighted/relieved/empowered? +- Ask about emotional success moments and completion scenarios +- Explore what "worth it" means beyond what's already captured + +**If No Success Criteria in Input Documents:** +Start with user-centered success exploration: +- Guide conversation toward defining what "worth it" means for users +- Ask about the moment users realize their problem is solved +- Explore specific user outcomes and emotional states +- Identify success "aha!" moments and completion scenarios +- Focus on user experience of success first + +### 2. Explore User Success Metrics + +Listen for specific user outcomes and help make them measurable: + +- Guide from vague to specific: NOT "users are happy" → "users complete [key action] within [timeframe]" +- Ask about emotional success: "When do they feel delighted/relieved/empowered?" +- Identify success moments: "What's the 'aha!' moment?" +- Define completion scenarios: "What does 'done' look like for the user?" + +### 3. Define Business Success + +Transition to business metrics: +- Guide conversation to business perspective on success +- Explore timelines: What does 3-month success look like? 12-month success? +- Identify key business metrics: revenue, user growth, engagement, or other measures? +- Ask what specific metric would indicate "this is working" +- Understand business success from their perspective + +### 4. Challenge Vague Metrics + +Push for specificity on business metrics: + +- "10,000 users" → "What kind of users? Doing what?" +- "99.9% uptime" → "What's the real concern - data loss? Failed payments?" +- "Fast" → "How fast, and what specifically needs to be fast?" +- "Good adoption" → "What percentage adoption by when?" + +### 5. Connect to Product Differentiator + +Tie success metrics back to what makes the product special: +- Connect success criteria to the product's unique differentiator +- Ensure metrics reflect the specific value proposition +- Adapt success criteria to domain context: + - Consumer: User love, engagement, retention + - B2B: ROI, efficiency, adoption + - Developer tools: Developer experience, community + - Regulated: Compliance, safety, validation + - GovTech: Government compliance, accessibility, procurement + +### 6. Smart Scope Negotiation + +Guide scope definition through success lens: +- Help user distinguish MVP (must work to be useful) from growth (competitive) and vision (dream) +- Guide conversation through three scope levels: + 1. MVP: What's essential for proving the concept? + 2. Growth: What makes it competitive? + 3. Vision: What's the dream version? +- Challenge scope creep conversationally: Could this wait until after launch? Is this essential for MVP? +- For complex domains: Ensure compliance minimums are included in MVP + +### 7. Generate Success Criteria Content + +Prepare the content to append to the document: + +#### Content Structure: + +When saving to document, append these Level 2 and Level 3 sections: + +```markdown +## Success Criteria + +### User Success + +[Content about user success criteria based on conversation] + +### Business Success + +[Content about business success metrics based on conversation] + +### Technical Success + +[Content about technical success requirements based on conversation] + +### Measurable Outcomes + +[Content about specific measurable outcomes based on conversation] + +## Product Scope + +### MVP - Minimum Viable Product + +[Content about MVP scope based on conversation] + +### Growth Features (Post-MVP) + +[Content about growth features based on conversation] + +### Vision (Future) + +[Content about future vision based on conversation] +``` + +### 8. Present MENU OPTIONS + +Present the success criteria content for user review, then display menu: + +- Show the drafted success criteria and scope definition (using structure from section 7) +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of the conversation + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to User Journey Mapping (Step 4 of 11)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current success criteria content, process the enhanced success metrics that come back, ask user "Accept these improvements to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current success criteria, process the collaborative improvements to metrics and scope, ask user "Accept these changes to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from step 7. + +## SUCCESS METRICS: + +✅ User success criteria clearly identified and made measurable +✅ Business success metrics defined with specific targets +✅ Success criteria connected to product differentiator +✅ Scope properly negotiated (MVP, Growth, Vision) +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Accepting vague success metrics without pushing for specificity +❌ Not connecting success criteria back to product differentiator +❌ Missing scope negotiation and leaving it undefined +❌ Generating content without real user input on what success looks like +❌ Not presenting A/P/C menu after content generation +❌ Appending content without user selecting 'C' + +❌ **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 + +## DOMAIN CONSIDERATIONS: + +If working in regulated domains (healthcare, fintech, govtech): + +- Include compliance milestones in success criteria +- Add regulatory approval timelines to MVP scope +- Consider audit requirements as technical success metrics + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-04-journeys.md` to map user journeys. + +Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md b/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md new file mode 100644 index 000000000..4dc16c456 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md @@ -0,0 +1,214 @@ +--- +name: 'step-04-journeys' +description: 'Map ALL user types that interact with the system with narrative story-based journeys' + +# File References +nextStepFile: './step-05-domain.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 4: User Journey Mapping + +**Progress: Step 4 of 11** - Next: Domain Requirements + +## 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on mapping ALL user types that interact with the system +- 🎯 CRITICAL: No journey = no functional requirements = product doesn't exist +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating journey content +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from previous steps are available +- Success criteria and scope already defined +- Input documents from step-01 are available (product briefs with user personas) +- Every human interaction with the system needs a journey + +## YOUR TASK: + +Create compelling narrative user journeys that leverage existing personas from product briefs and identify additional user types needed for comprehensive coverage. + +## JOURNEY MAPPING SEQUENCE: + +### 1. Leverage Existing Users & Identify Additional Types + +**Check Input Documents for Existing Personas:** +Analyze product brief, research, and brainstorming documents for user personas already defined. + +**If User Personas Exist in Input Documents:** +Guide user to build on existing personas: +- Acknowledge personas found in their product brief +- Extract key persona details and backstories +- Leverage existing insights about their needs +- Prompt to identify additional user types beyond those documented +- Suggest additional user types based on product context (admins, moderators, support, API consumers, internal ops) +- Ask what additional user types should be considered + +**If No Personas in Input Documents:** +Start with comprehensive user type discovery: +- Guide exploration of ALL people who interact with the system +- Consider beyond primary users: admins, moderators, support staff, API consumers, internal ops +- Ask what user types should be mapped for this specific product +- Ensure comprehensive coverage of all system interactions + +### 2. Create Narrative Story-Based Journeys + +For each user type, create compelling narrative journeys that tell their story: + +#### Narrative Journey Creation Process: + +**If Using Existing Persona from Input Documents:** +Guide narrative journey creation: +- Use persona's existing backstory from brief +- Explore how the product changes their life/situation +- Craft journey narrative: where do we meet them, how does product help them write their next chapter? + +**If Creating New Persona:** +Guide persona creation with story framework: +- Name: realistic name and personality +- Situation: What's happening in their life/work that creates need? +- Goal: What do they desperately want to achieve? +- Obstacle: What's standing in their way? +- Solution: How does the product solve their story? + +**Story-Based Journey Mapping:** + +Guide narrative journey creation using story structure: +- **Opening Scene**: Where/how do we meet them? What's their current pain? +- **Rising Action**: What steps do they take? What do they discover? +- **Climax**: Critical moment where product delivers real value +- **Resolution**: How does their situation improve? What's their new reality? + +Encourage narrative format with specific user details, emotional journey, and clear before/after contrast + +### 3. Guide Journey Exploration + +For each journey, facilitate detailed exploration: +- What happens at each step specifically? +- What could go wrong? What's the recovery path? +- What information do they need to see/hear? +- What's their emotional state at each point? +- Where does this journey succeed or fail? + +### 4. Connect Journeys to Requirements + +After each journey, explicitly state: +- This journey reveals requirements for specific capability areas +- Help user see how different journeys create different feature sets +- Connect journey needs to concrete capabilities (onboarding, dashboards, notifications, etc.) + +### 5. Aim for Comprehensive Coverage + +Guide toward complete journey set: + +- **Primary user** - happy path (core experience) +- **Primary user** - edge case (different goal, error recovery) +- **Secondary user** (admin, moderator, support, etc.) +- **API consumer** (if applicable) + +Ask if additional journeys are needed to cover uncovered user types + +### 6. Generate User Journey Content + +Prepare the content to append to the document: + +#### Content Structure: + +When saving to document, append these Level 2 and Level 3 sections: + +```markdown +## User Journeys + +[All journey narratives based on conversation] + +### Journey Requirements Summary + +[Summary of capabilities revealed by journeys based on conversation] +``` + +### 7. Present MENU OPTIONS + +Present the user journey content for review, then display menu: +- Show the mapped user journeys (using structure from section 6) +- Highlight how each journey reveals different capabilities +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of conversation + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Domain Requirements (Step 5 of 11)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current journey content, process the enhanced journey insights that come back, ask user "Accept these improvements to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current journeys, process the collaborative journey improvements and additions, ask user "Accept these changes to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from step 6. + +## SUCCESS METRICS: + +✅ Existing personas from product briefs leveraged when available +✅ All user types identified (not just primary users) +✅ Rich narrative storytelling for each persona and journey +✅ Complete story-based journey mapping with emotional arc +✅ Journey requirements clearly connected to capabilities needed +✅ Minimum 3-4 compelling narrative journeys covering different user types +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Ignoring existing personas from product briefs +❌ Only mapping primary user journeys and missing secondary users +❌ Creating generic journeys without rich persona details and narrative +❌ Missing emotional storytelling elements that make journeys compelling +❌ Missing critical decision points and failure scenarios +❌ Not connecting journeys to required capabilities +❌ Not having enough journey diversity (admin, support, API, etc.) +❌ Not presenting A/P/C menu after content generation +❌ Appending content without user selecting 'C' + +❌ **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 + +## JOURNEY TYPES TO ENSURE: + +**Minimum Coverage:** + +1. **Primary User - Success Path**: Core experience journey +2. **Primary User - Edge Case**: Error recovery, alternative goals +3. **Admin/Operations User**: Management, configuration, monitoring +4. **Support/Troubleshooting**: Help, investigation, issue resolution +5. **API/Integration** (if applicable): Developer/technical user journey + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-05-domain.md`. + +Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md b/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md new file mode 100644 index 000000000..89bf5cda3 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md @@ -0,0 +1,208 @@ +--- +name: 'step-05-domain' +description: 'Explore domain-specific requirements for complex domains (optional step)' + +# File References +nextStepFile: './step-06-innovation.md' +outputFile: '{planning_artifacts}/prd.md' +domainComplexityCSV: '../data/domain-complexity.csv' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 5: Domain-Specific Requirements (Optional) + +**Progress: Step 5 of 13** - Next: Innovation Focus + +## STEP GOAL: + +For complex domains only that have a mapping in {domainComplexityCSV}, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read +- ✅ ALWAYS treat this as collaborative discovery between PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise + +### Step-Specific Rules: + +- 🎯 This step is OPTIONAL - only needed for complex domains +- 🚫 SKIP if domain complexity is "low" from step-02 +- 💬 APPROACH: Natural conversation to discover domain-specific needs +- 🎯 Focus on constraints, compliance, and domain patterns + +## EXECUTION PROTOCOLS: + +- 🎯 Check domain complexity from step-02 classification first +- ⚠️ If complexity is "low", offer to skip this step +- ⚠️ Present A/P/C menu after domain requirements defined (or skipped) +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Domain classification from step-02 is available +- If complexity is low, this step may be skipped +- Domain CSV data provides complexity reference +- Focus on domain-specific constraints, not general requirements + +## YOUR TASK: + +For complex domains, explore what makes this domain special: +- **Compliance requirements** - regulations, standards, certifications +- **Technical constraints** - security, privacy, integration requirements +- **Domain patterns** - common patterns, best practices, anti-patterns +- **Risks and mitigations** - what could go wrong, how to prevent it + +## DOMAIN DISCOVERY SEQUENCE: + +### 1. Check Domain Complexity + +**Review classification from step-02:** + +- What's the domain complexity level? (low/medium/high) +- What's the specific domain? (healthcare, fintech, education, etc.) + +**If complexity is LOW:** + +Offer to skip: +"The domain complexity from our discovery is low. We may not need deep domain-specific requirements. Would you like to: +- [C] Skip this step and move to Innovation +- [D] Do domain exploration anyway" + +**If complexity is MEDIUM or HIGH:** + +Proceed with domain exploration. + +### 2. Load Domain Reference Data + +**Attempt subprocess data lookup:** + +"Your task: Lookup data in {domainComplexityCSV} + +**Search criteria:** +- Find row where domain matches {{domainFromStep02}} + +**Return format:** +Return ONLY the matching row as a YAML-formatted object with these fields: +domain, complexity, typical_concerns, compliance_requirements + +**Do NOT return the entire CSV - only the matching row.**" + +**Graceful degradation (if Task tool unavailable):** +- Load the CSV file directly +- Find the matching row manually +- Extract required fields +- Understand typical concerns and compliance requirements + +### 3. Explore Domain-Specific Concerns + +**Start with what you know:** + +Acknowledge the domain and explore what makes it complex: +- What regulations apply? (HIPAA, PCI-DSS, GDPR, SOX, etc.) +- What standards matter? (ISO, NIST, domain-specific standards) +- What certifications are needed? (security, privacy, domain-specific) +- What integrations are required? (EMR systems, payment processors, etc.) + +**Explore technical constraints:** +- Security requirements (encryption, audit logs, access control) +- Privacy requirements (data handling, consent, retention) +- Performance requirements (real-time, batch, latency) +- Availability requirements (uptime, disaster recovery) + +### 4. Document Domain Requirements + +**Structure the requirements around key concerns:** + +```markdown +### Compliance & Regulatory +- [Specific requirements] + +### Technical Constraints +- [Security, privacy, performance needs] + +### Integration Requirements +- [Required systems and data flows] + +### Risk Mitigations +- [Domain-specific risks and how to address them] +``` + +### 5. Validate Completeness + +**Check with the user:** + +"Are there other domain-specific concerns we should consider? For [this domain], what typically gets overlooked?" + +### N. Present MENU OPTIONS + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue - Save and Proceed to Innovation (Step 6 of 13)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask}, and when finished redisplay the menu +- IF P: Read fully and follow: {partyModeWorkflow}, and when finished redisplay the menu +- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: {nextStepFile} +- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options) + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT + +When user selects 'C', append to `{outputFile}`: + +```markdown +## Domain-Specific Requirements + +{{discovered domain requirements}} +``` + +If step was skipped, append nothing and proceed. + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then read fully and follow: `{nextStepFile}` to explore innovation. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Domain complexity checked before proceeding +- Offered to skip if complexity is low +- Natural conversation exploring domain concerns +- Compliance, technical, and integration requirements identified +- Domain-specific risks documented with mitigations +- User validated completeness +- Content properly saved (or step skipped) when C selected + +### ❌ SYSTEM FAILURE: + +- Not checking domain complexity first +- Not offering to skip for low-complexity domains +- Missing critical compliance requirements +- Not exploring technical constraints +- Not asking about domain-specific risks +- Being generic instead of domain-specific +- Proceeding without user validation + +**Master Rule:** This step is OPTIONAL for simple domains. For complex domains, focus on compliance, constraints, and domain patterns. Natural conversation, not checklists. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md b/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md new file mode 100644 index 000000000..09cbdbf44 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md @@ -0,0 +1,227 @@ +--- +name: 'step-06-innovation' +description: 'Detect and explore innovative aspects of the product (optional step)' + +# File References +nextStepFile: './step-07-project-type.md' +outputFile: '{planning_artifacts}/prd.md' + +# Data Files +projectTypesCSV: '../data/project-types.csv' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 6: Innovation Discovery + +**Progress: Step 6 of 11** - Next: Project Type 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on detecting and exploring innovative aspects of the product +- 🎯 OPTIONAL STEP: Only proceed if innovation signals are detected +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating innovation content +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from previous steps are available +- Project type from step-02 is available for innovation signal matching +- Project-type CSV data will be loaded in this step +- Focus on detecting genuine innovation, not forced creativity + +## OPTIONAL STEP CHECK: + +Before proceeding with this step, scan for innovation signals: + +- Listen for language like "nothing like this exists", "rethinking how X works" +- Check for project-type innovation signals from CSV +- Look for novel approaches or unique combinations +- If no innovation detected, skip this step + +## YOUR TASK: + +Detect and explore innovation patterns in the product, focusing on what makes it truly novel and how to validate the innovative aspects. + +## INNOVATION DISCOVERY SEQUENCE: + +### 1. Load Project-Type Innovation Data + +Load innovation signals specific to this project type: + +- Load `{projectTypesCSV}` completely +- Find the row where `project_type` matches detected type from step-02 +- Extract `innovation_signals` (semicolon-separated list) +- Extract `web_search_triggers` for potential innovation research + +### 2. Listen for Innovation Indicators + +Monitor conversation for both general and project-type-specific innovation signals: + +#### General Innovation Language: + +- "Nothing like this exists" +- "We're rethinking how [X] works" +- "Combining [A] with [B] for the first time" +- "Novel approach to [problem]" +- "No one has done [concept] before" + +#### Project-Type-Specific Signals (from CSV): + +Match user descriptions against innovation_signals for their project_type: + +- **api_backend**: "API composition;New protocol" +- **mobile_app**: "Gesture innovation;AR/VR features" +- **saas_b2b**: "Workflow automation;AI agents" +- **developer_tool**: "New paradigm;DSL creation" + +### 3. Initial Innovation Screening + +Ask targeted innovation discovery questions: +- Guide exploration of what makes the product innovative +- Explore if they're challenging existing assumptions +- Ask about novel combinations of technologies/approaches +- Identify what hasn't been done before +- Understand which aspects feel most innovative + +### 4. Deep Innovation Exploration (If Detected) + +If innovation signals are found, explore deeply: + +#### Innovation Discovery Questions: +- What makes it unique compared to existing solutions? +- What assumption are you challenging? +- How do we validate it works? +- What's the fallback if it doesn't? +- Has anyone tried this before? + +#### Market Context Research: + +If relevant innovation detected, consider web search for context: +Use `web_search_triggers` from project-type CSV: +`[web_search_triggers] {concept} innovations {date}` + +### 5. Generate Innovation Content (If Innovation Detected) + +Prepare the content to append to the document: + +#### Content Structure: + +When saving to document, append these Level 2 and Level 3 sections: + +```markdown +## Innovation & Novel Patterns + +### Detected Innovation Areas + +[Innovation patterns identified based on conversation] + +### Market Context & Competitive Landscape + +[Market context and research based on conversation] + +### Validation Approach + +[Validation methodology based on conversation] + +### Risk Mitigation + +[Innovation risks and fallbacks based on conversation] +``` + +### 6. Present MENU OPTIONS (Only if Innovation Detected) + +Present the innovation content for review, then display menu: +- Show identified innovative aspects (using structure from section 5) +- Highlight differentiation from existing solutions +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of conversation + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Project Type Analysis (Step 7 of 11)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current innovation content, process the enhanced innovation insights that come back, ask user "Accept these improvements to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current innovation content, process the collaborative innovation exploration and ideation, ask user "Accept these changes to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## NO INNOVATION DETECTED: + +If no genuine innovation signals are found after exploration: +- Acknowledge that no clear innovation signals were found +- Note this is fine - many successful products are excellent executions of existing concepts +- Ask if they'd like to try finding innovative angles or proceed + +Display: "**Select:** [A] Advanced Elicitation - Let's try to find innovative angles [C] Continue - Skip innovation section and move to Project Type Analysis (Step 7 of 11)" + +### Menu Handling Logic: +- IF A: Proceed with content generation anyway, then return to menu +- IF C: Skip this step, then read fully and follow: {nextStepFile} + +### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from step 5. + +## SUCCESS METRICS: + +✅ Innovation signals properly detected from user conversation +✅ Project-type innovation signals used to guide discovery +✅ Genuine innovation explored (not forced creativity) +✅ Validation approach clearly defined for innovative aspects +✅ Risk mitigation strategies identified +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Forced innovation when none genuinely exists +❌ Not using project-type innovation signals from CSV +❌ Missing market context research for novel concepts +❌ Not addressing validation approach for innovative features +❌ Creating innovation theater without real innovative aspects +❌ Not presenting A/P/C menu after content generation +❌ Appending content without user selecting 'C' + +❌ **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 + +## SKIP CONDITIONS: + +Skip this step and load `{nextStepFile}` if: + +- No innovation signals detected in conversation +- Product is incremental improvement rather than breakthrough +- User confirms innovation exploration is not needed +- Project-type CSV has no innovation signals for this type + +## NEXT STEP: + +After user selects 'C' and content is saved to document (or step is skipped), load `{nextStepFile}`. + +Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu (or confirms step skip)! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md b/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md new file mode 100644 index 000000000..45de71dac --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md @@ -0,0 +1,238 @@ +--- +name: 'step-07-project-type' +description: 'Conduct project-type specific discovery using CSV-driven guidance' + +# File References +nextStepFile: './step-08-scoping.md' +outputFile: '{planning_artifacts}/prd.md' + +# Data Files +projectTypesCSV: '../data/project-types.csv' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 7: Project-Type Deep Dive + +**Progress: Step 7 of 11** - Next: Scoping + +## 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on project-type specific requirements and technical considerations +- 🎯 DATA-DRIVEN: Use CSV configuration to guide discovery +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating project-type content +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from previous steps are available +- Project type from step-02 is available for configuration loading +- Project-type CSV data will be loaded in this step +- Focus on technical and functional requirements specific to this project type + +## YOUR TASK: + +Conduct project-type specific discovery using CSV-driven guidance to define technical requirements. + +## PROJECT-TYPE DISCOVERY SEQUENCE: + +### 1. Load Project-Type Configuration Data + +**Attempt subprocess data lookup:** + +"Your task: Lookup data in {projectTypesCSV} + +**Search criteria:** +- Find row where project_type matches {{projectTypeFromStep02}} + +**Return format:** +Return ONLY the matching row as a YAML-formatted object with these fields: +project_type, key_questions, required_sections, skip_sections, innovation_signals + +**Do NOT return the entire CSV - only the matching row.**" + +**Graceful degradation (if Task tool unavailable):** +- Load the CSV file directly +- Find the matching row manually +- Extract required fields: + - `key_questions` (semicolon-separated list of discovery questions) + - `required_sections` (semicolon-separated list of sections to document) + - `skip_sections` (semicolon-separated list of sections to skip) + - `innovation_signals` (already explored in step-6) + +### 2. Conduct Guided Discovery Using Key Questions + +Parse `key_questions` from CSV and explore each: + +#### Question-Based Discovery: + +For each question in `key_questions` from CSV: + +- Ask the user naturally in conversational style +- Listen for their response and ask clarifying follow-ups +- Connect answers to product value proposition + +**Example Flow:** +If key_questions = "Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?" + +Ask naturally: + +- "What are the main endpoints your API needs to expose?" +- "How will you handle authentication and authorization?" +- "What data formats will you support for requests and responses?" + +### 3. Document Project-Type Specific Requirements + +Based on user answers to key_questions, synthesize comprehensive requirements: + +#### Requirement Categories: + +Cover the areas indicated by `required_sections` from CSV: + +- Synthesize what was discovered for each required section +- Document specific requirements, constraints, and decisions +- Connect to product differentiator when relevant + +#### Skip Irrelevant Sections: + +Skip areas indicated by `skip_sections` from CSV to avoid wasting time on irrelevant aspects. + +### 4. Generate Dynamic Content Sections + +Parse `required_sections` list from the matched CSV row. For each section name, generate corresponding content: + +#### Common CSV Section Mappings: + +- "endpoint_specs" or "endpoint_specification" → API endpoints documentation +- "auth_model" or "authentication_model" → Authentication approach +- "platform_reqs" or "platform_requirements" → Platform support needs +- "device_permissions" or "device_features" → Device capabilities +- "tenant_model" → Multi-tenancy approach +- "rbac_matrix" or "permission_matrix" → Permission structure + +#### Template Variable Strategy: + +- For sections matching common template variables: generate specific content +- For sections without template matches: include in main project_type_requirements +- Hybrid approach balances template structure with CSV-driven flexibility + +### 5. Generate Project-Type Content + +Prepare the content to append to the document: + +#### Content Structure: + +When saving to document, append these Level 2 and Level 3 sections: + +```markdown +## [Project Type] Specific Requirements + +### Project-Type Overview + +[Project type summary based on conversation] + +### Technical Architecture Considerations + +[Technical architecture requirements based on conversation] + +[Dynamic sections based on CSV and conversation] + +### Implementation Considerations + +[Implementation specific requirements based on conversation] +``` + +### 6. Present MENU OPTIONS + +Present the project-type content for review, then display menu: + +"Based on our conversation and best practices for this product type, I've documented the {project_type}-specific requirements for {{project_name}}. + +**Here's what I'll add to the document:** + +[Show the complete markdown content from section 5] + +**What would you like to do?**" + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Scoping (Step 8 of 11)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current project-type content, process the enhanced technical insights that come back, ask user "Accept these improvements to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current project-type requirements, process the collaborative technical expertise and validation, ask user "Accept these changes to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from previous steps. + +## SUCCESS METRICS: + +✅ Project-type configuration loaded and used effectively +✅ All key questions from CSV explored with user input +✅ Required sections generated per CSV configuration +✅ Skip sections properly avoided to save time +✅ Technical requirements connected to product value +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Not loading or using project-type CSV configuration +❌ Missing key questions from CSV in discovery process +❌ Not generating required sections per CSV configuration +❌ Documenting sections that should be skipped per CSV +❌ Creating generic content without project-type specificity +❌ Not presenting A/P/C menu after content generation +❌ Appending content without user selecting 'C' + +❌ **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 + +## PROJECT-TYPE EXAMPLES: + +**For api_backend:** + +- Focus on endpoints, authentication, data schemas, rate limiting +- Skip visual design and user journey sections +- Generate API specification documentation + +**For mobile_app:** + +- Focus on platform requirements, device permissions, offline mode +- Skip API endpoint documentation unless needed +- Generate mobile-specific technical requirements + +**For saas_b2b:** + +- Focus on multi-tenancy, permissions, integrations +- Skip mobile-first considerations unless relevant +- Generate enterprise-specific requirements + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `{nextStepFile}` to define project scope. + +Remember: Do NOT proceed to step-08 (Scoping) until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md b/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md new file mode 100644 index 000000000..368abf536 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md @@ -0,0 +1,229 @@ +--- +name: 'step-08-scoping' +description: 'Define MVP boundaries and prioritize features across development phases' + +# File References +nextStepFile: './step-09-functional.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 8: Scoping Exercise - MVP & Future Features + +**Progress: Step 8 of 11** - Next: Functional Requirements + +## 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on strategic scope decisions that keep projects viable +- 🎯 EMPHASIZE lean MVP thinking while preserving long-term vision +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- 📚 Review the complete PRD document built so far +- ⚠️ Present A/P/C menu after generating scoping decisions +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + + +## CONTEXT BOUNDARIES: + +- Complete PRD document built so far is available for review +- User journeys, success criteria, and domain requirements are documented +- Focus on strategic scope decisions, not feature details +- Balance between user value and implementation feasibility + +## YOUR TASK: + +Conduct comprehensive scoping exercise to define MVP boundaries and prioritize features across development phases. + +## SCOPING SEQUENCE: + +### 1. Review Current PRD State + +Analyze everything documented so far: +- Present synthesis of established vision, success criteria, journeys +- Assess domain and innovation focus +- Evaluate scope implications: simple MVP, medium, or complex project +- Ask if initial assessment feels right or if they see it differently + +### 2. Define MVP Strategy + +Facilitate strategic MVP decisions: +- Explore MVP philosophy options: problem-solving, experience, platform, or revenue MVP +- Ask critical questions: + - What's the minimum that would make users say 'this is useful'? + - What would make investors/partners say 'this has potential'? + - What's the fastest path to validated learning? +- Guide toward appropriate MVP approach for their product + +### 3. Scoping Decision Framework + +Use structured decision-making for scope: + +**Must-Have Analysis:** +- Guide identification of absolute MVP necessities +- For each journey and success criterion, ask: + - Without this, does the product fail? + - Can this be manual initially? + - Is this a deal-breaker for early adopters? +- Analyze journeys for MVP essentials + +**Nice-to-Have Analysis:** +- Identify what could be added later: + - Features that enhance but aren't essential + - User types that can be added later + - Advanced functionality that builds on MVP +- Ask what features could be added in versions 2, 3, etc. + +### 4. Progressive Feature Roadmap + +Create phased development approach: +- Guide mapping of features across development phases +- Structure as Phase 1 (MVP), Phase 2 (Growth), Phase 3 (Vision) +- Ensure clear progression and dependencies + +- Core user value delivery +- Essential user journeys +- Basic functionality that works reliably + +**Phase 2: Growth** + +- Additional user types +- Enhanced features +- Scale improvements + +**Phase 3: Expansion** + +- Advanced capabilities +- Platform features +- New markets or use cases + +**Where does your current vision fit in this development sequence?**" + +### 5. Risk-Based Scoping + +Identify and mitigate scoping risks: + +**Technical Risks:** +"Looking at your innovation and domain requirements: + +- What's the most technically challenging aspect? +- Could we simplify the initial implementation? +- What's the riskiest assumption about technology feasibility?" + +**Market Risks:** + +- What's the biggest market risk? +- How does the MVP address this? +- What learning do we need to de-risk this?" + +**Resource Risks:** + +- What if we have fewer resources than planned? +- What's the absolute minimum team size needed? +- Can we launch with a smaller feature set?" + +### 6. Generate Scoping Content + +Prepare comprehensive scoping section: + +#### Content Structure: + +```markdown +## Project Scoping & Phased Development + +### MVP Strategy & Philosophy + +**MVP Approach:** {{chosen_mvp_approach}} +**Resource Requirements:** {{mvp_team_size_and_skills}} + +### MVP Feature Set (Phase 1) + +**Core User Journeys Supported:** +{{essential_journeys_for_mvp}} + +**Must-Have Capabilities:** +{{list_of_essential_mvp_features}} + +### Post-MVP Features + +**Phase 2 (Post-MVP):** +{{planned_growth_features}} + +**Phase 3 (Expansion):** +{{planned_expansion_features}} + +### Risk Mitigation Strategy + +**Technical Risks:** {{mitigation_approach}} +**Market Risks:** {{validation_approach}} +**Resource Risks:** {{contingency_approach}} +``` + +### 7. Present MENU OPTIONS + +Present the scoping decisions for review, then display menu: +- Show strategic scoping plan (using structure from step 6) +- Highlight MVP boundaries and phased roadmap +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of conversation + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Functional Requirements (Step 9 of 11)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current scoping analysis, process the enhanced insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the scoping context, process the collaborative insights on MVP and roadmap decisions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from step 6. + +## SUCCESS METRICS: + +✅ Complete PRD document analyzed for scope implications +✅ Strategic MVP approach defined and justified +✅ Clear MVP feature boundaries established +✅ Phased development roadmap created +✅ Key risks identified and mitigation strategies defined +✅ User explicitly agrees to scope decisions +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Not analyzing the complete PRD before making scoping decisions +❌ Making scope decisions without strategic rationale +❌ Not getting explicit user agreement on MVP boundaries +❌ Missing critical risk analysis +❌ Not creating clear phased development approach +❌ 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 {nextStepFile}. + +Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md b/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md new file mode 100644 index 000000000..412178c09 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md @@ -0,0 +1,232 @@ +--- +name: 'step-09-functional' +description: 'Synthesize all discovery into comprehensive functional requirements' + +# File References +nextStepFile: './step-10-nonfunctional.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 9: Functional Requirements Synthesis + +**Progress: Step 9 of 11** - Next: Non-Functional Requirements + +## 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on creating comprehensive capability inventory for the product +- 🎯 CRITICAL: This is THE CAPABILITY CONTRACT for all downstream work +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating functional requirements +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from previous steps are available +- ALL previous content (executive summary, success criteria, journeys, domain, innovation, project-type) must be referenced +- No additional data files needed for this step +- Focus on capabilities, not implementation details + +## CRITICAL IMPORTANCE: + +**This section defines THE CAPABILITY CONTRACT for the entire product:** + +- UX designers will ONLY design what's listed here +- Architects will ONLY support what's listed here +- Epic breakdown will ONLY implement what's listed here +- If a capability is missing from FRs, it will NOT exist in the final product + +## FUNCTIONAL REQUIREMENTS SYNTHESIS SEQUENCE: + +### 1. Understand FR Purpose and Usage + +Start by explaining the critical role of functional requirements: + +**Purpose:** +FRs define WHAT capabilities the product must have. They are the complete inventory of user-facing and system capabilities that deliver the product vision. + +**Critical Properties:** +✅ Each FR is a testable capability +✅ Each FR is implementation-agnostic (could be built many ways) +✅ Each FR specifies WHO and WHAT, not HOW +✅ No UI details, no performance numbers, no technology choices +✅ Comprehensive coverage of capability areas + +**How They Will Be Used:** + +1. UX Designer reads FRs → designs interactions for each capability +2. Architect reads FRs → designs systems to support each capability +3. PM reads FRs → creates epics and stories to implement each capability + +### 2. Review Existing Content for Capability Extraction + +Systematically review all previous sections to extract capabilities: + +**Extract From:** + +- Executive Summary → Core product differentiator capabilities +- Success Criteria → Success-enabling capabilities +- User Journeys → Journey-revealed capabilities +- Domain Requirements → Compliance and regulatory capabilities +- Innovation Patterns → Innovative feature capabilities +- Project-Type Requirements → Technical capability needs + +### 3. Organize Requirements by Capability Area + +Group FRs by logical capability areas (NOT by technology or layer): + +**Good Grouping Examples:** + +- ✅ "User Management" (not "Authentication System") +- ✅ "Content Discovery" (not "Search Algorithm") +- ✅ "Team Collaboration" (not "WebSocket Infrastructure") + +**Target 5-8 Capability Areas** for typical projects. + +### 4. Generate Comprehensive FR List + +Create complete functional requirements using this format: + +**Format:** + +- FR#: [Actor] can [capability] [context/constraint if needed] +- Number sequentially (FR1, FR2, FR3...) +- Aim for 20-50 FRs for typical projects + +**Altitude Check:** +Each FR should answer "WHAT capability exists?" NOT "HOW it's implemented?" + +**Examples:** + +- ✅ "Users can customize appearance settings" +- ❌ "Users can toggle light/dark theme with 3 font size options stored in LocalStorage" + +### 5. Self-Validation Process + +Before presenting to user, validate the FR list: + +**Completeness Check:** + +1. "Did I cover EVERY capability mentioned in the MVP scope section?" +2. "Did I include domain-specific requirements as FRs?" +3. "Did I cover the project-type specific needs?" +4. "Could a UX designer read ONLY the FRs and know what to design?" +5. "Could an Architect read ONLY the FRs and know what to support?" +6. "Are there any user actions or system behaviors we discussed that have no FR?" + +**Altitude Check:** + +1. "Am I stating capabilities (WHAT) or implementation (HOW)?" +2. "Am I listing acceptance criteria or UI specifics?" (Remove if yes) +3. "Could this FR be implemented 5 different ways?" (Good - means it's not prescriptive) + +**Quality Check:** + +1. "Is each FR clear enough that someone could test whether it exists?" +2. "Is each FR independent (not dependent on reading other FRs to understand)?" +3. "Did I avoid vague terms like 'good', 'fast', 'easy'?" (Use NFRs for quality attributes) + +### 6. Generate Functional Requirements Content + +Prepare the content to append to the document: + +#### Content Structure: + +When saving to document, append these Level 2 and Level 3 sections: + +```markdown +## Functional Requirements + +### [Capability Area Name] + +- FR1: [Specific Actor] can [specific capability] +- FR2: [Specific Actor] can [specific capability] +- FR3: [Specific Actor] can [specific capability] + +### [Another Capability Area] + +- FR4: [Specific Actor] can [specific capability] +- FR5: [Specific Actor] can [specific capability] + +[Continue for all capability areas discovered in conversation] +``` + +### 7. Present MENU OPTIONS + +Present the functional requirements for review, then display menu: +- Show synthesized functional requirements (using structure from step 6) +- Emphasize this is the capability contract for all downstream work +- Highlight that every feature must trace back to these requirements +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of conversation + +**What would you like to do?**" + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Non-Functional Requirements (Step 10 of 11)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current FR list, process the enhanced capability coverage that comes back, ask user if they accept the additions, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current FR list, process the collaborative capability validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from step 6. + +## SUCCESS METRICS: + +✅ All previous discovery content synthesized into FRs +✅ FRs organized by capability areas (not technology) +✅ Each FR states WHAT capability exists, not HOW to implement +✅ Comprehensive coverage with 20-50 FRs typical +✅ Altitude validation ensures implementation-agnostic requirements +✅ Completeness check validates coverage of all discussed capabilities +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Missing capabilities from previous discovery sections +❌ Organizing FRs by technology instead of capability areas +❌ Including implementation details or UI specifics in FRs +❌ Not achieving comprehensive coverage of discussed capabilities +❌ Using vague terms instead of testable capabilities +❌ Not presenting A/P/C menu after content generation +❌ Appending content without user selecting 'C' + +❌ **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 + +## CAPABILITY CONTRACT REMINDER: + +Emphasize to user: "This FR list is now binding. Any feature not listed here will not exist in the final product unless we explicitly add it. This is why it's critical to ensure completeness now." + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load {nextStepFile} to define non-functional requirements. + +Remember: Do NOT proceed to step-10 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md b/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md new file mode 100644 index 000000000..8a939a15a --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md @@ -0,0 +1,243 @@ +--- +name: 'step-10-nonfunctional' +description: 'Define quality attributes that matter for this specific product' + +# File References +nextStepFile: './step-11-polish.md' +outputFile: '{planning_artifacts}/prd.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 10: Non-Functional Requirements + +**Progress: Step 10 of 12** - Next: Polish Document + +## 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 PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- 💬 FOCUS on quality attributes that matter for THIS specific product +- 🎯 SELECTIVE: Only document NFRs that actually apply to the product +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating NFR content +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from previous steps are available +- Functional requirements already defined and will inform NFRs +- Domain and project-type context will guide which NFRs matter +- Focus on specific, measurable quality criteria + +## YOUR TASK: + +Define non-functional requirements that specify quality attributes for the product, focusing only on what matters for THIS specific product. + +## NON-FUNCTIONAL REQUIREMENTS SEQUENCE: + +### 1. Explain NFR Purpose and Scope + +Start by clarifying what NFRs are and why we're selective: + +**NFR Purpose:** +NFRs define HOW WELL the system must perform, not WHAT it must do. They specify quality attributes like performance, security, scalability, etc. + +**Selective Approach:** +We only document NFRs that matter for THIS product. If a category doesn't apply, we skip it entirely. This prevents requirement bloat and focuses on what's actually important. + +### 2. Assess Product Context for NFR Relevance + +Evaluate which NFR categories matter based on product context: + +**Quick Assessment Questions:** + +- **Performance**: Is there user-facing impact of speed? +- **Security**: Are we handling sensitive data or payments? +- **Scalability**: Do we expect rapid user growth? +- **Accessibility**: Are we serving broad public audiences? +- **Integration**: Do we need to connect with other systems? +- **Reliability**: Would downtime cause significant problems? + +### 3. Explore Relevant NFR Categories + +For each relevant category, conduct targeted discovery: + +#### Performance NFRs (If relevant): + +Explore performance requirements: +- What parts of the system need to be fast for users to be successful? +- Are there specific response time expectations? +- What happens if performance is slower than expected? +- Are there concurrent user scenarios we need to support? + +#### Security NFRs (If relevant): + +Explore security requirements: +- What data needs to be protected? +- Who should have access to what? +- What are the security risks we need to mitigate? +- Are there compliance requirements (GDPR, HIPAA, PCI-DSS)? + +#### Scalability NFRs (If relevant): + +Explore scalability requirements: +- How many users do we expect initially? Long-term? +- Are there seasonal or event-based traffic spikes? +- What happens if we exceed our capacity? +- What growth scenarios should we plan for? + +#### Accessibility NFRs (If relevant): + +Explore accessibility requirements: +- Are we serving users with visual, hearing, or motor impairments? +- Are there legal accessibility requirements (WCAG, Section 508)? +- What accessibility features are most important for our users? + +#### Integration NFRs (If relevant): + +Explore integration requirements: +- What external systems do we need to connect with? +- Are there APIs or data formats we must support? +- How reliable do these integrations need to be? + +### 4. Make NFRs Specific and Measurable + +For each relevant NFR category, ensure criteria are testable: + +**From Vague to Specific:** + +- NOT: "The system should be fast" → "User actions complete within 2 seconds" +- NOT: "The system should be secure" → "All data is encrypted at rest and in transit" +- NOT: "The system should scale" → "System supports 10x user growth with <10% performance degradation" + +### 5. Generate NFR Content (Only Relevant Categories) + +Prepare the content to append to the document: + +#### Content Structure (Dynamic based on relevance): + +When saving to document, append these Level 2 and Level 3 sections (only include sections that are relevant): + +```markdown +## Non-Functional Requirements + +### Performance + +[Performance requirements based on conversation - only include if relevant] + +### Security + +[Security requirements based on conversation - only include if relevant] + +### Scalability + +[Scalability requirements based on conversation - only include if relevant] + +### Accessibility + +[Accessibility requirements based on conversation - only include if relevant] + +### Integration + +[Integration requirements based on conversation - only include if relevant] +``` + +### 6. Present MENU OPTIONS + +Present the non-functional requirements for review, then display menu: +- Show defined NFRs (using structure from step 5) +- Note that only relevant categories were included +- Emphasize NFRs specify how well the system needs to perform +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of conversation + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Polish Document (Step 11 of 12)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the current NFR content, process the enhanced quality attribute insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the current NFR list, process the collaborative technical validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', append the content directly to the document using the structure from step 5. + +## SUCCESS METRICS: + +✅ Only relevant NFR categories documented (no requirement bloat) +✅ Each NFR is specific and measurable +✅ NFRs connected to actual user needs and business context +✅ Vague requirements converted to testable criteria +✅ Domain-specific compliance requirements included if relevant +✅ A/P/C menu presented and handled correctly +✅ Content properly appended to document when C selected + +## FAILURE MODES: + +❌ Documenting NFR categories that don't apply to the product +❌ Leaving requirements vague and unmeasurable +❌ Not connecting NFRs to actual user or business needs +❌ Missing domain-specific compliance requirements +❌ Creating overly prescriptive technical requirements +❌ Not presenting A/P/C menu after content generation +❌ Appending content without user selecting 'C' + +❌ **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 + +## NFR CATEGORY GUIDANCE: + +**Include Performance When:** + +- User-facing response times impact success +- Real-time interactions are critical +- Performance is a competitive differentiator + +**Include Security When:** + +- Handling sensitive user data +- Processing payments or financial information +- Subject to compliance regulations +- Protecting intellectual property + +**Include Scalability When:** + +- Expecting rapid user growth +- Handling variable traffic patterns +- Supporting enterprise-scale usage +- Planning for market expansion + +**Include Accessibility When:** + +- Serving broad public audiences +- Subject to accessibility regulations +- Targeting users with disabilities +- B2B customers with accessibility requirements + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load {nextStepFile} to finalize the PRD and complete the workflow. + +Remember: Do NOT proceed to step-11 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md b/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md new file mode 100644 index 000000000..e17a11185 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md @@ -0,0 +1,235 @@ +--- +name: 'step-11-polish' +description: 'Optimize and polish the complete PRD document for flow, coherence, and readability' + +# File References +nextStepFile: './step-12-complete.md' +outputFile: '{planning_artifacts}/prd.md' +purposeFile: '../data/prd-purpose.md' + +# Task References +advancedElicitationTask: 'skill:bmad-advanced-elicitation' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' +--- + +# Step 11: Document Polish + +**Progress: Step 11 of 12** - Next: Complete PRD + +## MANDATORY EXECUTION RULES (READ FIRST): + +- 🛑 CRITICAL: Load the ENTIRE document before making changes +- 📖 CRITICAL: Read complete step file before taking action +- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read +- ✅ This is a POLISH step - optimize existing content +- 📋 IMPROVE flow, coherence, and readability +- 💬 PRESERVE user's voice and intent +- 🎯 MAINTAIN all essential information while improving presentation +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` +- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Load complete document first +- 📝 Review for flow and coherence issues +- ✂️ Reduce duplication while preserving essential info +- 📖 Ensure proper ## Level 2 headers throughout +- 💾 Save optimized document +- ⚠️ Present A/P/C menu after polish +- 🚫 DO NOT skip review steps + +## CONTEXT BOUNDARIES: + +- Complete PRD document exists from all previous steps +- Document may have duplication from progressive append +- Sections may not flow smoothly together +- Level 2 headers ensure document can be split if needed +- Focus on readability and coherence + +## YOUR TASK: + +Optimize the complete PRD document for flow, coherence, and professional presentation while preserving all essential information. + +## DOCUMENT POLISH SEQUENCE: + +### 1. Load Context and Document + +**CRITICAL:** Load the PRD purpose document first: + +- Read `{purposeFile}` to understand what makes a great BMAD PRD +- Internalize the philosophy: information density, traceability, measurable requirements +- Keep the dual-audience nature (humans + LLMs) in mind + +**Then Load the PRD Document:** + +- Read `{outputFile}` completely from start to finish +- Understand the full document structure and content +- Identify all sections and their relationships +- Note areas that need attention + +### 2. Document Quality Review + +Review the entire document with PRD purpose principles in mind: + +**Information Density:** +- Are there wordy phrases that can be condensed? +- Is conversational padding present? +- Can sentences be more direct and concise? + +**Flow and Coherence:** +- Do sections transition smoothly? +- Are there jarring topic shifts? +- Does the document tell a cohesive story? +- Is the progression logical for readers? + +**Duplication Detection:** +- Are ideas repeated across sections? +- Is the same information stated multiple times? +- Can redundant content be consolidated? +- Are there contradictory statements? + +**Header Structure:** +- Are all main sections using ## Level 2 headers? +- Is the hierarchy consistent (##, ###, ####)? +- Can sections be easily extracted or referenced? +- Are headers descriptive and clear? + +**Readability:** +- Are sentences clear and concise? +- Is the language consistent throughout? +- Are technical terms used appropriately? +- Would stakeholders find this easy to understand? + +### 2b. Brainstorming Reconciliation (if brainstorming input exists) + +**Check the PRD frontmatter `inputDocuments` for any brainstorming document** (e.g., `brainstorming-session*.md`, `brainstorming-report.md`). If a brainstorming document was used as input: + +1. **Load the brainstorming document** and extract all distinct ideas, themes, and recommendations +2. **Cross-reference against the PRD** — for each brainstorming idea, check if it landed in any PRD section (requirements, success criteria, user journeys, scope, etc.) +3. **Identify dropped ideas** — ideas from brainstorming that do not appear anywhere in the PRD. Pay special attention to: + - Tone, personality, and interaction design ideas (these are most commonly lost) + - Design philosophy and coaching approach ideas + - "What should this feel like" ideas (UX feel, not just UX function) + - Qualitative/soft ideas that don't map cleanly to functional requirements +4. **Present findings to user**: "These brainstorming ideas did not make it into the PRD: [list]. Should any be incorporated?" +5. **If user wants to incorporate dropped ideas**: Add them to the most appropriate PRD section (success criteria, non-functional requirements, or a new section if needed) + +**Why this matters**: Brainstorming documents are often long, and the PRD's structured template has an implicit bias toward concrete/structural ideas. Soft ideas (tone, philosophy, interaction feel) frequently get silently dropped because they don't map cleanly to FR/NFR format. + +### 3. Optimization Actions + +Make targeted improvements: + +**Improve Flow:** +- Add transition sentences between sections +- Smooth out jarring topic shifts +- Ensure logical progression +- Connect related concepts across sections + +**Reduce Duplication:** +- Consolidate repeated information +- Keep content in the most appropriate section +- Use cross-references instead of repetition +- Remove redundant explanations + +**Enhance Coherence:** +- Ensure consistent terminology throughout +- Align all sections with product differentiator +- Maintain consistent voice and tone +- Verify scope consistency across sections + +**Optimize Headers:** +- Ensure all main sections use ## Level 2 +- Make headers descriptive and action-oriented +- Check that headers follow consistent patterns +- Verify headers support document navigation + +### 4. Preserve Critical Information + +**While optimizing, ensure NOTHING essential is lost:** + +**Must Preserve:** +- All user success criteria +- All functional requirements (capability contract) +- All user journey narratives +- All scope decisions (MVP, Growth, Vision) +- All non-functional requirements +- Product differentiator and vision +- Domain-specific requirements +- Innovation analysis (if present) + +**Can Consolidate:** +- Repeated explanations of the same concept +- Redundant background information +- Multiple versions of similar content +- Overlapping examples + +### 5. Generate Optimized Document + +Create the polished version: + +**Polishing Process:** +1. Start with original document +2. Apply all optimization actions +3. Review to ensure nothing essential was lost +4. Verify improvements enhance readability +5. Prepare optimized version for review + +### 6. Present MENU OPTIONS + +Present the polished document for review, then display menu: +- Show what changed in the polish +- Highlight improvements made (flow, duplication, headers) +- Ask if they'd like to refine further, get other perspectives, or proceed +- Present menu options naturally as part of conversation + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Complete PRD (Step 12 of 12)" + +#### Menu Handling Logic: +- IF A: Read fully and follow: {advancedElicitationTask} with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu +- IF P: Read fully and follow: {partyModeWorkflow} with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu +- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the entire document content with the polished version. + +## SUCCESS METRICS: + +✅ Complete document loaded and reviewed +✅ Flow and coherence improved +✅ Duplication reduced while preserving essential information +✅ All main sections use ## Level 2 headers +✅ Transitions between sections are smooth +✅ User's voice and intent preserved +✅ Document is more readable and professional +✅ A/P/C menu presented and handled correctly +✅ Brainstorming reconciliation completed (if brainstorming input exists) +✅ Polished document saved when C selected + +## FAILURE MODES: + +❌ Loading only partial document (leads to incomplete polish) +❌ Removing essential information while reducing duplication +❌ Not preserving user's voice and intent +❌ Changing content instead of improving presentation +❌ Not ensuring ## Level 2 headers for main sections +❌ Making arbitrary style changes instead of coherence improvements +❌ Not presenting A/P/C menu for user approval +❌ Saving polished document without user selecting 'C' + +❌ **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 changes without complete understanding of document requirements + +## NEXT STEP: + +After user selects 'C' and polished document is saved, load `./step-12-complete.md` to complete the workflow. + +Remember: Do NOT proceed to step-12 until user explicitly selects 'C' from the A/P/C menu and polished document is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md b/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md new file mode 100644 index 000000000..79b379096 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md @@ -0,0 +1,124 @@ +--- +name: 'step-12-complete' +description: 'Complete the PRD workflow, update status files, and suggest next steps including validation' + +# File References +outputFile: '{planning_artifacts}/prd.md' +# validationFlow: lives in the validate-prd workflow (separate skill) +--- + +# Step 12: Workflow Completion + +**Final Step - Complete the PRD** + +## MANDATORY EXECUTION RULES (READ FIRST): + +- ✅ THIS IS A FINAL STEP - Workflow completion required +- 📖 CRITICAL: ALWAYS read the complete step file before taking any action +- 🛑 NO content generation - this is a wrap-up step +- 📋 FINALIZE document and update workflow status +- 💬 FOCUS on completion, validation options, and next steps +- 🎯 UPDATE workflow status files with completion information +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- 💾 Update the main workflow status file with completion information (if exists) +- 📖 Offer validation workflow options to user +- 🚫 DO NOT load additional steps after this one + +## TERMINATION STEP PROTOCOLS: + +- This is a FINAL step - workflow completion required +- Update workflow status file with finalized document +- Suggest validation and next workflow steps +- Mark workflow as complete in status tracking + +## CONTEXT BOUNDARIES: + +- Complete and polished PRD document is available from all previous steps +- Workflow frontmatter shows all completed steps including polish +- All collaborative content has been generated, saved, and optimized +- Focus on completion, validation options, and next steps + +## YOUR TASK: + +Complete the PRD workflow, update status files, offer validation options, and suggest next steps for the project. + +## WORKFLOW COMPLETION SEQUENCE: + +### 1. Announce Workflow Completion + +Inform user that the PRD is complete and polished: +- Celebrate successful completion of comprehensive PRD +- Summarize all sections that were created +- Highlight that document has been polished for flow and coherence +- Emphasize document is ready for downstream work + +### 2. Workflow Status Update + +Update the main workflow status file if there is one: + +- Load `{status_file}` from workflow configuration (if exists) +- Update workflow_status["prd"] = "{default_output_file}" +- Save file, preserving all comments and structure +- Mark current timestamp as completion time + +### 3. Validation Workflow Options + +Offer validation workflows to ensure PRD is ready for implementation: + +**Available Validation Workflows:** + +**Option 1: Check Implementation Readiness** (`{checkImplementationReadinessWorkflow}`) +- Validates PRD has all information needed for development +- Checks epic coverage completeness +- Reviews UX alignment with requirements +- Assesses epic quality and readiness +- Identifies gaps before architecture/design work begins + +**When to use:** Before starting technical architecture or epic breakdown + +**Option 2: Skip for Now** +- Proceed directly to next workflows (architecture, UX, epics) +- Validation can be done later if needed +- Some teams prefer to validate during architecture reviews + +### 4. Suggest Next Workflows + +PRD complete. Invoke the `bmad-help` skill. + +### 5. Final Completion Confirmation + +- Confirm completion with user and summarize what has been accomplished +- Document now contains: Executive Summary, Success Criteria, User Journeys, Domain Requirements (if applicable), Innovation Analysis (if applicable), Project-Type Requirements, Functional Requirements (capability contract), Non-Functional Requirements, and has been polished for flow and coherence +- Ask if they'd like to run validation workflow or proceed to next workflows + +## SUCCESS METRICS: + +✅ PRD document contains all required sections and has been polished +✅ All collaborative content properly saved and optimized +✅ Workflow status file updated with completion information (if exists) +✅ Validation workflow options clearly presented +✅ Clear next step guidance provided to user +✅ Document quality validation completed +✅ User acknowledges completion and understands next options + +## FAILURE MODES: + +❌ Not updating workflow status file with completion information (if exists) +❌ Not offering validation workflow options +❌ Missing clear next step guidance for user +❌ Not confirming document completeness with user +❌ Workflow not properly marked as complete in status tracking (if applicable) +❌ User unclear about what happens next or what validation options exist + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## FINAL REMINDER to give the user: + +The polished PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD - update it also as needed as you continue planning. + +**Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉 diff --git a/src/core/tasks/bmad-create-prd/templates/prd-template.md b/src/core/tasks/bmad-create-prd/templates/prd-template.md new file mode 100644 index 000000000..d82219d2f --- /dev/null +++ b/src/core/tasks/bmad-create-prd/templates/prd-template.md @@ -0,0 +1,10 @@ +--- +stepsCompleted: [] +inputDocuments: [] +workflowType: 'prd' +--- + +# Product Requirements Document - {{project_name}} + +**Author:** {{user_name}} +**Date:** {{date}} diff --git a/src/core/tasks/bmad-create-prd/workflow.md b/src/core/tasks/bmad-create-prd/workflow.md new file mode 100644 index 000000000..a3ac365a0 --- /dev/null +++ b/src/core/tasks/bmad-create-prd/workflow.md @@ -0,0 +1,62 @@ +--- +main_config: '{project-root}/_bmad/bmm/config.yaml' +nextStep: './steps-c/step-01-init.md' +--- + +# PRD Create Workflow + +**Goal:** Create comprehensive PRDs through structured workflow facilitation. + +**Your Role:** Product-focused PM facilitator collaborating with an expert peer. + +You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description. + +## WORKFLOW ARCHITECTURE + +This uses **step-file architecture** for disciplined execution: + +### Core Principles + +- **Micro-file Design**: Each step is a self contained instruction file that is a part of an overall workflow that must be followed exactly +- **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so +- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed +- **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document +- **Append-Only Building**: Build documents by appending content as directed to the output file + +### Step Processing Rules + +1. **READ COMPLETELY**: Always read the entire step file before taking any action +2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate +3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection +4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue) +5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step +6. **LOAD NEXT**: When directed, read fully and follow the next step file + +### Critical Rules (NO EXCEPTIONS) + +- 🛑 **NEVER** load multiple step files simultaneously +- 📖 **ALWAYS** read entire step file before execution +- 🚫 **NEVER** skip steps or optimize the sequence +- 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step +- 🎯 **ALWAYS** follow the exact instructions in the step file +- ⏸️ **ALWAYS** halt at menus and wait for user input +- 📋 **NEVER** create mental todo lists from future steps + +## INITIALIZATION SEQUENCE + +### 1. Configuration Loading + +Load and read full config from {main_config} and resolve: + +- `project_name`, `output_folder`, `planning_artifacts`, `user_name` +- `communication_language`, `document_output_language`, `user_skill_level` +- `date` as system-generated current datetime + +✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`. +✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`. + +### 2. Route to Create Workflow + +"**Create Mode: Creating a new PRD from scratch.**" + +Read fully and follow: `{nextStep}` (steps-c/step-01-init.md) From b42f1e732ab4c95837e153c14a06d0123c792d8a Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Sat, 14 Mar 2026 17:14:02 -0600 Subject: [PATCH 2/2] fix(skill): clean up bmad-create-prd validation findings Strip name/description from all step frontmatter (STEP-06), remove intra-skill path variables and inline them (PATH-04), move outputFile to workflow.md (WF-03), fix stale step-11-complete refs (REF-02), fix product_knowledge typo (REF-01), rewrite continuation logic to use a lookup table, and strip legacy source workflow frontmatter. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../create-prd/steps-c/step-01-init.md | 191 -------------- .../create-prd/steps-c/step-01b-continue.md | 152 ----------- .../create-prd/steps-c/step-02-discovery.md | 225 ---------------- .../create-prd/steps-c/step-02b-vision.md | 155 ----------- .../steps-c/step-02c-executive-summary.md | 171 ------------ .../create-prd/steps-c/step-03-success.md | 227 ---------------- .../create-prd/steps-c/step-04-journeys.md | 214 --------------- .../create-prd/steps-c/step-05-domain.md | 208 --------------- .../create-prd/steps-c/step-06-innovation.md | 227 ---------------- .../steps-c/step-07-project-type.md | 238 ----------------- .../create-prd/steps-c/step-08-scoping.md | 229 ----------------- .../create-prd/steps-c/step-09-functional.md | 232 ----------------- .../steps-c/step-10-nonfunctional.md | 243 ------------------ .../create-prd/steps-c/step-11-polish.md | 235 ----------------- .../create-prd/steps-c/step-12-complete.md | 124 --------- .../create-prd/templates/prd-template.md | 10 - .../create-prd/workflow-create-prd.md | 65 ----- .../bmad-create-prd/steps-c/step-01-init.md | 27 +- .../steps-c/step-01b-continue.md | 49 ++-- .../steps-c/step-02-discovery.md | 29 +-- .../steps-c/step-02b-vision.md | 21 +- .../steps-c/step-02c-executive-summary.md | 21 +- .../steps-c/step-03-success.md | 19 +- .../steps-c/step-04-journeys.md | 19 +- .../bmad-create-prd/steps-c/step-05-domain.md | 26 +- .../steps-c/step-06-innovation.md | 30 +-- .../steps-c/step-07-project-type.md | 26 +- .../steps-c/step-08-scoping.md | 21 +- .../steps-c/step-09-functional.md | 21 +- .../steps-c/step-10-nonfunctional.md | 21 +- .../bmad-create-prd/steps-c/step-11-polish.md | 22 +- .../steps-c/step-12-complete.md | 15 +- src/core/tasks/bmad-create-prd/workflow.md | 4 +- 33 files changed, 95 insertions(+), 3422 deletions(-) delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md delete mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md deleted file mode 100644 index 4b53688d0..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -name: 'step-01-init' -description: 'Initialize the PRD workflow by detecting continuation state and setting up the document' - -# File References -nextStepFile: './step-02-discovery.md' -continueStepFile: './step-01b-continue.md' -outputFile: '{planning_artifacts}/prd.md' - -# Template Reference -prdTemplate: '../templates/prd-template.md' ---- - -# Step 1: Workflow Initialization - -**Progress: Step 1 of 11** - Next: Project Discovery - -## STEP GOAL: - -Initialize the PRD workflow by detecting continuation state, discovering input documents, and setting up the document structure for collaborative product requirement discovery. - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ If you already have been given a name, communication_style and persona, continue to use those while playing this new role -- ✅ We engage in collaborative dialogue, not command-response -- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision - -### Step-Specific Rules: - -- 🎯 Focus only on initialization and setup - no content generation yet -- 🚫 FORBIDDEN to look ahead to future steps or assume knowledge from them -- 💬 Approach: Systematic setup with clear reporting to user -- 🚪 Detect existing workflow state and handle continuation properly - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis of current state before taking any action -- 💾 Initialize document structure and update frontmatter appropriately -- Update frontmatter: add this step name to the end of the steps completed array (it should be the first entry in the steps array since this is step 1) -- 🚫 FORBIDDEN to load next step until user selects 'C' (Continue) - -## CONTEXT BOUNDARIES: - -- Available context: Variables from workflow.md are available in memory -- Focus: Workflow initialization and document setup only -- Limits: Don't assume knowledge from other steps or create content yet -- Dependencies: Configuration loaded from workflow.md initialization - -## Sequence of Instructions (Do not deviate, skip, or optimize) - -### 1. Check for Existing Workflow State - -First, check if the output document already exists: - -**Workflow State Detection:** - -- Look for file at `{outputFile}` -- If exists, read the complete file including frontmatter -- If not exists, this is a fresh workflow - -### 2. Handle Continuation (If Document Exists) - -If the document exists and has frontmatter with `stepsCompleted` BUT `step-11-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete: - -**Continuation Protocol:** - -- **STOP immediately** and load `{continueStepFile}` -- Do not proceed with any initialization tasks -- Let step-01b handle all continuation logic -- This is an auto-proceed situation - no user choice needed - -### 3. Fresh Workflow Setup (If No Document) - -If no document exists or no `stepsCompleted` in frontmatter: - -#### A. Input Document Discovery - -Discover and load context documents using smart discovery. Documents can be in the following locations: -- {planning_artifacts}/** -- {output_folder}/** -- {product_knowledge}/** -- docs/** - -Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content) - -Try to discover the following: -- Product Brief (`*brief*.md`) -- Research Documents (`/*research*.md`) -- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.) -- Project Context (`**/project-context.md`) - -Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules - -**Loading Rules:** - -- Load ALL discovered files completely that the user confirmed or provided (no offset/limit) -- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process -- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document -- index.md is a guide to what's relevant whenever available -- Track all successfully loaded files in frontmatter `inputDocuments` array - -#### B. Create Initial Document - -**Document Setup:** - -- Copy the template from `{prdTemplate}` to `{outputFile}` -- Initialize frontmatter with proper structure including inputDocuments array. - -#### C. Present Initialization Results - -**Setup Report to User:** - -"Welcome {{user_name}}! I've set up your PRD workspace for {{project_name}}. - -**Document Setup:** - -- Created: `{outputFile}` from template -- Initialized frontmatter with workflow state - -**Input Documents Discovered:** - -- Product briefs: {{briefCount}} files {if briefCount > 0}✓ loaded{else}(none found){/if} -- Research: {{researchCount}} files {if researchCount > 0}✓ loaded{else}(none found){/if} -- Brainstorming: {{brainstormingCount}} files {if brainstormingCount > 0}✓ loaded{else}(none found){/if} -- Project docs: {{projectDocsCount}} files {if projectDocsCount > 0}✓ loaded (brownfield project){else}(none found - greenfield project){/if} - -**Files loaded:** {list of specific file names or "No additional documents found"} - -{if projectDocsCount > 0} -📋 **Note:** This is a **brownfield project**. Your existing project documentation has been loaded. In the next step, I'll ask specifically about what new features or changes you want to add to your existing system. -{/if} - -Do you have any other documents you'd like me to include, or shall we continue to the next step?" - -### 4. Present MENU OPTIONS - -Display menu after setup report: - -"[C] Continue - Save this and move to Project Discovery (Step 2 of 11)" - -#### Menu Handling Logic: - -- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: {nextStepFile} -- IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report -- IF user asks questions: Answer and redisplay menu - -#### EXECUTION RULES: - -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then read fully and follow: `{nextStepFile}` to begin project discovery. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- Existing workflow detected and properly handed off to step-01b -- Fresh workflow initialized with template and proper frontmatter -- Input documents discovered and loaded using sharded-first logic -- All discovered files tracked in frontmatter `inputDocuments` -- User clearly informed of brownfield vs greenfield status -- Menu presented and user input handled correctly -- Frontmatter updated with this step name added to stepsCompleted before proceeding - -### ❌ SYSTEM FAILURE: - -- Proceeding with fresh initialization when existing workflow exists -- Not updating frontmatter with discovered input documents -- **Not storing document counts in frontmatter** -- Creating document without proper template structure -- Not checking sharded folders first before whole files -- Not reporting discovered documents to user clearly -- Proceeding without user selecting 'C' (Continue) - -**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md deleted file mode 100644 index 2ad958b69..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -name: 'step-01b-continue' -description: 'Resume an interrupted PRD workflow from the last completed step' - -# File References -outputFile: '{planning_artifacts}/prd.md' ---- - -# Step 1B: Workflow Continuation - -## STEP GOAL: - -Resume the PRD workflow from where it was left off, ensuring smooth continuation with full context restoration. - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ We engage in collaborative dialogue, not command-response -- ✅ Resume workflow from exact point where it was interrupted - -### Step-Specific Rules: - -- 💬 FOCUS on understanding where we left off and continuing appropriately -- 🚫 FORBIDDEN to modify content completed in previous steps -- 📖 Only reload documents that were already tracked in `inputDocuments` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis of current state before taking action -- Update frontmatter: add this step name to the end of the steps completed array -- 📖 Only load documents that were already tracked in `inputDocuments` -- 🚫 FORBIDDEN to discover new input documents during continuation - -## CONTEXT BOUNDARIES: - -- Available context: Current document and frontmatter are already loaded -- Focus: Workflow state analysis and continuation logic only -- Limits: Don't assume knowledge beyond what's in the document -- Dependencies: Existing workflow state from previous session - -## Sequence of Instructions (Do not deviate, skip, or optimize) - -### 1. Analyze Current State - -**State Assessment:** -Review the frontmatter to understand: - -- `stepsCompleted`: Array of completed step filenames -- Last element of `stepsCompleted` array: The most recently completed step -- `inputDocuments`: What context was already loaded -- All other frontmatter variables - -### 2. Restore Context Documents - -**Context Reloading:** - -- For each document in `inputDocuments`, load the complete file -- This ensures you have full context for continuation -- Don't discover new documents - only reload what was previously processed - -### 3. Determine Next Step - -**Simplified Next Step Logic:** -1. Get the last element from the `stepsCompleted` array (this is the filename of the last completed step, e.g., "step-03-success.md") -2. Load that step file and read its frontmatter -3. Extract the `nextStepFile` value from the frontmatter -4. That's the next step to load! - -**Example:** -- If `stepsCompleted = ["step-01-init.md", "step-02-discovery.md", "step-03-success.md"]` -- Last element is `"step-03-success.md"` -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md`, read its frontmatter -- Read fully and follow: `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md` - -### 4. Handle Workflow Completion - -**If `stepsCompleted` array contains `"step-11-complete.md"`:** -"Great news! It looks like we've already completed the PRD workflow for {{project_name}}. - -The final document is ready at `{outputFile}` with all sections completed. - -Would you like me to: - -- Review the completed PRD with you -- Suggest next workflow steps (like architecture or epic creation) -- Start a new PRD revision - -What would be most helpful?" - -### 5. Present Current Progress - -**If workflow not complete:** -"Welcome back {{user_name}}! I'm resuming our PRD collaboration for {{project_name}}. - -**Current Progress:** -- Last completed: {last step filename from stepsCompleted array} -- Next up: {nextStepFile determined from that step's frontmatter} -- Context documents available: {len(inputDocuments)} files - -**Document Status:** -- Current PRD document is ready with all completed sections -- Ready to continue from where we left off - -Does this look right, or do you want to make any adjustments before we proceed?" - -### 6. Present MENU OPTIONS - -Display: "**Select an Option:** [C] Continue to {next step name}" - -#### Menu Handling Logic: - -- IF C: Read fully and follow the {nextStepFile} determined in step 3 -- IF Any other comments or queries: respond and redisplay menu - -#### EXECUTION RULES: - -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow: {nextStepFile} to resume the workflow. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- All previous input documents successfully reloaded -- Current workflow state accurately analyzed and presented -- User confirms understanding of progress before continuation -- Correct next step identified and prepared for loading - -### ❌ SYSTEM FAILURE: - -- Discovering new input documents instead of reloading existing ones -- Modifying content from already completed steps -- Failing to extract nextStepFile from the last completed step's frontmatter -- Proceeding without user confirmation of current state - -**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md deleted file mode 100644 index 4a945ada2..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +++ /dev/null @@ -1,225 +0,0 @@ ---- -name: 'step-02-discovery' -description: 'Discover project type, domain, and context through collaborative dialogue' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '../data/project-types.csv' -domainComplexityCSV: '../data/domain-complexity.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 2: Project Discovery - -**Progress: Step 2 of 13** - Next: Product Vision - -## STEP GOAL: - -Discover and classify the project - understand what type of product this is, what domain it operates in, and the project context (greenfield vs brownfield). - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read -- ✅ ALWAYS treat this as collaborative discovery between PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ We engage in collaborative dialogue, not command-response -- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision - -### Step-Specific Rules: - -- 🎯 Focus on classification and understanding - no content generation yet -- 🚫 FORBIDDEN to generate executive summary or vision statements (that's next steps) -- 💬 APPROACH: Natural conversation to understand the project -- 🎯 LOAD classification data BEFORE starting discovery conversation - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after classification complete -- 💾 ONLY save classification to frontmatter when user chooses C (Continue) -- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from step 1 are available -- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs) -- **Document counts available in frontmatter `documentCounts`** -- Classification CSV data will be loaded in this step only -- No executive summary or vision content yet (that's steps 2b and 2c) - -## YOUR TASK: - -Discover and classify the project through natural conversation: -- What type of product is this? (web app, API, mobile, etc.) -- What domain does it operate in? (healthcare, fintech, e-commerce, etc.) -- What's the project context? (greenfield new product vs brownfield existing system) -- How complex is this domain? (low, medium, high) - -## DISCOVERY SEQUENCE: - -### 1. Check Document State - -Read the frontmatter from `{outputFile}` to get document counts: -- `briefCount` - Product briefs available -- `researchCount` - Research documents available -- `brainstormingCount` - Brainstorming docs available -- `projectDocsCount` - Existing project documentation - -**Announce your understanding:** - -"From step 1, I have loaded: -- Product briefs: {{briefCount}} -- Research: {{researchCount}} -- Brainstorming: {{brainstormingCount}} -- Project docs: {{projectDocsCount}} - -{{if projectDocsCount > 0}}This is a brownfield project - I'll focus on understanding what you want to add or change.{{else}}This is a greenfield project - I'll help you define the full product vision.{{/if}}" - -### 2. Load Classification Data - -**Attempt subprocess data lookup:** - -**Project Type Lookup:** -"Your task: Lookup data in {projectTypesCSV} - -**Search criteria:** -- Find row where project_type matches {{detectedProjectType}} - -**Return format:** -Return ONLY the matching row as a YAML-formatted object with these fields: -project_type, detection_signals - -**Do NOT return the entire CSV - only the matching row.**" - -**Domain Complexity Lookup:** -"Your task: Lookup data in {domainComplexityCSV} - -**Search criteria:** -- Find row where domain matches {{detectedDomain}} - -**Return format:** -Return ONLY the matching row as a YAML-formatted object with these fields: -domain, complexity, typical_concerns, compliance_requirements - -**Do NOT return the entire CSV - only the matching row.**" - -**Graceful degradation (if Task tool unavailable):** -- Load the CSV files directly -- Find the matching rows manually -- Extract required fields -- Keep in memory for intelligent classification - -### 3. Begin Discovery Conversation - -**Start with what you know:** - -If the user has a product brief or project docs, acknowledge them and share your understanding. Then ask clarifying questions to deepen your understanding. - -If this is a greenfield project with no docs, start with open-ended discovery: -- What problem does this solve? -- Who's it for? -- What excites you about building this? - -**Listen for classification signals:** - -As the user describes their product, match against: -- **Project type signals** (API, mobile, SaaS, etc.) -- **Domain signals** (healthcare, fintech, education, etc.) -- **Complexity indicators** (regulated industries, novel technology, etc.) - -### 4. Confirm Classification - -Once you have enough understanding, share your classification: - -"I'm hearing this as: -- **Project Type:** {{detectedType}} -- **Domain:** {{detectedDomain}} -- **Complexity:** {{complexityLevel}} - -Does this sound right to you?" - -Let the user confirm or refine your classification. - -### 5. Save Classification to Frontmatter - -When user selects 'C', update frontmatter with classification: -```yaml -classification: - projectType: {{projectType}} - domain: {{domain}} - complexity: {{complexityLevel}} - projectContext: {{greenfield|brownfield}} -``` - -### N. Present MENU OPTIONS - -Present the project classification for review, then display menu: - -"Based on our conversation, I've discovered and classified your project. - -**Here's the classification:** - -**Project Type:** {{detectedType}} -**Domain:** {{detectedDomain}} -**Complexity:** {{complexityLevel}} -**Project Context:** {{greenfield|brownfield}} - -**What would you like to do?**" - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menu -- IF C: Save classification to {outputFile} frontmatter, add this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `{nextStepFile}` to explore product vision. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- Document state checked and announced to user -- Classification data loaded and used intelligently -- Natural conversation to understand project type, domain, complexity -- Classification validated with user before saving -- Frontmatter updated with classification when C selected -- User's existing documents acknowledged and built upon - -### ❌ SYSTEM FAILURE: - -- Not reading documentCounts from frontmatter first -- Skipping classification data loading -- Generating executive summary or vision content (that's later steps!) -- Not validating classification with user -- Being prescriptive instead of having natural conversation -- Proceeding without user selecting 'C' - -**Master Rule:** This is classification and understanding only. No content generation yet. Build on what the user already has. Have natural conversations, don't follow scripts. diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md deleted file mode 100644 index e9b02e16d..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -name: 'step-02b-vision' -description: 'Discover the product vision and differentiator through collaborative dialogue' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 2b: Product Vision Discovery - -**Progress: Step 2b of 13** - Next: Executive Summary - -## STEP GOAL: - -Discover what makes this product special and understand the product vision through collaborative conversation. No content generation — facilitation only. - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read -- ✅ ALWAYS treat this as collaborative discovery between PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ We engage in collaborative dialogue, not command-response -- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision - -### Step-Specific Rules: - -- 🎯 Focus on discovering vision and differentiator — no content generation yet -- 🚫 FORBIDDEN to generate executive summary content (that's the next step) -- 🚫 FORBIDDEN to append anything to the document in this step -- 💬 APPROACH: Natural conversation to understand what makes this product special -- 🎯 BUILD ON classification insights from step 2 - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after vision discovery is complete -- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from steps 1 and 2 are available -- Project classification exists from step 2 (project type, domain, complexity, context) -- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs) -- No executive summary content yet (that's step 2c) -- This step ONLY discovers — it does NOT write to the document - -## YOUR TASK: - -Discover the product vision and differentiator through natural conversation. Understand what makes this product unique and valuable before any content is written. - -## VISION DISCOVERY SEQUENCE: - -### 1. Acknowledge Classification Context - -Reference the classification from step 2 and use it to frame the vision conversation: - -"We've established this is a {{projectType}} in the {{domain}} domain with {{complexityLevel}} complexity. Now let's explore what makes this product special." - -### 2. Explore What Makes It Special - -Guide the conversation to uncover the product's unique value: - -- **User delight:** "What would make users say 'this is exactly what I needed'?" -- **Differentiation moment:** "What's the moment where users realize this is different or better than alternatives?" -- **Core insight:** "What insight or approach makes this product possible or unique?" -- **Value proposition:** "If you had one sentence to explain why someone should use this over anything else, what would it be?" - -### 3. Understand the Vision - -Dig deeper into the product vision: - -- **Problem framing:** "What's the real problem you're solving — not the surface symptom, but the deeper need?" -- **Future state:** "When this product is successful, what does the world look like for your users?" -- **Why now:** "Why is this the right time to build this?" - -### 4. Validate Understanding - -Reflect back what you've heard and confirm: - -"Here's what I'm hearing about your vision and differentiator: - -**Vision:** {{summarized_vision}} -**What Makes It Special:** {{summarized_differentiator}} -**Core Insight:** {{summarized_insight}} - -Does this capture it? Anything I'm missing?" - -Let the user confirm or refine your understanding. - -### N. Present MENU OPTIONS - -Present your understanding of the product vision for review, then display menu: - -"Based on our conversation, I have a clear picture of your product vision and what makes it special. I'll use these insights to draft the Executive Summary in the next step. - -**What would you like to do?**" - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Executive Summary (Step 2c of 13)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu -- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `{nextStepFile}` to generate the Executive Summary. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- Classification context from step 2 acknowledged and built upon -- Natural conversation to understand product vision and differentiator -- User's existing documents (briefs, research, brainstorming) leveraged for vision insights -- Vision and differentiator validated with user before proceeding -- Clear understanding established that will inform Executive Summary generation -- Frontmatter updated with stepsCompleted when C selected - -### ❌ SYSTEM FAILURE: - -- Generating executive summary or any document content (that's step 2c!) -- Appending anything to the PRD document -- Not building on classification from step 2 -- Being prescriptive instead of having natural conversation -- Proceeding without user selecting 'C' - -❌ **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 - -**Master Rule:** This step is vision discovery only. No content generation, no document writing. Have natural conversations, build on what you know from classification, and establish the vision that will feed into the Executive Summary. diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md deleted file mode 100644 index 97fdbcd66..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -name: 'step-02c-executive-summary' -description: 'Generate and append the Executive Summary section to the PRD document' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 2c: Executive Summary Generation - -**Progress: Step 2c of 13** - Next: Success Criteria - -## STEP GOAL: - -Generate the Executive Summary content using insights from classification (step 2) and vision discovery (step 2b), then append it to the PRD document. - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read -- ✅ ALWAYS treat this as collaborative discovery between PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ We engage in collaborative dialogue, not command-response -- ✅ Content is drafted collaboratively — present for review before saving - -### Step-Specific Rules: - -- 🎯 Generate Executive Summary content based on discovered insights -- 💬 Present draft content for user review and refinement before appending -- 🚫 FORBIDDEN to append content without user approval via 'C' -- 🎯 Content must be dense, precise, and zero-fluff (PRD quality standards) - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating executive summary content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from steps 1, 2, and 2b are available -- Project classification exists from step 2 (project type, domain, complexity, context) -- Vision and differentiator insights exist from step 2b -- Input documents from step 1 are available (product briefs, research, brainstorming, project docs) -- This step generates and appends the first substantive content to the PRD - -## YOUR TASK: - -Draft the Executive Summary section using all discovered insights, present it for user review, and append it to the PRD document when approved. - -## EXECUTIVE SUMMARY GENERATION SEQUENCE: - -### 1. Synthesize Available Context - -Review all available context before drafting: -- Classification from step 2: project type, domain, complexity, project context -- Vision and differentiator from step 2b: what makes this special, core insight -- Input documents: product briefs, research, brainstorming, project docs - -### 2. Draft Executive Summary Content - -Generate the Executive Summary section using the content structure below. Apply PRD quality standards: -- High information density — every sentence carries weight -- Zero fluff — no filler phrases or vague language -- Precise and actionable — clear, specific statements -- Dual-audience optimized — readable by humans, consumable by LLMs - -### 3. Present Draft for Review - -Present the drafted content to the user for review: - -"Here's the Executive Summary I've drafted based on our discovery work. Please review and let me know if you'd like any changes:" - -Show the full drafted content using the structure from the Content Structure section below. - -Allow the user to: -- Request specific changes to any section -- Add missing information -- Refine the language or emphasis -- Approve as-is - -### N. Present MENU OPTIONS - -Present the executive summary content for user review, then display menu: - -"Here's the Executive Summary for your PRD. Review the content above and let me know what you'd like to do." - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Success Criteria (Step 3 of 13)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current executive summary content, process the enhanced content that comes back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current executive summary content, process the collaborative improvements, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the following content structure directly to the document: - -```markdown -## Executive Summary - -{vision_alignment_content} - -### What Makes This Special - -{product_differentiator_content} - -## Project Classification - -{project_classification_content} -``` - -Where: -- `{vision_alignment_content}` — Product vision, target users, and the problem being solved. Dense, precise summary drawn from step 2b vision discovery. -- `{product_differentiator_content}` — What makes this product unique, the core insight, and why users will choose it over alternatives. Drawn from step 2b differentiator discovery. -- `{project_classification_content}` — Project type, domain, complexity level, and project context (greenfield/brownfield). Drawn from step 2 classification. - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `{nextStepFile}` to define success criteria. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- Executive Summary drafted using insights from steps 2 and 2b -- Content meets PRD quality standards (dense, precise, zero-fluff) -- Draft presented to user for review before saving -- User given opportunity to refine content -- Content properly appended to document when C selected -- A/P/C menu presented and handled correctly -- Frontmatter updated with stepsCompleted when C selected - -### ❌ SYSTEM FAILURE: - -- Generating content without incorporating discovered vision and classification -- Appending content without user selecting 'C' -- Producing vague, fluffy, or low-density content -- Not presenting draft for user review -- Not presenting A/P/C menu after content generation -- Skipping directly to next step without appending content - -❌ **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 - -**Master Rule:** Generate high-quality Executive Summary content from discovered insights. Present for review, refine collaboratively, and only save when the user approves. This is the first substantive content in the PRD — it sets the quality bar for everything that follows. diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md deleted file mode 100644 index f7cbc5881..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +++ /dev/null @@ -1,227 +0,0 @@ ---- -name: 'step-03-success' -description: 'Define comprehensive success criteria covering user, business, and technical success' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 3: Success Criteria Definition - -**Progress: Step 3 of 11** - Next: User Journey Mapping - -## 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on defining what winning looks like for this product -- 🎯 COLLABORATIVE discovery, not assumption-based goal setting -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating success criteria content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- Executive Summary and Project Classification already exist in document -- Input documents from step-01 are available (product briefs, research, brainstorming) -- No additional data files needed for this step -- Focus on measurable, specific success criteria -- LEVERAGE existing input documents to inform success criteria - -## YOUR TASK: - -Define comprehensive success criteria that cover user success, business success, and technical success, using input documents as a foundation while allowing user refinement. - -## SUCCESS DISCOVERY SEQUENCE: - -### 1. Begin Success Definition Conversation - -**Check Input Documents for Success Indicators:** -Analyze product brief, research, and brainstorming documents for success criteria already mentioned. - -**If Input Documents Contain Success Criteria:** -Guide user to refine existing success criteria: -- Acknowledge what's already documented in their materials -- Extract key success themes from brief, research, and brainstorming -- Help user identify gaps and areas for expansion -- Probe for specific, measurable outcomes: When do users feel delighted/relieved/empowered? -- Ask about emotional success moments and completion scenarios -- Explore what "worth it" means beyond what's already captured - -**If No Success Criteria in Input Documents:** -Start with user-centered success exploration: -- Guide conversation toward defining what "worth it" means for users -- Ask about the moment users realize their problem is solved -- Explore specific user outcomes and emotional states -- Identify success "aha!" moments and completion scenarios -- Focus on user experience of success first - -### 2. Explore User Success Metrics - -Listen for specific user outcomes and help make them measurable: - -- Guide from vague to specific: NOT "users are happy" → "users complete [key action] within [timeframe]" -- Ask about emotional success: "When do they feel delighted/relieved/empowered?" -- Identify success moments: "What's the 'aha!' moment?" -- Define completion scenarios: "What does 'done' look like for the user?" - -### 3. Define Business Success - -Transition to business metrics: -- Guide conversation to business perspective on success -- Explore timelines: What does 3-month success look like? 12-month success? -- Identify key business metrics: revenue, user growth, engagement, or other measures? -- Ask what specific metric would indicate "this is working" -- Understand business success from their perspective - -### 4. Challenge Vague Metrics - -Push for specificity on business metrics: - -- "10,000 users" → "What kind of users? Doing what?" -- "99.9% uptime" → "What's the real concern - data loss? Failed payments?" -- "Fast" → "How fast, and what specifically needs to be fast?" -- "Good adoption" → "What percentage adoption by when?" - -### 5. Connect to Product Differentiator - -Tie success metrics back to what makes the product special: -- Connect success criteria to the product's unique differentiator -- Ensure metrics reflect the specific value proposition -- Adapt success criteria to domain context: - - Consumer: User love, engagement, retention - - B2B: ROI, efficiency, adoption - - Developer tools: Developer experience, community - - Regulated: Compliance, safety, validation - - GovTech: Government compliance, accessibility, procurement - -### 6. Smart Scope Negotiation - -Guide scope definition through success lens: -- Help user distinguish MVP (must work to be useful) from growth (competitive) and vision (dream) -- Guide conversation through three scope levels: - 1. MVP: What's essential for proving the concept? - 2. Growth: What makes it competitive? - 3. Vision: What's the dream version? -- Challenge scope creep conversationally: Could this wait until after launch? Is this essential for MVP? -- For complex domains: Ensure compliance minimums are included in MVP - -### 7. Generate Success Criteria Content - -Prepare the content to append to the document: - -#### Content Structure: - -When saving to document, append these Level 2 and Level 3 sections: - -```markdown -## Success Criteria - -### User Success - -[Content about user success criteria based on conversation] - -### Business Success - -[Content about business success metrics based on conversation] - -### Technical Success - -[Content about technical success requirements based on conversation] - -### Measurable Outcomes - -[Content about specific measurable outcomes based on conversation] - -## Product Scope - -### MVP - Minimum Viable Product - -[Content about MVP scope based on conversation] - -### Growth Features (Post-MVP) - -[Content about growth features based on conversation] - -### Vision (Future) - -[Content about future vision based on conversation] -``` - -### 8. Present MENU OPTIONS - -Present the success criteria content for user review, then display menu: - -- Show the drafted success criteria and scope definition (using structure from section 7) -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of the conversation - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to User Journey Mapping (Step 4 of 11)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current success criteria content, process the enhanced success metrics that come back, ask user "Accept these improvements to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current success criteria, process the collaborative improvements to metrics and scope, ask user "Accept these changes to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 7. - -## SUCCESS METRICS: - -✅ User success criteria clearly identified and made measurable -✅ Business success metrics defined with specific targets -✅ Success criteria connected to product differentiator -✅ Scope properly negotiated (MVP, Growth, Vision) -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Accepting vague success metrics without pushing for specificity -❌ Not connecting success criteria back to product differentiator -❌ Missing scope negotiation and leaving it undefined -❌ Generating content without real user input on what success looks like -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **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 - -## DOMAIN CONSIDERATIONS: - -If working in regulated domains (healthcare, fintech, govtech): - -- Include compliance milestones in success criteria -- Add regulatory approval timelines to MVP scope -- Consider audit requirements as technical success metrics - -## NEXT STEP: - -After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md` to map user journeys. - -Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md deleted file mode 100644 index 634f64da1..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +++ /dev/null @@ -1,214 +0,0 @@ ---- -name: 'step-04-journeys' -description: 'Map ALL user types that interact with the system with narrative story-based journeys' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 4: User Journey Mapping - -**Progress: Step 4 of 11** - Next: Domain Requirements - -## 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on mapping ALL user types that interact with the system -- 🎯 CRITICAL: No journey = no functional requirements = product doesn't exist -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating journey content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- Success criteria and scope already defined -- Input documents from step-01 are available (product briefs with user personas) -- Every human interaction with the system needs a journey - -## YOUR TASK: - -Create compelling narrative user journeys that leverage existing personas from product briefs and identify additional user types needed for comprehensive coverage. - -## JOURNEY MAPPING SEQUENCE: - -### 1. Leverage Existing Users & Identify Additional Types - -**Check Input Documents for Existing Personas:** -Analyze product brief, research, and brainstorming documents for user personas already defined. - -**If User Personas Exist in Input Documents:** -Guide user to build on existing personas: -- Acknowledge personas found in their product brief -- Extract key persona details and backstories -- Leverage existing insights about their needs -- Prompt to identify additional user types beyond those documented -- Suggest additional user types based on product context (admins, moderators, support, API consumers, internal ops) -- Ask what additional user types should be considered - -**If No Personas in Input Documents:** -Start with comprehensive user type discovery: -- Guide exploration of ALL people who interact with the system -- Consider beyond primary users: admins, moderators, support staff, API consumers, internal ops -- Ask what user types should be mapped for this specific product -- Ensure comprehensive coverage of all system interactions - -### 2. Create Narrative Story-Based Journeys - -For each user type, create compelling narrative journeys that tell their story: - -#### Narrative Journey Creation Process: - -**If Using Existing Persona from Input Documents:** -Guide narrative journey creation: -- Use persona's existing backstory from brief -- Explore how the product changes their life/situation -- Craft journey narrative: where do we meet them, how does product help them write their next chapter? - -**If Creating New Persona:** -Guide persona creation with story framework: -- Name: realistic name and personality -- Situation: What's happening in their life/work that creates need? -- Goal: What do they desperately want to achieve? -- Obstacle: What's standing in their way? -- Solution: How does the product solve their story? - -**Story-Based Journey Mapping:** - -Guide narrative journey creation using story structure: -- **Opening Scene**: Where/how do we meet them? What's their current pain? -- **Rising Action**: What steps do they take? What do they discover? -- **Climax**: Critical moment where product delivers real value -- **Resolution**: How does their situation improve? What's their new reality? - -Encourage narrative format with specific user details, emotional journey, and clear before/after contrast - -### 3. Guide Journey Exploration - -For each journey, facilitate detailed exploration: -- What happens at each step specifically? -- What could go wrong? What's the recovery path? -- What information do they need to see/hear? -- What's their emotional state at each point? -- Where does this journey succeed or fail? - -### 4. Connect Journeys to Requirements - -After each journey, explicitly state: -- This journey reveals requirements for specific capability areas -- Help user see how different journeys create different feature sets -- Connect journey needs to concrete capabilities (onboarding, dashboards, notifications, etc.) - -### 5. Aim for Comprehensive Coverage - -Guide toward complete journey set: - -- **Primary user** - happy path (core experience) -- **Primary user** - edge case (different goal, error recovery) -- **Secondary user** (admin, moderator, support, etc.) -- **API consumer** (if applicable) - -Ask if additional journeys are needed to cover uncovered user types - -### 6. Generate User Journey Content - -Prepare the content to append to the document: - -#### Content Structure: - -When saving to document, append these Level 2 and Level 3 sections: - -```markdown -## User Journeys - -[All journey narratives based on conversation] - -### Journey Requirements Summary - -[Summary of capabilities revealed by journeys based on conversation] -``` - -### 7. Present MENU OPTIONS - -Present the user journey content for review, then display menu: -- Show the mapped user journeys (using structure from section 6) -- Highlight how each journey reveals different capabilities -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of conversation - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Domain Requirements (Step 5 of 11)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current journey content, process the enhanced journey insights that come back, ask user "Accept these improvements to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current journeys, process the collaborative journey improvements and additions, ask user "Accept these changes to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 6. - -## SUCCESS METRICS: - -✅ Existing personas from product briefs leveraged when available -✅ All user types identified (not just primary users) -✅ Rich narrative storytelling for each persona and journey -✅ Complete story-based journey mapping with emotional arc -✅ Journey requirements clearly connected to capabilities needed -✅ Minimum 3-4 compelling narrative journeys covering different user types -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Ignoring existing personas from product briefs -❌ Only mapping primary user journeys and missing secondary users -❌ Creating generic journeys without rich persona details and narrative -❌ Missing emotional storytelling elements that make journeys compelling -❌ Missing critical decision points and failure scenarios -❌ Not connecting journeys to required capabilities -❌ Not having enough journey diversity (admin, support, API, etc.) -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **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 - -## JOURNEY TYPES TO ENSURE: - -**Minimum Coverage:** - -1. **Primary User - Success Path**: Core experience journey -2. **Primary User - Edge Case**: Error recovery, alternative goals -3. **Admin/Operations User**: Management, configuration, monitoring -4. **Support/Troubleshooting**: Help, investigation, issue resolution -5. **API/Integration** (if applicable): Developer/technical user journey - -## NEXT STEP: - -After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md`. - -Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md deleted file mode 100644 index c42463846..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -name: 'step-05-domain' -description: 'Explore domain-specific requirements for complex domains (optional step)' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md' -outputFile: '{planning_artifacts}/prd.md' -domainComplexityCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 5: Domain-Specific Requirements (Optional) - -**Progress: Step 5 of 13** - Next: Innovation Focus - -## STEP GOAL: - -For complex domains only that have a mapping in {domainComplexityCSV}, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product. - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read -- ✅ ALWAYS treat this as collaborative discovery between PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ We engage in collaborative dialogue, not command-response -- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise - -### Step-Specific Rules: - -- 🎯 This step is OPTIONAL - only needed for complex domains -- 🚫 SKIP if domain complexity is "low" from step-02 -- 💬 APPROACH: Natural conversation to discover domain-specific needs -- 🎯 Focus on constraints, compliance, and domain patterns - -## EXECUTION PROTOCOLS: - -- 🎯 Check domain complexity from step-02 classification first -- ⚠️ If complexity is "low", offer to skip this step -- ⚠️ Present A/P/C menu after domain requirements defined (or skipped) -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Domain classification from step-02 is available -- If complexity is low, this step may be skipped -- Domain CSV data provides complexity reference -- Focus on domain-specific constraints, not general requirements - -## YOUR TASK: - -For complex domains, explore what makes this domain special: -- **Compliance requirements** - regulations, standards, certifications -- **Technical constraints** - security, privacy, integration requirements -- **Domain patterns** - common patterns, best practices, anti-patterns -- **Risks and mitigations** - what could go wrong, how to prevent it - -## DOMAIN DISCOVERY SEQUENCE: - -### 1. Check Domain Complexity - -**Review classification from step-02:** - -- What's the domain complexity level? (low/medium/high) -- What's the specific domain? (healthcare, fintech, education, etc.) - -**If complexity is LOW:** - -Offer to skip: -"The domain complexity from our discovery is low. We may not need deep domain-specific requirements. Would you like to: -- [C] Skip this step and move to Innovation -- [D] Do domain exploration anyway" - -**If complexity is MEDIUM or HIGH:** - -Proceed with domain exploration. - -### 2. Load Domain Reference Data - -**Attempt subprocess data lookup:** - -"Your task: Lookup data in {domainComplexityCSV} - -**Search criteria:** -- Find row where domain matches {{domainFromStep02}} - -**Return format:** -Return ONLY the matching row as a YAML-formatted object with these fields: -domain, complexity, typical_concerns, compliance_requirements - -**Do NOT return the entire CSV - only the matching row.**" - -**Graceful degradation (if Task tool unavailable):** -- Load the CSV file directly -- Find the matching row manually -- Extract required fields -- Understand typical concerns and compliance requirements - -### 3. Explore Domain-Specific Concerns - -**Start with what you know:** - -Acknowledge the domain and explore what makes it complex: -- What regulations apply? (HIPAA, PCI-DSS, GDPR, SOX, etc.) -- What standards matter? (ISO, NIST, domain-specific standards) -- What certifications are needed? (security, privacy, domain-specific) -- What integrations are required? (EMR systems, payment processors, etc.) - -**Explore technical constraints:** -- Security requirements (encryption, audit logs, access control) -- Privacy requirements (data handling, consent, retention) -- Performance requirements (real-time, batch, latency) -- Availability requirements (uptime, disaster recovery) - -### 4. Document Domain Requirements - -**Structure the requirements around key concerns:** - -```markdown -### Compliance & Regulatory -- [Specific requirements] - -### Technical Constraints -- [Security, privacy, performance needs] - -### Integration Requirements -- [Required systems and data flows] - -### Risk Mitigations -- [Domain-specific risks and how to address them] -``` - -### 5. Validate Completeness - -**Check with the user:** - -"Are there other domain-specific concerns we should consider? For [this domain], what typically gets overlooked?" - -### N. Present MENU OPTIONS - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue - Save and Proceed to Innovation (Step 6 of 13)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask}, and when finished redisplay the menu -- IF P: Read fully and follow: {partyModeWorkflow}, and when finished redisplay the menu -- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: {nextStepFile} -- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options) - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT - -When user selects 'C', append to `{outputFile}`: - -```markdown -## Domain-Specific Requirements - -{{discovered domain requirements}} -``` - -If step was skipped, append nothing and proceed. - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then read fully and follow: `{nextStepFile}` to explore innovation. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- Domain complexity checked before proceeding -- Offered to skip if complexity is low -- Natural conversation exploring domain concerns -- Compliance, technical, and integration requirements identified -- Domain-specific risks documented with mitigations -- User validated completeness -- Content properly saved (or step skipped) when C selected - -### ❌ SYSTEM FAILURE: - -- Not checking domain complexity first -- Not offering to skip for low-complexity domains -- Missing critical compliance requirements -- Not exploring technical constraints -- Not asking about domain-specific risks -- Being generic instead of domain-specific -- Proceeding without user validation - -**Master Rule:** This step is OPTIONAL for simple domains. For complex domains, focus on compliance, constraints, and domain patterns. Natural conversation, not checklists. diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md deleted file mode 100644 index ea7ab3af4..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +++ /dev/null @@ -1,227 +0,0 @@ ---- -name: 'step-06-innovation' -description: 'Detect and explore innovative aspects of the product (optional step)' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 6: Innovation Discovery - -**Progress: Step 6 of 11** - Next: Project Type 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on detecting and exploring innovative aspects of the product -- 🎯 OPTIONAL STEP: Only proceed if innovation signals are detected -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating innovation content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- Project type from step-02 is available for innovation signal matching -- Project-type CSV data will be loaded in this step -- Focus on detecting genuine innovation, not forced creativity - -## OPTIONAL STEP CHECK: - -Before proceeding with this step, scan for innovation signals: - -- Listen for language like "nothing like this exists", "rethinking how X works" -- Check for project-type innovation signals from CSV -- Look for novel approaches or unique combinations -- If no innovation detected, skip this step - -## YOUR TASK: - -Detect and explore innovation patterns in the product, focusing on what makes it truly novel and how to validate the innovative aspects. - -## INNOVATION DISCOVERY SEQUENCE: - -### 1. Load Project-Type Innovation Data - -Load innovation signals specific to this project type: - -- Load `{projectTypesCSV}` completely -- Find the row where `project_type` matches detected type from step-02 -- Extract `innovation_signals` (semicolon-separated list) -- Extract `web_search_triggers` for potential innovation research - -### 2. Listen for Innovation Indicators - -Monitor conversation for both general and project-type-specific innovation signals: - -#### General Innovation Language: - -- "Nothing like this exists" -- "We're rethinking how [X] works" -- "Combining [A] with [B] for the first time" -- "Novel approach to [problem]" -- "No one has done [concept] before" - -#### Project-Type-Specific Signals (from CSV): - -Match user descriptions against innovation_signals for their project_type: - -- **api_backend**: "API composition;New protocol" -- **mobile_app**: "Gesture innovation;AR/VR features" -- **saas_b2b**: "Workflow automation;AI agents" -- **developer_tool**: "New paradigm;DSL creation" - -### 3. Initial Innovation Screening - -Ask targeted innovation discovery questions: -- Guide exploration of what makes the product innovative -- Explore if they're challenging existing assumptions -- Ask about novel combinations of technologies/approaches -- Identify what hasn't been done before -- Understand which aspects feel most innovative - -### 4. Deep Innovation Exploration (If Detected) - -If innovation signals are found, explore deeply: - -#### Innovation Discovery Questions: -- What makes it unique compared to existing solutions? -- What assumption are you challenging? -- How do we validate it works? -- What's the fallback if it doesn't? -- Has anyone tried this before? - -#### Market Context Research: - -If relevant innovation detected, consider web search for context: -Use `web_search_triggers` from project-type CSV: -`[web_search_triggers] {concept} innovations {date}` - -### 5. Generate Innovation Content (If Innovation Detected) - -Prepare the content to append to the document: - -#### Content Structure: - -When saving to document, append these Level 2 and Level 3 sections: - -```markdown -## Innovation & Novel Patterns - -### Detected Innovation Areas - -[Innovation patterns identified based on conversation] - -### Market Context & Competitive Landscape - -[Market context and research based on conversation] - -### Validation Approach - -[Validation methodology based on conversation] - -### Risk Mitigation - -[Innovation risks and fallbacks based on conversation] -``` - -### 6. Present MENU OPTIONS (Only if Innovation Detected) - -Present the innovation content for review, then display menu: -- Show identified innovative aspects (using structure from section 5) -- Highlight differentiation from existing solutions -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of conversation - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Project Type Analysis (Step 7 of 11)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current innovation content, process the enhanced innovation insights that come back, ask user "Accept these improvements to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current innovation content, process the collaborative innovation exploration and ideation, ask user "Accept these changes to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## NO INNOVATION DETECTED: - -If no genuine innovation signals are found after exploration: -- Acknowledge that no clear innovation signals were found -- Note this is fine - many successful products are excellent executions of existing concepts -- Ask if they'd like to try finding innovative angles or proceed - -Display: "**Select:** [A] Advanced Elicitation - Let's try to find innovative angles [C] Continue - Skip innovation section and move to Project Type Analysis (Step 7 of 11)" - -### Menu Handling Logic: -- IF A: Proceed with content generation anyway, then return to menu -- IF C: Skip this step, then read fully and follow: {nextStepFile} - -### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 5. - -## SUCCESS METRICS: - -✅ Innovation signals properly detected from user conversation -✅ Project-type innovation signals used to guide discovery -✅ Genuine innovation explored (not forced creativity) -✅ Validation approach clearly defined for innovative aspects -✅ Risk mitigation strategies identified -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Forced innovation when none genuinely exists -❌ Not using project-type innovation signals from CSV -❌ Missing market context research for novel concepts -❌ Not addressing validation approach for innovative features -❌ Creating innovation theater without real innovative aspects -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **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 - -## SKIP CONDITIONS: - -Skip this step and load `{nextStepFile}` if: - -- No innovation signals detected in conversation -- Product is incremental improvement rather than breakthrough -- User confirms innovation exploration is not needed -- Project-type CSV has no innovation signals for this type - -## NEXT STEP: - -After user selects 'C' and content is saved to document (or step is skipped), load `{nextStepFile}`. - -Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu (or confirms step skip)! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md deleted file mode 100644 index fc5d60d42..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -name: 'step-07-project-type' -description: 'Conduct project-type specific discovery using CSV-driven guidance' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '../data/project-types.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 7: Project-Type Deep Dive - -**Progress: Step 7 of 11** - Next: Scoping - -## 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on project-type specific requirements and technical considerations -- 🎯 DATA-DRIVEN: Use CSV configuration to guide discovery -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating project-type content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- Project type from step-02 is available for configuration loading -- Project-type CSV data will be loaded in this step -- Focus on technical and functional requirements specific to this project type - -## YOUR TASK: - -Conduct project-type specific discovery using CSV-driven guidance to define technical requirements. - -## PROJECT-TYPE DISCOVERY SEQUENCE: - -### 1. Load Project-Type Configuration Data - -**Attempt subprocess data lookup:** - -"Your task: Lookup data in {projectTypesCSV} - -**Search criteria:** -- Find row where project_type matches {{projectTypeFromStep02}} - -**Return format:** -Return ONLY the matching row as a YAML-formatted object with these fields: -project_type, key_questions, required_sections, skip_sections, innovation_signals - -**Do NOT return the entire CSV - only the matching row.**" - -**Graceful degradation (if Task tool unavailable):** -- Load the CSV file directly -- Find the matching row manually -- Extract required fields: - - `key_questions` (semicolon-separated list of discovery questions) - - `required_sections` (semicolon-separated list of sections to document) - - `skip_sections` (semicolon-separated list of sections to skip) - - `innovation_signals` (already explored in step-6) - -### 2. Conduct Guided Discovery Using Key Questions - -Parse `key_questions` from CSV and explore each: - -#### Question-Based Discovery: - -For each question in `key_questions` from CSV: - -- Ask the user naturally in conversational style -- Listen for their response and ask clarifying follow-ups -- Connect answers to product value proposition - -**Example Flow:** -If key_questions = "Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?" - -Ask naturally: - -- "What are the main endpoints your API needs to expose?" -- "How will you handle authentication and authorization?" -- "What data formats will you support for requests and responses?" - -### 3. Document Project-Type Specific Requirements - -Based on user answers to key_questions, synthesize comprehensive requirements: - -#### Requirement Categories: - -Cover the areas indicated by `required_sections` from CSV: - -- Synthesize what was discovered for each required section -- Document specific requirements, constraints, and decisions -- Connect to product differentiator when relevant - -#### Skip Irrelevant Sections: - -Skip areas indicated by `skip_sections` from CSV to avoid wasting time on irrelevant aspects. - -### 4. Generate Dynamic Content Sections - -Parse `required_sections` list from the matched CSV row. For each section name, generate corresponding content: - -#### Common CSV Section Mappings: - -- "endpoint_specs" or "endpoint_specification" → API endpoints documentation -- "auth_model" or "authentication_model" → Authentication approach -- "platform_reqs" or "platform_requirements" → Platform support needs -- "device_permissions" or "device_features" → Device capabilities -- "tenant_model" → Multi-tenancy approach -- "rbac_matrix" or "permission_matrix" → Permission structure - -#### Template Variable Strategy: - -- For sections matching common template variables: generate specific content -- For sections without template matches: include in main project_type_requirements -- Hybrid approach balances template structure with CSV-driven flexibility - -### 5. Generate Project-Type Content - -Prepare the content to append to the document: - -#### Content Structure: - -When saving to document, append these Level 2 and Level 3 sections: - -```markdown -## [Project Type] Specific Requirements - -### Project-Type Overview - -[Project type summary based on conversation] - -### Technical Architecture Considerations - -[Technical architecture requirements based on conversation] - -[Dynamic sections based on CSV and conversation] - -### Implementation Considerations - -[Implementation specific requirements based on conversation] -``` - -### 6. Present MENU OPTIONS - -Present the project-type content for review, then display menu: - -"Based on our conversation and best practices for this product type, I've documented the {project_type}-specific requirements for {{project_name}}. - -**Here's what I'll add to the document:** - -[Show the complete markdown content from section 5] - -**What would you like to do?**" - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Scoping (Step 8 of 11)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current project-type content, process the enhanced technical insights that come back, ask user "Accept these improvements to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current project-type requirements, process the collaborative technical expertise and validation, ask user "Accept these changes to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from previous steps. - -## SUCCESS METRICS: - -✅ Project-type configuration loaded and used effectively -✅ All key questions from CSV explored with user input -✅ Required sections generated per CSV configuration -✅ Skip sections properly avoided to save time -✅ Technical requirements connected to product value -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Not loading or using project-type CSV configuration -❌ Missing key questions from CSV in discovery process -❌ Not generating required sections per CSV configuration -❌ Documenting sections that should be skipped per CSV -❌ Creating generic content without project-type specificity -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **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 - -## PROJECT-TYPE EXAMPLES: - -**For api_backend:** - -- Focus on endpoints, authentication, data schemas, rate limiting -- Skip visual design and user journey sections -- Generate API specification documentation - -**For mobile_app:** - -- Focus on platform requirements, device permissions, offline mode -- Skip API endpoint documentation unless needed -- Generate mobile-specific technical requirements - -**For saas_b2b:** - -- Focus on multi-tenancy, permissions, integrations -- Skip mobile-first considerations unless relevant -- Generate enterprise-specific requirements - -## NEXT STEP: - -After user selects 'C' and content is saved to document, load `{nextStepFile}` to define project scope. - -Remember: Do NOT proceed to step-08 (Scoping) until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md deleted file mode 100644 index 071f0622d..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +++ /dev/null @@ -1,229 +0,0 @@ ---- -name: 'step-08-scoping' -description: 'Define MVP boundaries and prioritize features across development phases' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 8: Scoping Exercise - MVP & Future Features - -**Progress: Step 8 of 11** - Next: Functional Requirements - -## 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on strategic scope decisions that keep projects viable -- 🎯 EMPHASIZE lean MVP thinking while preserving long-term vision -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- 📚 Review the complete PRD document built so far -- ⚠️ Present A/P/C menu after generating scoping decisions -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - - -## CONTEXT BOUNDARIES: - -- Complete PRD document built so far is available for review -- User journeys, success criteria, and domain requirements are documented -- Focus on strategic scope decisions, not feature details -- Balance between user value and implementation feasibility - -## YOUR TASK: - -Conduct comprehensive scoping exercise to define MVP boundaries and prioritize features across development phases. - -## SCOPING SEQUENCE: - -### 1. Review Current PRD State - -Analyze everything documented so far: -- Present synthesis of established vision, success criteria, journeys -- Assess domain and innovation focus -- Evaluate scope implications: simple MVP, medium, or complex project -- Ask if initial assessment feels right or if they see it differently - -### 2. Define MVP Strategy - -Facilitate strategic MVP decisions: -- Explore MVP philosophy options: problem-solving, experience, platform, or revenue MVP -- Ask critical questions: - - What's the minimum that would make users say 'this is useful'? - - What would make investors/partners say 'this has potential'? - - What's the fastest path to validated learning? -- Guide toward appropriate MVP approach for their product - -### 3. Scoping Decision Framework - -Use structured decision-making for scope: - -**Must-Have Analysis:** -- Guide identification of absolute MVP necessities -- For each journey and success criterion, ask: - - Without this, does the product fail? - - Can this be manual initially? - - Is this a deal-breaker for early adopters? -- Analyze journeys for MVP essentials - -**Nice-to-Have Analysis:** -- Identify what could be added later: - - Features that enhance but aren't essential - - User types that can be added later - - Advanced functionality that builds on MVP -- Ask what features could be added in versions 2, 3, etc. - -### 4. Progressive Feature Roadmap - -Create phased development approach: -- Guide mapping of features across development phases -- Structure as Phase 1 (MVP), Phase 2 (Growth), Phase 3 (Vision) -- Ensure clear progression and dependencies - -- Core user value delivery -- Essential user journeys -- Basic functionality that works reliably - -**Phase 2: Growth** - -- Additional user types -- Enhanced features -- Scale improvements - -**Phase 3: Expansion** - -- Advanced capabilities -- Platform features -- New markets or use cases - -**Where does your current vision fit in this development sequence?**" - -### 5. Risk-Based Scoping - -Identify and mitigate scoping risks: - -**Technical Risks:** -"Looking at your innovation and domain requirements: - -- What's the most technically challenging aspect? -- Could we simplify the initial implementation? -- What's the riskiest assumption about technology feasibility?" - -**Market Risks:** - -- What's the biggest market risk? -- How does the MVP address this? -- What learning do we need to de-risk this?" - -**Resource Risks:** - -- What if we have fewer resources than planned? -- What's the absolute minimum team size needed? -- Can we launch with a smaller feature set?" - -### 6. Generate Scoping Content - -Prepare comprehensive scoping section: - -#### Content Structure: - -```markdown -## Project Scoping & Phased Development - -### MVP Strategy & Philosophy - -**MVP Approach:** {{chosen_mvp_approach}} -**Resource Requirements:** {{mvp_team_size_and_skills}} - -### MVP Feature Set (Phase 1) - -**Core User Journeys Supported:** -{{essential_journeys_for_mvp}} - -**Must-Have Capabilities:** -{{list_of_essential_mvp_features}} - -### Post-MVP Features - -**Phase 2 (Post-MVP):** -{{planned_growth_features}} - -**Phase 3 (Expansion):** -{{planned_expansion_features}} - -### Risk Mitigation Strategy - -**Technical Risks:** {{mitigation_approach}} -**Market Risks:** {{validation_approach}} -**Resource Risks:** {{contingency_approach}} -``` - -### 7. Present MENU OPTIONS - -Present the scoping decisions for review, then display menu: -- Show strategic scoping plan (using structure from step 6) -- Highlight MVP boundaries and phased roadmap -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of conversation - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Functional Requirements (Step 9 of 11)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current scoping analysis, process the enhanced insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the scoping context, process the collaborative insights on MVP and roadmap decisions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 6. - -## SUCCESS METRICS: - -✅ Complete PRD document analyzed for scope implications -✅ Strategic MVP approach defined and justified -✅ Clear MVP feature boundaries established -✅ Phased development roadmap created -✅ Key risks identified and mitigation strategies defined -✅ User explicitly agrees to scope decisions -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Not analyzing the complete PRD before making scoping decisions -❌ Making scope decisions without strategic rationale -❌ Not getting explicit user agreement on MVP boundaries -❌ Missing critical risk analysis -❌ Not creating clear phased development approach -❌ 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 {nextStepFile}. - -Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md deleted file mode 100644 index 552a0a8ce..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -name: 'step-09-functional' -description: 'Synthesize all discovery into comprehensive functional requirements' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 9: Functional Requirements Synthesis - -**Progress: Step 9 of 11** - Next: Non-Functional Requirements - -## 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on creating comprehensive capability inventory for the product -- 🎯 CRITICAL: This is THE CAPABILITY CONTRACT for all downstream work -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating functional requirements -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- ALL previous content (executive summary, success criteria, journeys, domain, innovation, project-type) must be referenced -- No additional data files needed for this step -- Focus on capabilities, not implementation details - -## CRITICAL IMPORTANCE: - -**This section defines THE CAPABILITY CONTRACT for the entire product:** - -- UX designers will ONLY design what's listed here -- Architects will ONLY support what's listed here -- Epic breakdown will ONLY implement what's listed here -- If a capability is missing from FRs, it will NOT exist in the final product - -## FUNCTIONAL REQUIREMENTS SYNTHESIS SEQUENCE: - -### 1. Understand FR Purpose and Usage - -Start by explaining the critical role of functional requirements: - -**Purpose:** -FRs define WHAT capabilities the product must have. They are the complete inventory of user-facing and system capabilities that deliver the product vision. - -**Critical Properties:** -✅ Each FR is a testable capability -✅ Each FR is implementation-agnostic (could be built many ways) -✅ Each FR specifies WHO and WHAT, not HOW -✅ No UI details, no performance numbers, no technology choices -✅ Comprehensive coverage of capability areas - -**How They Will Be Used:** - -1. UX Designer reads FRs → designs interactions for each capability -2. Architect reads FRs → designs systems to support each capability -3. PM reads FRs → creates epics and stories to implement each capability - -### 2. Review Existing Content for Capability Extraction - -Systematically review all previous sections to extract capabilities: - -**Extract From:** - -- Executive Summary → Core product differentiator capabilities -- Success Criteria → Success-enabling capabilities -- User Journeys → Journey-revealed capabilities -- Domain Requirements → Compliance and regulatory capabilities -- Innovation Patterns → Innovative feature capabilities -- Project-Type Requirements → Technical capability needs - -### 3. Organize Requirements by Capability Area - -Group FRs by logical capability areas (NOT by technology or layer): - -**Good Grouping Examples:** - -- ✅ "User Management" (not "Authentication System") -- ✅ "Content Discovery" (not "Search Algorithm") -- ✅ "Team Collaboration" (not "WebSocket Infrastructure") - -**Target 5-8 Capability Areas** for typical projects. - -### 4. Generate Comprehensive FR List - -Create complete functional requirements using this format: - -**Format:** - -- FR#: [Actor] can [capability] [context/constraint if needed] -- Number sequentially (FR1, FR2, FR3...) -- Aim for 20-50 FRs for typical projects - -**Altitude Check:** -Each FR should answer "WHAT capability exists?" NOT "HOW it's implemented?" - -**Examples:** - -- ✅ "Users can customize appearance settings" -- ❌ "Users can toggle light/dark theme with 3 font size options stored in LocalStorage" - -### 5. Self-Validation Process - -Before presenting to user, validate the FR list: - -**Completeness Check:** - -1. "Did I cover EVERY capability mentioned in the MVP scope section?" -2. "Did I include domain-specific requirements as FRs?" -3. "Did I cover the project-type specific needs?" -4. "Could a UX designer read ONLY the FRs and know what to design?" -5. "Could an Architect read ONLY the FRs and know what to support?" -6. "Are there any user actions or system behaviors we discussed that have no FR?" - -**Altitude Check:** - -1. "Am I stating capabilities (WHAT) or implementation (HOW)?" -2. "Am I listing acceptance criteria or UI specifics?" (Remove if yes) -3. "Could this FR be implemented 5 different ways?" (Good - means it's not prescriptive) - -**Quality Check:** - -1. "Is each FR clear enough that someone could test whether it exists?" -2. "Is each FR independent (not dependent on reading other FRs to understand)?" -3. "Did I avoid vague terms like 'good', 'fast', 'easy'?" (Use NFRs for quality attributes) - -### 6. Generate Functional Requirements Content - -Prepare the content to append to the document: - -#### Content Structure: - -When saving to document, append these Level 2 and Level 3 sections: - -```markdown -## Functional Requirements - -### [Capability Area Name] - -- FR1: [Specific Actor] can [specific capability] -- FR2: [Specific Actor] can [specific capability] -- FR3: [Specific Actor] can [specific capability] - -### [Another Capability Area] - -- FR4: [Specific Actor] can [specific capability] -- FR5: [Specific Actor] can [specific capability] - -[Continue for all capability areas discovered in conversation] -``` - -### 7. Present MENU OPTIONS - -Present the functional requirements for review, then display menu: -- Show synthesized functional requirements (using structure from step 6) -- Emphasize this is the capability contract for all downstream work -- Highlight that every feature must trace back to these requirements -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of conversation - -**What would you like to do?**" - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Non-Functional Requirements (Step 10 of 11)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current FR list, process the enhanced capability coverage that comes back, ask user if they accept the additions, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current FR list, process the collaborative capability validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 6. - -## SUCCESS METRICS: - -✅ All previous discovery content synthesized into FRs -✅ FRs organized by capability areas (not technology) -✅ Each FR states WHAT capability exists, not HOW to implement -✅ Comprehensive coverage with 20-50 FRs typical -✅ Altitude validation ensures implementation-agnostic requirements -✅ Completeness check validates coverage of all discussed capabilities -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Missing capabilities from previous discovery sections -❌ Organizing FRs by technology instead of capability areas -❌ Including implementation details or UI specifics in FRs -❌ Not achieving comprehensive coverage of discussed capabilities -❌ Using vague terms instead of testable capabilities -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **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 - -## CAPABILITY CONTRACT REMINDER: - -Emphasize to user: "This FR list is now binding. Any feature not listed here will not exist in the final product unless we explicitly add it. This is why it's critical to ensure completeness now." - -## NEXT STEP: - -After user selects 'C' and content is saved to document, load {nextStepFile} to define non-functional requirements. - -Remember: Do NOT proceed to step-10 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md deleted file mode 100644 index e036bc97e..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -name: 'step-10-nonfunctional' -description: 'Define quality attributes that matter for this specific product' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 10: Non-Functional Requirements - -**Progress: Step 10 of 12** - Next: Polish Document - -## 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 PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on quality attributes that matter for THIS specific product -- 🎯 SELECTIVE: Only document NFRs that actually apply to the product -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating NFR content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted -- 🚫 FORBIDDEN to load next step until C is selected - - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- Functional requirements already defined and will inform NFRs -- Domain and project-type context will guide which NFRs matter -- Focus on specific, measurable quality criteria - -## YOUR TASK: - -Define non-functional requirements that specify quality attributes for the product, focusing only on what matters for THIS specific product. - -## NON-FUNCTIONAL REQUIREMENTS SEQUENCE: - -### 1. Explain NFR Purpose and Scope - -Start by clarifying what NFRs are and why we're selective: - -**NFR Purpose:** -NFRs define HOW WELL the system must perform, not WHAT it must do. They specify quality attributes like performance, security, scalability, etc. - -**Selective Approach:** -We only document NFRs that matter for THIS product. If a category doesn't apply, we skip it entirely. This prevents requirement bloat and focuses on what's actually important. - -### 2. Assess Product Context for NFR Relevance - -Evaluate which NFR categories matter based on product context: - -**Quick Assessment Questions:** - -- **Performance**: Is there user-facing impact of speed? -- **Security**: Are we handling sensitive data or payments? -- **Scalability**: Do we expect rapid user growth? -- **Accessibility**: Are we serving broad public audiences? -- **Integration**: Do we need to connect with other systems? -- **Reliability**: Would downtime cause significant problems? - -### 3. Explore Relevant NFR Categories - -For each relevant category, conduct targeted discovery: - -#### Performance NFRs (If relevant): - -Explore performance requirements: -- What parts of the system need to be fast for users to be successful? -- Are there specific response time expectations? -- What happens if performance is slower than expected? -- Are there concurrent user scenarios we need to support? - -#### Security NFRs (If relevant): - -Explore security requirements: -- What data needs to be protected? -- Who should have access to what? -- What are the security risks we need to mitigate? -- Are there compliance requirements (GDPR, HIPAA, PCI-DSS)? - -#### Scalability NFRs (If relevant): - -Explore scalability requirements: -- How many users do we expect initially? Long-term? -- Are there seasonal or event-based traffic spikes? -- What happens if we exceed our capacity? -- What growth scenarios should we plan for? - -#### Accessibility NFRs (If relevant): - -Explore accessibility requirements: -- Are we serving users with visual, hearing, or motor impairments? -- Are there legal accessibility requirements (WCAG, Section 508)? -- What accessibility features are most important for our users? - -#### Integration NFRs (If relevant): - -Explore integration requirements: -- What external systems do we need to connect with? -- Are there APIs or data formats we must support? -- How reliable do these integrations need to be? - -### 4. Make NFRs Specific and Measurable - -For each relevant NFR category, ensure criteria are testable: - -**From Vague to Specific:** - -- NOT: "The system should be fast" → "User actions complete within 2 seconds" -- NOT: "The system should be secure" → "All data is encrypted at rest and in transit" -- NOT: "The system should scale" → "System supports 10x user growth with <10% performance degradation" - -### 5. Generate NFR Content (Only Relevant Categories) - -Prepare the content to append to the document: - -#### Content Structure (Dynamic based on relevance): - -When saving to document, append these Level 2 and Level 3 sections (only include sections that are relevant): - -```markdown -## Non-Functional Requirements - -### Performance - -[Performance requirements based on conversation - only include if relevant] - -### Security - -[Security requirements based on conversation - only include if relevant] - -### Scalability - -[Scalability requirements based on conversation - only include if relevant] - -### Accessibility - -[Accessibility requirements based on conversation - only include if relevant] - -### Integration - -[Integration requirements based on conversation - only include if relevant] -``` - -### 6. Present MENU OPTIONS - -Present the non-functional requirements for review, then display menu: -- Show defined NFRs (using structure from step 5) -- Note that only relevant categories were included -- Emphasize NFRs specify how well the system needs to perform -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of conversation - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Polish Document (Step 11 of 12)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current NFR content, process the enhanced quality attribute insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current NFR list, process the collaborative technical validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 5. - -## SUCCESS METRICS: - -✅ Only relevant NFR categories documented (no requirement bloat) -✅ Each NFR is specific and measurable -✅ NFRs connected to actual user needs and business context -✅ Vague requirements converted to testable criteria -✅ Domain-specific compliance requirements included if relevant -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Documenting NFR categories that don't apply to the product -❌ Leaving requirements vague and unmeasurable -❌ Not connecting NFRs to actual user or business needs -❌ Missing domain-specific compliance requirements -❌ Creating overly prescriptive technical requirements -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **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 - -## NFR CATEGORY GUIDANCE: - -**Include Performance When:** - -- User-facing response times impact success -- Real-time interactions are critical -- Performance is a competitive differentiator - -**Include Security When:** - -- Handling sensitive user data -- Processing payments or financial information -- Subject to compliance regulations -- Protecting intellectual property - -**Include Scalability When:** - -- Expecting rapid user growth -- Handling variable traffic patterns -- Supporting enterprise-scale usage -- Planning for market expansion - -**Include Accessibility When:** - -- Serving broad public audiences -- Subject to accessibility regulations -- Targeting users with disabilities -- B2B customers with accessibility requirements - -## NEXT STEP: - -After user selects 'C' and content is saved to document, load {nextStepFile} to finalize the PRD and complete the workflow. - -Remember: Do NOT proceed to step-11 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md deleted file mode 100644 index d0788ebf1..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +++ /dev/null @@ -1,235 +0,0 @@ ---- -name: 'step-11-polish' -description: 'Optimize and polish the complete PRD document for flow, coherence, and readability' - -# File References -nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md' -outputFile: '{planning_artifacts}/prd.md' -purposeFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - -# Step 11: Document Polish - -**Progress: Step 11 of 12** - Next: Complete PRD - -## MANDATORY EXECUTION RULES (READ FIRST): - -- 🛑 CRITICAL: Load the ENTIRE document before making changes -- 📖 CRITICAL: Read complete step file before taking action -- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read -- ✅ This is a POLISH step - optimize existing content -- 📋 IMPROVE flow, coherence, and readability -- 💬 PRESERVE user's voice and intent -- 🎯 MAINTAIN all essential information while improving presentation -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` -- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Load complete document first -- 📝 Review for flow and coherence issues -- ✂️ Reduce duplication while preserving essential info -- 📖 Ensure proper ## Level 2 headers throughout -- 💾 Save optimized document -- ⚠️ Present A/P/C menu after polish -- 🚫 DO NOT skip review steps - -## CONTEXT BOUNDARIES: - -- Complete PRD document exists from all previous steps -- Document may have duplication from progressive append -- Sections may not flow smoothly together -- Level 2 headers ensure document can be split if needed -- Focus on readability and coherence - -## YOUR TASK: - -Optimize the complete PRD document for flow, coherence, and professional presentation while preserving all essential information. - -## DOCUMENT POLISH SEQUENCE: - -### 1. Load Context and Document - -**CRITICAL:** Load the PRD purpose document first: - -- Read `{purposeFile}` to understand what makes a great BMAD PRD -- Internalize the philosophy: information density, traceability, measurable requirements -- Keep the dual-audience nature (humans + LLMs) in mind - -**Then Load the PRD Document:** - -- Read `{outputFile}` completely from start to finish -- Understand the full document structure and content -- Identify all sections and their relationships -- Note areas that need attention - -### 2. Document Quality Review - -Review the entire document with PRD purpose principles in mind: - -**Information Density:** -- Are there wordy phrases that can be condensed? -- Is conversational padding present? -- Can sentences be more direct and concise? - -**Flow and Coherence:** -- Do sections transition smoothly? -- Are there jarring topic shifts? -- Does the document tell a cohesive story? -- Is the progression logical for readers? - -**Duplication Detection:** -- Are ideas repeated across sections? -- Is the same information stated multiple times? -- Can redundant content be consolidated? -- Are there contradictory statements? - -**Header Structure:** -- Are all main sections using ## Level 2 headers? -- Is the hierarchy consistent (##, ###, ####)? -- Can sections be easily extracted or referenced? -- Are headers descriptive and clear? - -**Readability:** -- Are sentences clear and concise? -- Is the language consistent throughout? -- Are technical terms used appropriately? -- Would stakeholders find this easy to understand? - -### 2b. Brainstorming Reconciliation (if brainstorming input exists) - -**Check the PRD frontmatter `inputDocuments` for any brainstorming document** (e.g., `brainstorming-session*.md`, `brainstorming-report.md`). If a brainstorming document was used as input: - -1. **Load the brainstorming document** and extract all distinct ideas, themes, and recommendations -2. **Cross-reference against the PRD** — for each brainstorming idea, check if it landed in any PRD section (requirements, success criteria, user journeys, scope, etc.) -3. **Identify dropped ideas** — ideas from brainstorming that do not appear anywhere in the PRD. Pay special attention to: - - Tone, personality, and interaction design ideas (these are most commonly lost) - - Design philosophy and coaching approach ideas - - "What should this feel like" ideas (UX feel, not just UX function) - - Qualitative/soft ideas that don't map cleanly to functional requirements -4. **Present findings to user**: "These brainstorming ideas did not make it into the PRD: [list]. Should any be incorporated?" -5. **If user wants to incorporate dropped ideas**: Add them to the most appropriate PRD section (success criteria, non-functional requirements, or a new section if needed) - -**Why this matters**: Brainstorming documents are often long, and the PRD's structured template has an implicit bias toward concrete/structural ideas. Soft ideas (tone, philosophy, interaction feel) frequently get silently dropped because they don't map cleanly to FR/NFR format. - -### 3. Optimization Actions - -Make targeted improvements: - -**Improve Flow:** -- Add transition sentences between sections -- Smooth out jarring topic shifts -- Ensure logical progression -- Connect related concepts across sections - -**Reduce Duplication:** -- Consolidate repeated information -- Keep content in the most appropriate section -- Use cross-references instead of repetition -- Remove redundant explanations - -**Enhance Coherence:** -- Ensure consistent terminology throughout -- Align all sections with product differentiator -- Maintain consistent voice and tone -- Verify scope consistency across sections - -**Optimize Headers:** -- Ensure all main sections use ## Level 2 -- Make headers descriptive and action-oriented -- Check that headers follow consistent patterns -- Verify headers support document navigation - -### 4. Preserve Critical Information - -**While optimizing, ensure NOTHING essential is lost:** - -**Must Preserve:** -- All user success criteria -- All functional requirements (capability contract) -- All user journey narratives -- All scope decisions (MVP, Growth, Vision) -- All non-functional requirements -- Product differentiator and vision -- Domain-specific requirements -- Innovation analysis (if present) - -**Can Consolidate:** -- Repeated explanations of the same concept -- Redundant background information -- Multiple versions of similar content -- Overlapping examples - -### 5. Generate Optimized Document - -Create the polished version: - -**Polishing Process:** -1. Start with original document -2. Apply all optimization actions -3. Review to ensure nothing essential was lost -4. Verify improvements enhance readability -5. Prepare optimized version for review - -### 6. Present MENU OPTIONS - -Present the polished document for review, then display menu: -- Show what changed in the polish -- Highlight improvements made (flow, duplication, headers) -- Ask if they'd like to refine further, get other perspectives, or proceed -- Present menu options naturally as part of conversation - -Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Complete PRD (Step 12 of 12)" - -#### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu -- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} -- IF Any other: help user respond, then redisplay menu - -#### EXECUTION RULES: -- ALWAYS halt and wait for user input after presenting menu -- ONLY proceed to next step when user selects 'C' -- After other menu items execution, return to this menu - -## APPEND TO DOCUMENT: - -When user selects 'C', replace the entire document content with the polished version. - -## SUCCESS METRICS: - -✅ Complete document loaded and reviewed -✅ Flow and coherence improved -✅ Duplication reduced while preserving essential information -✅ All main sections use ## Level 2 headers -✅ Transitions between sections are smooth -✅ User's voice and intent preserved -✅ Document is more readable and professional -✅ A/P/C menu presented and handled correctly -✅ Brainstorming reconciliation completed (if brainstorming input exists) -✅ Polished document saved when C selected - -## FAILURE MODES: - -❌ Loading only partial document (leads to incomplete polish) -❌ Removing essential information while reducing duplication -❌ Not preserving user's voice and intent -❌ Changing content instead of improving presentation -❌ Not ensuring ## Level 2 headers for main sections -❌ Making arbitrary style changes instead of coherence improvements -❌ Not presenting A/P/C menu for user approval -❌ Saving polished document without user selecting 'C' - -❌ **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 changes without complete understanding of document requirements - -## NEXT STEP: - -After user selects 'C' and polished document is saved, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md` to complete the workflow. - -Remember: Do NOT proceed to step-12 until user explicitly selects 'C' from the A/P/C menu and polished document is saved! diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md deleted file mode 100644 index 04204e8a9..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -name: 'step-12-complete' -description: 'Complete the PRD workflow, update status files, and suggest next steps including validation' - -# File References -outputFile: '{planning_artifacts}/prd.md' -validationFlow: '../steps-v/step-v-01-discovery.md' ---- - -# Step 12: Workflow Completion - -**Final Step - Complete the PRD** - -## MANDATORY EXECUTION RULES (READ FIRST): - -- ✅ THIS IS A FINAL STEP - Workflow completion required -- 📖 CRITICAL: ALWAYS read the complete step file before taking any action -- 🛑 NO content generation - this is a wrap-up step -- 📋 FINALIZE document and update workflow status -- 💬 FOCUS on completion, validation options, and next steps -- 🎯 UPDATE workflow status files with completion information -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- 💾 Update the main workflow status file with completion information (if exists) -- 📖 Offer validation workflow options to user -- 🚫 DO NOT load additional steps after this one - -## TERMINATION STEP PROTOCOLS: - -- This is a FINAL step - workflow completion required -- Update workflow status file with finalized document -- Suggest validation and next workflow steps -- Mark workflow as complete in status tracking - -## CONTEXT BOUNDARIES: - -- Complete and polished PRD document is available from all previous steps -- Workflow frontmatter shows all completed steps including polish -- All collaborative content has been generated, saved, and optimized -- Focus on completion, validation options, and next steps - -## YOUR TASK: - -Complete the PRD workflow, update status files, offer validation options, and suggest next steps for the project. - -## WORKFLOW COMPLETION SEQUENCE: - -### 1. Announce Workflow Completion - -Inform user that the PRD is complete and polished: -- Celebrate successful completion of comprehensive PRD -- Summarize all sections that were created -- Highlight that document has been polished for flow and coherence -- Emphasize document is ready for downstream work - -### 2. Workflow Status Update - -Update the main workflow status file if there is one: - -- Load `{status_file}` from workflow configuration (if exists) -- Update workflow_status["prd"] = "{default_output_file}" -- Save file, preserving all comments and structure -- Mark current timestamp as completion time - -### 3. Validation Workflow Options - -Offer validation workflows to ensure PRD is ready for implementation: - -**Available Validation Workflows:** - -**Option 1: Check Implementation Readiness** (`{checkImplementationReadinessWorkflow}`) -- Validates PRD has all information needed for development -- Checks epic coverage completeness -- Reviews UX alignment with requirements -- Assesses epic quality and readiness -- Identifies gaps before architecture/design work begins - -**When to use:** Before starting technical architecture or epic breakdown - -**Option 2: Skip for Now** -- Proceed directly to next workflows (architecture, UX, epics) -- Validation can be done later if needed -- Some teams prefer to validate during architecture reviews - -### 4. Suggest Next Workflows - -PRD complete. Invoke the `bmad-help` skill. - -### 5. Final Completion Confirmation - -- Confirm completion with user and summarize what has been accomplished -- Document now contains: Executive Summary, Success Criteria, User Journeys, Domain Requirements (if applicable), Innovation Analysis (if applicable), Project-Type Requirements, Functional Requirements (capability contract), Non-Functional Requirements, and has been polished for flow and coherence -- Ask if they'd like to run validation workflow or proceed to next workflows - -## SUCCESS METRICS: - -✅ PRD document contains all required sections and has been polished -✅ All collaborative content properly saved and optimized -✅ Workflow status file updated with completion information (if exists) -✅ Validation workflow options clearly presented -✅ Clear next step guidance provided to user -✅ Document quality validation completed -✅ User acknowledges completion and understands next options - -## FAILURE MODES: - -❌ Not updating workflow status file with completion information (if exists) -❌ Not offering validation workflow options -❌ Missing clear next step guidance for user -❌ Not confirming document completeness with user -❌ Workflow not properly marked as complete in status tracking (if applicable) -❌ User unclear about what happens next or what validation options exist - -❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions -❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols - -## FINAL REMINDER to give the user: - -The polished PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD - update it also as needed as you continue planning. - -**Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉 diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md b/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md deleted file mode 100644 index d82219d2f..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -stepsCompleted: [] -inputDocuments: [] -workflowType: 'prd' ---- - -# Product Requirements Document - {{project_name}} - -**Author:** {{user_name}} -**Date:** {{date}} diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md b/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md deleted file mode 100644 index f7dd26163..000000000 --- a/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -name: create-prd -description: 'Create a PRD from scratch. Use when the user says "lets create a product requirements document" or "I want to create a new PRD"' -standalone: false -main_config: '{project-root}/_bmad/bmm/config.yaml' -nextStep: './steps-c/step-01-init.md' ---- - -# PRD Create Workflow - -**Goal:** Create comprehensive PRDs through structured workflow facilitation. - -**Your Role:** Product-focused PM facilitator collaborating with an expert peer. - -You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description. - -## WORKFLOW ARCHITECTURE - -This uses **step-file architecture** for disciplined execution: - -### Core Principles - -- **Micro-file Design**: Each step is a self contained instruction file that is a part of an overall workflow that must be followed exactly -- **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so -- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed -- **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document -- **Append-Only Building**: Build documents by appending content as directed to the output file - -### Step Processing Rules - -1. **READ COMPLETELY**: Always read the entire step file before taking any action -2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate -3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection -4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue) -5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step -6. **LOAD NEXT**: When directed, read fully and follow the next step file - -### Critical Rules (NO EXCEPTIONS) - -- 🛑 **NEVER** load multiple step files simultaneously -- 📖 **ALWAYS** read entire step file before execution -- 🚫 **NEVER** skip steps or optimize the sequence -- 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step -- 🎯 **ALWAYS** follow the exact instructions in the step file -- ⏸️ **ALWAYS** halt at menus and wait for user input -- 📋 **NEVER** create mental todo lists from future steps - -## INITIALIZATION SEQUENCE - -### 1. Configuration Loading - -Load and read full config from {main_config} and resolve: - -- `project_name`, `output_folder`, `planning_artifacts`, `user_name` -- `communication_language`, `document_output_language`, `user_skill_level` -- `date` as system-generated current datetime - -✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`. -✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`. - -### 2. Route to Create Workflow - -"**Create Mode: Creating a new PRD from scratch.**" - -Read fully and follow: `{nextStep}` (steps-c/step-01-init.md) diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md b/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md index 4b53688d0..8268e6a97 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-01-init.md @@ -1,16 +1,3 @@ ---- -name: 'step-01-init' -description: 'Initialize the PRD workflow by detecting continuation state and setting up the document' - -# File References -nextStepFile: './step-02-discovery.md' -continueStepFile: './step-01b-continue.md' -outputFile: '{planning_artifacts}/prd.md' - -# Template Reference -prdTemplate: '../templates/prd-template.md' ---- - # Step 1: Workflow Initialization **Progress: Step 1 of 11** - Next: Project Discovery @@ -71,11 +58,11 @@ First, check if the output document already exists: ### 2. Handle Continuation (If Document Exists) -If the document exists and has frontmatter with `stepsCompleted` BUT `step-11-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete: +If the document exists and has frontmatter with `stepsCompleted` BUT `step-12-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete: **Continuation Protocol:** -- **STOP immediately** and load `{continueStepFile}` +- **STOP immediately** and load `./step-01b-continue.md` - Do not proceed with any initialization tasks - Let step-01b handle all continuation logic - This is an auto-proceed situation - no user choice needed @@ -89,7 +76,7 @@ If no document exists or no `stepsCompleted` in frontmatter: Discover and load context documents using smart discovery. Documents can be in the following locations: - {planning_artifacts}/** - {output_folder}/** -- {product_knowledge}/** +- {project_knowledge}/** - docs/** Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content) @@ -97,7 +84,7 @@ Also - when searching - documents can be a single markdown file, or a folder wit Try to discover the following: - Product Brief (`*brief*.md`) - Research Documents (`/*research*.md`) -- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.) +- Project Documentation (generally multiple documents might be found for this in the `{project_knowledge}` or `docs` folder.) - Project Context (`**/project-context.md`) Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules @@ -114,7 +101,7 @@ Try to discover the following: **Document Setup:** -- Copy the template from `{prdTemplate}` to `{outputFile}` +- Copy the template from `../templates/prd-template.md` to `{outputFile}` - Initialize frontmatter with proper structure including inputDocuments array. #### C. Present Initialization Results @@ -151,7 +138,7 @@ Display menu after setup report: #### Menu Handling Logic: -- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: {nextStepFile} +- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: ./step-02-discovery.md - IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report - IF user asks questions: Answer and redisplay menu @@ -162,7 +149,7 @@ Display menu after setup report: ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then read fully and follow: `{nextStepFile}` to begin project discovery. +ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then read fully and follow: `./step-02-discovery.md` to begin project discovery. --- diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md b/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md index d4ae2911d..4351cc122 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md @@ -1,11 +1,3 @@ ---- -name: 'step-01b-continue' -description: 'Resume an interrupted PRD workflow from the last completed step' - -# File References -outputFile: '{planning_artifacts}/prd.md' ---- - # Step 1B: Workflow Continuation ## STEP GOAL: @@ -70,21 +62,38 @@ Review the frontmatter to understand: ### 3. Determine Next Step -**Simplified Next Step Logic:** -1. Get the last element from the `stepsCompleted` array (this is the filename of the last completed step, e.g., "step-03-success.md") -2. Load that step file and read its frontmatter -3. Extract the `nextStepFile` value from the frontmatter -4. That's the next step to load! +**Step Sequence Lookup:** + +Use the following ordered sequence to determine the next step from the last completed step: + +| Last Completed | Next Step | +|---|---| +| step-01-init.md | step-02-discovery.md | +| step-02-discovery.md | step-02b-vision.md | +| step-02b-vision.md | step-02c-executive-summary.md | +| step-02c-executive-summary.md | step-03-success.md | +| step-03-success.md | step-04-journeys.md | +| step-04-journeys.md | step-05-domain.md | +| step-05-domain.md | step-06-innovation.md | +| step-06-innovation.md | step-07-project-type.md | +| step-07-project-type.md | step-08-scoping.md | +| step-08-scoping.md | step-09-functional.md | +| step-09-functional.md | step-10-nonfunctional.md | +| step-10-nonfunctional.md | step-11-polish.md | +| step-11-polish.md | step-12-complete.md | + +1. Get the last element from the `stepsCompleted` array +2. Look it up in the table above to find the next step +3. That's the next step to load! **Example:** - If `stepsCompleted = ["step-01-init.md", "step-02-discovery.md", "step-03-success.md"]` - Last element is `"step-03-success.md"` -- Load `./step-03-success.md`, read its frontmatter -- Read fully and follow: `./step-04-journeys.md` +- Table lookup → next step is `./step-04-journeys.md` ### 4. Handle Workflow Completion -**If `stepsCompleted` array contains `"step-11-complete.md"`:** +**If `stepsCompleted` array contains `"step-12-complete.md"`:** "Great news! It looks like we've already completed the PRD workflow for {{project_name}}. The final document is ready at `{outputFile}` with all sections completed. @@ -104,7 +113,7 @@ What would be most helpful?" **Current Progress:** - Last completed: {last step filename from stepsCompleted array} -- Next up: {nextStepFile determined from that step's frontmatter} +- Next up: {next step from lookup table} - Context documents available: {len(inputDocuments)} files **Document Status:** @@ -119,7 +128,7 @@ Display: "**Select an Option:** [C] Continue to {next step name}" #### Menu Handling Logic: -- IF C: Read fully and follow the {nextStepFile} determined in step 3 +- IF C: Read fully and follow the next step determined from the lookup table in step 3 - IF Any other comments or queries: respond and redisplay menu #### EXECUTION RULES: @@ -129,7 +138,7 @@ Display: "**Select an Option:** [C] Continue to {next step name}" ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow: {nextStepFile} to resume the workflow. +ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow the next step (from the lookup table) to resume the workflow. --- @@ -146,7 +155,7 @@ ONLY WHEN [C continue option] is selected and [current state confirmed], will yo - Discovering new input documents instead of reloading existing ones - Modifying content from already completed steps -- Failing to extract nextStepFile from the last completed step's frontmatter +- Failing to determine the next step from the lookup table - Proceeding without user confirmation of current state **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md b/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md index 76c8915cb..0e56aa0d3 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md @@ -1,20 +1,3 @@ ---- -name: 'step-02-discovery' -description: 'Discover project type, domain, and context through collaborative dialogue' - -# File References -nextStepFile: './step-02b-vision.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '../data/project-types.csv' -domainComplexityCSV: '../data/domain-complexity.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 2: Project Discovery **Progress: Step 2 of 13** - Next: Product Vision @@ -97,7 +80,7 @@ Read the frontmatter from `{outputFile}` to get document counts: **Attempt subprocess data lookup:** **Project Type Lookup:** -"Your task: Lookup data in {projectTypesCSV} +"Your task: Lookup data in ../data/project-types.csv **Search criteria:** - Find row where project_type matches {{detectedProjectType}} @@ -109,7 +92,7 @@ project_type, detection_signals **Do NOT return the entire CSV - only the matching row.**" **Domain Complexity Lookup:** -"Your task: Lookup data in {domainComplexityCSV} +"Your task: Lookup data in ../data/domain-complexity.csv **Search criteria:** - Find row where domain matches {{detectedDomain}} @@ -186,9 +169,9 @@ Present the project classification for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menu -- IF C: Save classification to {outputFile} frontmatter, add this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menu +- IF C: Save classification to {outputFile} frontmatter, add this step name to the end of stepsCompleted array, then read fully and follow: ./step-02b-vision.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -198,7 +181,7 @@ Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Pr ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `{nextStepFile}` to explore product vision. +ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `./step-02b-vision.md` to explore product vision. --- diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md b/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md index 6c9e31da0..aa2bee8d2 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md @@ -1,16 +1,3 @@ ---- -name: 'step-02b-vision' -description: 'Discover the product vision and differentiator through collaborative dialogue' - -# File References -nextStepFile: './step-02c-executive-summary.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 2b: Product Vision Discovery **Progress: Step 2b of 13** - Next: Executive Summary @@ -114,9 +101,9 @@ Present your understanding of the product vision for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Executive Summary (Step 2c of 13)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu -- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu +- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: ./step-02c-executive-summary.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -126,7 +113,7 @@ Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Ex ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `{nextStepFile}` to generate the Executive Summary. +ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `./step-02c-executive-summary.md` to generate the Executive Summary. --- diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md b/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md index ed7b6b3ac..c50841d98 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md @@ -1,16 +1,3 @@ ---- -name: 'step-02c-executive-summary' -description: 'Generate and append the Executive Summary section to the PRD document' - -# File References -nextStepFile: './step-03-success.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 2c: Executive Summary Generation **Progress: Step 2c of 13** - Next: Success Criteria @@ -104,9 +91,9 @@ Present the executive summary content for user review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Success Criteria (Step 3 of 13)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current executive summary content, process the enhanced content that comes back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current executive summary content, process the collaborative improvements, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current executive summary content, process the enhanced content that comes back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current executive summary content, process the collaborative improvements, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-03-success.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -139,7 +126,7 @@ Where: ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `{nextStepFile}` to define success criteria. +ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `./step-03-success.md` to define success criteria. --- diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md b/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md index e1aa04edc..37baad1f1 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-03-success.md @@ -1,16 +1,3 @@ ---- -name: 'step-03-success' -description: 'Define comprehensive success criteria covering user, business, and technical success' - -# File References -nextStepFile: './step-04-journeys.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 3: Success Criteria Definition **Progress: Step 3 of 11** - Next: User Journey Mapping @@ -176,9 +163,9 @@ Present the success criteria content for user review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to User Journey Mapping (Step 4 of 11)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current success criteria content, process the enhanced success metrics that come back, ask user "Accept these improvements to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current success criteria, process the collaborative improvements to metrics and scope, ask user "Accept these changes to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current success criteria content, process the enhanced success metrics that come back, ask user "Accept these improvements to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current success criteria, process the collaborative improvements to metrics and scope, ask user "Accept these changes to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-04-journeys.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md b/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md index 4dc16c456..f10ddf3a6 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md @@ -1,16 +1,3 @@ ---- -name: 'step-04-journeys' -description: 'Map ALL user types that interact with the system with narrative story-based journeys' - -# File References -nextStepFile: './step-05-domain.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 4: User Journey Mapping **Progress: Step 4 of 11** - Next: Domain Requirements @@ -156,9 +143,9 @@ Present the user journey content for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Domain Requirements (Step 5 of 11)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current journey content, process the enhanced journey insights that come back, ask user "Accept these improvements to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current journeys, process the collaborative journey improvements and additions, ask user "Accept these changes to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current journey content, process the enhanced journey insights that come back, ask user "Accept these improvements to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current journeys, process the collaborative journey improvements and additions, ask user "Accept these changes to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-05-domain.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md b/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md index 89bf5cda3..551e7b559 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-05-domain.md @@ -1,24 +1,10 @@ ---- -name: 'step-05-domain' -description: 'Explore domain-specific requirements for complex domains (optional step)' - -# File References -nextStepFile: './step-06-innovation.md' -outputFile: '{planning_artifacts}/prd.md' -domainComplexityCSV: '../data/domain-complexity.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 5: Domain-Specific Requirements (Optional) **Progress: Step 5 of 13** - Next: Innovation Focus ## STEP GOAL: -For complex domains only that have a mapping in {domainComplexityCSV}, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product. +For complex domains only that have a mapping in ../data/domain-complexity.csv, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product. ## MANDATORY EXECUTION RULES (READ FIRST): @@ -93,7 +79,7 @@ Proceed with domain exploration. **Attempt subprocess data lookup:** -"Your task: Lookup data in {domainComplexityCSV} +"Your task: Lookup data in ../data/domain-complexity.csv **Search criteria:** - Find row where domain matches {{domainFromStep02}} @@ -155,9 +141,9 @@ Acknowledge the domain and explore what makes it complex: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue - Save and Proceed to Innovation (Step 6 of 13)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask}, and when finished redisplay the menu -- IF P: Read fully and follow: {partyModeWorkflow}, and when finished redisplay the menu -- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation, and when finished redisplay the menu +- IF P: Read fully and follow: `{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md` and when finished redisplay the menu +- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: ./step-06-innovation.md - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options) #### EXECUTION RULES: @@ -179,7 +165,7 @@ If step was skipped, append nothing and proceed. ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then read fully and follow: `{nextStepFile}` to explore innovation. +ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then read fully and follow: `./step-06-innovation.md` to explore innovation. --- diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md b/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md index 09cbdbf44..8e886edb5 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md @@ -1,19 +1,3 @@ ---- -name: 'step-06-innovation' -description: 'Detect and explore innovative aspects of the product (optional step)' - -# File References -nextStepFile: './step-07-project-type.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '../data/project-types.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 6: Innovation Discovery **Progress: Step 6 of 11** - Next: Project Type Analysis @@ -65,7 +49,7 @@ Detect and explore innovation patterns in the product, focusing on what makes it Load innovation signals specific to this project type: -- Load `{projectTypesCSV}` completely +- Load `../data/project-types.csv` completely - Find the row where `project_type` matches detected type from step-02 - Extract `innovation_signals` (semicolon-separated list) - Extract `web_search_triggers` for potential innovation research @@ -156,9 +140,9 @@ Present the innovation content for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Project Type Analysis (Step 7 of 11)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current innovation content, process the enhanced innovation insights that come back, ask user "Accept these improvements to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current innovation content, process the collaborative innovation exploration and ideation, ask user "Accept these changes to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current innovation content, process the enhanced innovation insights that come back, ask user "Accept these improvements to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current innovation content, process the collaborative innovation exploration and ideation, ask user "Accept these changes to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-07-project-type.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -177,7 +161,7 @@ Display: "**Select:** [A] Advanced Elicitation - Let's try to find innovative an ### Menu Handling Logic: - IF A: Proceed with content generation anyway, then return to menu -- IF C: Skip this step, then read fully and follow: {nextStepFile} +- IF C: Skip this step, then read fully and follow: ./step-07-project-type.md ### EXECUTION RULES: - ALWAYS halt and wait for user input after presenting menu @@ -213,7 +197,7 @@ When user selects 'C', append the content directly to the document using the str ## SKIP CONDITIONS: -Skip this step and load `{nextStepFile}` if: +Skip this step and load `./step-07-project-type.md` if: - No innovation signals detected in conversation - Product is incremental improvement rather than breakthrough @@ -222,6 +206,6 @@ Skip this step and load `{nextStepFile}` if: ## NEXT STEP: -After user selects 'C' and content is saved to document (or step is skipped), load `{nextStepFile}`. +After user selects 'C' and content is saved to document (or step is skipped), load `./step-07-project-type.md`. Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu (or confirms step skip)! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md b/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md index 45de71dac..66326dbd9 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md @@ -1,19 +1,3 @@ ---- -name: 'step-07-project-type' -description: 'Conduct project-type specific discovery using CSV-driven guidance' - -# File References -nextStepFile: './step-08-scoping.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '../data/project-types.csv' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 7: Project-Type Deep Dive **Progress: Step 7 of 11** - Next: Scoping @@ -56,7 +40,7 @@ Conduct project-type specific discovery using CSV-driven guidance to define tech **Attempt subprocess data lookup:** -"Your task: Lookup data in {projectTypesCSV} +"Your task: Lookup data in ../data/project-types.csv **Search criteria:** - Find row where project_type matches {{projectTypeFromStep02}} @@ -173,9 +157,9 @@ Present the project-type content for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Scoping (Step 8 of 11)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current project-type content, process the enhanced technical insights that come back, ask user "Accept these improvements to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current project-type requirements, process the collaborative technical expertise and validation, ask user "Accept these changes to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current project-type content, process the enhanced technical insights that come back, ask user "Accept these improvements to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current project-type requirements, process the collaborative technical expertise and validation, ask user "Accept these changes to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-08-scoping.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -233,6 +217,6 @@ When user selects 'C', append the content directly to the document using the str ## NEXT STEP: -After user selects 'C' and content is saved to document, load `{nextStepFile}` to define project scope. +After user selects 'C' and content is saved to document, load `./step-08-scoping.md` to define project scope. Remember: Do NOT proceed to step-08 (Scoping) until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md b/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md index 368abf536..84b9a4444 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md @@ -1,16 +1,3 @@ ---- -name: 'step-08-scoping' -description: 'Define MVP boundaries and prioritize features across development phases' - -# File References -nextStepFile: './step-09-functional.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 8: Scoping Exercise - MVP & Future Features **Progress: Step 8 of 11** - Next: Functional Requirements @@ -184,9 +171,9 @@ Present the scoping decisions for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Functional Requirements (Step 9 of 11)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current scoping analysis, process the enhanced insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the scoping context, process the collaborative insights on MVP and roadmap decisions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current scoping analysis, process the enhanced insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the scoping context, process the collaborative insights on MVP and roadmap decisions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-09-functional.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -224,6 +211,6 @@ When user selects 'C', append the content directly to the document using the str ## NEXT STEP: -After user selects 'C' and content is saved to document, load {nextStepFile}. +After user selects 'C' and content is saved to document, load ./step-09-functional.md. Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md b/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md index 412178c09..22f8d63ba 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-09-functional.md @@ -1,16 +1,3 @@ ---- -name: 'step-09-functional' -description: 'Synthesize all discovery into comprehensive functional requirements' - -# File References -nextStepFile: './step-10-nonfunctional.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 9: Functional Requirements Synthesis **Progress: Step 9 of 11** - Next: Non-Functional Requirements @@ -182,9 +169,9 @@ Present the functional requirements for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Non-Functional Requirements (Step 10 of 11)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current FR list, process the enhanced capability coverage that comes back, ask user if they accept the additions, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current FR list, process the collaborative capability validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current FR list, process the enhanced capability coverage that comes back, ask user if they accept the additions, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current FR list, process the collaborative capability validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-10-nonfunctional.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -227,6 +214,6 @@ Emphasize to user: "This FR list is now binding. Any feature not listed here wil ## NEXT STEP: -After user selects 'C' and content is saved to document, load {nextStepFile} to define non-functional requirements. +After user selects 'C' and content is saved to document, load ./step-10-nonfunctional.md to define non-functional requirements. Remember: Do NOT proceed to step-10 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md b/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md index 8a939a15a..cd7fdbf14 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md @@ -1,16 +1,3 @@ ---- -name: 'step-10-nonfunctional' -description: 'Define quality attributes that matter for this specific product' - -# File References -nextStepFile: './step-11-polish.md' -outputFile: '{planning_artifacts}/prd.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 10: Non-Functional Requirements **Progress: Step 10 of 12** - Next: Polish Document @@ -169,9 +156,9 @@ Present the non-functional requirements for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Polish Document (Step 11 of 12)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the current NFR content, process the enhanced quality attribute insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the current NFR list, process the collaborative technical validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu -- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current NFR content, process the enhanced quality attribute insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current NFR list, process the collaborative technical validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-11-polish.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: @@ -238,6 +225,6 @@ When user selects 'C', append the content directly to the document using the str ## NEXT STEP: -After user selects 'C' and content is saved to document, load {nextStepFile} to finalize the PRD and complete the workflow. +After user selects 'C' and content is saved to document, load ./step-11-polish.md to finalize the PRD and complete the workflow. Remember: Do NOT proceed to step-11 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md b/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md index e17a11185..3677b0a31 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-11-polish.md @@ -1,17 +1,3 @@ ---- -name: 'step-11-polish' -description: 'Optimize and polish the complete PRD document for flow, coherence, and readability' - -# File References -nextStepFile: './step-12-complete.md' -outputFile: '{planning_artifacts}/prd.md' -purposeFile: '../data/prd-purpose.md' - -# Task References -advancedElicitationTask: 'skill:bmad-advanced-elicitation' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md' ---- - # Step 11: Document Polish **Progress: Step 11 of 12** - Next: Complete PRD @@ -56,7 +42,7 @@ Optimize the complete PRD document for flow, coherence, and professional present **CRITICAL:** Load the PRD purpose document first: -- Read `{purposeFile}` to understand what makes a great BMAD PRD +- Read `../data/prd-purpose.md` to understand what makes a great BMAD PRD - Internalize the philosophy: information density, traceability, measurable requirements - Keep the dual-audience nature (humans + LLMs) in mind @@ -186,9 +172,9 @@ Present the polished document for review, then display menu: Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Complete PRD (Step 12 of 12)" #### Menu Handling Logic: -- IF A: Read fully and follow: {advancedElicitationTask} with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu -- IF P: Read fully and follow: {partyModeWorkflow} with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu -- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile} +- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu +- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu +- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-12-complete.md - IF Any other: help user respond, then redisplay menu #### EXECUTION RULES: diff --git a/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md b/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md index 79b379096..d7b652524 100644 --- a/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md +++ b/src/core/tasks/bmad-create-prd/steps-c/step-12-complete.md @@ -1,12 +1,3 @@ ---- -name: 'step-12-complete' -description: 'Complete the PRD workflow, update status files, and suggest next steps including validation' - -# File References -outputFile: '{planning_artifacts}/prd.md' -# validationFlow: lives in the validate-prd workflow (separate skill) ---- - # Step 12: Workflow Completion **Final Step - Complete the PRD** @@ -60,8 +51,8 @@ Inform user that the PRD is complete and polished: Update the main workflow status file if there is one: -- Load `{status_file}` from workflow configuration (if exists) -- Update workflow_status["prd"] = "{default_output_file}" +- Check workflow configuration for a status file (if one exists) +- Update workflow_status["prd"] = "{outputFile}" - Save file, preserving all comments and structure - Mark current timestamp as completion time @@ -71,7 +62,7 @@ Offer validation workflows to ensure PRD is ready for implementation: **Available Validation Workflows:** -**Option 1: Check Implementation Readiness** (`{checkImplementationReadinessWorkflow}`) +**Option 1: Check Implementation Readiness** (`skill:bmad-check-implementation-readiness`) - Validates PRD has all information needed for development - Checks epic coverage completeness - Reviews UX alignment with requirements diff --git a/src/core/tasks/bmad-create-prd/workflow.md b/src/core/tasks/bmad-create-prd/workflow.md index a3ac365a0..39f78e9d5 100644 --- a/src/core/tasks/bmad-create-prd/workflow.md +++ b/src/core/tasks/bmad-create-prd/workflow.md @@ -1,6 +1,6 @@ --- main_config: '{project-root}/_bmad/bmm/config.yaml' -nextStep: './steps-c/step-01-init.md' +outputFile: '{planning_artifacts}/prd.md' --- # PRD Create Workflow @@ -59,4 +59,4 @@ Load and read full config from {main_config} and resolve: "**Create Mode: Creating a new PRD from scratch.**" -Read fully and follow: `{nextStep}` (steps-c/step-01-init.md) +Read fully and follow: `./steps-c/step-01-init.md`