BMAD-METHOD/docs/diagrams/generate-manifest.md

7.9 KiB

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:

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