feat(bmvcs): add VCS workflow templates
Add 5 VCS adaptation templates for different workflows: - git-github-flow.yaml: Simple feature branches (40% of users) - git-gitflow.yaml: Structured releases (20% of users) - git-trunk-based.yaml: Continuous deployment (15% of users) - no-vcs.yaml: Prototypes and one-time scripts (5% of users) - custom-generic.yaml: Custom/legacy VCS systems (10% of users) Templates support VCS-agnostic artifact generation across all BMAD agents. Part 2/5 of BMVCS migration (#661) Completes core VCS discovery functionality 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
2137a7790b
commit
8d342f3bd7
|
|
@ -0,0 +1,117 @@
|
|||
# Custom/Generic VCS Template
|
||||
# For ~10% of users - SVN, Perforce, custom workflows, complex setups
|
||||
|
||||
name: Custom/Generic VCS
|
||||
description: Adaptable template for non-standard version control systems
|
||||
optimized_for: "Legacy systems, enterprise custom workflows, specialized VCS tools"
|
||||
|
||||
discovery_required:
|
||||
questions_to_ask:
|
||||
- "What commands do you use to save changes?"
|
||||
- "How do you mark versions or milestones?"
|
||||
- "How do team members share code?"
|
||||
- "What's your review process?"
|
||||
- "Any specific naming conventions?"
|
||||
|
||||
artifact_patterns:
|
||||
architecture:
|
||||
structure: "flexible"
|
||||
format: |
|
||||
- Ask: "What format works best with your system?"
|
||||
- Default to markdown if no preference
|
||||
- Avoid Git-specific terminology
|
||||
terminology_mapping:
|
||||
- instead_of: "branch"
|
||||
use: "workspace/stream/variant"
|
||||
- instead_of: "commit"
|
||||
use: "changeset/submission/check-in"
|
||||
- instead_of: "merge"
|
||||
use: "integrate/incorporate/combine"
|
||||
stories:
|
||||
format: |
|
||||
- Ask about existing story/task tracking
|
||||
- Adapt to their terminology
|
||||
- Focus on deliverables, not process
|
||||
|
||||
code:
|
||||
delivery: "aligned-to-vcs"
|
||||
format: |
|
||||
- Ask: "How should code changes be packaged?"
|
||||
- Follow their existing patterns
|
||||
- Document changes clearly
|
||||
|
||||
agent_adaptations:
|
||||
architect:
|
||||
- Use VCS-neutral language
|
||||
- Ask about their documentation standards
|
||||
- Adapt diagrams to their tooling
|
||||
|
||||
pm:
|
||||
- Align with existing requirement formats
|
||||
- Use their project terminology
|
||||
- No assumptions about workflow
|
||||
|
||||
sm:
|
||||
- Match their task breakdown approach
|
||||
- Use their status terminology
|
||||
- Respect existing processes
|
||||
|
||||
dev:
|
||||
- Follow their code organization
|
||||
- Match their change description format
|
||||
- No Git-specific suggestions
|
||||
|
||||
qa:
|
||||
- Align with their testing workflow
|
||||
- Use their defect tracking terms
|
||||
- Respect existing procedures
|
||||
|
||||
generic_terminology:
|
||||
version_control_neutral:
|
||||
- 'Use "Save changes" instead of "commit"'
|
||||
- 'Use "Code variant" instead of "branch"'
|
||||
- 'Use "Combine changes" instead of "merge"'
|
||||
- 'Use "Change history" instead of "git log"'
|
||||
- 'Use "Revert changes" instead of "git revert"'
|
||||
|
||||
svn_specific:
|
||||
if_detected: "Subversion/SVN"
|
||||
adaptations:
|
||||
- 'Use "revision" instead of "commit"'
|
||||
- "Trunk/branches/tags structure"
|
||||
- "Revision numbers, not hashes"
|
||||
- '"svn update" before changes'
|
||||
|
||||
perforce_specific:
|
||||
if_detected: "Perforce"
|
||||
adaptations:
|
||||
- 'Use "changelist" instead of "commit"'
|
||||
- "Workspace/depot terminology"
|
||||
- "Client specs consideration"
|
||||
- "Large binary file handling"
|
||||
|
||||
adaptation_strategy: |
|
||||
1. Never assume - always ask
|
||||
2. Learn their terminology first
|
||||
3. Mirror their existing patterns
|
||||
4. Document in their style
|
||||
5. Deliver in their format
|
||||
|
||||
example_interactions:
|
||||
discovering_process: |
|
||||
BMAD: "How do you typically save and share code changes?"
|
||||
User: "We use Perforce with numbered changelists"
|
||||
BMAD: "Got it! I'll use Perforce terminology. Should I organize
|
||||
changes as separate changelists or group them?"
|
||||
|
||||
adapting_output: |
|
||||
Instead of: "Create a feature branch and commit changes"
|
||||
Generate: "Create a workspace and submit a changelist"
|
||||
|
||||
best_practices:
|
||||
- "Listen more than suggest"
|
||||
- "Use their language, not ours"
|
||||
- "Ask when uncertain"
|
||||
- "Document their process, don't change it"
|
||||
- "Be flexible in output format"
|
||||
- "Respect existing workflows"
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
# Git GitFlow Adaptation Template
|
||||
# For ~20% of users - versioned releases
|
||||
|
||||
name: GitFlow
|
||||
description: Structured branches with develop, release, and hotfix flows
|
||||
optimized_for: "Desktop software, mobile apps, versioned APIs, scheduled releases"
|
||||
|
||||
artifact_patterns:
|
||||
architecture:
|
||||
structure: "version-aligned"
|
||||
location: "docs/architecture/"
|
||||
format: |
|
||||
- Main architecture in docs/architecture/
|
||||
- Version-specific changes in docs/releases/v{version}/
|
||||
- Comprehensive planning documents
|
||||
|
||||
stories:
|
||||
granularity: "medium"
|
||||
size: "3-5 days of work"
|
||||
format: |
|
||||
- Stories grouped by release version
|
||||
- Located in docs/releases/v{version}/stories/
|
||||
- Can span multiple commits in feature branch
|
||||
|
||||
commits:
|
||||
style: "descriptive"
|
||||
branch_prefixes:
|
||||
feature: "feature/"
|
||||
release: "release/"
|
||||
hotfix: "hotfix/"
|
||||
bugfix: "bugfix/"
|
||||
examples:
|
||||
- "feature/user-auth: implement OAuth2 flow"
|
||||
- "release/2.1.0: prepare release notes"
|
||||
- "hotfix/critical-payment-bug: fix decimal handling"
|
||||
|
||||
agent_adaptations:
|
||||
architect:
|
||||
- Generate comprehensive release-oriented architecture
|
||||
- Include version migration guides
|
||||
- Document breaking changes clearly
|
||||
|
||||
pm:
|
||||
- Create release-scoped PRDs
|
||||
- Define features by target version
|
||||
- Maintain product roadmap document
|
||||
|
||||
sm:
|
||||
- Group stories by release milestone
|
||||
- Create epic-level organization
|
||||
- Track story status across branches
|
||||
|
||||
dev:
|
||||
- Follow branch naming conventions strictly
|
||||
- Include version tags in code comments
|
||||
- Generate migration scripts when needed
|
||||
|
||||
qa:
|
||||
- Comprehensive test plans per release
|
||||
- Regression test suites for versions
|
||||
- Hotfix validation procedures
|
||||
|
||||
version_management:
|
||||
develop_branch: "Latest development work"
|
||||
main_branch: "Production-ready releases only"
|
||||
release_process: |
|
||||
1. Branch release/x.y.z from develop
|
||||
2. Fix bugs in release branch
|
||||
3. Merge to main and tag
|
||||
4. Merge back to develop
|
||||
|
||||
best_practices:
|
||||
- "Never commit directly to main"
|
||||
- "Feature branches from develop, not main"
|
||||
- "Hotfixes from main, merge to both main and develop"
|
||||
- "Release branches for final preparations"
|
||||
- "Semantic versioning (MAJOR.MINOR.PATCH)"
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
# Git GitHub Flow Adaptation Template
|
||||
# For ~40% of users - the most common workflow
|
||||
|
||||
name: GitHub Flow
|
||||
description: Simple feature branches with pull requests
|
||||
optimized_for: "Web applications, continuous deployment, small to medium teams"
|
||||
|
||||
artifact_patterns:
|
||||
architecture:
|
||||
structure: "feature-aligned"
|
||||
location: "docs/architecture/features/{feature-name}/"
|
||||
format: |
|
||||
- Main architecture in docs/architecture/README.md
|
||||
- Feature additions in feature branches
|
||||
- Lightweight, PR-friendly documents
|
||||
|
||||
stories:
|
||||
granularity: "small"
|
||||
size: "1-3 days of work"
|
||||
format: |
|
||||
- One story per PR ideal
|
||||
- Story file travels with code changes
|
||||
- Located in docs/stories/{story-id}.md
|
||||
|
||||
commits:
|
||||
style: "conventional"
|
||||
examples:
|
||||
- "feat: add user authentication"
|
||||
- "fix: resolve login timeout issue"
|
||||
- "docs: update API documentation"
|
||||
pr_description: |
|
||||
## What
|
||||
Brief description of changes
|
||||
|
||||
## Why
|
||||
Context from story: {story-id}
|
||||
|
||||
## Testing
|
||||
- [ ] Unit tests pass
|
||||
- [ ] Manual testing completed
|
||||
|
||||
agent_adaptations:
|
||||
architect:
|
||||
- Generate lightweight, modular architecture docs
|
||||
- Focus on changed components only
|
||||
- Include "Impact Analysis" section for features
|
||||
|
||||
pm:
|
||||
- Create feature-scoped PRDs when needed
|
||||
- Keep requirements atomic and PR-sized
|
||||
|
||||
sm:
|
||||
- Generate small, independent stories
|
||||
- Each story should map to one PR
|
||||
- Include acceptance criteria for PR review
|
||||
|
||||
dev:
|
||||
- Suggest feature branch names: feature/story-{id}
|
||||
- Generate atomic commits
|
||||
- Include PR template in first commit
|
||||
|
||||
qa:
|
||||
- Test plans per PR
|
||||
- Focus on regression in changed areas
|
||||
- Checklist format for PR reviews
|
||||
|
||||
best_practices:
|
||||
- "Keep PRs small - under 400 lines ideal"
|
||||
- "One story = One PR when possible"
|
||||
- "Branch from main, merge to main"
|
||||
- "Delete branches after merge"
|
||||
- "Deploy immediately after merge (if CI passes)"
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
# Git Trunk-Based Development Template
|
||||
# For ~15% of users - mature CI/CD teams
|
||||
|
||||
name: Trunk-Based Development
|
||||
description: Direct commits or very short-lived branches to main
|
||||
optimized_for: "Continuous deployment, mature DevOps teams, microservices"
|
||||
|
||||
prerequisites:
|
||||
required:
|
||||
- "Comprehensive automated testing"
|
||||
- "Feature flags system"
|
||||
- "CI/CD pipeline with automatic rollback"
|
||||
recommended:
|
||||
- "Monitoring and alerting"
|
||||
- "Blue-green or canary deployments"
|
||||
|
||||
artifact_patterns:
|
||||
architecture:
|
||||
structure: "incrementally-evolving"
|
||||
location: "docs/architecture/"
|
||||
format: |
|
||||
- Living documents that evolve with each change
|
||||
- Feature flags documented inline
|
||||
- ADRs (Architecture Decision Records) for changes
|
||||
|
||||
stories:
|
||||
granularity: "tiny"
|
||||
size: "Hours to 1 day maximum"
|
||||
format: |
|
||||
- Ultra-small, immediately mergeable
|
||||
- Flag-gated feature development
|
||||
- Located in docs/stories/current/
|
||||
|
||||
commits:
|
||||
style: "atomic"
|
||||
frequency: "Multiple per day"
|
||||
examples:
|
||||
- "add user email validation behind flag:validate-email"
|
||||
- "refactor payment service for performance"
|
||||
- "enable feature flag:new-checkout-flow for 10% users"
|
||||
flag_convention: "flag:{feature-name}"
|
||||
|
||||
agent_adaptations:
|
||||
architect:
|
||||
- Design for feature flags from start
|
||||
- Document flag dependencies
|
||||
- Create rollback procedures
|
||||
|
||||
pm:
|
||||
- Define features as flag-gated increments
|
||||
- Specify rollout percentages
|
||||
- Create flag retirement timeline
|
||||
|
||||
sm:
|
||||
- Generate tiny, atomic stories
|
||||
- Each story deployable behind flag
|
||||
- Include flag configuration in story
|
||||
|
||||
dev:
|
||||
- Implement feature flags first
|
||||
- Keep changes small and isolated
|
||||
- Include flag cleanup tasks
|
||||
- Commit directly or PR within hours
|
||||
|
||||
qa:
|
||||
- Test with flags on/off
|
||||
- Automated test coverage mandatory
|
||||
- Performance testing for each change
|
||||
|
||||
feature_flags:
|
||||
naming: "kebab-case-descriptive"
|
||||
structure: |
|
||||
{
|
||||
"flag": "new-user-dashboard",
|
||||
"description": "Redesigned dashboard for users",
|
||||
"rollout": {
|
||||
"dev": 100,
|
||||
"staging": 100,
|
||||
"production": 10
|
||||
},
|
||||
"expiry": "2024-Q2"
|
||||
}
|
||||
|
||||
ci_cd_requirements:
|
||||
pipeline: |
|
||||
1. Automated tests (must pass)
|
||||
2. Security scanning
|
||||
3. Deploy to staging
|
||||
4. Smoke tests
|
||||
5. Deploy to production (behind flag)
|
||||
6. Progressive rollout
|
||||
|
||||
best_practices:
|
||||
- "Main branch always deployable"
|
||||
- "No long-lived branches (max 24 hours)"
|
||||
- "Feature flags for all new functionality"
|
||||
- "Small, frequent commits"
|
||||
- "Pair programming or immediate review"
|
||||
- "Rollback is always an option"
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
# No Version Control Template
|
||||
# For ~5% of users - prototypes, one-time scripts, POCs
|
||||
|
||||
name: No Version Control
|
||||
description: Single deliverable packages without version tracking
|
||||
optimized_for: "Prototypes, data migrations, one-time scripts, proof of concepts"
|
||||
|
||||
artifact_patterns:
|
||||
architecture:
|
||||
structure: "monolithic"
|
||||
location: "deliverables/"
|
||||
format: |
|
||||
- Single comprehensive document
|
||||
- All requirements embedded
|
||||
- Self-contained package
|
||||
naming: "{project}_{type}_YYYYMMDD.md"
|
||||
|
||||
stories:
|
||||
granularity: "complete-features"
|
||||
format: |
|
||||
- All stories in one document
|
||||
- Sequential implementation order
|
||||
- No branching considerations
|
||||
naming: "{project}_requirements_YYYYMMDD.md"
|
||||
|
||||
code:
|
||||
delivery: "complete-packages"
|
||||
format: |
|
||||
- All code in one deliverable
|
||||
- Extensive inline comments
|
||||
- Setup instructions included
|
||||
naming: "{project}_complete_YYYYMMDD.zip"
|
||||
|
||||
package_structure:
|
||||
example: |
|
||||
project_20240315/
|
||||
├── README.md # Complete instructions
|
||||
├── requirements.txt # All dependencies
|
||||
├── src/ # All source code
|
||||
│ └── main.py
|
||||
├── docs/ # All documentation
|
||||
│ ├── architecture.md
|
||||
│ └── requirements.md
|
||||
├── scripts/ # Setup/run scripts
|
||||
│ └── setup.sh
|
||||
└── tests/ # Test files if any
|
||||
|
||||
agent_adaptations:
|
||||
architect:
|
||||
- Generate single, complete architecture document
|
||||
- Include all diagrams inline (base64 or ASCII)
|
||||
- No references to branches or versions
|
||||
- Date-stamp all documents
|
||||
|
||||
pm:
|
||||
- Create comprehensive PRD upfront
|
||||
- All requirements in one document
|
||||
- Clear success criteria
|
||||
|
||||
sm:
|
||||
- Sequential story implementation plan
|
||||
- Dependencies clearly mapped
|
||||
- No parallel work assumptions
|
||||
|
||||
dev:
|
||||
- Generate complete, runnable code
|
||||
- Extensive comments explaining logic
|
||||
- No commit messages
|
||||
- Include all necessary files
|
||||
|
||||
qa:
|
||||
- Single test plan document
|
||||
- Manual test procedures
|
||||
- No regression considerations
|
||||
|
||||
documentation:
|
||||
readme_template: |
|
||||
# {Project Name}
|
||||
Generated: {Date}
|
||||
|
||||
## Quick Start
|
||||
1. Extract all files
|
||||
2. Run setup script: ./scripts/setup.sh
|
||||
3. Execute: python src/main.py
|
||||
|
||||
## Requirements
|
||||
- Python 3.8+
|
||||
- Dependencies in requirements.txt
|
||||
|
||||
## What This Does
|
||||
{Clear description}
|
||||
|
||||
## File Descriptions
|
||||
{List each file and its purpose}
|
||||
|
||||
## Notes
|
||||
- This is a complete, self-contained package
|
||||
- No version control required
|
||||
- For questions, refer to docs/
|
||||
|
||||
best_practices:
|
||||
- "Date-stamp everything"
|
||||
- "Over-document rather than under-document"
|
||||
- "Include all dependencies explicitly"
|
||||
- "Test the complete package before delivery"
|
||||
- "One ZIP/folder contains everything"
|
||||
- "No external references"
|
||||
Loading…
Reference in New Issue