3.5 KiB
02 — Branching/Release — Questions
Purpose: Align on a clean, sustainable branch and release strategy before any changes. We will not implement until you approve.
Context: You suggested moving active work to a WIPhax
branch and keeping main
limited to non-code assets (docs/collab/.gitea). Below are options and tradeoffs to decide together.
Goals & Constraints
- Primary goals: What are the top 3 goals driving this change? (e.g., keep
main
always pristine, minimize merge noise, avoid half-baked code on main, simplify consumption by other projects, etc.)
main pristine avoid half-baked code on main simplify consumption by other projects
- Stability bar: Should
main
be “always green + release-ready” with protected branch/required CI? Or “docs-only” as you proposed?
"always green + release ready"
- Consumption: Will external automation/scripts rely on cloning
main
to bootstrap? If yes, what assets must be present onmain
(templates, prompts, wrapper) to keep bootstrapping simple?
No. I don't believe this will ever be automatically cloned to bootstrap. I expect that to be only done by a human. I can't control what people do of course, it's a public repo.
Branching Models (pick one or adjust)
-
Trunk-based (recommended):
main
= always green, release-ready. All commits pass CI (Docker) and TDD.- Work happens on short-lived feature branches
feat/*
,fix/*
merged via PR. - Optional long-lived integration branch
next
for batching risky changes.
-
WIP branch variant:
main
= release-ready only; heavy ongoing work onWIPhax
(orwip/*
), merged back via PR when green.- Risk: drift between
WIPhax
andmain
, elevated merge pain if long-lived.
-
GitFlow:
main
for releases;develop
for integration; feature branches; release/hotfix branches.- Heavier process; likely overkill unless multiple contributors and scheduled releases.
Trunk based sounds perfect
Repo Content Policy
-
What exactly belongs on
main
? Options:- A) Full repo (code + prompts + templates + docs) — but always green.
- B) Everything except code/prompts (your suggestion) — use branches/tags for code.
- C) Minimal bootstrap subset (AGENTS seeds, prompts/global, templates/_shared) + docs.
Please choose and list mandatory directories for
main
.
A
-
If B or C: where do code/prompts live (branch names/tags)? How will downstream projects fetch them reliably?
CI/Gitea Protections
-
Protect
main
with required checks (Docker tests) and linear history? Approve? yes I approve -
Require PR reviews and enforce Conventional Commits? Approve?
Yes I approve
- Tagging: continue
YYYY-MM-DD-HHMM
. Shouldmain
tags correspond only to release-ready points?
Hmmm.... I was using tags/releases as a kind of "hack" or "snapshots" and that's not the practice I want to have. Yes the tags should only be release-ready points.
Migration Plan (once we choose)
- Baseline selection: pick commit/tag for the new
main
baseline. - Branch ops: create
WIPhax
/next
/develop
as chosen; move ongoing TDD work there. - CI updates: confirm branch protections and required checks in Gitea.
- Docs: add
docs/branching.md
describing the policy; update README.
Do you need anything from me for this section? It's statements not questions, but that plan looks good to me.
Decision
- Please pick one model (4/5/6) and option (7 A/B/C), then reply “Approved for Branching Plan” (or edit inline). I’ll draft
collab/plan/02-branching.md
for review.