fix: ChatBubble crash and DeepSeek API compatibility
- Fix ChatBubble to handle non-string content with String() wrapper - Fix API route to use generateText for non-streaming requests - Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.) - Use Chat Completions API instead of Responses API for compatible providers - Update ChatBubble tests and fix component exports to kebab-case - Remove stale PascalCase ChatBubble.tsx file
This commit is contained in:
282
_bmad/bmb/workflows/workflow/steps-c/step-03-requirements.md
Normal file
282
_bmad/bmb/workflows/workflow/steps-c/step-03-requirements.md
Normal file
@@ -0,0 +1,282 @@
|
||||
---
|
||||
name: 'step-03-requirements'
|
||||
description: 'Gather detailed requirements through collaborative conversation'
|
||||
|
||||
nextStepFile: './step-04-tools.md'
|
||||
workflowExamples: '../data/workflow-examples.md'
|
||||
outputFormatStandards: '../data/output-format-standards.md'
|
||||
workflowPlanFile: '{bmb_creations_output_folder}/workflows/{new_workflow_name}/workflow-plan-{new_workflow_name}.md'
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 3: Requirements Gathering
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
To gather comprehensive requirements through conversation, building on the classification decisions, and document them in a standardized format for the design phase.
|
||||
|
||||
## 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 workflow architect gathering requirements
|
||||
- ✅ Build on what we discovered and classified
|
||||
- ✅ Ask 1-2 questions at a time, think about responses
|
||||
- ✅ We already know the 4 key decisions - now we get details
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus ONLY on requirements gathering
|
||||
- 🚫 FORBIDDEN to propose workflow designs yet
|
||||
- 💬 Ask conversationally, not like a form
|
||||
- 📋 Use the standardized template (below) for consistent storage
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load references as needed
|
||||
- 💾 Store to standardized template in plan document
|
||||
- 📖 Update frontmatter stepsCompleted when complete
|
||||
- 🚫 FORBIDDEN to load next step until requirements are complete
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Discovery (Step 1) gave us the vision
|
||||
- Classification (Step 2) gave us the 4 key decisions
|
||||
- Now we gather detailed requirements
|
||||
- Don't design workflow steps yet - that's Step 6
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Initialize Requirements
|
||||
|
||||
"**Let's gather the requirements for your workflow.**
|
||||
|
||||
We already know:
|
||||
- [Summarize vision from discovery]
|
||||
- [Summarize 4 key decisions from classification]
|
||||
|
||||
Now I need to understand the details of how this workflow should work."
|
||||
|
||||
### 2. Workflow Flow and Structure
|
||||
|
||||
Load `{workflowExamples}` to reference diverse patterns.
|
||||
|
||||
"**How should this workflow flow?**
|
||||
|
||||
From our examples, workflows can be structured differently:"
|
||||
|
||||
**Flow Patterns:**
|
||||
- **Linear:** Step 1 → Step 2 → Step 3 → Finish
|
||||
- **Looping:** Generate → Review → Generate more... until done
|
||||
- **Branching:** Different paths based on user choices
|
||||
- **Repeating:** Same steps, new content each session
|
||||
|
||||
"Think about your workflow:
|
||||
- Should it go straight through, or loop/branch?
|
||||
- How many logical phases does it need?
|
||||
- What are the major milestones?"
|
||||
|
||||
**Think about their response...**
|
||||
|
||||
### 3. User Interaction Style
|
||||
|
||||
"**How collaborative should this be?**
|
||||
|
||||
Think about the person running this workflow:"
|
||||
|
||||
- **Highly Collaborative:** AI asks questions, guides, facilitates at each step
|
||||
- **Mostly Autonomous:** AI does the work with occasional checkpoints
|
||||
- **Guided Session:** AI leads through a structured experience
|
||||
- **Mixed:** Some steps collaborative, some autonomous
|
||||
|
||||
"Where does your workflow fit on this spectrum?
|
||||
|
||||
And are there specific decision points where the user MUST choose something?"
|
||||
|
||||
### 4. Input Requirements
|
||||
|
||||
"**What does this workflow need to start?**"
|
||||
|
||||
- What documents or data must be provided?
|
||||
- Are there prerequisites or dependencies?
|
||||
- Will users need to provide specific information?
|
||||
- Any optional inputs that enhance the workflow?
|
||||
|
||||
"**Think about their response before continuing...**"
|
||||
|
||||
### 5. Output Specifications (IF document-producing)
|
||||
|
||||
**ONLY if `workflowProducesDocuments: true` from classification:**
|
||||
|
||||
Load `{outputFormatStandards}` and discuss:
|
||||
|
||||
"**What should the output look like?**
|
||||
|
||||
Since your workflow produces a document, let's decide the format:"
|
||||
|
||||
**Four Template Types:**
|
||||
|
||||
1. **Free-form (Recommended)** - Minimal structure, content-driven
|
||||
- Use for: Most collaborative workflows
|
||||
- Has: Basic frontmatter, progressive content, final polish step
|
||||
|
||||
2. **Structured** - Required sections, flexible within each
|
||||
- Use for: Reports, proposals, documentation
|
||||
- Has: Clear section headers, consistent structure
|
||||
|
||||
3. **Semi-structured** - Core sections + optional additions
|
||||
- Use for: Forms, checklists, meeting minutes
|
||||
- Has: Required fields, optional extras
|
||||
|
||||
4. **Strict** - Exact format, specific fields
|
||||
- Use for: Compliance, legal, regulated (rare)
|
||||
- Has: Precise requirements, validation
|
||||
|
||||
"Which format fits your workflow best?"
|
||||
|
||||
**If Free-form (most common):**
|
||||
- "We'll use a minimal template with basic frontmatter. The workflow will build the document section by section, with a final polish step to optimize flow."
|
||||
|
||||
**If Structured/Semi-structured:**
|
||||
- "What sections are required? Any optional sections?"
|
||||
|
||||
**If Strict:**
|
||||
- "Do you have an existing template to follow, or should we design one?"
|
||||
|
||||
Document the output format decision.
|
||||
|
||||
### 6. Output Specifications (IF non-document)
|
||||
|
||||
**ONLY if `workflowProducesDocuments: false` from classification:**
|
||||
|
||||
"**What does this workflow produce if not a document?**
|
||||
|
||||
- Actions performed?
|
||||
- Changes made to code/files?
|
||||
- A decision or recommendation?
|
||||
- A temporary artifact?"
|
||||
|
||||
Document what the workflow produces.
|
||||
|
||||
### 7. Success Criteria
|
||||
|
||||
"**How will we know this workflow succeeded?**
|
||||
|
||||
Think about the end result:
|
||||
- What does 'done' look like?
|
||||
- What would make a user satisfied?
|
||||
- Are there quality criteria?
|
||||
- Can we measure success?"
|
||||
|
||||
"**Think about their response...**"
|
||||
|
||||
### 8. Instruction Style (NOW, Not Earlier)
|
||||
|
||||
**We ask this NOW because we understand the workflow:**
|
||||
|
||||
"**How should the AI executing this workflow behave?**"
|
||||
|
||||
**Intent-Based (Recommended for most):**
|
||||
- Steps describe goals and principles
|
||||
- AI adapts conversation naturally
|
||||
- More flexible and responsive
|
||||
- Example: "Guide user to define requirements through open-ended discussion"
|
||||
|
||||
**Prescriptive:**
|
||||
- Steps provide exact instructions
|
||||
- More controlled and predictable
|
||||
- Example: "Ask: 'What is your primary goal? A) Growth B) Efficiency C) Quality'"
|
||||
|
||||
**Mixed:**
|
||||
- Some steps prescriptive, others intent-based
|
||||
- Use prescriptive for critical/required steps
|
||||
- Use intent-based for creative/facilitative steps
|
||||
|
||||
"Which style fits your workflow, or should it be mixed?"
|
||||
|
||||
### 9. Store to Standardized Template
|
||||
|
||||
Update `{workflowPlanFile}` with the requirements section:
|
||||
|
||||
```markdown
|
||||
## Requirements
|
||||
|
||||
**Flow Structure:**
|
||||
- Pattern: [linear/looping/branching/repeating]
|
||||
- Phases: [list major phases]
|
||||
- Estimated steps: [rough count]
|
||||
|
||||
**User Interaction:**
|
||||
- Style: [highly collaborative/mostly autonomous/guided/mixed]
|
||||
- Decision points: [where user must choose]
|
||||
- Checkpoint frequency: [how often to pause]
|
||||
|
||||
**Inputs Required:**
|
||||
- Required: [list]
|
||||
- Optional: [list]
|
||||
- Prerequisites: [list]
|
||||
|
||||
**Output Specifications:**
|
||||
- Type: [document/action/decision/temporary]
|
||||
- Format: [free-form/structured/semi-structured/strict OR describe non-document output]
|
||||
- Sections: [if structured]
|
||||
- Frequency: [single/batch/continuous]
|
||||
|
||||
**Success Criteria:**
|
||||
- [list what success looks like]
|
||||
|
||||
**Instruction Style:**
|
||||
- Overall: [intent-based/prescriptive/mixed]
|
||||
- Notes: [any specific style requirements]
|
||||
```
|
||||
|
||||
### 10. Present MENU OPTIONS
|
||||
|
||||
Display: **Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
- ONLY proceed when user selects 'C'
|
||||
- User can chat or ask questions - always respond and redisplay menu
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}
|
||||
- IF P: Execute {partyModeWorkflow}
|
||||
- IF C: Save requirements to plan, update frontmatter, then load `{nextStepFile}`
|
||||
- IF Any other: Help user, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Requirements gathered through conversation (not interrogation)
|
||||
- Flow structure clearly understood
|
||||
- Input/output specifications defined
|
||||
- Output format decided (if document-producing)
|
||||
- Success criteria established
|
||||
- Instruction style determined
|
||||
- All stored in standardized template
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Asking for instruction style before understanding the workflow
|
||||
- Skipping output format discussion
|
||||
- Not storing to standardized template
|
||||
- Proceeding without understanding the flow
|
||||
|
||||
**Master Rule:** Requirements build on classification. Use the standardized template so the next steps can read consistent data.
|
||||
Reference in New Issue
Block a user