| name | git-agentic-branching-strategy |
| description | Branching strategy guide for Lighthouse LM agentic development. Provides branch selection guidance based on work type (epic/feature/wave), scope, and Progressive Coherence principles. Use when starting new work, implementing epics/features, or deciding branch strategy. Helps agents choose correct branch type and workflow. |
Git Agentic Branching Strategy
Branching strategy guidance for agentic development using Lighthouse LM agents, commands, and skills.
Quick Start
Get branch recommendation:
"What branch should I create for implementing Epic 1 with 3 features?"
"Should I create wave branch or work directly on feature branch?"
Common scenarios:
- Single wave implementation → wave branch from development
- Feature with 2+ waves → feature branch from development or epic
- Multi-feature epic → epic branch → feature branches
- Bug fix → work directly on development
- Hotfix → hotfix branch from development
Core Principle
Progressive Coherence and Git Workflow:
- Each branch represents a coherent unit of work
- Epic branches contain coherent set of features
- Feature branches contain coherent set of waves
- Each commit represents completed wave (atomic, verifiable)
Branch Hierarchy
main (protected)
└── development (integration branch)
├── epic-1-progressive-coherence (epic branch)
│ ├── feature-1.10-infrastructure (feature branch)
│ │ └── [commits for waves 1.10.1, 1.10.2, 1.10.3...]
│ ├── feature-1.4-msa-templates (feature branch)
│ │ └── [commits for waves 1.4.1, 1.4.2...]
│ └── feature-1.5-addendum-templates (feature branch)
│ └── [commits for waves 1.5.1, 1.5.2...]
├── epic-2-azure-integration (epic branch)
│ └── feature-2.1-devops-mcp (feature branch)
│ └── [commits for waves 2.1.1, 2.1.2...]
├── wave-3.1.1-standalone-skill (standalone wave from dev)
└── hotfix-auth-token-validation (hotfix branch)
Branch Types
1. Main Branch (Protected)
Purpose: Production-ready code
Characteristics:
- Always deployable
- Protected with branch protection rules
- Only accepts PRs from development
- Linear history (squash or rebase merges)
Who uses: Release manager, automated releases
Agents: NEVER work directly on main
2. Development Branch (Integration)
Purpose: Integration point for all feature work
Naming: development
Merge from:
- Epic branches (after all features complete)
- Standalone feature branches
- Standalone wave branches
- Hotfix branches
Merge to: main (via PR only)
Who uses: All agents by default
Work directly on development for:
- Small changes (1-2 files, <1 hour)
- Bug fixes (non-critical)
- Documentation updates
- README changes
- Minor refactoring
Characteristics:
- NOT protected (allows direct merges from features)
- May have failing tests temporarily
- Receives frequent merges
- Testing ground before main
3. Epic Branches (Long-Lived)
Purpose: Isolate work for entire epic with multiple features
Naming: epic-{number}-{short-description}
Examples:
epic-1-progressive-coherence
epic-2-azure-integration
epic-5-security-enhancements
Who uses: Agents working on multi-feature epics
Merge from: Feature branches within epic
Merge to: development when epic complete
Lifespan: Weeks to months
Work pattern:
- Create epic branch from development
- Create feature branches from epic
- Merge features → epic as they complete
- Merge epic → development when all features complete
When to use:
- ✅ Epic has 2+ features
- ✅ Epic will take >1 week
- ✅ Want to integrate features before merging to development
- ✅ Multiple agents working on same epic (different features)
4. Feature Branches (Medium-Lived)
Purpose: Implement entire feature with all its waves
Naming: feature-{epic}.{feature}-{short-description}
Examples:
feature-1.10-infrastructure (part of epic 1)
feature-1.4-msa-templates (part of epic 1)
feature-2.1-devops-mcp (part of epic 2)
Who uses: Agents implementing features
Merge from: None (agents commit wave implementations directly)
Merge to:
- Epic branch (if part of epic)
development (if standalone feature)
Lifespan: Days to weeks
Work pattern:
- Commit wave 1 directly to feature branch (NO wave branch)
- Commit wave 2 directly to feature branch
- Commit wave 3 directly to feature branch
- Merge entire feature when all waves complete
Commit format:
git commit -m "feat(wave-1.10.1): Implement catalog change monitor"
git commit -m "feat(wave-1.10.2): Implement template staleness detection"
git commit -m "feat(wave-1.10.3): Implement impact analysis"
When to use:
- ✅ Feature has 2+ waves
- ✅ Feature is part of epic (create from epic branch)
- ✅ Feature is standalone but multi-wave (create from development)
5. Standalone Wave Branches (Short-Lived)
Purpose: Implement single standalone wave (not part of epic)
Naming: wave-{epic}.{feature}.{wave}-{short-description}
Examples:
wave-3.1.1-standalone-skill
wave-4.2.1-quick-enhancement
wave-5.3.1-bug-fix-validation
Who uses: Agents implementing standalone waves
Merge from: None (leaf branches)
Merge to: development (skip epic/feature branches)
Lifespan: Hours to days
Work pattern:
- Create wave branch from development
- Implement wave completely
- Merge directly to development
When to use:
- ✅ Single wave implementation (not part of epic/feature)
- ✅ Quick enhancement or addition
- ✅ Standalone work item
When NOT to use:
- ❌ Wave is part of multi-wave feature (commit directly to feature branch instead)
- ❌ Simple bug fix (work directly on development)
6. Hotfix Branches (Urgent Fixes)
Purpose: Critical fixes that can't wait for normal workflow
Naming: hotfix-{short-description}
Examples:
hotfix-auth-token-validation
hotfix-security-vulnerability
hotfix-data-corruption-fix
Who uses: Agents fixing critical bugs
Merge from: None
Merge to: development AND potentially main (fast-track)
Lifespan: Hours
Work pattern:
- Create hotfix branch from development
- Implement fix
- Merge to development
- If critical, merge to main via expedited PR
When to use:
- ✅ Critical production bug
- ✅ Security vulnerability
- ✅ Data integrity issue
- ✅ Service outage fix
Decision Framework
Quick Decision Tree
Is this a hotfix?
└─ YES → Create hotfix branch from development
└─ NO → Continue...
Is this a small change (<1 hour, 1-2 files)?
└─ YES → Work directly on development
└─ NO → Continue...
Is this a single wave?
└─ YES → Create wave branch from development
└─ NO → Continue...
Is this a feature with 2+ waves?
└─ YES → Is feature part of epic?
└─ YES → Create feature branch from epic branch
└─ NO → Create feature branch from development
└─ NO → Continue...
Is this an epic with 2+ features?
└─ YES → Create epic branch from development, then create feature branches from epic
When to Create Epic Branch
Create Epic Branch If:
- ✅ Epic has multiple features (2+ features)
- ✅ Epic will take >1 week to complete
- ✅ Want to integrate features together before merging to development
- ✅ Multiple agents working on same epic simultaneously (different features)
Examples:
Epic 1: Progressive Coherence System
- Feature 1.10: Infrastructure (3 waves)
- Feature 1.4: MSA Templates (2 waves)
- Feature 1.5: Addendum Templates (1 wave)
→ Create epic-1-progressive-coherence from development
Skip Epic Branch If:
- ❌ Only 1 wave total (use wave branch from development)
- ❌ Single feature with 1-3 waves (use feature branch from development)
- ❌ Epic is simple documentation update (work on development)
- ❌ Want immediate integration with other work
When to Create Feature Branch
Create Feature Branch If:
- ✅ Feature has 2+ waves
- ✅ Feature is part of larger epic (create from epic branch)
- ✅ OR feature is standalone but has multiple waves (create from development)
Examples:
Feature 1.10: Infrastructure
- Wave 1.10.1: Catalog change monitor
- Wave 1.10.2: Template staleness detection
- Wave 1.10.3: Impact analysis
→ Create feature-1.10-infrastructure from epic-1 (or development if standalone)
→ Commit all waves directly to feature branch
Skip Feature Branch If:
- ❌ Single wave only (create standalone wave branch from development)
- ❌ Simple bug fix or documentation (work directly on development)
When to Create Standalone Wave Branch
Create Wave Branch If:
- ✅ Single wave implementation
- ✅ Not part of existing epic or feature
- ✅ Standalone work item
Examples:
Wave 3.1.1: Create new standalone skill
→ Create wave-3.1.1-standalone-skill from development
→ Implement wave completely
→ Merge directly to development
Don't Create Wave Branch If:
- ❌ Wave is part of multi-wave feature (commit directly to feature branch)
- ❌ Simple change (work directly on development)
Workflow Examples
Example 1: Multi-Feature Epic
Scenario: Epic 1 (Progressive Coherence) has 3 features with multiple waves each
Workflow:
git checkout development
git pull origin development
git checkout -b epic-1-progressive-coherence
git push -u origin epic-1-progressive-coherence
git checkout -b feature-1.10-infrastructure epic-1-progressive-coherence
git push -u origin feature-1.10-infrastructure
git add .
git commit -m "feat(wave-1.10.1): Implement catalog change monitor"
git push
git add .
git commit -m "feat(wave-1.10.2): Implement template staleness detection"
git push
git add .
git commit -m "feat(wave-1.10.3): Implement impact analysis"
git push
gh pr create --base epic-1-progressive-coherence --head feature-1.10-infrastructure \
--title "Feature 1.10: Infrastructure Complete" \
--body "Completed waves 1.10.1, 1.10.2, 1.10.3"
git checkout epic-1-progressive-coherence
git pull origin epic-1-progressive-coherence
gh pr create --base development --head epic-1-progressive-coherence \
--title "Epic 1: Progressive Coherence Complete" \
--body "Completed features 1.10, 1.4, 1.5"
git checkout development
git pull origin development
gh pr create --base main --head development
Example 2: Standalone Wave
Scenario: Implement single new skill (Wave 3.1.1), not part of epic
Workflow:
git checkout development
git pull origin development
git checkout -b wave-3.1.1-standalone-skill
git push -u origin wave-3.1.1-standalone-skill
git add .
git commit -m "feat(wave-3.1.1): Create new standalone skill"
git push
gh pr create --base development --head wave-3.1.1-standalone-skill \
--title "Wave 3.1.1: Standalone Skill Complete"
Example 3: Standalone Feature (No Epic)
Scenario: Feature 4.2 (Reporting Enhancement) has 2 waves, not part of epic
Workflow:
git checkout development
git pull origin development
git checkout -b feature-4.2-reporting-enhancement
git push -u origin feature-4.2-reporting-enhancement
git add .
git commit -m "feat(wave-4.2.1): Add export functionality"
git push
git add .
git commit -m "feat(wave-4.2.2): Add visualization options"
git push
gh pr create --base development --head feature-4.2-reporting-enhancement \
--title "Feature 4.2: Reporting Enhancement Complete" \
--body "Completed waves 4.2.1, 4.2.2"
Example 4: Hotfix
Scenario: Critical security vulnerability needs immediate fix
Workflow:
git checkout development
git pull origin development
git checkout -b hotfix-security-vulnerability
git push -u origin hotfix-security-vulnerability
git add .
git commit -m "fix(hotfix): Patch security vulnerability CVE-2025-1234"
git push
gh pr create --base development --head hotfix-security-vulnerability \
--title "Hotfix: Security Vulnerability CVE-2025-1234"
gh pr create --base main --head development \
--title "Emergency Release: Security Fix"
Integration with Lighthouse LM
Skill Returns Branch Recommendation
Input from user/agent:
"I'm implementing Epic 1 which has 3 features, each with 2-3 waves. What branch strategy should I use?"
Skill output:
## Branch Strategy Recommendation
**Work Type**: Multi-feature epic (3 features, 8 total waves)
**Recommended Strategy**: Epic → Feature → Commits
### Step-by-Step:
1. **Create Epic Branch**
```bash
git checkout development
git pull origin development
git checkout -b epic-1-progressive-coherence
git push -u origin epic-1-progressive-coherence
-
For Each Feature (1.10, 1.4, 1.5):
git checkout epic-1-progressive-coherence
git checkout -b feature-1.10-infrastructure epic-1-progressive-coherence
git push -u origin feature-1.10-infrastructure
-
Implement Waves as Commits (on feature branch):
git add .
git commit -m "feat(wave-1.10.1): Implement catalog change monitor"
git push
git add .
git commit -m "feat(wave-1.10.2): Implement template staleness detection"
git push
-
Merge Feature → Epic (after all waves complete):
gh pr create --base epic-1-progressive-coherence --head feature-1.10-infrastructure
-
Merge Epic → Development (after all features complete):
gh pr create --base development --head epic-1-progressive-coherence
Why This Strategy:
- ✅ Isolates epic work from development
- ✅ Organizes waves by feature
- ✅ No wave branches (commit directly to feature)
- ✅ Progressive integration (feature → epic → development)
---
## Questions to Ask User
**What are you implementing?** (required)
- Single wave
- Feature with multiple waves
- Epic with multiple features
- Bug fix or documentation
**Is this part of existing epic?** (if feature)
- Yes (create feature branch from epic)
- No (create feature branch from development)
**How many waves in feature?** (if feature)
- 1 wave → Use wave branch
- 2+ waves → Use feature branch
**How many features in epic?** (if epic)
- 1 feature → Skip epic branch, use feature branch
- 2+ features → Use epic branch
**Is this urgent/critical?** (if bug fix)
- Yes → Use hotfix branch
- No → Work on development or create wave branch
---
## Available Resources
### References
- **references/branching-scenarios.md** — Detailed scenarios with examples
- **references/branch-naming-conventions.md** — Naming standards and examples
- **references/merge-strategies.md** — When to merge, how to merge, merge conflicts
---
## Success Criteria
- ✅ Agent understands which branch type to use
- ✅ Agent knows where to create branch from (development, epic, feature)
- ✅ Agent knows when to commit directly vs. create branch
- ✅ Agent follows Progressive Coherence principles in branching
- ✅ Branch names follow conventions
- ✅ Merge targets correct
---
## Tips for Effective Branching
1. **Default to development** for small changes
2. **Use wave branches** only for standalone single waves
3. **Commit waves directly** to feature branches (no wave branches)
4. **Create epic branches** only for multi-feature epics
5. **Keep branch names descriptive** but concise
6. **Merge frequently** to avoid long-lived divergence
7. **Use conventional commit** format for wave commits
---
**Last Updated**: 2025-01-30