
branch-strategy-advisor
by armanzeroeight
๐ A collection of Claude subagents, skills, rules, guides, and blueprints for Developers, Engineers, and Creators. | Covering programming languages, DevOps, Cloud, and beyond.
SKILL.md
name: branch-strategy-advisor description: Recommends git branching strategies and workflows based on team size, deployment frequency, and project requirements. Use when choosing branching models, planning workflows, or optimizing git processes.
Branch Strategy Advisor
Recommend optimal branching strategies for your project.
Quick Start
Choose strategy based on team and deployment:
- Small team + continuous deployment โ GitHub Flow
- Large team + scheduled releases โ Gitflow
- Fast iteration + feature flags โ Trunk-Based Development
Instructions
Step 1: Assess Project Context
Team Size:
- Small (1-5 developers)
- Medium (6-20 developers)
- Large (20+ developers)
Deployment Frequency:
- Continuous (multiple times per day)
- Daily
- Weekly
- Scheduled releases (monthly/quarterly)
Release Model:
- Single production version
- Multiple versions in production
- Long-term support versions
- Rolling releases
Technical Constraints:
- Feature flags available?
- Automated testing coverage?
- CI/CD pipeline maturity?
- Code review requirements?
Step 2: Select Branching Strategy
GitHub Flow - Best for:
- Small to medium teams
- Web applications
- Continuous deployment
- Simple workflow needed
Structure:
main (production)
โโโ feature/user-auth
โโโ feature/payment-integration
โโโ bugfix/login-error
Workflow:
- Create feature branch from main
- Make changes and commit
- Open pull request
- Review and test
- Merge to main
- Deploy automatically
Pros: Simple, fast, continuous deployment Cons: Requires good CI/CD, no release staging
Gitflow - Best for:
- Large teams
- Scheduled releases
- Multiple versions in production
- Need for hotfix support
Structure:
main (production)
develop (integration)
โโโ feature/new-dashboard
โโโ feature/api-v2
โโโ release/v2.0
โโโ hotfix/critical-bug
Workflow:
- Feature branches from develop
- Merge features to develop
- Create release branch from develop
- Test and fix in release branch
- Merge release to main and develop
- Tag release on main
- Hotfixes from main, merge to main and develop
Pros: Structured, supports multiple versions, clear release process Cons: Complex, slower, more overhead
Trunk-Based Development - Best for:
- High-performing teams
- Continuous integration
- Feature flags available
- Fast iteration needed
Structure:
main (trunk)
โโโ short-lived-feature-1
โโโ short-lived-feature-2
Workflow:
- Create short-lived branch (< 1 day)
- Make small changes
- Merge to main frequently
- Use feature flags for incomplete features
- Deploy main continuously
Pros: Fast integration, simple, encourages small changes Cons: Requires discipline, needs feature flags, high test coverage
GitLab Flow - Best for:
- Environment-based deployments
- Need for staging
- Hybrid approach
- Multiple environments
Structure:
main (development)
โโโ feature/new-feature
โโโ staging (staging environment)
โโโ production (production environment)
Workflow:
- Feature branches from main
- Merge to main (development)
- Merge main to staging for testing
- Merge staging to production for release
- Hotfixes can go directly to production
Pros: Environment-based, flexible, clear promotion path Cons: More branches to manage, can be slower
Step 3: Define Branch Naming
Recommended conventions:
feature/short-description
feature/TICKET-123-description
feature/user-auth-jwt
bugfix/short-description
bugfix/ISSUE-456-null-pointer
bugfix/login-validation
hotfix/critical-issue
hotfix/security-patch
hotfix/payment-failure
release/version
release/v2.0.0
release/2024-Q1
chore/maintenance-task
chore/update-dependencies
chore/cleanup-logs
Naming rules:
- Use lowercase with hyphens
- Include ticket/issue number if applicable
- Be descriptive but concise
- Use consistent prefixes
- Avoid special characters
Step 4: Set Branch Policies
Main/Master Branch:
- Require pull request reviews (1-2 reviewers)
- Require status checks to pass
- Require up-to-date branches
- Restrict direct pushes
- Require signed commits (optional)
Develop Branch (if using Gitflow):
- Require pull request reviews
- Require CI to pass
- Allow direct pushes for hotfixes (optional)
Feature Branches:
- No restrictions
- Delete after merge
- Rebase on parent regularly
Release Branches:
- Restrict to release managers
- Only bug fixes allowed
- No new features
Step 5: Define Merge Strategy
Merge Commit - When to use:
- Want to preserve branch history
- Multiple commits represent logical units
- Need audit trail
- Gitflow workflow
Squash and Merge - When to use:
- Want clean main branch history
- Many WIP commits in feature branch
- Single logical change
- GitHub Flow workflow
Rebase and Merge - When to use:
- Want linear history
- No merge commits
- Team comfortable with rebasing
- Trunk-Based Development
Fast-Forward Only - When to use:
- Strict linear history
- Small, atomic changes
- Trunk-Based Development
- Advanced teams
Strategy Comparison
| Strategy | Team Size | Deployment | Complexity | Best For |
|---|---|---|---|---|
| GitHub Flow | Small-Medium | Continuous | Low | Web apps, SaaS |
| Gitflow | Medium-Large | Scheduled | High | Enterprise, versioned products |
| Trunk-Based | Any | Continuous | Medium | High-performing teams |
| GitLab Flow | Medium | Regular | Medium | Multi-environment deployments |
Common Scenarios
Scenario: Startup with 3 developers
- Recommendation: GitHub Flow
- Rationale: Simple, fast, supports continuous deployment
- Setup: main branch + feature branches + PR reviews
Scenario: Enterprise with 50 developers
- Recommendation: Gitflow
- Rationale: Structured, supports multiple releases, clear process
- Setup: main + develop + feature/release/hotfix branches
Scenario: SaaS with daily deployments
- Recommendation: Trunk-Based Development
- Rationale: Fast integration, continuous deployment, small changes
- Setup: main branch + short-lived features + feature flags
Scenario: Mobile app with app store releases
- Recommendation: Gitflow or GitLab Flow
- Rationale: Scheduled releases, need for release branches, testing period
- Setup: Release branches for app store submissions
Scenario: Open source project
- Recommendation: GitHub Flow
- Rationale: Simple for contributors, PR-based, clear process
- Setup: main branch + fork-based contributions
Migration Strategies
From no strategy to GitHub Flow:
- Protect main branch
- Require PR reviews
- Set up CI/CD
- Document workflow
- Train team
From GitHub Flow to Gitflow:
- Create develop branch from main
- Update CI to test develop
- Create first release branch
- Document new workflow
- Migrate features to new model
From Gitflow to Trunk-Based:
- Merge develop to main
- Remove develop branch
- Implement feature flags
- Shorten branch lifetimes
- Increase deployment frequency
Best Practices
Branch Hygiene:
- Delete merged branches automatically
- Limit active branches per developer (2-3)
- Keep branches short-lived (< 3 days)
- Sync with parent branch daily
- Use descriptive names
Code Review:
- Review within 24 hours
- Keep PRs small (< 400 lines)
- Provide constructive feedback
- Test before approving
- Use review checklists
CI/CD Integration:
- Run tests on every push
- Deploy main automatically (if continuous)
- Use staging environments
- Implement rollback mechanisms
- Monitor deployments
Documentation:
- Document chosen strategy in README
- Create workflow diagrams
- Provide examples
- Update as strategy evolves
- Include troubleshooting guide
Advanced
For complex scenarios:
- Monorepo branching strategies
- Multi-team coordination
- Release train models
- Hotfix procedures
- Branch protection rules
Score
Total Score
Based on repository quality metrics
SKILL.mdใใกใคใซใๅซใพใใฆใใ
ใฉใคใปใณในใ่จญๅฎใใใฆใใ
100ๆๅญไปฅไธใฎ่ชฌๆใใใ
GitHub Stars 100ไปฅไธ
1ใถๆไปฅๅ ใซๆดๆฐ
10ๅไปฅไธใใฉใผใฏใใใฆใใ
ใชใผใใณIssueใ50ๆชๆบ
ใใญใฐใฉใใณใฐ่จ่ชใ่จญๅฎใใใฆใใ
1ใคไปฅไธใฎใฟใฐใ่จญๅฎใใใฆใใ
Reviews
Reviews coming soon
