BMAD-METHOD/src/modules/bmm-release
Build Vendor 33aacede40 feat: add event-driven SaaS operations modules
Introduces 5 new modules for production SaaS operations with event-driven
architecture enabling loose coupling between components:

## Event Infrastructure (src/core/events/)
- event-schema.yaml: Canonical event type definitions (30+ event types)
- file-queue-transport.xml: File-based queue for local development
- publish-event.xml: Event publishing task
- Updated workflow.xml with <publish> tag support

## New Modules

### bmm-metrics (KPI/SLA Tracking)
- Metrics Analyst agent with quality gate guardian persona
- Workflows: define-kpis, define-slas, track-metrics, quality-gate-check, metrics-review
- DORA metrics support, velocity tracking, SLA breach detection
- Events: metrics.quality.pass/fail, metrics.kpi.updated, metrics.sla.breach

### bmm-release (Release Management)
- Release Manager agent for deployment coordination
- Workflows: release-planning, release-notes, rollback-planning
- Integrates with quality gates before release approval
- Events: release.candidate.created, release.deployed, release.rollback.*

### bmm-feedback (Customer Feedback Loop)
- Feedback Analyst agent for customer voice analysis
- Workflows: collect-feedback, analyze-feedback, feedback-report
- Sentiment analysis, theme extraction, priority suggestions
- Events: feedback.received, feedback.insight.generated, feedback.priority.suggested

### bmm-priority (Backlog Prioritization)
- Priority Manager agent with WSJF/RICE/MoSCoW frameworks
- Workflows: prioritize-backlog, priority-review
- Integrates feedback signals into priority decisions
- Events: priority.updated, priority.queue.reordered

### bmm-roadmap (Product Roadmap)
- Roadmap Planner agent for capacity-aware planning
- Workflows: roadmap-planning, capacity-planning
- Velocity-based timeline projections
- Events: roadmap.updated, roadmap.milestone.completed, roadmap.at.risk

## Architecture Highlights
- Modules communicate only through events (no direct dependencies)
- File-based queue for local dev, designed for SMTP transport in production
- Each module has: manifest, config, agent, workflows, event handlers, state
- Backward compatible - existing BMAD workflows unaffected

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:19:14 +00:00
..
agents feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
events feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
state feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
templates feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
workflows feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
README.md feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
config.yaml feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00
manifest.yaml feat: add event-driven SaaS operations modules 2025-11-28 15:19:14 +00:00

README.md

BMM-Release Module

Release Management module for the BMAD Method. Handles release planning, candidate validation, release notes generation, and rollback procedures.

Overview

The bmm-release module provides:

  • Release Planning: Create and manage release candidates
  • Release Notes Generation: Auto-generate release notes from completed stories
  • Rollback Planning: Define and execute rollback procedures
  • Release Validation: Coordinate with bmm-metrics for quality gate checks

Event-Driven Architecture

This module operates through events, making it completely decoupled from other modules:

Events Subscribed

Event Action
metrics.quality.pass Proceeds with release if quality gates pass
metrics.quality.fail Blocks release and notifies stakeholders
story.done Adds story to pending release items
sprint.ended Triggers release candidate creation (if configured)

Events Published

Event Description
release.candidate.created New release candidate ready for validation
release.approved Release approved after all gates pass
release.deployed Release successfully deployed
release.failed Release deployment failed
release.rollback.initiated Rollback procedure started
release.rollback.completed Rollback completed successfully

Directory Structure

bmm-release/
├── README.md
├── manifest.yaml
├── config.yaml
├── agents/
│   └── release-manager.agent.yaml
├── workflows/
│   ├── release-planning/
│   ├── release-notes/
│   └── rollback-planning/
├── events/
│   ├── subscriptions.yaml
│   ├── publications.yaml
│   └── handlers/
│       ├── on-quality-pass.xml
│       └── on-quality-fail.xml
├── tasks/
│   ├── create-release-candidate.xml
│   └── validate-release.xml
├── templates/
│   └── release-notes-template.md
└── state/
    └── module-state.yaml

Quick Start

  1. Install the module via BMAD installer
  2. Configure release settings in .bmad/bmm-release/config.yaml
  3. Use the Release Manager agent: *release-manager

Agent Commands

The Release Manager agent provides:

  • *help - Show available commands
  • *plan-release - Create a new release candidate
  • *release-notes - Generate release notes
  • *rollback-plan - Create rollback procedure
  • *release-status - Check current release status
  • *exit - Exit agent

Integration with bmm-metrics

The release workflow integrates with bmm-metrics through events:

  1. Release candidate created → release.candidate.created
  2. bmm-metrics receives event → runs quality gate check
  3. Quality gate result → metrics.quality.pass or metrics.quality.fail
  4. bmm-release receives result → proceeds or blocks release

This event-driven approach means modules are completely independent and can operate asynchronously.

Configuration

# .bmad/bmm-release/config.yaml
project_name: "My Project"
user_name: "Developer"

release:
  versioning: "semver"  # semver, calver, custom
  auto_create_on_sprint_end: true
  require_quality_gates: true
  require_changelog: true
  
deployment:
  environments:
    - staging
    - production
  approval_required:
    staging: false
    production: true
    
rollback:
  auto_rollback_on_failure: true
  health_check_timeout: 300  # seconds