trivariate workflows added
This commit is contained in:
parent
731bee26ea
commit
bd620e38e5
|
|
@ -1,5 +1,3 @@
|
|||
# Business Analyst Agent Definition
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: "_bmad/bmm/agents/analyst.md"
|
||||
|
|
@ -23,9 +21,17 @@ agent:
|
|||
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"
|
||||
|
||||
- trigger: RS or fuzzy match on research
|
||||
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow.md"
|
||||
description: "[RS] Research: Choose from or specify market, domain, competitive analysis, or technical research"
|
||||
- trigger: MR or fuzzy match on market-research
|
||||
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md"
|
||||
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
|
||||
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:
|
||||
metadata:
|
||||
id: "_bmad/bmm/agents/pm.md"
|
||||
|
|
@ -22,15 +19,15 @@ agent:
|
|||
|
||||
menu:
|
||||
- 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"
|
||||
|
||||
- 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"
|
||||
|
||||
- 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"
|
||||
|
||||
- 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,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,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,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",
|
||||
|
|
|
|||
|
|
|
@ -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) {
|
||||
const csvPath = path.join(cfgDir, 'workflow-manifest.csv');
|
||||
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
|
||||
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();
|
||||
|
||||
// Add existing entries
|
||||
for (const [key, value] of existingEntries) {
|
||||
allWorkflows.set(key, value);
|
||||
}
|
||||
|
||||
// Add/update new workflows
|
||||
// Only add workflows that were actually discovered in this scan
|
||||
for (const workflow of this.workflows) {
|
||||
const key = `${workflow.module}:${workflow.name}`;
|
||||
allWorkflows.set(key, {
|
||||
|
|
|
|||
Loading…
Reference in New Issue