blue/.blue/docs/spikes/2026-01-25T0200Z-develop-branch-workflow.done.md
Eric Garcia 0fea499957 feat: lifecycle suffixes for all document states + resolve all clippy warnings
Every document filename now mirrors its lifecycle state with a status
suffix (e.g., .draft.md, .wip.md, .accepted.md). No more bare .md for
tracked document types. Also renamed all from_str methods to parse to
avoid FromStr trait confusion, introduced StagingDeploymentParams struct,
and fixed all 19 clippy warnings across the codebase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:19:46 -05:00

2 KiB

Spike: Develop Branch Workflow

Status Complete
Date 2026-01-25

Question

How should we implement the develop branch workflow for Blue, and what's needed to enforce it consistently?


Findings

Current State

Branch Location Purpose
main forgejo, origin Only branch - contains all production code
git-forge-integration forgejo RFC 0013 feature branch
mcp-workflow-guidance forgejo RFC 0011 feature branch

Problem: blue_pr_create defaults to develop base and rejects main/master, but no develop branch exists. Feature branches can't be merged.

The Workflow Model

main (production releases only)
  ↑ merge when releasing
develop (integration branch)
  ↑ PRs merge here
feature branches (rfc/*, feature/*)

Why this matters:

  • main stays stable - only receives tested, integrated code
  • develop is where features integrate before release
  • Prevents accidental direct commits to production
  • Enables release management (develop → main when ready)

What's Needed

  1. Create develop branch from current main
  2. Push to forgejo
  3. Update forgejo settings - set default branch to develop
  4. Rebase existing feature branches onto develop
  5. Add blue_release_create tool for develop → main merges

Tool Enforcement (Already Done)

blue_pr_create in pr.rs:59-71:

  • Defaults base to develop
  • Rejects main/master with helpful message
  • This is correct - just needs the branch to exist

Recommendation

Proceed. Create the develop branch now. This is a one-time setup:

# From main branch
git checkout main
git checkout -b develop
git push forgejo develop

# On Forgejo: Settings → Branches → Default Branch → develop

Then existing feature branches can create PRs targeting develop.

Outcome

Proceed with implementation - create develop branch and update forgejo settings.