docs/jj-home-branch-workflow.md
This workflow is for teams or individuals who keep one long-lived personal branch on top of trunk, then stack short-lived task branches on top of that branch.
Flow supports that model directly through:
f status for a workflow-aware status viewjj.home_branch in flow.tomlf jj workspace review <branch> for isolated branch-specific working copiesUse three layers:
mainreview/*, codex/*, or other task branches that sit on top of the home branchThe default checkout usually stays on the home branch. Branch-specific work happens in isolated JJ workspaces.
[jj]
default_branch = "main"
home_branch = "alice"
Before switching branches, creating workspaces, committing, or publishing, run:
f status
This should tell you:
review/* and codex/* branches currently sit on top of the home branchUse raw f jj status only when you need the underlying Jujutsu status output.
Keep the main checkout on the home branch:
cd ~/code/org/project
f status
Create or reuse an isolated workspace for branch-specific work:
f jj workspace review review/alice-feature
cd ~/.jj/workspaces/project/review-alice-feature
f status
Inside the workspace, use jj or f jj.
f status provides one consistent summary instead of forcing the user or agent to infer state
from several lower-level commands.The important distinction is not just the branch name. It is also where the work lives:
Be explicit about the publish path. Do not assume a colocated Git checkout and a JJ workspace are interchangeable.
f statusf jj statusThat keeps the workflow legible to both humans and coding agents.