BaseHalf
All posts

Keep card layout out of git; keep the connections in

BaseHalf saves card places under `.bh/` and ignores them for git. Descriptions and upstream lists stay commit-able, so a clone gets structure without fighting over positions.

Teams share folders so everyone sees the same notes and the same upstream lists. They do not need to share where each card sat on your screen last Tuesday. BaseHalf keeps those two kinds of data apart on purpose.

Card places and sizes live under .bh/. BaseHalf applies its own ignore for those layout files so they stay out of git. We never edit your .gitignore. Descriptions, upstream lists, and generation records can still be committed with the rest of the folder.

Cards arranged on a BaseHalf canvas with layout handles visible.

What travels with the folder, what stays local

When you clone or pull, you get the work and the structure. You do not get someone else's coordinates.

Stays out of git (per clone / machine)Can be committed
Card places and sizes under .bh/Descriptions on cards
Selection cache (.bh/cache/selection.yaml)Upstream lists in Markdown frontmatter or .bh/mirror/.../upstream.yaml
Layout metadata BaseHalf ignores for gitGeneration records you choose to keep

Upstream is plain text in the files. A teammate who never opens the canvas still sees those lists in a diff. Layout is how you arranged the cards this session. Mixing the two in every pull request turns every rearrange into a merge conflict about pixels.

Open the same folder on another machine

Concrete workflow:

  1. Commit descriptions and upstream lists as usual.
  2. Clone or pull on another Mac.
  3. Open the folder in BaseHalf.

The canvas shows the same files and the same connections. Places are fresh for that clone. Cards get laid out for this window; you are not replaying the last machine's x/y. Drag cards where you want. Those moves stay local under .bh/ and do not show up as git noise for everyone else.

Moving or renaming a file still updates upstream entries by content recognition. That path repair is about the lists you commit, not about restoring a shared view of the board.

What this is not

This split is for sharing an AI workspace without layout conflicts. It is not a sync product for identical views across machines. Two people can open the same repo and see different arrangements while reading the same upstream. That is the point: structure compounds in git; seating charts do not.

We keep card layout out of git so clones stay about the work. Connections, descriptions, and the lists agents read stay in the folder where search, diffs, and the next Claude Code or Codex session can find them.