reference
Living

threads as branches

A thread is Vinculum’s running, ordered record of one topic’s history, grouped under a branch — platform, product, growth, and the rest. Where a git branchused to isolate one person’s in-progress work from another’s, a thread does that job now, and every commit still lands straight on main.

Vinculum’s convention is flat: git add . && git commit && git push origin main, always, no feature branches (#181). Git hasn’t lost a job. It’s still the checkpoint layer, the history you can always roll back to. What it gave up is the job of keeping concurrent work from colliding, and that job moved to a layer that catches the collision before anyone’s files have even diverged.

§01 · what threads replace

A thread does the job a branch used to.

On most software teams, a git branch is how you isolate one person’s in-progress work from everyone else’s. You open a branch, make your changes in private, and merge back once they’re done — the isolation is the whole point. Vinculum drops that step. Every session commits straight to main, and the isolation branches provided gets handled by a thread instead: a running, ordered record of one topic, grouped under a branch like platform, product, or growth (#181).

Git keeps doing what it always did — every commit is still a checkpoint, still reversible, still the record you’d reach for to roll a bad change back. What changed is where the coordination happens. It used to live in the branch structure itself, resolved at merge time. Now it lives in the thread, resolved while the work is still in progress.

§02 · the premise that broke

Branches assume nobody can hold the repo in their head.

Branches exist for a specific reason: two people editing the same codebase can’t read each other’s minds, and neither can hold the whole repo in their head at once, so a conflict between their changes only surfaces when one branch merges into another. Isolating each person’s work until that merge point is how you keep a slow-reading human from overwriting a colleague’s edits mid-line.

An LLM reads that same repo in seconds and can grep the whole repo in moments (#181). The premise that justified isolating its work — that it can’t see what else is happening, that a conflict can only be caught after the fact — doesn’t hold. The isolation branches provide is built for a problem this worker doesn’t have.

§03 · catching it before it happens

An overlapping edit surfaces at declared intent, hours ahead of a merge.

Vinculum catches an overlapping edit at the moment a worker declares intent to touch a file — hours before a traditional merge conflict would even be discovered (#181). The check runs on the way in: by the time two sessions would have collided on a branch merge, Vinculum has already flagged the overlap and moved on.

That happens while the overlap is live, and it shows. Two workers touching the same file appear together on the dashboard, in real time (#181), while the files themselves are still identical.

§04 · the collision branches caused

One documented case: branches let a session's work get silently destroyed.

Flat-to-main is grounded in more than branches becoming unnecessary. It traces to a specific, observed failure: with linting running on commit, two parallel sessions each reformatted a shared file their own way on their own branches, and the second commit silently overwrote the first session’s work (#181). No error, no warning — the first session’s changes were simply gone once the second commit landed.

A structure built to keep two workers from destroying each other’s edits produced that exact outcome, because the collision stayed invisible until the merge had already happened. Flat-to-main paired with a thread that flags the overlap up front closes the same gap the branch was supposed to close, earlier — before either session has written a conflicting line, rather than after.

§05 · the receipt

What the convention actually says.

The convention is on record, not inferred from behavior. It reads, in part: “git add . && git commit -m ‘...’ && git push origin main. Always. No branches. Git is the checkpoint layer. Vinculum is the coordination layer. Threads are the branches.” (#181) The reasoning behind it, and the collision that motivated it, are recorded in the same entry.

ClaimSource
Every commit lands on main; no feature branches, by convention#181
The premise for branches — humans can't hold a whole repo in their head — doesn't hold for AI-authored work#181
Overlapping edits are caught at declared intent, hours before a merge conflict would surface#181
Branches plus commit-time linting let one session's reformat silently overwrite another's — the concrete reason flat-to-main was chosen#181
§06 · common questions

Common questions.

Does this mean git branches are banned outright?

Branches aren’t banned; they’re just not the default, since the default path is git add . && git commit -m '...' && git push origin main, every time (#181). Nothing about that stops a real branch when isolation is genuinely warranted; it just means the coordination job branches used to do by default now happens in the graph first, so most work never needs one.

What happens to genuinely experimental, throwaway work?

It still gets committed straight to main, same as everything else. Git is still the checkpoint layer (#181): if the experiment doesn’t hold up, you revert it. A commit history you can walk back is exactly what a branch would have given you, without the isolation nobody needed in the first place.

How does a thread actually map to a branch in the dashboard?

Every thread is grouped under one of a project’s branches — platform, product, growth, and the rest — and that grouping is what shows up on the dashboard: a branch column holding its threads, each thread holding its own ordered run of entries. The git branch a team used to open for a topic is now that thread.

see also

Related entries.

conceptthreads as branches
where it shows up1
the dashboard