* fix: correct malformed XML syntax and remove hardcoded path
- Fix missing opening quote in activation-steps.txt: `n={HELP_STEP}"` → `n="{HELP_STEP}"`
- Remove spurious hyphen: `-Let` → `Let`
- Replace hardcoded `/Users/brianmadison/...` path with relative path
Fixes#1435
* fix: add missing HELP_STEP placeholder replacement
The activation-steps.txt template includes a {HELP_STEP} placeholder,
but activation-builder.js never calculated or replaced it. This caused
the literal string "{HELP_STEP}" to appear in compiled agent files.
Added helpStep calculation between menuStep and haltStep, and adjusted
subsequent step numbers accordingly.
Fixes#1441
* Update src/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md
---------
Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>
* fix(ide): add support for Gemini CLI TOML format
* fix(ide): Added normalization for config.extension, added .yml to the extension array
---------
Co-authored-by: Brian <bmadcode@gmail.com>
- Remove duplicate "for" in README example command
- Fix "this is" to "thing is" in README
- Remove extra "at" in "star project icon at near" in README
- Fix "MEthod" to "Method" in customize-bmad.md
- Fix workflow_path in step-01-understand.md, step-02-investigate.md, and step-03-generate.md
- Changed from non-existent 'create-tech-spec' to correct 'quick-spec'
- Aligns with step-04-review.md which already had correct path
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Brian <bmadcode@gmail.com>
- L1: Add checkpoint/resume capability with --resume flag
- load_checkpoint(), save_checkpoint(), clear_checkpoint() in utils.sh
- Auto-saves progress after each story, 7-day expiration
- L2: Add comprehensive --help option with grouped options and examples
- show_help() function with environment variables and file locations
- L3: Add verbose Claude output streaming
- execute_claude_verbose() for real-time output when --verbose set
- L4: Add metrics file archival to prevent unbounded growth
- Archives to metrics/archive/, keeps last 10 per epic
- L5: Add workflow file content validation
- validate_yaml_content(), validate_xml_content() with fallbacks
- Integrated into validate_workflows()
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add new utils.sh module with cross-platform support and reliability improvements:
- M1: execute_with_retry() with exponential backoff for transient failures
- M2: validate_yq() to detect Go vs Python yq versions with fallback
- M3: check_phase_completion_fuzzy() for case-insensitive signal detection
- M4: sed_inplace() for cross-platform sed (macOS/Linux compatibility)
- M5: check_branch_protection() to prevent commits to main/master
Update json-output.sh with enhanced JSON extraction using awk for multi-block
handling, normalized status comparison, and fuzzy matching fallback.
Update epic-execute.sh to source utils.sh and use cross-platform sed functions.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update bmad_improvements_v2_fixes.md to reflect completed implementation
of all 5 high-priority issues in commit ce2f9fb3.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
H1: Git Add -A Safety
- Add check_sensitive_files() to detect untracked secrets
- Replace git add -A with git add -u (tracked files only)
- Update prompts to use explicit file staging
H2: Cleanup on Exit
- Add cleanup() function with trap handler for EXIT/INT/TERM
- Save checkpoint file for resume capability
- Finalize metrics and report uncommitted changes on exit
- Track CURRENT_STORY_INDEX throughout main loop
H3: Test Count Parsing (Multi-Framework)
- Add extract_test_count() supporting Jest, Mocha, Vitest, AVA, TAP, pytest, Go, Rust
- Try JSON output first, fall back to regex patterns
- Replace inline patterns in init_regression_baseline() and execute_regression_gate()
H4: Story Discovery (Word Boundaries)
- Fix grep pattern with word boundary: ${EPIC_ID}([^0-9]|$)
- Prevents "Epic: 1" from matching "Epic: 10" or "Epic: 100"
- Add associative array deduplication (bash 4+) with fallback
H5: Prompt Size Limits
- Add MAX_PROMPT_SIZE config (default 150KB)
- Add get_byte_size(), truncate_content(), build_sized_prompt()
- Truncate large workflow YAML and decision logs
- Add verbose logging of prompt sizes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements the final two improvements from bmad_improvements_v2.md:
## Structured JSON Output (Improvement #6)
- New module: scripts/epic-execute-lib/json-output.sh
- Functions for extracting and parsing JSON from Claude output
- Unified check_phase_completion() with JSON + text fallback
- Updated prompts to request JSON result blocks
- Added --legacy-output flag to disable JSON parsing
## Test-First Flow (Improvement #7)
- New module: scripts/epic-execute-lib/tdd-flow.sh
- execute_test_spec_phase() - Generates BDD specs from acceptance criteria
- execute_test_impl_phase() - Creates failing tests from specs
- execute_test_verification_phase() - Verifies tests fail correctly
- Integration with dev phase for TDD context
- Added --skip-tdd, --skip-test-spec, --skip-test-impl flags
All 7 improvements from the analysis are now complete.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add decision log module for context preservation across phases
- Add regression gate module for test baseline tracking
- Add design phase module for pre-implementation planning
- Enhance fix phase to include real tooling output
- Pass design and decision context to dev phase
- Add --skip-design and --skip-regression CLI flags
- Modularize into epic-execute-lib/ for maintainability
Implements improvements from bmad_improvements_v2.md:
- Phase 2.1: Real test output in fix loops
- Phase 2.2: Cumulative decision log
- Phase 2.3: Regression test gate
- Phase 3.1: Pre-implementation design phase
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The script marks stories with lowercase "done" but was checking for
capitalized "Done", causing --skip-done to never match completed stories.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add architecture compliance check (per-story) with fix loop
- Add test quality review (per-story) with TEA patterns
- Add requirements traceability (per-epic) with self-healing test generation
- Add --skip-arch, --skip-test-quality, --skip-traceability flags
- Update workflow.md to v2.0 with new flow diagram
- Add step templates for each quality gate phase
- Include improvements doc and execution report
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Transition BMad Method from Alpha to Beta
- Beta versions now publish to npm 'latest' tag (default for npx)
- Updated manual release workflow to prioritize beta releases
- Updated CHANGELOG with Beta.0 release notes
- Add CSS to break workflow diagram iframe out of content container
- iframe now spans full viewport width instead of max-width constraint
- Adjust iframe height to 700px for better fit
- Remove border/border-radius for seamless full-width look
Co-authored-by: Brian Madison <brianmadison@Brians-MacBook-Pro.local>
Allows iframe src attributes to be properly transformed with the base path,
enabling the interactive workflow diagram to be embedded in markdown pages.
* docs: radical reduction of documentation scope for v6 beta
Archive and basement unreviewed content to ship a focused, minimal doc set.
Changes:
- Archive stale how-to workflow guides (will rewrite for v6)
- Archive outdated explanation and reference content
- Move unreviewed content to basement for later review
- Reorganize TEA docs into dedicated /tea/ section
- Add workflow-map visual reference page
- Simplify getting-started tutorial and sidebar navigation
- Add explanation pages: brainstorming, adversarial-review, party-mode,
quick-flow, advanced-elicitation
- Fix base URL handling for subdirectory deployments (GitHub Pages forks)
The goal is a minimal, accurate doc set for beta rather than
comprehensive but potentially misleading content.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: restructure BMM and agents documentation by consolidating and flattening index files.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Directory was renamed in 1da77058 but step file contents weren't updated.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
- Add .github/prompts directory alongside .github/agents
- Use UnifiedInstaller with TemplateType.COPILOT for prompts/workflows/tasks/tools
- Fix typo: bmd-custom- -> bmad- prefix for agents
- Update cleanup to handle both directories
- Format fixes for auggie.js and windsurf.js
- Add fileExtension parameter support to path-utils (toColonPath, toDashPath)
- Add TemplateType.GEMINI to unified-installer for TOML output format
- Update task-tool-command-generator to support TOML format
- Refactor gemini.js to use UnifiedInstaller with:
- NamingStyle.FLAT_DASH for dash-separated filenames
- TemplateType.GEMINI for TOML format (description + prompt fields)
- fileExtension: '.toml' for Gemini CLI
TOML format:
description = "BMAD Agent: Title"
prompt = """
Content here
"""
- Replace manual artifact collection with UnifiedInstaller class
- Remove nested folder structure (.windsurf/workflows/bmad/[module]/[type]/)
- Now installs flat files to .windsurf/workflows/ (e.g., bmad-bmm-agent-pm.md)
- Use NamingStyle.FLAT_DASH and TemplateType.WINDSURF
- Add customTemplateFn for Windsurf-specific auto_execution_mode frontmatter
- Simplify cleanup() and update installCustomAgentLauncher() for flat structure
- Replace individual generators with UnifiedInstaller class
- Use NamingStyle.FLAT_COLON and TemplateType.CODEX
- Remove manual counting logic, use counts from UnifiedInstaller
- Keep cleanup() and installCustomAgentLauncher() as-is