trivariate workflows added
This commit is contained in:
parent
731bee26ea
commit
bd620e38e5
|
|
@ -1,5 +1,3 @@
|
||||||
# Business Analyst Agent Definition
|
|
||||||
|
|
||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
id: "_bmad/bmm/agents/analyst.md"
|
id: "_bmad/bmm/agents/analyst.md"
|
||||||
|
|
@ -23,9 +21,17 @@ agent:
|
||||||
data: "{project-root}/_bmad/bmm/data/project-context-template.md"
|
data: "{project-root}/_bmad/bmm/data/project-context-template.md"
|
||||||
description: "[BP] Brainstorm Project: Expert Guided Facilitation through a single or multiple techniques with a final report"
|
description: "[BP] Brainstorm Project: Expert Guided Facilitation through a single or multiple techniques with a final report"
|
||||||
|
|
||||||
- trigger: RS or fuzzy match on research
|
- trigger: MR or fuzzy match on market-research
|
||||||
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow.md"
|
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md"
|
||||||
description: "[RS] Research: Choose from or specify market, domain, competitive analysis, or technical research"
|
description: "[MR] Market Research: Market analysis, competitive landscape, customer needs and trends"
|
||||||
|
|
||||||
|
- trigger: DR or fuzzy match on domain-research
|
||||||
|
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md"
|
||||||
|
description: "[DR] Domain Research: Industry domain deep dive, subject matter expertise and terminology"
|
||||||
|
|
||||||
|
- trigger: TR or fuzzy match on technical-research
|
||||||
|
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md"
|
||||||
|
description: "[TR] Technical Research: Technical feasibility, architecture options and implementation approaches"
|
||||||
|
|
||||||
- trigger: CB or fuzzy match on product-brief
|
- trigger: CB or fuzzy match on product-brief
|
||||||
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md"
|
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# Product Manager Agent Definition
|
|
||||||
# This file defines the PM agent for the BMAD BMM module
|
|
||||||
|
|
||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
id: "_bmad/bmm/agents/pm.md"
|
id: "_bmad/bmm/agents/pm.md"
|
||||||
|
|
@ -22,15 +19,15 @@ agent:
|
||||||
|
|
||||||
menu:
|
menu:
|
||||||
- trigger: CP or fuzzy match on create-prd
|
- trigger: CP or fuzzy match on create-prd
|
||||||
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md"
|
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md"
|
||||||
description: "[CP] Create PRD: Expert led facilitation to produce your Product Requirements Document"
|
description: "[CP] Create PRD: Expert led facilitation to produce your Product Requirements Document"
|
||||||
|
|
||||||
- trigger: VP or fuzzy match on validate-prd
|
- trigger: VP or fuzzy match on validate-prd
|
||||||
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md"
|
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md"
|
||||||
description: "[VP] Validate PRD: Validate a Product Requirements Document is comprehensive, lean, well organized and cohesive"
|
description: "[VP] Validate PRD: Validate a Product Requirements Document is comprehensive, lean, well organized and cohesive"
|
||||||
|
|
||||||
- trigger: EP or fuzzy match on edit-prd
|
- trigger: EP or fuzzy match on edit-prd
|
||||||
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md"
|
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md"
|
||||||
description: "[EP] Edit PRD: Update an existing Product Requirements Document"
|
description: "[EP] Edit PRD: Update an existing Product Requirements Document"
|
||||||
|
|
||||||
- trigger: CE or fuzzy match on epics-stories
|
- trigger: CE or fuzzy match on epics-stories
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/
|
||||||
bmm,1-analysis,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad-bmm-create-product-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
bmm,1-analysis,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad-bmm-create-product-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
||||||
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
||||||
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
||||||
|
bmm,2-planning,Edit PRD,EP,25,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd",
|
||||||
bmm,2-planning,Create UX,CU,30,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad-bmm-create-ux-design,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design",
|
bmm,2-planning,Create UX,CU,30,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad-bmm-create-ux-design,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design",
|
||||||
bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad-bmm-create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad-bmm-create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
||||||
bmm,3-solutioning,Create Epics and Stories,CE,30,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad-bmm-create-epics-and-stories,true,pm,Create Mode,"Create the Epics and Stories Listing",planning_artifacts,"epics and stories",
|
bmm,3-solutioning,Create Epics and Stories,CE,30,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad-bmm-create-epics-and-stories,true,pm,Create Mode,"Create the Epics and Stories Listing",planning_artifacts,"epics and stories",
|
||||||
|
|
|
||||||
|
|
|
@ -1,172 +0,0 @@
|
||||||
---
|
|
||||||
name: research
|
|
||||||
description: Conduct comprehensive research across multiple domains using current web data and verified sources - Market, Technical, Domain and other research types.
|
|
||||||
---
|
|
||||||
|
|
||||||
# Research Workflow
|
|
||||||
|
|
||||||
**Goal:** Conduct comprehensive, exhaustive research across multiple domains using current web data and verified sources to produce complete research documents with compelling narratives and proper citations.
|
|
||||||
|
|
||||||
**Document Standards:**
|
|
||||||
|
|
||||||
- **Comprehensive Coverage**: Exhaustive research with no critical gaps
|
|
||||||
- **Source Verification**: Every factual claim backed by web sources with URL citations
|
|
||||||
- **Document Length**: As long as needed to fully cover the research topic
|
|
||||||
- **Professional Structure**: Compelling narrative introduction, detailed TOC, and comprehensive summary
|
|
||||||
- **Authoritative Sources**: Multiple independent sources for all critical claims
|
|
||||||
|
|
||||||
**Your Role:** You are a research facilitator and web data analyst working with an expert partner. This is a collaboration where you bring research methodology and web search capabilities, while your partner brings domain knowledge and research direction.
|
|
||||||
|
|
||||||
**Final Deliverable**: A complete research document that serves as an authoritative reference on the research topic with:
|
|
||||||
|
|
||||||
- Compelling narrative introduction
|
|
||||||
- Comprehensive table of contents
|
|
||||||
- Detailed research sections with proper citations
|
|
||||||
- Executive summary and conclusions
|
|
||||||
|
|
||||||
## WORKFLOW ARCHITECTURE
|
|
||||||
|
|
||||||
This uses **micro-file architecture** with **routing-based discovery**:
|
|
||||||
|
|
||||||
- Each research type has its own step folder
|
|
||||||
- Step 01 discovers research type and routes to appropriate sub-workflow
|
|
||||||
- Sequential progression within each research type
|
|
||||||
- Document state tracked in output frontmatter
|
|
||||||
|
|
||||||
## INITIALIZATION
|
|
||||||
|
|
||||||
### Configuration Loading
|
|
||||||
|
|
||||||
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
||||||
|
|
||||||
- `project_name`, `output_folder`, , `planning_artifacts`, `user_name`
|
|
||||||
- `communication_language`, `document_output_language`, `user_skill_level`
|
|
||||||
- `date` as a system-generated value
|
|
||||||
|
|
||||||
### Paths
|
|
||||||
|
|
||||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/1-analysis/research`
|
|
||||||
- `template_path` = `{installed_path}/research.template.md`
|
|
||||||
- `default_output_file` = `{planning_artifacts}/research/{{research_type}}-{{topic}}-research-{{date}}.md` (dynamic based on research type)
|
|
||||||
|
|
||||||
## PREREQUISITE
|
|
||||||
|
|
||||||
**⛔ Web search required.** If unavailable, abort and tell the user.
|
|
||||||
|
|
||||||
## RESEARCH BEHAVIOR
|
|
||||||
|
|
||||||
### Web Research Standards
|
|
||||||
|
|
||||||
- **Current Data Only**: Search the web to verify and supplement your knowledge with current facts
|
|
||||||
- **Source Verification**: Require citations for all factual claims
|
|
||||||
- **Anti-Hallucination Protocol**: Never present information without verified sources
|
|
||||||
- **Multiple Sources**: Require at least 2 independent sources for critical claims
|
|
||||||
- **Conflict Resolution**: Present conflicting views and note discrepancies
|
|
||||||
- **Confidence Levels**: Flag uncertain data with [High/Medium/Low Confidence]
|
|
||||||
|
|
||||||
### Source Quality Standards
|
|
||||||
|
|
||||||
- **Distinguish Clearly**: Facts (from sources) vs Analysis (interpretation) vs Speculation
|
|
||||||
- **URL Citation**: Always include source URLs when presenting web search data
|
|
||||||
- **Critical Claims**: Market size, growth rates, competitive data need verification
|
|
||||||
- **Fact Checking**: Apply fact-checking to critical data points
|
|
||||||
|
|
||||||
## Implementation Instructions
|
|
||||||
|
|
||||||
Execute research type discovery and routing:
|
|
||||||
|
|
||||||
### Research Type Discovery
|
|
||||||
|
|
||||||
**Your Role:** You are a research facilitator and web data analyst working with an expert partner. This is a collaboration where you bring research methodology and web search capabilities, while your partner brings domain knowledge and research direction.
|
|
||||||
|
|
||||||
**Research Standards:**
|
|
||||||
|
|
||||||
- **Anti-Hallucination Protocol**: Never present information without verified sources
|
|
||||||
- **Current Data Only**: Search the web to verify and supplement your knowledge with current facts
|
|
||||||
- **Source Citation**: Always include URLs for factual claims from web searches
|
|
||||||
- **Multiple Sources**: Require 2+ independent sources for critical claims
|
|
||||||
- **Conflict Resolution**: Present conflicting views and note discrepancies
|
|
||||||
- **Confidence Levels**: Flag uncertain data with [High/Medium/Low Confidence]
|
|
||||||
|
|
||||||
### Collaborative Research Discovery
|
|
||||||
|
|
||||||
"Welcome {{user_name}}! I'm excited to work with you as your research partner. I bring web research capabilities with rigorous source verification, while you bring the domain expertise and research direction.
|
|
||||||
|
|
||||||
**Let me help you clarify what you'd like to research.**
|
|
||||||
|
|
||||||
**First, tell me: What specific topic, problem, or area do you want to research?**
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
- 'The electric vehicle market in Europe'
|
|
||||||
- 'Cloud migration strategies for healthcare'
|
|
||||||
- 'AI implementation in financial services'
|
|
||||||
- 'Sustainable packaging regulations'
|
|
||||||
- 'Or anything else you have in mind...'
|
|
||||||
|
|
||||||
### Topic Exploration and Clarification
|
|
||||||
|
|
||||||
Based on the user's initial topic, explore and refine the research scope:
|
|
||||||
|
|
||||||
#### Topic Clarification Questions:
|
|
||||||
|
|
||||||
1. **Core Topic**: "What exactly about [topic] are you most interested in?"
|
|
||||||
2. **Research Goals**: "What do you hope to achieve with this research?"
|
|
||||||
3. **Scope**: "Should we focus broadly or dive deep into specific aspects?"
|
|
||||||
4. **Timeline**: "Are you looking at current state, historical context, or future trends?"
|
|
||||||
5. **Application**: "How will you use this research? (product development, strategy, academic, etc.)"
|
|
||||||
|
|
||||||
#### Context Building:
|
|
||||||
|
|
||||||
- **Initial Input**: User provides topic or research interest
|
|
||||||
- **Collaborative Refinement**: Work together to clarify scope and objectives
|
|
||||||
- **Goal Alignment**: Ensure research direction matches user needs
|
|
||||||
- **Research Boundaries**: Establish clear focus areas and deliverables
|
|
||||||
|
|
||||||
### Research Type Identification
|
|
||||||
|
|
||||||
After understanding the research topic and goals, identify the most appropriate research approach:
|
|
||||||
|
|
||||||
**Research Type Options:**
|
|
||||||
|
|
||||||
1. **Market Research** - Market size, growth, competition, customer insights
|
|
||||||
_Best for: Understanding market dynamics, customer behavior, competitive landscape_
|
|
||||||
|
|
||||||
2. **Domain Research** - Industry analysis, regulations, technology trends in specific domain
|
|
||||||
_Best for: Understanding industry context, regulatory environment, ecosystem_
|
|
||||||
|
|
||||||
3. **Technical Research** - Technology evaluation, architecture decisions, implementation approaches
|
|
||||||
_Best for: Technical feasibility, technology selection, implementation strategies_
|
|
||||||
|
|
||||||
**Recommendation**: Based on [topic] and [goals], I recommend [suggested research type] because [specific rationale].
|
|
||||||
|
|
||||||
**What type of research would work best for your needs?**
|
|
||||||
|
|
||||||
### Research Type Routing
|
|
||||||
|
|
||||||
<critical>Based on user selection, route to appropriate sub-workflow with the discovered topic using the following IF block sets of instructions. YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`</critical>
|
|
||||||
|
|
||||||
#### If Market Research:
|
|
||||||
|
|
||||||
- Set `research_type = "market"`
|
|
||||||
- Set `research_topic = [discovered topic from discussion]`
|
|
||||||
- Create the starter output file: `{planning_artifacts}/research/market-{{research_topic}}-research-{{date}}.md` with exact copy of the ./research.template.md contents
|
|
||||||
- Load: `./market-steps/step-01-init.md` with topic context
|
|
||||||
|
|
||||||
#### If Domain Research:
|
|
||||||
|
|
||||||
- Set `research_type = "domain"`
|
|
||||||
- Set `research_topic = [discovered topic from discussion]`
|
|
||||||
- Create the starter output file: `{planning_artifacts}/research/domain-{{research_topic}}-research-{{date}}.md` with exact copy of the ./research.template.md contents
|
|
||||||
- Load: `./domain-steps/step-01-init.md` with topic context
|
|
||||||
|
|
||||||
#### If Technical Research:
|
|
||||||
|
|
||||||
- Set `research_type = "technical"`
|
|
||||||
- Set `research_topic = [discovered topic from discussion]`
|
|
||||||
- Create the starter output file: `{planning_artifacts}/research/technical-{{research_topic}}-research-{{date}}.md` with exact copy of the ./research.template.md contents
|
|
||||||
- Load: `./technical-steps/step-01-init.md` with topic context
|
|
||||||
|
|
||||||
**Important**: The discovered topic from the collaborative discussion should be passed to the research initialization steps, so they don't need to ask "What do you want to research?" again - they can focus on refining the scope for their specific research type.
|
|
||||||
|
|
||||||
**Note:** All research workflows require web search for current data and source verification.
|
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
---
|
||||||
|
name: create-prd
|
||||||
|
description: Create a comprehensive PRD (Product Requirements Document) through structured workflow facilitation
|
||||||
|
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||||
|
nextStep: './steps-c/step-01-init.md'
|
||||||
|
---
|
||||||
|
|
||||||
|
# PRD Create Workflow
|
||||||
|
|
||||||
|
**Goal:** Create comprehensive PRDs through structured workflow facilitation.
|
||||||
|
|
||||||
|
**Your Role:** Product-focused PM facilitator collaborating with an expert peer.
|
||||||
|
|
||||||
|
You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
|
||||||
|
|
||||||
|
## WORKFLOW ARCHITECTURE
|
||||||
|
|
||||||
|
This uses **step-file architecture** for disciplined execution:
|
||||||
|
|
||||||
|
### Core Principles
|
||||||
|
|
||||||
|
- **Micro-file Design**: Each step is a self contained instruction file that is a part of an overall workflow that must be followed exactly
|
||||||
|
- **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
|
||||||
|
- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
|
||||||
|
- **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document
|
||||||
|
- **Append-Only Building**: Build documents by appending content as directed to the output file
|
||||||
|
|
||||||
|
### Step Processing Rules
|
||||||
|
|
||||||
|
1. **READ COMPLETELY**: Always read the entire step file before taking any action
|
||||||
|
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
|
||||||
|
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
|
||||||
|
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
|
||||||
|
5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
|
||||||
|
6. **LOAD NEXT**: When directed, read fully and follow the next step file
|
||||||
|
|
||||||
|
### Critical Rules (NO EXCEPTIONS)
|
||||||
|
|
||||||
|
- 🛑 **NEVER** load multiple step files simultaneously
|
||||||
|
- 📖 **ALWAYS** read entire step file before execution
|
||||||
|
- 🚫 **NEVER** skip steps or optimize the sequence
|
||||||
|
- 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
|
||||||
|
- 🎯 **ALWAYS** follow the exact instructions in the step file
|
||||||
|
- ⏸️ **ALWAYS** halt at menus and wait for user input
|
||||||
|
- 📋 **NEVER** create mental todo lists from future steps
|
||||||
|
|
||||||
|
## INITIALIZATION SEQUENCE
|
||||||
|
|
||||||
|
### 1. Configuration Loading
|
||||||
|
|
||||||
|
Load and read full config from {main_config} and resolve:
|
||||||
|
|
||||||
|
- `project_name`, `output_folder`, `planning_artifacts`, `user_name`
|
||||||
|
- `communication_language`, `document_output_language`, `user_skill_level`
|
||||||
|
- `date` as system-generated current datetime
|
||||||
|
|
||||||
|
✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
|
||||||
|
|
||||||
|
### 2. Route to Create Workflow
|
||||||
|
|
||||||
|
"**Create Mode: Creating a new PRD from scratch.**"
|
||||||
|
|
||||||
|
Read fully and follow: `{nextStep}` (steps-c/step-01-init.md)
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
---
|
||||||
|
name: edit-prd
|
||||||
|
description: Edit and improve an existing PRD - enhance clarity, completeness, and quality
|
||||||
|
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||||
|
editWorkflow: './steps-e/step-e-01-discovery.md'
|
||||||
|
---
|
||||||
|
|
||||||
|
# PRD Edit Workflow
|
||||||
|
|
||||||
|
**Goal:** Edit and improve existing PRDs through structured enhancement workflow.
|
||||||
|
|
||||||
|
**Your Role:** PRD improvement specialist.
|
||||||
|
|
||||||
|
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}`.
|
||||||
|
|
||||||
|
### 2. Route to Edit Workflow
|
||||||
|
|
||||||
|
"**Edit Mode: Improving an existing PRD.**"
|
||||||
|
|
||||||
|
Prompt for PRD path: "Which PRD would you like to edit? Please provide the path to the PRD.md file."
|
||||||
|
|
||||||
|
Then read fully and follow: `{editWorkflow}` (steps-e/step-e-01-discovery.md)
|
||||||
|
|
@ -1,149 +0,0 @@
|
||||||
---
|
|
||||||
name: create-prd
|
|
||||||
description: PRD tri-modal workflow - Create, Validate, or Edit comprehensive PRDs
|
|
||||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
|
||||||
nextStep: './steps-c/step-01-init.md'
|
|
||||||
validateWorkflow: './steps-v/step-v-01-discovery.md'
|
|
||||||
editWorkflow: './steps-e/step-e-01-discovery.md'
|
|
||||||
---
|
|
||||||
|
|
||||||
# PRD Workflow (Tri-Modal)
|
|
||||||
|
|
||||||
**Goal:** Create, Validate, or Edit comprehensive PRDs through structured workflows.
|
|
||||||
|
|
||||||
**Your Role:**
|
|
||||||
- **Create Mode:** Product-focused PM facilitator collaborating with an expert peer
|
|
||||||
- **Validate Mode:** Validation Architect and Quality Assurance Specialist
|
|
||||||
- **Edit Mode:** PRD improvement specialist
|
|
||||||
|
|
||||||
You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## MODE DETERMINATION
|
|
||||||
|
|
||||||
### Detect Workflow Mode
|
|
||||||
|
|
||||||
Determine which mode to invoke based on:
|
|
||||||
|
|
||||||
1. **Command/Invocation:**
|
|
||||||
- "create prd" or "new prd" → Create mode
|
|
||||||
- "validate prd" or "check prd" → Validate mode
|
|
||||||
- "edit prd" or "improve prd" → Edit mode
|
|
||||||
|
|
||||||
2. **Context Detection:**
|
|
||||||
- If invoked with -c flag → Create mode
|
|
||||||
- If invoked with -v flag → Validate mode
|
|
||||||
- If invoked with -e flag → Edit mode
|
|
||||||
|
|
||||||
3. **Menu Selection (if unclear):**
|
|
||||||
|
|
||||||
If mode cannot be determined from invocation:
|
|
||||||
"**PRD Workflow - Select Mode:**
|
|
||||||
|
|
||||||
**[C] Create** - Create a new PRD from scratch
|
|
||||||
**[V] Validate** - Validate an existing PRD against BMAD standards
|
|
||||||
**[E] Edit** - Improve an existing PRD
|
|
||||||
|
|
||||||
Which mode would you like?"
|
|
||||||
|
|
||||||
Wait for user selection.
|
|
||||||
|
|
||||||
### Route to Appropriate Workflow
|
|
||||||
|
|
||||||
**IF Create Mode:**
|
|
||||||
"**Create Mode: Creating a new PRD from scratch.**"
|
|
||||||
Read fully and follow: `{nextStep}` (steps-c/step-01-init.md)
|
|
||||||
|
|
||||||
**IF Validate Mode:**
|
|
||||||
"**Validate Mode: Validating an existing PRD against BMAD standards.**"
|
|
||||||
Prompt for PRD path: "Which PRD would you like to validate? Please provide the path to the PRD.md file."
|
|
||||||
Then read fully and follow: `{validateWorkflow}` (steps-v/step-v-01-discovery.md)
|
|
||||||
|
|
||||||
**IF Edit Mode:**
|
|
||||||
"**Edit Mode: Improving an existing PRD.**"
|
|
||||||
Prompt for PRD path: "Which PRD would you like to edit? Please provide the path to the PRD.md file."
|
|
||||||
Then read fully and follow: `{editWorkflow}` (steps-e/step-e-01-discovery.md)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 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. Mode Determination
|
|
||||||
|
|
||||||
**Check if mode was specified in the command invocation:**
|
|
||||||
|
|
||||||
- If user invoked with "create prd" or "new prd" or "build prd" or "-c" or "--create" → Set mode to **create**
|
|
||||||
- If user invoked with "validate prd" or "review prd" or "check prd" or "-v" or "--validate" → Set mode to **validate**
|
|
||||||
- If user invoked with "edit prd" or "modify prd" or "improve prd" or "-e" or "--edit" → Set mode to **edit**
|
|
||||||
|
|
||||||
**If mode is still unclear, ask user:**
|
|
||||||
|
|
||||||
"**PRD Workflow - Select Mode:**
|
|
||||||
|
|
||||||
**[C] Create** - Create a new PRD from scratch
|
|
||||||
**[V] Validate** - Validate an existing PRD against BMAD standards
|
|
||||||
**[E] Edit** - Improve an existing PRD
|
|
||||||
|
|
||||||
Which mode would you like?"
|
|
||||||
|
|
||||||
Wait for user selection.
|
|
||||||
|
|
||||||
### 2. 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}`.
|
|
||||||
|
|
||||||
### 3. Route to Appropriate Workflow
|
|
||||||
|
|
||||||
**IF mode == create:**
|
|
||||||
"**Create Mode: Creating a new PRD from scratch.**"
|
|
||||||
Read fully and follow: `{nextStep}` (steps-c/step-01-init.md)
|
|
||||||
|
|
||||||
**IF mode == validate:**
|
|
||||||
"**Validate Mode: Validating an existing PRD against BMAD standards.**"
|
|
||||||
Prompt for PRD path: "Which PRD would you like to validate? Please provide the path to the PRD.md file."
|
|
||||||
Then read fully and follow: `{validateWorkflow}` (steps-v/step-v-01-discovery.md)
|
|
||||||
|
|
||||||
**IF mode == edit:**
|
|
||||||
"**Edit Mode: Improving an existing PRD.**"
|
|
||||||
Prompt for PRD path: "Which PRD would you like to edit? Please provide the path to the PRD.md file."
|
|
||||||
Then read fully and follow: `{editWorkflow}` (steps-e/step-e-01-discovery.md)
|
|
||||||
|
|
@ -733,47 +733,15 @@ class ManifestGenerator {
|
||||||
async writeWorkflowManifest(cfgDir) {
|
async writeWorkflowManifest(cfgDir) {
|
||||||
const csvPath = path.join(cfgDir, 'workflow-manifest.csv');
|
const csvPath = path.join(cfgDir, 'workflow-manifest.csv');
|
||||||
const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
|
const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
|
||||||
const parseCsvLine = (line) => {
|
|
||||||
const columns = line.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g) || [];
|
|
||||||
return columns.map((c) => c.replaceAll(/^"|"$/g, ''));
|
|
||||||
};
|
|
||||||
|
|
||||||
// Read existing manifest to preserve entries
|
|
||||||
const existingEntries = new Map();
|
|
||||||
if (await fs.pathExists(csvPath)) {
|
|
||||||
const content = await fs.readFile(csvPath, 'utf8');
|
|
||||||
const lines = content.split('\n').filter((line) => line.trim());
|
|
||||||
|
|
||||||
// Skip header
|
|
||||||
for (let i = 1; i < lines.length; i++) {
|
|
||||||
const line = lines[i];
|
|
||||||
if (line) {
|
|
||||||
const parts = parseCsvLine(line);
|
|
||||||
if (parts.length >= 4) {
|
|
||||||
const [name, description, module, workflowPath] = parts;
|
|
||||||
existingEntries.set(`${module}:${name}`, {
|
|
||||||
name,
|
|
||||||
description,
|
|
||||||
module,
|
|
||||||
path: workflowPath,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create CSV header - standalone column removed, everything is canonicalized to 4 columns
|
// Create CSV header - standalone column removed, everything is canonicalized to 4 columns
|
||||||
let csv = 'name,description,module,path\n';
|
let csv = 'name,description,module,path\n';
|
||||||
|
|
||||||
// Combine existing and new workflows
|
// Build workflows map from discovered workflows only
|
||||||
|
// Old entries are NOT preserved - the manifest reflects what actually exists on disk
|
||||||
const allWorkflows = new Map();
|
const allWorkflows = new Map();
|
||||||
|
|
||||||
// Add existing entries
|
// Only add workflows that were actually discovered in this scan
|
||||||
for (const [key, value] of existingEntries) {
|
|
||||||
allWorkflows.set(key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add/update new workflows
|
|
||||||
for (const workflow of this.workflows) {
|
for (const workflow of this.workflows) {
|
||||||
const key = `${workflow.module}:${workflow.name}`;
|
const key = `${workflow.module}:${workflow.name}`;
|
||||||
allWorkflows.set(key, {
|
allWorkflows.set(key, {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue