Index
Mobius Branch Strategy¶
EPICON-compliant branching — intent encoded in branch names.
Branch Structure¶
| Branch | Purpose | Governance | Who Uses It |
|---|---|---|---|
main | Production, always deployable | Protected | Merges only |
claude/atlas | Claude-driven development | ATLAS sentinel | Claude sessions |
cursor/aurea | Cursor agent development | AUREA sentinel | Cursor background agents |
v0.x.x tags | Release milestones | Immutable | Version snapshots |
That's it. Three active branches plus tags for releases.
Philosophy¶
main — The Cathedral¶
The main branch is the cathedral. Only merged, reviewed, EPICON-approved code lives here.
- Never work directly on
main - All changes come through PRs from working branches
- Protected by branch protection rules
- Requires passing CI + GI gate (≥ 0.95)
claude/atlas — Anthropic Sessions¶
When working with Claude (Anthropic), development happens here.
- Named for ATLAS — the primary Anthropic sentinel
- Claude sessions push to this branch
- PR to
mainwhen work is ready for review - Audit trail: commits here were made under ATLAS oversight
cursor/aurea — Cursor Agents¶
When Cursor background agents work, they push here.
- Named for AUREA — the integrity sentinel (OpenAI-based)
- Cursor background tasks use this branch
- PR to
mainwhen work is complete - Audit trail: commits here were made under AUREA oversight
Version Tags¶
Use git tag v0.2.0 rather than branches for releases.
- Tags are immutable pointers
- Branches imply ongoing work
- Tags create clean release history
Naming Convention¶
The {tool}/{sentinel} pattern encodes:
- Who did the work (which AI system)
- What governance applies (which sentinel reviews)
This creates natural audit trails: - Commits on claude/atlas → Claude sessions under ATLAS oversight - Commits on cursor/aurea → Cursor agents under AUREA oversight
Branch Lifecycle¶
┌─────────────────────────────────────────────────────────────┐
│ main │
│ (production) │
└─────────────────────────────────────────────────────────────┘
▲ ▲
│ PR + Review │ PR + Review
│ │
┌─────────┴─────────┐ ┌────────┴────────┐
│ claude/atlas │ │ cursor/aurea │
│ (Claude work) │ │ (Cursor work) │
└───────────────────┘ └─────────────────┘
Feature Branches (Optional)¶
For specific features, use descriptive sub-branches:
These merge back to their parent working branch first, then to main.
Configuration¶
Cursor Background Agents¶
Configure Cursor to use cursor/aurea by default for background tasks:
- In Cursor settings, configure the default branch for Cloud Agents
- All background agent work goes to
cursor/aurea - Review and merge to
mainwhen ready
Claude Sessions¶
When starting a Claude session:
Migration from Old Branches¶
After implementing this strategy, clean up old branches:
# Use the cleanup tools
./scripts/quick-cleanup.sh --dry-run # Preview
./scripts/quick-cleanup.sh # Execute
# Or interactive mode
./scripts/cleanup-branches.sh
See BRANCH_CLEANUP.md for detailed cleanup documentation.
Branch Protection Rules¶
Recommended GitHub settings for main:
- ✅ Require pull request before merging
- ✅ Require status checks to pass
- ✅ Require linear history
- ✅ Automatically delete head branches (for PR branches)
- ✅ Restrict who can push (no direct pushes)
Related Documents¶
"Memory with teeth — even for branch management."
Cycle: C-198 Last Updated: 2026-01-16