98 lines
4.1 KiB
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
|