Repolane

Concepts

The five words the whole system is built from: repo, lane, worktree, reference, memory.

Five words carry the whole system.

Repo

A repo you work on. It lives once, at repos/<name>, and is a mirror: always on its default branch, never edited, never switched. It exists so every piece of work can share one object store. Add one with lane add <git-url> or lane add <path-to-a-checkout-you-already-have>.

Lane

One piece of work, which may span several repos. It has an id (a ticket key or a short name), a branch of that name in each repo it touches, and a folder at lanes/<id>/ holding a worktree of each.

lanes/ABC-123/
  web/     a worktree of repos/web on branch ABC-123
  api/     a worktree of repos/api on branch ABC-123
  refs/    anything you attached for reference

You run Claude from lanes/<id>/, not from inside a repo. No repo is the main one. Reach any of them with git -C <repo>, lane run <repo> <cmd>, or by editing <repo>/path/to/file directly.

Worktree

Git’s own feature: a second working directory sharing one repository. It is why a lane costs a checkout of files rather than a full clone, and why switching work is instant.

Reference

Code or documents that are not one of your repos but matter to the work. lane ref <id> add <path> makes it readable at lanes/<id>/refs/<name> and nowhere else.

Memory

What Claude has learned, kept in four scopes chosen by how long it stays true:

scopemeanslives in
prefhow to work with you, alwaysknowledge/preferences.md
crosstrue in every repomemory/
repotrue for one repo after this work shipsmemory/<repo>/
laneonly while this lane is livethe lane file

Memory is never written directly. lane note drafts it and asks you which scope it belongs in.