BMAD-METHOD/docs/VCS_AGNOSTIC_PRINCIPLES.md

4.0 KiB

VCS-Agnostic Principles for BMAD

Core Philosophy

"Optimized for the majority, open to all"

BMAD adapts to teams' existing version control practices rather than imposing new ones. We recognize that ~85-90% use Git, but remain fully functional for those who don't.

The 10 Principles

1. Discovery Before Assumption

  • Always ask about VCS approach first
  • Never assume Git or any specific system
  • Respect "no VCS" as a valid choice

2. Optimize for the Common Case

  • Provide quick picks for Git workflows (~85-90% of users)
  • Make popular choices easy to select
  • Keep edge cases possible but not prominent

3. Adapt Language to Context

  • Git users: "commit", "branch", "merge"
  • SVN users: "revision", "trunk", "update"
  • No VCS: "package", "version", "deliverable"
  • Generic: "save changes", "workspace", "integrate"

4. Structure Follows Function

  • GitHub Flow: Small, PR-sized artifacts
  • GitFlow: Version-oriented documentation
  • Trunk-Based: Flag-gated increments
  • No VCS: Monolithic, dated packages

5. Respect Existing Workflows

  • Document their process, don't change it
  • Work within their constraints
  • Enhance, don't replace

6. Practical Over Theoretical

  • Suggest only when asked
  • Provide what works, not what's "best"
  • Focus on delivery, not process

7. Progressive Disclosure

  • Simple choices for majority upfront
  • Complex options available but hidden
  • Custom escape hatch always present

8. Context-Aware Generation

  • Architecture adapts to VCS choice
  • Stories sized for their workflow
  • Documentation matches their practices

9. Terminology Consistency

  • Once VCS is identified, use their terms throughout
  • Don't mix Git and SVN terminology
  • Be consistent within a project

10. Zero Friction Adoption

  • Work with what they have
  • No required process changes
  • Value delivery over methodology

Implementation Guidelines

For Agent Developers

DO:

  • Check for VCS configuration early
  • Load appropriate adaptation templates
  • Use conditional logic based on VCS type
  • Provide examples for different systems
  • Test with non-Git users

DON'T:

  • Hardcode Git commands
  • Assume branches exist
  • Force commit message formats
  • Require specific tools
  • Judge non-standard approaches

For BMAD Users

What to Expect:

  • Initial question about your VCS
  • Adapted terminology and workflows
  • Artifacts that fit your process
  • Respect for your existing practices
  • No forced "improvements"

How to Get Best Results:

  • Be clear about your VCS setup
  • Describe custom workflows if needed
  • Ask for clarification if unsure
  • Request changes if something doesn't fit

Configuration Storage

VCS configuration is stored in .bmad-core/vcs-config.yaml:

vcs_config:
  type: git|svn|perforce|none|custom
  workflow: github-flow|gitflow|trunk-based|custom|none
  details: 'Custom description if provided'

  adaptations:
    artifact_format: branches|monolithic|platform-specific
    terminology: git|svn|generic|custom
    commit_style: conventional|team-specific|none

Testing Checklist

Verify BMAD works correctly with:

  • Git + GitHub Flow
  • Git + GitFlow
  • Git + Trunk-Based
  • Git + Custom workflow
  • SVN
  • Perforce
  • No VCS
  • Mixed/Complex setup

Success Metrics

  • 80% of users select from predefined options
  • 20% custom cases handled gracefully
  • Zero Git assumptions for non-Git users
  • No friction from VCS differences
  • Positive feedback from diverse teams

Evolution Path

As version control evolves:

  1. Add new templates for emerging patterns
  2. Update terminology mappings
  3. Maintain backward compatibility
  4. Never remove support for "legacy" systems
  5. Keep "no VCS" option always available

Conclusion

VCS-agnosticism makes BMAD truly universal. By respecting teams' existing practices and adapting to their workflows, BMAD becomes a tool that enhances productivity without forcing change.

The goal is simple: Make BMAD work with whatever the team has, not force the team to work with what BMAD expects.