BMAD-METHOD/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.yaml

98 lines
4.1 KiB
YAML

name: batch-super-dev
description: "Interactive batch selector for super-dev-pipeline with complexity-based routing. Micro stories get lightweight path, standard stories get full pipeline, complex stories get enhanced validation."
author: "BMad"
version: "1.3.0"
# Critical variables from config
config_source: "{project-root}/_bmad/bmm/config.yaml"
output_folder: "{config_source}:output_folder"
sprint_artifacts: "{config_source}:sprint_artifacts"
communication_language: "{config_source}:communication_language"
date: system-generated
# Workflow paths
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/batch-super-dev"
instructions: "{installed_path}/instructions.md"
# State management
sprint_status: "{sprint_artifacts}/sprint-status.yaml"
batch_log: "{sprint_artifacts}/batch-super-dev-{date}.log"
# Variables
filter_by_epic: "" # Optional: Filter stories by epic number (e.g., "3" for only Epic 3 stories)
max_stories: 20 # Safety limit - won't process more than this in one batch
pause_between_stories: 5 # Seconds to pause between stories (allows monitoring, prevents rate limits)
# Super-dev-pipeline invocation settings
super_dev_settings:
mode: "batch" # Always use batch mode for autonomous execution
workflow_path: "{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline"
# Story validation settings (NEW in v1.2.0)
validation:
enabled: true # Validate story files before processing
auto_create_missing: false # If true, auto-create without prompting (use with caution)
auto_regenerate_invalid: false # If true, auto-regenerate without prompting (use with caution)
min_sections: 12 # BMAD format requires all 12 sections
min_current_state_words: 100 # Current State must have substantial content
require_gap_analysis: true # Current State must have ✅/❌ markers
backup_before_regenerate: true # Create .backup file before regenerating
# Story complexity scoring (NEW in v1.3.0)
# Routes stories to appropriate pipeline based on complexity
complexity:
enabled: true
thresholds:
micro: # Lightweight path: skip gap analysis + code review
max_tasks: 3
max_files: 5
risk_keywords: [] # No high-risk keywords allowed
standard: # Normal path: full pipeline
max_tasks: 15
max_files: 30
risk_keywords: ["api", "service", "component", "feature"]
complex: # Enhanced path: extra validation, consider splitting
min_tasks: 16
risk_keywords: ["auth", "security", "migration", "database", "payment", "encryption"]
# Risk keyword scoring (adds to complexity)
risk_weights:
high: ["auth", "security", "payment", "encryption", "migration", "database", "schema"]
medium: ["api", "integration", "external", "third-party", "cache"]
low: ["ui", "style", "config", "docs", "test"]
# Keyword matching configuration (defines how risk keywords are detected)
keyword_matching:
case_sensitive: false # "AUTH" matches "auth"
require_word_boundaries: true # "auth" won't match "author"
match_strategy: "exact" # exact word match required (no stemming)
scan_locations:
- story_title
- task_descriptions
- subtask_descriptions
# Keyword variants (synonyms that map to canonical forms)
variants:
auth: ["authentication", "authorize", "authorization", "authz", "authn"]
database: ["db", "databases", "datastore"]
payment: ["payments", "pay", "billing", "checkout"]
migration: ["migrations", "migrate"]
security: ["secure", "security"]
encryption: ["encrypt", "encrypted", "cipher"]
# Task counting rules
task_counting:
method: "top_level_only" # Only count [ ] at task level, not subtasks
# Options: "top_level_only", "include_subtasks", "weighted"
# Example:
# - [ ] Parent task <- counts as 1
# - [ ] Subtask 1 <- ignored
# - [ ] Subtask 2 <- ignored
# Execution settings
execution:
continue_on_failure: true # Keep processing remaining stories if one fails
display_progress: true # Show running summary after each story
save_state: true # Save progress to resume if interrupted
standalone: true