docs: update all documentation and add AI tooling configs
- Rewrite README.md with current architecture, features and stack - Update docs/API.md with all current endpoints (corporate, BI, client 360) - Update docs/ARCHITECTURE.md with cache, modular queries, services, ETL - Update docs/GUIA-USUARIO.md for all roles (admin, corporate, agente) - Add docs/INDEX.md documentation index - Add PROJETO.md comprehensive project reference - Add BI-CCC-Implementation-Guide.md - Include AI agent configs (.claude, .agents, .gemini, _bmad) - Add netbird VPN configuration - Add status report Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
6
_bmad/core/tasks/bmad-create-prd/SKILL.md
Normal file
6
_bmad/core/tasks/bmad-create-prd/SKILL.md
Normal file
@@ -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.
|
||||
@@ -0,0 +1 @@
|
||||
type: skill
|
||||
15
_bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv
Normal file
15
_bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv
Normal file
@@ -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"
|
||||
|
197
_bmad/core/tasks/bmad-create-prd/data/prd-purpose.md
Normal file
197
_bmad/core/tasks/bmad-create-prd/data/prd-purpose.md
Normal file
@@ -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.
|
||||
11
_bmad/core/tasks/bmad-create-prd/data/project-types.csv
Normal file
11
_bmad/core/tasks/bmad-create-prd/data/project-types.csv
Normal file
@@ -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"
|
||||
|
178
_bmad/core/tasks/bmad-create-prd/steps-c/step-01-init.md
Normal file
178
_bmad/core/tasks/bmad-create-prd/steps-c/step-01-init.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# 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-12-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete:
|
||||
|
||||
**Continuation Protocol:**
|
||||
|
||||
- **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
|
||||
|
||||
### 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}/**
|
||||
- {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)
|
||||
|
||||
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 `{project_knowledge}` or `docs` folder.)
|
||||
- Project Context (`**/project-context.md`)
|
||||
|
||||
<critical>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</critical>
|
||||
|
||||
**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 `../templates/prd-template.md` 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: ./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
|
||||
|
||||
#### 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: `./step-02-discovery.md` 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.
|
||||
161
_bmad/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md
Normal file
161
_bmad/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# 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
|
||||
|
||||
**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"`
|
||||
- Table lookup → next step is `./step-04-journeys.md`
|
||||
|
||||
### 4. Handle Workflow Completion
|
||||
|
||||
**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.
|
||||
|
||||
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: {next step from lookup table}
|
||||
- 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 next step determined from the lookup table 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 the next step (from the lookup table) 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 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.
|
||||
208
_bmad/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md
Normal file
208
_bmad/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md
Normal file
@@ -0,0 +1,208 @@
|
||||
# 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 ../data/project-types.csv
|
||||
|
||||
**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 ../data/domain-complexity.csv
|
||||
|
||||
**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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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: `./step-02b-vision.md` 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.
|
||||
142
_bmad/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md
Normal file
142
_bmad/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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: `./step-02c-executive-summary.md` 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.
|
||||
@@ -0,0 +1,158 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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: `./step-03-success.md` 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.
|
||||
214
_bmad/core/tasks/bmad-create-prd/steps-c/step-03-success.md
Normal file
214
_bmad/core/tasks/bmad-create-prd/steps-c/step-03-success.md
Normal file
@@ -0,0 +1,214 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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!
|
||||
201
_bmad/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md
Normal file
201
_bmad/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md
Normal file
@@ -0,0 +1,201 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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!
|
||||
194
_bmad/core/tasks/bmad-create-prd/steps-c/step-05-domain.md
Normal file
194
_bmad/core/tasks/bmad-create-prd/steps-c/step-05-domain.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# 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 ../data/domain-complexity.csv, 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 ../data/domain-complexity.csv
|
||||
|
||||
**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: Invoke the `bmad-advanced-elicitation` skill, and when finished redisplay the menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill, 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:
|
||||
- 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: `./step-06-innovation.md` 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.
|
||||
211
_bmad/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md
Normal file
211
_bmad/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md
Normal file
@@ -0,0 +1,211 @@
|
||||
# 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 `../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
|
||||
|
||||
### 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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: ./step-07-project-type.md
|
||||
|
||||
### 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 `./step-07-project-type.md` 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 `./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)!
|
||||
222
_bmad/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md
Normal file
222
_bmad/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# 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 ../data/project-types.csv
|
||||
|
||||
**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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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 `./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!
|
||||
216
_bmad/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md
Normal file
216
_bmad/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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 ./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!
|
||||
219
_bmad/core/tasks/bmad-create-prd/steps-c/step-09-functional.md
Normal file
219
_bmad/core/tasks/bmad-create-prd/steps-c/step-09-functional.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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 ./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!
|
||||
@@ -0,0 +1,230 @@
|
||||
# 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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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 ./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!
|
||||
221
_bmad/core/tasks/bmad-create-prd/steps-c/step-11-polish.md
Normal file
221
_bmad/core/tasks/bmad-create-prd/steps-c/step-11-polish.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# 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 `../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
|
||||
|
||||
**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: Invoke the `bmad-advanced-elicitation` skill 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: Invoke the `bmad-party-mode` skill 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:
|
||||
- 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!
|
||||
115
_bmad/core/tasks/bmad-create-prd/steps-c/step-12-complete.md
Normal file
115
_bmad/core/tasks/bmad-create-prd/steps-c/step-12-complete.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# 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:
|
||||
|
||||
- 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
|
||||
|
||||
### 3. Validation Workflow Options
|
||||
|
||||
Offer validation workflows to ensure PRD is ready for implementation:
|
||||
|
||||
**Available Validation Workflows:**
|
||||
|
||||
**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
|
||||
- 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}}!** 🎉
|
||||
10
_bmad/core/tasks/bmad-create-prd/templates/prd-template.md
Normal file
10
_bmad/core/tasks/bmad-create-prd/templates/prd-template.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
stepsCompleted: []
|
||||
inputDocuments: []
|
||||
workflowType: 'prd'
|
||||
---
|
||||
|
||||
# Product Requirements Document - {{project_name}}
|
||||
|
||||
**Author:** {{user_name}}
|
||||
**Date:** {{date}}
|
||||
62
_bmad/core/tasks/bmad-create-prd/workflow.md
Normal file
62
_bmad/core/tasks/bmad-create-prd/workflow.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
outputFile: '{planning_artifacts}/prd.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: `./steps-c/step-01-init.md`
|
||||
102
_bmad/core/tasks/editorial-review-prose.xml
Normal file
102
_bmad/core/tasks/editorial-review-prose.xml
Normal file
@@ -0,0 +1,102 @@
|
||||
<task id="_bmad/core/tasks/editorial-review-prose.xml"
|
||||
name="Editorial Review - Prose"
|
||||
description="Clinical copy-editor that reviews text for communication issues">
|
||||
|
||||
<objective>Review text for communication issues that impede comprehension and output suggested fixes in a three-column table</objective>
|
||||
|
||||
<inputs>
|
||||
<input name="content" required="true" desc="Cohesive unit of text to review (markdown, plain text, or text-heavy XML)" />
|
||||
<input name="style_guide" required="false"
|
||||
desc="Project-specific style guide. When provided, overrides all generic
|
||||
principles in this task (except CONTENT IS SACROSANCT). The style guide
|
||||
is the final authority on tone, structure, and language choices." />
|
||||
<input name="reader_type" required="false" default="humans" desc="'humans' (default) for standard editorial, 'llm' for precision focus" />
|
||||
</inputs>
|
||||
|
||||
<llm critical="true">
|
||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||
<i>DO NOT skip steps or change the sequence</i>
|
||||
<i>HALT immediately when halt-conditions are met</i>
|
||||
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||
|
||||
<i>You are a clinical copy-editor: precise, professional, neither warm nor cynical</i>
|
||||
<i>Apply Microsoft Writing Style Guide principles as your baseline</i>
|
||||
<i>Focus on communication issues that impede comprehension - not style preferences</i>
|
||||
<i>NEVER rewrite for preference - only fix genuine issues</i>
|
||||
|
||||
<i critical="true">CONTENT IS SACROSANCT: Never challenge ideas—only clarify how they're expressed.</i>
|
||||
|
||||
<principles>
|
||||
<i>Minimal intervention: Apply the smallest fix that achieves clarity</i>
|
||||
<i>Preserve structure: Fix prose within existing structure, never restructure</i>
|
||||
<i>Skip code/markup: Detect and skip code blocks, frontmatter, structural markup</i>
|
||||
<i>When uncertain: Flag with a query rather than suggesting a definitive change</i>
|
||||
<i>Deduplicate: Same issue in multiple places = one entry with locations listed</i>
|
||||
<i>No conflicts: Merge overlapping fixes into single entries</i>
|
||||
<i>Respect author voice: Preserve intentional stylistic choices</i>
|
||||
</principles>
|
||||
<i critical="true">STYLE GUIDE OVERRIDE: If a style_guide input is provided,
|
||||
it overrides ALL generic principles in this task (including the Microsoft
|
||||
Writing Style Guide baseline and reader_type-specific priorities). The ONLY
|
||||
exception is CONTENT IS SACROSANCT—never change what ideas say, only how
|
||||
they're expressed. When style guide conflicts with this task, style guide wins.</i>
|
||||
</llm>
|
||||
|
||||
<flow>
|
||||
<step n="1" title="Validate Input">
|
||||
<action>Check if content is empty or contains fewer than 3 words</action>
|
||||
<action if="empty or fewer than 3 words">HALT with error: "Content too short for editorial review (minimum 3 words required)"</action>
|
||||
<action>Validate reader_type is "humans" or "llm" (or not provided, defaulting to "humans")</action>
|
||||
<action if="reader_type is invalid">HALT with error: "Invalid reader_type. Must be 'humans' or 'llm'"</action>
|
||||
<action>Identify content type (markdown, plain text, XML with text)</action>
|
||||
<action>Note any code blocks, frontmatter, or structural markup to skip</action>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Analyze Style">
|
||||
<action>Analyze the style, tone, and voice of the input text</action>
|
||||
<action>Note any intentional stylistic choices to preserve (informal tone, technical jargon, rhetorical patterns)</action>
|
||||
<action>Calibrate review approach based on reader_type parameter</action>
|
||||
<action if="reader_type='llm'">Prioritize: unambiguous references, consistent terminology, explicit structure, no hedging</action>
|
||||
<action if="reader_type='humans'">Prioritize: clarity, flow, readability, natural progression</action>
|
||||
</step>
|
||||
|
||||
<step n="3" title="Editorial Review" critical="true">
|
||||
<action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this
|
||||
review</action>
|
||||
<action>Review all prose sections (skip code blocks, frontmatter, structural markup)</action>
|
||||
<action>Identify communication issues that impede comprehension</action>
|
||||
<action>For each issue, determine the minimal fix that achieves clarity</action>
|
||||
<action>Deduplicate: If same issue appears multiple times, create one entry listing all locations</action>
|
||||
<action>Merge overlapping issues into single entries (no conflicting suggestions)</action>
|
||||
<action>For uncertain fixes, phrase as query: "Consider: [suggestion]?" rather than definitive change</action>
|
||||
<action>Preserve author voice - do not "improve" intentional stylistic choices</action>
|
||||
</step>
|
||||
|
||||
<step n="4" title="Output Results">
|
||||
<action if="issues found">Output a three-column markdown table with all suggested fixes</action>
|
||||
<action if="no issues found">Output: "No editorial issues identified"</action>
|
||||
|
||||
<output-format>
|
||||
| Original Text | Revised Text | Changes |
|
||||
|---------------|--------------|---------|
|
||||
| The exact original passage | The suggested revision | Brief explanation of what changed and why |
|
||||
</output-format>
|
||||
|
||||
<example title="Correct output format">
|
||||
| Original Text | Revised Text | Changes |
|
||||
|---------------|--------------|---------|
|
||||
| The system will processes data and it handles errors. | The system processes data and handles errors. | Fixed subject-verb
|
||||
agreement ("will processes" to "processes"); removed redundant "it" |
|
||||
| Users can chose from options (lines 12, 45, 78) | Users can choose from options | Fixed spelling: "chose" to "choose" (appears in
|
||||
3 locations) |
|
||||
</example>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<halt-conditions>
|
||||
<condition>HALT with error if content is empty or fewer than 3 words</condition>
|
||||
<condition>HALT with error if reader_type is not "humans" or "llm"</condition>
|
||||
<condition>If no issues found after thorough review, output "No editorial issues identified" (this is valid completion, not an error)</condition>
|
||||
</halt-conditions>
|
||||
|
||||
</task>
|
||||
209
_bmad/core/tasks/editorial-review-structure.xml
Normal file
209
_bmad/core/tasks/editorial-review-structure.xml
Normal file
@@ -0,0 +1,209 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- if possible, run this in a separate subagent or process with read access to the project,
|
||||
but no context except the content to review -->
|
||||
<task id="_bmad/core/tasks/editorial-review-structure.xml"
|
||||
name="Editorial Review - Structure"
|
||||
description="Structural editor that proposes cuts, reorganization,
|
||||
and simplification while preserving comprehension">
|
||||
<objective>Review document structure and propose substantive changes
|
||||
to improve clarity and flow-run this BEFORE copy editing</objective>
|
||||
<inputs>
|
||||
<input name="content" required="true"
|
||||
desc="Document to review (markdown, plain text, or structured content)" />
|
||||
<input name="style_guide" required="false"
|
||||
desc="Project-specific style guide. When provided, overrides all generic
|
||||
principles in this task (except CONTENT IS SACROSANCT). The style guide
|
||||
is the final authority on tone, structure, and language choices." />
|
||||
<input name="purpose" required="false"
|
||||
desc="Document's intended purpose (e.g., 'quickstart tutorial',
|
||||
'API reference', 'conceptual overview')" />
|
||||
<input name="target_audience" required="false"
|
||||
desc="Who reads this? (e.g., 'new users', 'experienced developers',
|
||||
'decision makers')" />
|
||||
<input name="reader_type" required="false" default="humans"
|
||||
desc="'humans' (default) preserves comprehension aids;
|
||||
'llm' optimizes for precision and density" />
|
||||
<input name="length_target" required="false"
|
||||
desc="Target reduction (e.g., '30% shorter', 'half the length',
|
||||
'no limit')" />
|
||||
</inputs>
|
||||
<llm critical="true">
|
||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||
<i>DO NOT skip steps or change the sequence</i>
|
||||
<i>HALT immediately when halt-conditions are met</i>
|
||||
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||
<i>You are a structural editor focused on HIGH-VALUE DENSITY</i>
|
||||
<i>Brevity IS clarity: Concise writing respects limited attention spans and enables effective scanning</i>
|
||||
<i>Every section must justify its existence-cut anything that delays understanding</i>
|
||||
<i>True redundancy is failure</i>
|
||||
<principles>
|
||||
<i>Comprehension through calibration: Optimize for the minimum words needed to maintain understanding</i>
|
||||
<i>Front-load value: Critical information comes first; nice-to-know comes last (or goes)</i>
|
||||
<i>One source of truth: If information appears identically twice, consolidate</i>
|
||||
<i>Scope discipline: Content that belongs in a different document should be cut or linked</i>
|
||||
<i>Propose, don't execute: Output recommendations-user decides what to accept</i>
|
||||
<i critical="true">CONTENT IS SACROSANCT: Never challenge ideas—only optimize how they're organized.</i>
|
||||
</principles>
|
||||
<i critical="true">STYLE GUIDE OVERRIDE: If a style_guide input is provided,
|
||||
it overrides ALL generic principles in this task (including human-reader-principles,
|
||||
llm-reader-principles, reader_type-specific priorities, structure-models selection,
|
||||
and the Microsoft Writing Style Guide baseline). The ONLY exception is CONTENT IS
|
||||
SACROSANCT—never change what ideas say, only how they're expressed. When style
|
||||
guide conflicts with this task, style guide wins.</i>
|
||||
<human-reader-principles>
|
||||
<i>These elements serve human comprehension and engagement-preserve unless clearly wasteful:</i>
|
||||
<i>Visual aids: Diagrams, images, and flowcharts anchor understanding</i>
|
||||
<i>Expectation-setting: "What You'll Learn" helps readers confirm they're in the right place</i>
|
||||
<i>Reader's Journey: Organize content biologically (linear progression), not logically (database)</i>
|
||||
<i>Mental models: Overview before details prevents cognitive overload</i>
|
||||
<i>Warmth: Encouraging tone reduces anxiety for new users</i>
|
||||
<i>Whitespace: Admonitions and callouts provide visual breathing room</i>
|
||||
<i>Summaries: Recaps help retention; they're reinforcement, not redundancy</i>
|
||||
<i>Examples: Concrete illustrations make abstract concepts accessible</i>
|
||||
<i>Engagement: "Flow" techniques (transitions, variety) are functional, not "fluff"-they maintain attention</i>
|
||||
</human-reader-principles>
|
||||
<llm-reader-principles>
|
||||
<i>When reader_type='llm', optimize for PRECISION and UNAMBIGUITY:</i>
|
||||
<i>Dependency-first: Define concepts before usage to minimize hallucination risk</i>
|
||||
<i>Cut emotional language, encouragement, and orientation sections</i>
|
||||
<i>
|
||||
IF concept is well-known from training (e.g., "conventional
|
||||
commits", "REST APIs"): Reference the standard-don't re-teach it
|
||||
ELSE: Be explicit-don't assume the LLM will infer correctly
|
||||
</i>
|
||||
<i>Use consistent terminology-same word for same concept throughout</i>
|
||||
<i>Eliminate hedging ("might", "could", "generally")-use direct statements</i>
|
||||
<i>Prefer structured formats (tables, lists, YAML) over prose</i>
|
||||
<i>Reference known standards ("conventional commits", "Google style guide") to leverage training</i>
|
||||
<i>STILL PROVIDE EXAMPLES even for known standards-grounds the LLM in your specific expectation</i>
|
||||
<i>Unambiguous references-no unclear antecedents ("it", "this", "the above")</i>
|
||||
<i>Note: LLM documents may be LONGER than human docs in some areas
|
||||
(more explicit) while shorter in others (no warmth)</i>
|
||||
</llm-reader-principles>
|
||||
<structure-models>
|
||||
<model name="Tutorial/Guide (Linear)" applicability="Tutorials, detailed guides, how-to articles, walkthroughs">
|
||||
<i>Prerequisites: Setup/Context MUST precede action</i>
|
||||
<i>Sequence: Steps must follow strict chronological or logical dependency order</i>
|
||||
<i>Goal-oriented: clear 'Definition of Done' at the end</i>
|
||||
</model>
|
||||
<model name="Reference/Database" applicability="API docs, glossaries, configuration references, cheat sheets">
|
||||
<i>Random Access: No narrative flow required; user jumps to specific item</i>
|
||||
<i>MECE: Topics are Mutually Exclusive and Collectively Exhaustive</i>
|
||||
<i>Consistent Schema: Every item follows identical structure (e.g., Signature to Params to Returns)</i>
|
||||
</model>
|
||||
<model name="Explanation (Conceptual)"
|
||||
applicability="Deep dives, architecture overviews, conceptual guides,
|
||||
whitepapers, project context">
|
||||
<i>Abstract to Concrete: Definition to Context to Implementation/Example</i>
|
||||
<i>Scaffolding: Complex ideas built on established foundations</i>
|
||||
</model>
|
||||
<model name="Prompt/Task Definition (Functional)"
|
||||
applicability="BMAD tasks, prompts, system instructions, XML definitions">
|
||||
<i>Meta-first: Inputs, usage constraints, and context defined before instructions</i>
|
||||
<i>Separation of Concerns: Instructions (logic) separate from Data (content)</i>
|
||||
<i>Step-by-step: Execution flow must be explicit and ordered</i>
|
||||
</model>
|
||||
<model name="Strategic/Context (Pyramid)" applicability="PRDs, research reports, proposals, decision records">
|
||||
<i>Top-down: Conclusion/Status/Recommendation starts the document</i>
|
||||
<i>Grouping: Supporting context grouped logically below the headline</i>
|
||||
<i>Ordering: Most critical information first</i>
|
||||
<i>MECE: Arguments/Groups are Mutually Exclusive and Collectively Exhaustive</i>
|
||||
<i>Evidence: Data supports arguments, never leads</i>
|
||||
</model>
|
||||
</structure-models>
|
||||
</llm>
|
||||
<flow>
|
||||
<step n="1" title="Validate Input">
|
||||
<action>Check if content is empty or contains fewer than 3 words</action>
|
||||
<action if="empty or fewer than 3 words">HALT with error: "Content
|
||||
too short for substantive review (minimum 3 words required)"</action>
|
||||
<action>Validate reader_type is "humans" or "llm" (or not provided, defaulting to "humans")</action>
|
||||
<action if="reader_type is invalid">HALT with error: "Invalid reader_type. Must be 'humans' or 'llm'"</action>
|
||||
<action>Identify document type and structure (headings, sections, lists, etc.)</action>
|
||||
<action>Note the current word count and section count</action>
|
||||
</step>
|
||||
<step n="2" title="Understand Purpose">
|
||||
<action>If purpose was provided, use it; otherwise infer from content</action>
|
||||
<action>If target_audience was provided, use it; otherwise infer from content</action>
|
||||
<action>Identify the core question the document answers</action>
|
||||
<action>State in one sentence: "This document exists to help [audience] accomplish [goal]"</action>
|
||||
<action>Select the most appropriate structural model from structure-models based on purpose/audience</action>
|
||||
<action>Note reader_type and which principles apply (human-reader-principles or llm-reader-principles)</action>
|
||||
</step>
|
||||
<step n="3" title="Structural Analysis" critical="true">
|
||||
<action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this
|
||||
analysis</action>
|
||||
<action>Map the document structure: list each major section with its word count</action>
|
||||
<action>Evaluate structure against the selected model's primary rules
|
||||
(e.g., 'Does recommendation come first?' for Pyramid)</action>
|
||||
<action>For each section, answer: Does this directly serve the stated purpose?</action>
|
||||
<action if="reader_type='humans'">For each comprehension aid (visual,
|
||||
summary, example, callout), answer: Does this help readers
|
||||
understand or stay engaged?</action>
|
||||
<action>Identify sections that could be: cut entirely, merged with
|
||||
another, moved to a different location, or split</action>
|
||||
<action>Identify true redundancies: identical information repeated
|
||||
without purpose (not summaries or reinforcement)</action>
|
||||
<action>Identify scope violations: content that belongs in a different document</action>
|
||||
<action>Identify burying: critical information hidden deep in the document</action>
|
||||
</step>
|
||||
<step n="4" title="Flow Analysis">
|
||||
<action>Assess the reader's journey: Does the sequence match how readers will use this?</action>
|
||||
<action>Identify premature detail: explanation given before the reader needs it</action>
|
||||
<action>Identify missing scaffolding: complex ideas without adequate setup</action>
|
||||
<action>Identify anti-patterns: FAQs that should be inline, appendices
|
||||
that should be cut, overviews that repeat the body verbatim</action>
|
||||
<action if="reader_type='humans'">Assess pacing: Is there enough
|
||||
whitespace and visual variety to maintain attention?</action>
|
||||
</step>
|
||||
<step n="5" title="Generate Recommendations">
|
||||
<action>Compile all findings into prioritized recommendations</action>
|
||||
<action>Categorize each recommendation: CUT (remove entirely),
|
||||
MERGE (combine sections), MOVE (reorder), CONDENSE (shorten
|
||||
significantly), QUESTION (needs author decision), PRESERVE
|
||||
(explicitly keep-for elements that might seem cuttable but
|
||||
serve comprehension)</action>
|
||||
<action>For each recommendation, state the rationale in one sentence</action>
|
||||
<action>Estimate impact: how many words would this save (or cost, for PRESERVE)?</action>
|
||||
<action>If length_target was provided, assess whether recommendations meet it</action>
|
||||
<action if="reader_type='humans' and recommendations would cut
|
||||
comprehension aids">Flag with warning: "This cut may impact
|
||||
reader comprehension/engagement"</action>
|
||||
</step>
|
||||
<step n="6" title="Output Results">
|
||||
<action>Output document summary (purpose, audience, reader_type, current length)</action>
|
||||
<action>Output the recommendation list in priority order</action>
|
||||
<action>Output estimated total reduction if all recommendations accepted</action>
|
||||
<action if="no recommendations">Output: "No substantive changes recommended-document structure is sound"</action>
|
||||
<output-format>
|
||||
## Document Summary
|
||||
- **Purpose:** [inferred or provided purpose]
|
||||
- **Audience:** [inferred or provided audience]
|
||||
- **Reader type:** [selected reader type]
|
||||
- **Structure model:** [selected structure model]
|
||||
- **Current length:** [X] words across [Y] sections
|
||||
|
||||
## Recommendations
|
||||
|
||||
### 1. [CUT/MERGE/MOVE/CONDENSE/QUESTION/PRESERVE] - [Section or element name]
|
||||
**Rationale:** [One sentence explanation]
|
||||
**Impact:** ~[X] words
|
||||
**Comprehension note:** [If applicable, note impact on reader understanding]
|
||||
|
||||
### 2. ...
|
||||
|
||||
## Summary
|
||||
- **Total recommendations:** [N]
|
||||
- **Estimated reduction:** [X] words ([Y]% of original)
|
||||
- **Meets length target:** [Yes/No/No target specified]
|
||||
- **Comprehension trade-offs:** [Note any cuts that sacrifice reader engagement for brevity]
|
||||
</output-format>
|
||||
</step>
|
||||
</flow>
|
||||
<halt-conditions>
|
||||
<condition>HALT with error if content is empty or fewer than 3 words</condition>
|
||||
<condition>HALT with error if reader_type is not "humans" or "llm"</condition>
|
||||
<condition>If no structural issues found, output "No substantive changes
|
||||
recommended" (this is valid completion, not an error)</condition>
|
||||
</halt-conditions>
|
||||
</task>
|
||||
85
_bmad/core/tasks/help.md
Normal file
85
_bmad/core/tasks/help.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
name: help
|
||||
description: Get unstuck by showing what workflow steps come next or answering questions about what to do
|
||||
---
|
||||
|
||||
# Task: BMAD Help
|
||||
|
||||
## ROUTING RULES
|
||||
|
||||
- **Empty `phase` = anytime** — Universal tools work regardless of workflow state
|
||||
- **Numbered phases indicate sequence** — Phases like `1-discover` → `2-define` → `3-build` → `4-ship` flow in order (naming varies by module)
|
||||
- **Stay in module** — Guide through the active module's workflow based on phase+sequence ordering
|
||||
- **Descriptions contain routing** — Read for alternate paths (e.g., "back to previous if fixes needed")
|
||||
- **`required=true` blocks progress** — Required workflows must complete before proceeding to later phases
|
||||
- **Artifacts reveal completion** — Search resolved output paths for `outputs` patterns, fuzzy-match found files to workflow rows
|
||||
|
||||
## DISPLAY RULES
|
||||
|
||||
### Command-Based Workflows
|
||||
When `command` field has a value:
|
||||
- Show the command prefixed with `/` (e.g., `/bmad-bmm-create-prd`)
|
||||
|
||||
### Agent-Based Workflows
|
||||
When `command` field is empty:
|
||||
- User loads agent first via `/agent-command`
|
||||
- Then invokes by referencing the `code` field or describing the `name` field
|
||||
- Do NOT show a slash command — show the code value and agent load instruction instead
|
||||
|
||||
Example presentation for empty command:
|
||||
```
|
||||
Explain Concept (EC)
|
||||
Load: /tech-writer, then ask to "EC about [topic]"
|
||||
Agent: Tech Writer
|
||||
Description: Create clear technical explanations with examples...
|
||||
```
|
||||
|
||||
## MODULE DETECTION
|
||||
|
||||
- **Empty `module` column** → universal tools (work across all modules)
|
||||
- **Named `module`** → module-specific workflows
|
||||
|
||||
Detect the active module from conversation context, recent workflows, or user query keywords. If ambiguous, ask the user.
|
||||
|
||||
## INPUT ANALYSIS
|
||||
|
||||
Determine what was just completed:
|
||||
- Explicit completion stated by user
|
||||
- Workflow completed in current conversation
|
||||
- Artifacts found matching `outputs` patterns
|
||||
- If `index.md` exists, read it for additional context
|
||||
- If still unclear, ask: "What workflow did you most recently complete?"
|
||||
|
||||
## EXECUTION
|
||||
|
||||
1. **Load catalog** — Load `{project-root}/_bmad/_config/bmad-help.csv`
|
||||
|
||||
2. **Resolve output locations and config** — Scan each folder under `_bmad/` (except `_config`) for `config.yaml`. For each workflow row, resolve its `output-location` variables against that module's config so artifact paths can be searched. Also extract `communication_language` and `project_knowledge` from each scanned module's config.
|
||||
|
||||
3. **Ground in project knowledge** — If `project_knowledge` resolves to an existing path, read available documentation files (architecture docs, project overview, tech stack references) for grounding context. Use discovered project facts when composing any project-specific output. Never fabricate project-specific details — if documentation is unavailable, state so.
|
||||
|
||||
4. **Detect active module** — Use MODULE DETECTION above
|
||||
|
||||
5. **Analyze input** — Task may provide a workflow name/code, conversational phrase, or nothing. Infer what was just completed using INPUT ANALYSIS above.
|
||||
|
||||
6. **Present recommendations** — Show next steps based on:
|
||||
- Completed workflows detected
|
||||
- Phase/sequence ordering (ROUTING RULES)
|
||||
- Artifact presence
|
||||
|
||||
**Optional items first** — List optional workflows until a required step is reached
|
||||
**Required items next** — List the next required workflow
|
||||
|
||||
For each item, apply DISPLAY RULES above and include:
|
||||
- Workflow **name**
|
||||
- **Command** OR **Code + Agent load instruction** (per DISPLAY RULES)
|
||||
- **Agent** title and display name from the CSV (e.g., "🎨 Alex (Designer)")
|
||||
- Brief **description**
|
||||
|
||||
7. **Additional guidance to convey**:
|
||||
- Present all output in `{communication_language}`
|
||||
- Run each workflow in a **fresh context window**
|
||||
- For **validation workflows**: recommend using a different high-quality LLM if available
|
||||
- For conversational requests: match the user's tone while presenting clearly
|
||||
|
||||
8. Return to the calling process after presenting recommendations.
|
||||
65
_bmad/core/tasks/index-docs.xml
Normal file
65
_bmad/core/tasks/index-docs.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<task id="_bmad/core/tasks/index-docs" name="Index Docs"
|
||||
description="Generates or updates an index.md of all documents in the specified directory">
|
||||
<llm critical="true">
|
||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||
<i>DO NOT skip steps or change the sequence</i>
|
||||
<i>HALT immediately when halt-conditions are met</i>
|
||||
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
||||
</llm>
|
||||
|
||||
<flow>
|
||||
<step n="1" title="Scan Directory">
|
||||
<i>List all files and subdirectories in the target location</i>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Group Content">
|
||||
<i>Organize files by type, purpose, or subdirectory</i>
|
||||
</step>
|
||||
|
||||
<step n="3" title="Generate Descriptions">
|
||||
<i>Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the
|
||||
filename</i>
|
||||
</step>
|
||||
|
||||
<step n="4" title="Create/Update Index">
|
||||
<i>Write or update index.md with organized file listings</i>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<output-format>
|
||||
<example>
|
||||
# Directory Index
|
||||
|
||||
## Files
|
||||
|
||||
- **[filename.ext](./filename.ext)** - Brief description
|
||||
- **[another-file.ext](./another-file.ext)** - Brief description
|
||||
|
||||
## Subdirectories
|
||||
|
||||
### subfolder/
|
||||
|
||||
- **[file1.ext](./subfolder/file1.ext)** - Brief description
|
||||
- **[file2.ext](./subfolder/file2.ext)** - Brief description
|
||||
|
||||
### another-folder/
|
||||
|
||||
- **[file3.ext](./another-folder/file3.ext)** - Brief description
|
||||
</example>
|
||||
</output-format>
|
||||
|
||||
<halt-conditions critical="true">
|
||||
<i>HALT if target directory does not exist or is inaccessible</i>
|
||||
<i>HALT if user does not have write permissions to create index.md</i>
|
||||
</halt-conditions>
|
||||
|
||||
<validation>
|
||||
<i>Use relative paths starting with ./</i>
|
||||
<i>Group similar files together</i>
|
||||
<i>Read file contents to generate accurate descriptions - don't guess from filenames</i>
|
||||
<i>Keep descriptions concise but informative (3-10 words)</i>
|
||||
<i>Sort alphabetically within groups</i>
|
||||
<i>Skip hidden files (starting with .) unless specified</i>
|
||||
</validation>
|
||||
</task>
|
||||
48
_bmad/core/tasks/review-adversarial-general.xml
Normal file
48
_bmad/core/tasks/review-adversarial-general.xml
Normal file
@@ -0,0 +1,48 @@
|
||||
<!-- if possible, run this in a separate subagent or process with read access to the project,
|
||||
but no context except the content to review -->
|
||||
|
||||
<task id="_bmad/core/tasks/review-adversarial-general.xml" name="Adversarial Review (General)">
|
||||
<objective>Cynically review content and produce findings</objective>
|
||||
|
||||
<inputs>
|
||||
<input name="content" desc="Content to review - diff, spec, story, doc, or any artifact" />
|
||||
<input name="also_consider" required="false"
|
||||
desc="Optional areas to keep in mind during review alongside normal adversarial analysis" />
|
||||
</inputs>
|
||||
|
||||
<llm critical="true">
|
||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||
<i>DO NOT skip steps or change the sequence</i>
|
||||
<i>HALT immediately when halt-conditions are met</i>
|
||||
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||
|
||||
<i>You are a cynical, jaded reviewer with zero patience for sloppy work</i>
|
||||
<i>The content was submitted by a clueless weasel and you expect to find problems</i>
|
||||
<i>Be skeptical of everything</i>
|
||||
<i>Look for what's missing, not just what's wrong</i>
|
||||
<i>Use a precise, professional tone - no profanity or personal attacks</i>
|
||||
</llm>
|
||||
|
||||
<flow>
|
||||
<step n="1" title="Receive Content">
|
||||
<action>Load the content to review from provided input or context</action>
|
||||
<action>If content to review is empty, ask for clarification and abort task</action>
|
||||
<action>Identify content type (diff, branch, uncommitted changes, document, etc.)</action>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Adversarial Analysis" critical="true">
|
||||
<mandate>Review with extreme skepticism - assume problems exist</mandate>
|
||||
<action>Find at least ten issues to fix or improve in the provided content</action>
|
||||
</step>
|
||||
|
||||
<step n="3" title="Present Findings">
|
||||
<action>Output findings as a Markdown list (descriptions only)</action>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<halt-conditions>
|
||||
<condition>HALT if zero findings - this is suspicious, re-analyze or ask for guidance</condition>
|
||||
<condition>HALT if content is empty or unreadable</condition>
|
||||
</halt-conditions>
|
||||
|
||||
</task>
|
||||
108
_bmad/core/tasks/shard-doc.xml
Normal file
108
_bmad/core/tasks/shard-doc.xml
Normal file
@@ -0,0 +1,108 @@
|
||||
<task id="_bmad/core/tasks/shard-doc" name="Shard Document"
|
||||
description="Splits large markdown documents into smaller, organized files based on level 2 (default) sections">
|
||||
<objective>Split large markdown documents into smaller, organized files based on level 2 sections using @kayvan/markdown-tree-parser tool</objective>
|
||||
|
||||
<llm critical="true">
|
||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||
<i>DO NOT skip steps or change the sequence</i>
|
||||
<i>HALT immediately when halt-conditions are met</i>
|
||||
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
||||
</llm>
|
||||
|
||||
<critical-context>
|
||||
<i>Uses `npx @kayvan/markdown-tree-parser` to automatically shard documents by level 2 headings and generate an index</i>
|
||||
</critical-context>
|
||||
|
||||
<flow>
|
||||
<step n="1" title="Get Source Document">
|
||||
<action>Ask user for the source document path if not provided already</action>
|
||||
<action>Verify file exists and is accessible</action>
|
||||
<action>Verify file is markdown format (.md extension)</action>
|
||||
<action if="file not found or not markdown">HALT with error message</action>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Get Destination Folder">
|
||||
<action>Determine default destination: same location as source file, folder named after source file without .md extension</action>
|
||||
<action>Example: /path/to/architecture.md → /path/to/architecture/</action>
|
||||
<action>Ask user for the destination folder path ([y] to confirm use of default: [suggested-path], else enter a new path)</action>
|
||||
<action if="user accepts default">Use the suggested destination path</action>
|
||||
<action if="user provides custom path">Use the custom destination path</action>
|
||||
<action>Verify destination folder exists or can be created</action>
|
||||
<action>Check write permissions for destination</action>
|
||||
<action if="permission denied">HALT with error message</action>
|
||||
</step>
|
||||
|
||||
<step n="3" title="Execute Sharding">
|
||||
<action>Inform user that sharding is beginning</action>
|
||||
<action>Execute command: `npx @kayvan/markdown-tree-parser explode [source-document] [destination-folder]`</action>
|
||||
<action>Capture command output and any errors</action>
|
||||
<action if="command fails">HALT and display error to user</action>
|
||||
</step>
|
||||
|
||||
<step n="4" title="Verify Output">
|
||||
<action>Check that destination folder contains sharded files</action>
|
||||
<action>Verify index.md was created in destination folder</action>
|
||||
<action>Count the number of files created</action>
|
||||
<action if="no files created">HALT with error message</action>
|
||||
</step>
|
||||
|
||||
<step n="5" title="Report Completion">
|
||||
<action>Display completion report to user including:</action>
|
||||
<i>- Source document path and name</i>
|
||||
<i>- Destination folder path</i>
|
||||
<i>- Number of section files created</i>
|
||||
<i>- Confirmation that index.md was created</i>
|
||||
<i>- Any tool output or warnings</i>
|
||||
<action>Inform user that sharding completed successfully</action>
|
||||
</step>
|
||||
|
||||
<step n="6" title="Handle Original Document">
|
||||
<critical>Keeping both the original and sharded versions defeats the purpose of sharding and can cause confusion</critical>
|
||||
<action>Present user with options for the original document:</action>
|
||||
|
||||
<ask>What would you like to do with the original document `[source-document-name]`?
|
||||
|
||||
Options:
|
||||
[d] Delete - Remove the original (recommended - shards can always be recombined)
|
||||
[m] Move to archive - Move original to a backup/archive location
|
||||
[k] Keep - Leave original in place (NOT recommended - defeats sharding purpose)
|
||||
|
||||
Your choice (d/m/k):</ask>
|
||||
|
||||
<check if="user selects 'd' (delete)">
|
||||
<action>Delete the original source document file</action>
|
||||
<action>Confirm deletion to user: "✓ Original document deleted: [source-document-path]"</action>
|
||||
<note>The document can be reconstructed from shards by concatenating all section files in order</note>
|
||||
</check>
|
||||
|
||||
<check if="user selects 'm' (move)">
|
||||
<action>Determine default archive location: same directory as source, in an "archive" subfolder</action>
|
||||
<action>Example: /path/to/architecture.md → /path/to/archive/architecture.md</action>
|
||||
<ask>Archive location ([y] to use default: [default-archive-path], or provide custom path):</ask>
|
||||
<action if="user accepts default">Use default archive path</action>
|
||||
<action if="user provides custom path">Use custom archive path</action>
|
||||
<action>Create archive directory if it doesn't exist</action>
|
||||
<action>Move original document to archive location</action>
|
||||
<action>Confirm move to user: "✓ Original document moved to: [archive-path]"</action>
|
||||
</check>
|
||||
|
||||
<check if="user selects 'k' (keep)">
|
||||
<action>Display warning to user:</action>
|
||||
<output>⚠️ WARNING: Keeping both original and sharded versions is NOT recommended.
|
||||
|
||||
This creates confusion because:
|
||||
- The discover_inputs protocol may load the wrong version
|
||||
- Updates to one won't reflect in the other
|
||||
- You'll have duplicate content taking up space
|
||||
|
||||
Consider deleting or archiving the original document.</output>
|
||||
<action>Confirm user choice: "Original document kept at: [source-document-path]"</action>
|
||||
</check>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<halt-conditions critical="true">
|
||||
<i>HALT if npx command fails or produces no output files</i>
|
||||
</halt-conditions>
|
||||
</task>
|
||||
235
_bmad/core/tasks/workflow.xml
Normal file
235
_bmad/core/tasks/workflow.xml
Normal file
@@ -0,0 +1,235 @@
|
||||
<task id="_bmad/core/tasks/workflow.xml" name="Execute Workflow" internal="true">
|
||||
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
|
||||
|
||||
<llm critical="true">
|
||||
<mandate>Always read COMPLETE files - NEVER use offset/limit when reading any workflow related files</mandate>
|
||||
<mandate>Instructions are MANDATORY - either as file path, steps or embedded list in YAML, XML or markdown</mandate>
|
||||
<mandate>Execute ALL steps in instructions IN EXACT ORDER</mandate>
|
||||
<mandate>Save to template output file after EVERY "template-output" tag</mandate>
|
||||
<mandate>NEVER skip a step - YOU are responsible for every steps execution without fail or excuse</mandate>
|
||||
</llm>
|
||||
|
||||
<WORKFLOW-RULES critical="true">
|
||||
<rule n="1">Steps execute in exact numerical order (1, 2, 3...)</rule>
|
||||
<rule n="2">Optional steps: Ask user unless #yolo mode active</rule>
|
||||
<rule n="3">Template-output tags: Save content, discuss with the user the section completed, and NEVER proceed until the users indicates
|
||||
to proceed (unless YOLO mode has been activated)</rule>
|
||||
</WORKFLOW-RULES>
|
||||
|
||||
<flow>
|
||||
<step n="1" title="Load and Initialize Workflow">
|
||||
<substep n="1a" title="Load Configuration and Resolve Variables">
|
||||
<action>Read workflow.yaml from provided path</action>
|
||||
<mandate>Load config_source (REQUIRED for all modules)</mandate>
|
||||
<phase n="1">Load external config from config_source path</phase>
|
||||
<phase n="2">Resolve all {config_source}: references with values from config</phase>
|
||||
<phase n="3">Resolve system variables (date:system-generated) and paths ({project-root}, {installed_path})</phase>
|
||||
<phase n="4">Ask user for input of any variables that are still unknown</phase>
|
||||
</substep>
|
||||
|
||||
<substep n="1b" title="Load Required Components">
|
||||
<mandate>Instructions: Read COMPLETE file from path OR embedded list (REQUIRED)</mandate>
|
||||
<check>If template path → Read COMPLETE template file</check>
|
||||
<check>If validation path → Note path for later loading when needed</check>
|
||||
<check>If template: false → Mark as action-workflow (else template-workflow)</check>
|
||||
<note>Data files (csv, json) → Store paths only, load on-demand when instructions reference them</note>
|
||||
</substep>
|
||||
|
||||
<substep n="1c" title="Initialize Output" if="template-workflow">
|
||||
<action>Resolve default_output_file path with all variables and {{date}}</action>
|
||||
<action>Create output directory if doesn't exist</action>
|
||||
<action>If template-workflow → Write template to output file with placeholders</action>
|
||||
<action>If action-workflow → Skip file creation</action>
|
||||
</substep>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Process Each Instruction Step in Order">
|
||||
<iterate>For each step in instructions:</iterate>
|
||||
|
||||
<substep n="2a" title="Handle Step Attributes">
|
||||
<check>If optional="true" and NOT #yolo → Ask user to include</check>
|
||||
<check>If if="condition" → Evaluate condition</check>
|
||||
<check>If for-each="item" → Repeat step for each item</check>
|
||||
<check>If repeat="n" → Repeat step n times</check>
|
||||
</substep>
|
||||
|
||||
<substep n="2b" title="Execute Step Content">
|
||||
<action>Process step instructions (markdown or XML tags)</action>
|
||||
<action>Replace {{variables}} with values (ask user if unknown)</action>
|
||||
<execute-tags>
|
||||
<tag>action xml tag → Perform the action</tag>
|
||||
<tag>check if="condition" xml tag → Conditional block wrapping actions (requires closing </check>)</tag>
|
||||
<tag>ask xml tag → Prompt user and WAIT for response</tag>
|
||||
<tag>invoke-workflow xml tag → Execute another workflow with given inputs and the workflow.xml runner</tag>
|
||||
<tag>invoke-task xml tag → Execute specified task</tag>
|
||||
<tag>invoke-protocol name="protocol_name" xml tag → Execute reusable protocol from protocols section</tag>
|
||||
<tag>goto step="x" → Jump to specified step</tag>
|
||||
</execute-tags>
|
||||
</substep>
|
||||
|
||||
<substep n="2c" title="Handle template-output Tags">
|
||||
<if tag="template-output">
|
||||
<mandate>Generate content for this section</mandate>
|
||||
<mandate>Save to file (Write first time, Edit subsequent)</mandate>
|
||||
<action>Display generated content</action>
|
||||
<ask> [a] Advanced Elicitation, [c] Continue, [p] Party-Mode, [y] YOLO the rest of this document only. WAIT for response. <if
|
||||
response="a">
|
||||
<action>Start the advanced elicitation workflow {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml</action>
|
||||
</if>
|
||||
<if
|
||||
response="c">
|
||||
<action>Continue to next step</action>
|
||||
</if>
|
||||
<if response="p">
|
||||
<action>Start the party-mode workflow {project-root}/_bmad/core/workflows/party-mode/workflow.md</action>
|
||||
</if>
|
||||
<if
|
||||
response="y">
|
||||
<action>Enter #yolo mode for the rest of the workflow</action>
|
||||
</if>
|
||||
</ask>
|
||||
</if>
|
||||
</substep>
|
||||
|
||||
<substep n="2d" title="Step Completion">
|
||||
<check>If no special tags and NOT #yolo:</check>
|
||||
<ask>Continue to next step? (y/n/edit)</ask>
|
||||
</substep>
|
||||
</step>
|
||||
|
||||
<step n="3" title="Completion">
|
||||
<check>Confirm document saved to output path</check>
|
||||
<action>Report workflow completion</action>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
<execution-modes>
|
||||
<mode name="normal">Full user interaction and confirmation of EVERY step at EVERY template output - NO EXCEPTIONS except yolo MODE</mode>
|
||||
<mode name="yolo">Skip all confirmations and elicitation, minimize prompts and try to produce all of the workflow automatically by
|
||||
simulating the remaining discussions with an simulated expert user</mode>
|
||||
</execution-modes>
|
||||
|
||||
<supported-tags desc="Instructions can use these tags">
|
||||
<structural>
|
||||
<tag>step n="X" goal="..." - Define step with number and goal</tag>
|
||||
<tag>optional="true" - Step can be skipped</tag>
|
||||
<tag>if="condition" - Conditional execution</tag>
|
||||
<tag>for-each="collection" - Iterate over items</tag>
|
||||
<tag>repeat="n" - Repeat n times</tag>
|
||||
</structural>
|
||||
<execution>
|
||||
<tag>action - Required action to perform</tag>
|
||||
<tag>action if="condition" - Single conditional action (inline, no closing tag needed)</tag>
|
||||
<tag>check if="condition">...</check> - Conditional block wrapping multiple items (closing tag required)</tag>
|
||||
<tag>ask - Get user input (ALWAYS wait for response before continuing)</tag>
|
||||
<tag>goto - Jump to another step</tag>
|
||||
<tag>invoke-workflow - Call another workflow</tag>
|
||||
<tag>invoke-task - Call a task</tag>
|
||||
<tag>invoke-protocol - Execute a reusable protocol (e.g., discover_inputs)</tag>
|
||||
</execution>
|
||||
<output>
|
||||
<tag>template-output - Save content checkpoint</tag>
|
||||
<tag>critical - Cannot be skipped</tag>
|
||||
<tag>example - Show example output</tag>
|
||||
</output>
|
||||
</supported-tags>
|
||||
|
||||
<protocols desc="Reusable workflow protocols that can be invoked via invoke-protocol tag">
|
||||
<protocol name="discover_inputs" desc="Smart file discovery and loading based on input_file_patterns">
|
||||
<objective>Intelligently load project files (whole or sharded) based on workflow's input_file_patterns configuration</objective>
|
||||
|
||||
<critical>Only execute if workflow.yaml contains input_file_patterns section</critical>
|
||||
|
||||
<flow>
|
||||
<step n="1" title="Parse Input File Patterns">
|
||||
<action>Read input_file_patterns from loaded workflow.yaml</action>
|
||||
<action>For each pattern group (prd, architecture, epics, etc.), note the load_strategy if present</action>
|
||||
</step>
|
||||
|
||||
<step n="2" title="Load Files Using Smart Strategies">
|
||||
<iterate>For each pattern in input_file_patterns:</iterate>
|
||||
|
||||
<substep n="2a" title="Try Sharded Documents First">
|
||||
<check if="sharded pattern exists">
|
||||
<action>Determine load_strategy from pattern config (defaults to FULL_LOAD if not specified)</action>
|
||||
|
||||
<strategy name="FULL_LOAD">
|
||||
<desc>Load ALL files in sharded directory - used for PRD, Architecture, UX, brownfield docs</desc>
|
||||
<action>Use glob pattern to find ALL .md files (e.g., "{output_folder}/*architecture*/*.md")</action>
|
||||
<action>Load EVERY matching file completely</action>
|
||||
<action>Concatenate content in logical order (index.md first if exists, then alphabetical)</action>
|
||||
<action>Store in variable: {pattern_name_content}</action>
|
||||
</strategy>
|
||||
|
||||
<strategy name="SELECTIVE_LOAD">
|
||||
<desc>Load specific shard using template variable - example: used for epics with {{epic_num}}</desc>
|
||||
<action>Check for template variables in sharded_single pattern (e.g., {{epic_num}})</action>
|
||||
<action>If variable undefined, ask user for value OR infer from context</action>
|
||||
<action>Resolve template to specific file path</action>
|
||||
<action>Load that specific file</action>
|
||||
<action>Store in variable: {pattern_name_content}</action>
|
||||
</strategy>
|
||||
|
||||
<strategy name="INDEX_GUIDED">
|
||||
<desc>Load index.md, analyze structure and description of each doc in the index, then intelligently load relevant docs</desc>
|
||||
<mandate>DO NOT BE LAZY - use best judgment to load documents that might have relevant information, even if only a 5% chance</mandate>
|
||||
<action>Load index.md from sharded directory</action>
|
||||
<action>Parse table of contents, links, section headers</action>
|
||||
<action>Analyze workflow's purpose and objective</action>
|
||||
<action>Identify which linked/referenced documents are likely relevant</action>
|
||||
<example>If workflow is about authentication and index shows "Auth Overview", "Payment Setup", "Deployment" → Load auth
|
||||
docs, consider deployment docs, skip payment</example>
|
||||
<action>Load all identified relevant documents</action>
|
||||
<action>Store combined content in variable: {pattern_name_content}</action>
|
||||
<note>When in doubt, LOAD IT - context is valuable, being thorough is better than missing critical info</note>
|
||||
</strategy>
|
||||
<action>Mark pattern as RESOLVED, skip to next pattern</action>
|
||||
</check>
|
||||
</substep>
|
||||
|
||||
<substep n="2b" title="Try Whole Document if No Sharded Found">
|
||||
<check if="no sharded matches found OR no sharded pattern exists">
|
||||
<action>Attempt glob match on 'whole' pattern (e.g., "{output_folder}/*prd*.md")</action>
|
||||
<check if="matches found">
|
||||
<action>Load ALL matching files completely (no offset/limit)</action>
|
||||
<action>Store content in variable: {pattern_name_content} (e.g., {prd_content})</action>
|
||||
<action>Mark pattern as RESOLVED, skip to next pattern</action>
|
||||
</check>
|
||||
</check>
|
||||
</substep>
|
||||
|
||||
<substep n="2c" title="Handle Not Found">
|
||||
<check if="no matches for sharded OR whole">
|
||||
<action>Set {pattern_name_content} to empty string</action>
|
||||
<action>Note in session: "No {pattern_name} files found" (not an error, just unavailable, offer use change to provide)</action>
|
||||
</check>
|
||||
</substep>
|
||||
</step>
|
||||
|
||||
<step n="3" title="Report Discovery Results">
|
||||
<action>List all loaded content variables with file counts</action>
|
||||
<example>
|
||||
✓ Loaded {prd_content} from 5 sharded files: prd/index.md, prd/requirements.md, ...
|
||||
✓ Loaded {architecture_content} from 1 file: Architecture.md
|
||||
✓ Loaded {epics_content} from selective load: epics/epic-3.md
|
||||
○ No ux_design files found
|
||||
</example>
|
||||
<note>This gives workflow transparency into what context is available</note>
|
||||
</step>
|
||||
</flow>
|
||||
|
||||
</protocol>
|
||||
</protocols>
|
||||
|
||||
<llm final="true">
|
||||
<critical-rules>
|
||||
• This is the complete workflow execution engine
|
||||
• You MUST Follow instructions exactly as written
|
||||
• The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml
|
||||
• You MUST have already loaded and processed: {installed_path}/workflow.yaml
|
||||
• This workflow uses INTENT-DRIVEN PLANNING - adapt organically to product type and context
|
||||
• YOU ARE FACILITATING A CONVERSATION With a user to produce a final document step by step. The whole process is meant to be
|
||||
collaborative helping the user flesh out their ideas. Do not rush or optimize and skip any section.
|
||||
</critical-rules>
|
||||
</llm>
|
||||
</task>
|
||||
Reference in New Issue
Block a user