Skip to content

Work / Babul / Wiki / Concepts

branch-verify-merge

Conceptcanonicalverified 2026-10-23

CONCEPT.BRANCH-VERIFY-MERGE

Draft, review, branch, verify, merge

Summary

How a change moves from an edit to a version of main.

  1. Draft. Every edit, on main or on a branch, goes to your draft: saved as you go, seen only by you. The top bar counts it. Main never changes under anyone.
  2. Review turns the draft into one commit on a new branch or an open branch. Delta lists only your changes, Complete the whole product with them marked; each change shows main beside your draft, and Undo drops one.
  3. Branch. A named line of commits others can switch to and commit on top of. On a branch every section shows it, as Complete (everything, changes marked) or Delta (only what changed). Commits are the History tab. There is no branch page (2026-10-23-no-branch-page).
  4. Verify compares the branch with a site (the capture, or any URL such as staging) and gives a match score, 0–100, per page and overall, marking each difference as from this branch or not. It is a fact, not a gate. Team only.
  5. Merge is in the bar. It opens once there are no conflicts (and, on Team, after one Verify run), lists the commits, suggests the bump, and asks for a release note. Main gets a new version.
  6. Revert. Main only moves forward. Undoing a merged change makes a branch with the opposite change, merged like any other.

Sync and conflicts

When main changes, every open branch and draft syncs at once, property by property, comparing the last synced main, the new main and the branch:

Main changed it Branch changed it Result
no — nothing to do
yes no the branch takes main's value
no yes the branch keeps its value
yes, same value yes no conflict
yes, other value yes conflict
deleted it changed it conflict
  • A sync never stops for a conflict. The item gets a red dot, and the bar says "1 conflict".
  • A conflict is settled on the item: Keep branch or Take main. Merge waits until every conflict is settled.

Versions

major.minor.patch, from v0.0.1. Patch changes values, minor adds something, major removes or renames what code relies on. Babul suggests the bump; the person merging picks.

The ref is in the address

/<company>/<product>/<ref>/<section>, with main, a branch or a version always written. A version opens read-only. See 2026-10-21-ref-in-the-path.

Why it matters

  • Main is always something someone approved.
  • A branch is read the same way as main, so there is one way of looking at a design.
  • Verify turns "does this still look like our product?" into a number.

Implications

  • AI changes go to the draft, never to main.
  • The free month has 2 open branches and no Verify. See plans.
  • No synonyms on any screen: no "fork", "pull request" or "release".

Related

Sources

  • .context/designs/web/northwind/northwind-web/main/review/
  • .context/designs/web/northwind/northwind-web/new-checkout/