284 lines
7.9 KiB
Markdown
284 lines
7.9 KiB
Markdown
# Generate BMM Workflow Manifest
|
|
|
|
This prompt generates a YAML manifest of all BMM workflows, their connections, and dependencies. The manifest serves as the source of truth for diagram generation and workflow documentation.
|
|
|
|
## Instructions
|
|
|
|
You are an agentic assistant tasked with researching the BMM workflow structure and generating a comprehensive manifest. Follow these steps:
|
|
|
|
### 1. Research Phase
|
|
|
|
Scan the BMM workflow structure to discover all workflows:
|
|
|
|
**Locations to scan:**
|
|
|
|
- `src/modules/bmm/workflows/1-analysis/` - Phase 1 (Discovery) workflows
|
|
- `src/modules/bmm/workflows/2-plan-workflows/` - Phase 2 (Planning) workflows
|
|
- `src/modules/bmm/workflows/3-solutioning/` - Phase 3 (Solutioning) workflows
|
|
- `src/modules/bmm/workflows/4-implementation/` - Phase 4 (Implementation) workflows
|
|
- `src/modules/bmm/workflows/bmad-quick-flow/` - Quick Flow workflows
|
|
- `src/modules/bmm/workflows/workflow-status/init/` - Entry point workflow
|
|
|
|
**For each workflow directory, extract from `workflow.yaml`:**
|
|
|
|
- `name` - The workflow name (e.g., "product-brief")
|
|
- `default_output_file` or output patterns - What files the workflow produces
|
|
- **DO NOT extract descriptions** - they cause false change detection and aren't used in diagrams
|
|
|
|
**Additional information to gather:**
|
|
|
|
- Read `package.json` to get the current BMAD version
|
|
- Get the current git commit hash (short form): `git rev-parse --short HEAD`
|
|
- Current timestamp in ISO format
|
|
- **Reference `docs/diagrams/bmm-workflow.d2`** for workflow connections (not descriptions)
|
|
|
|
### 2. Understand Workflow Connections
|
|
|
|
Study the existing `docs/diagrams/bmm-workflow.d2` file to understand:
|
|
|
|
**Within-phase connections:**
|
|
|
|
- Phase 1: All activities (brainstorm, research, domain-research, document-project) converge to product-brief
|
|
- Phase 3: architecture → create-epics-and-stories → implementation-readiness (sequential)
|
|
- Phase 4: sprint-planning → create-story → dev-story → code-review → story-done → retrospective (sequential)
|
|
|
|
**Decision points:**
|
|
|
|
- Phase 2: After `/prd`, there's a "Has UI?" decision
|
|
- Yes → `/ux-design`
|
|
- No → `/architecture` (cross-phase to Phase 3)
|
|
|
|
**Feedback loops (Phase 4):**
|
|
|
|
- code-review → dev-story (label: "fixes")
|
|
- story-done → create-story (label: "next story")
|
|
- retrospective → sprint-planning (label: "next epic")
|
|
|
|
**Cross-phase connections:**
|
|
|
|
- Entry: workflow-init → Phase 1 activities (main flow)
|
|
- Entry: workflow-init → quick-flow/create-tech-spec (quick-flow path)
|
|
- Phase 1: product-brief → Phase 2 prd
|
|
- Phase 2: ux-design → Phase 3 architecture
|
|
- Phase 2: tech-spec → Phase 3 create-epics-and-stories (quick-flow path, dashed)
|
|
- Phase 3: implementation-readiness → Phase 4 sprint-planning
|
|
|
|
**Standalone workflows:**
|
|
|
|
- Phase 4: `/correct-course` - Not part of main flow, run when issues arise
|
|
|
|
### 3. Build Manifest
|
|
|
|
Create a YAML manifest with this structure:
|
|
|
|
```yaml
|
|
version: '1.0'
|
|
generated: '<ISO timestamp>'
|
|
source_commit: '<git short hash>'
|
|
bmad_version: '<version from package.json>'
|
|
|
|
# Entry point
|
|
entry:
|
|
id: workflow-init
|
|
name: /workflow-init
|
|
outputs:
|
|
- file: '@bmm-workflow-status.yaml'
|
|
|
|
phases:
|
|
discovery:
|
|
label: 'PHASE 1: DISCOVERY'
|
|
directory: '1-analysis'
|
|
optional: true
|
|
parallel: true # Activities can run in any order
|
|
workflows:
|
|
- id: <workflow-id>
|
|
name: /<workflow-name>
|
|
outputs:
|
|
- file: '@filename.md'
|
|
description: '...' # Only output files have descriptions (for legend)
|
|
|
|
connections:
|
|
- from: [brainstorm-project, research, domain-research, document-project]
|
|
to: product-brief
|
|
type: converge
|
|
|
|
planning:
|
|
label: 'PHASE 2: PLANNING'
|
|
directory: '2-plan-workflows'
|
|
optional: false
|
|
parallel: false
|
|
workflows: [...]
|
|
|
|
decisions:
|
|
- id: has-ui
|
|
label: 'Has UI?'
|
|
after: prd
|
|
branches:
|
|
- condition: 'Yes'
|
|
to: ux-design
|
|
- condition: 'No'
|
|
to: architecture
|
|
|
|
connections:
|
|
- from: ux-design
|
|
to: architecture
|
|
|
|
solutioning:
|
|
label: 'PHASE 3: SOLUTIONING'
|
|
directory: '3-solutioning'
|
|
optional: false
|
|
parallel: false
|
|
workflows: [...]
|
|
|
|
connections:
|
|
- from: architecture
|
|
to: create-epics-and-stories
|
|
type: sequential
|
|
- from: create-epics-and-stories
|
|
to: implementation-readiness
|
|
type: sequential
|
|
|
|
implementation:
|
|
label: 'PHASE 4: IMPLEMENTATION'
|
|
directory: '4-implementation'
|
|
optional: false
|
|
parallel: false
|
|
workflows: [...]
|
|
|
|
connections:
|
|
- from: sprint-planning
|
|
to: create-story
|
|
type: sequential
|
|
# ... etc
|
|
|
|
feedback_loops:
|
|
- from: code-review
|
|
to: dev-story
|
|
label: 'fixes'
|
|
description: 'Return to dev for fixes'
|
|
# ... etc
|
|
|
|
quick_flow:
|
|
auto_regenerate: false
|
|
directory: 'bmad-quick-flow'
|
|
description: 'Fast-track path for experienced teams'
|
|
workflows: [...]
|
|
|
|
connections:
|
|
- from: create-tech-spec
|
|
to: quick-dev
|
|
type: sequential
|
|
|
|
cross_phase_connections:
|
|
- from: entry.workflow-init
|
|
to: phases.discovery.activities
|
|
label: 'Main flow'
|
|
type: entry
|
|
- from: entry.workflow-init
|
|
to: quick_flow.create-tech-spec
|
|
label: 'Quick-flow'
|
|
type: quick_flow
|
|
# ... etc
|
|
|
|
legend:
|
|
title: 'OUTPUTS'
|
|
items:
|
|
- file: '@filename.md'
|
|
description: '...'
|
|
# ... all output files from all workflows
|
|
```
|
|
|
|
### 4. Compare with Previous Manifest (if exists)
|
|
|
|
If `docs/diagrams/workflow-manifest.yaml` already exists:
|
|
|
|
1. Load the existing manifest
|
|
2. Compare with the newly generated manifest
|
|
3. Detect changes:
|
|
- Added workflows
|
|
- Removed workflows
|
|
- Changed workflow outputs
|
|
- Changed output file descriptions (in legend)
|
|
- Changed connections or dependencies
|
|
- Changed decision points or feedback loops
|
|
|
|
4. Categorize changes:
|
|
- **Quick Flow changes**: Any changes in the `quick_flow` section
|
|
- **Main workflow changes**: Any changes in `phases` or `cross_phase_connections`
|
|
|
|
### 5. Decision Point
|
|
|
|
**If Quick Flow changes detected:**
|
|
|
|
- **HARD STOP** - Do not proceed
|
|
- Report what changed in detail
|
|
- Ask user: "Quick Flow has changed. What would you like to do?"
|
|
- Option 1: Update manifest with changes
|
|
- Option 2: Keep existing manifest
|
|
- Option 3: Review changes and decide
|
|
|
|
**If main workflow changes detected:**
|
|
|
|
- Report what changed
|
|
- Ask user: "Main workflows have changed. Approve updating the manifest?"
|
|
- If approved: Proceed to write
|
|
- If rejected: Keep existing manifest
|
|
|
|
**If no changes detected:**
|
|
|
|
- Proceed silently to write manifest
|
|
|
|
### 6. Write Manifest
|
|
|
|
Write the manifest to `docs/diagrams/workflow-manifest.yaml`
|
|
|
|
Report summary:
|
|
|
|
- Number of workflows discovered
|
|
- Number of phases
|
|
- Number of output documents
|
|
- Any changes detected (if comparing)
|
|
|
|
## Self-Check
|
|
|
|
Before finalizing, verify:
|
|
|
|
**Completeness:**
|
|
|
|
- [ ] All workflow directories scanned
|
|
- [ ] All workflow.yaml files read
|
|
- [ ] All output files extracted
|
|
- [ ] Version and commit info included
|
|
- [ ] Timestamp is current
|
|
|
|
**Connections:**
|
|
|
|
- [ ] Within-phase connections defined
|
|
- [ ] Cross-phase connections defined
|
|
- [ ] Decision points defined
|
|
- [ ] Feedback loops defined
|
|
- [ ] Quick-flow paths defined
|
|
|
|
**Accuracy:**
|
|
|
|
- [ ] Workflow names match directory names
|
|
- [ ] Workflows do NOT have description fields (prevents false change detection)
|
|
- [ ] Output file descriptions are clear and concise (appear in legend)
|
|
- [ ] Output files match workflow.yaml patterns
|
|
- [ ] Connections match bmm-workflow.d2
|
|
|
|
**Change Detection (if applicable):**
|
|
|
|
- [ ] Previous manifest loaded correctly
|
|
- [ ] All changes detected
|
|
- [ ] Changes categorized correctly
|
|
- [ ] User prompted appropriately
|
|
|
|
## Notes
|
|
|
|
- This is an **agentic prompt**, not a formal BMAD workflow
|
|
- The manifest is the **source of truth** for diagram generation
|
|
- Quick Flow changes require **hard stop** - they're critical
|
|
- Main workflow changes require **user approval** - they're important
|
|
- The manifest should be **version controlled** in git
|