jujutsu
Installation
SKILL.md
Jujutsu (jj)
A .jj/ directory at the root of the checkout you work in means jj is in use: run all version-control
operations through jj and keep GitHub operations on gh. Never run git; CLAUDE.md gives the rule, including
what to do when .jj/ is missing. A .worktrees/ directory under a bare repository without its own .jj/ is
not a jj workspace: jj root succeeds there but names the bare root, whose jj sees none of the directory's
files, and jj status shows no changes.
Two layouts carry .jj/:
- A non-bare clone is colocated:
.jj/and.git/share one Git object store, jj exports its changes to Git refs, and Git's HEAD is left detached. Use the jj commands below for everything, including reads. - A bare
<repo>.git/holds jj's store at its root in an empty-sparsedefaultworkspace that tracks no files. Work happens in jj workspaces under.worktrees/, which have no.gitof their own. A gate that enumerates files through git (git ls-files, treefmt's default walker) there checks nothing and exits 0. Confirm its input count, or run it with a filesystem walk (treefmt --walk filesystem).
Every jj write (commit, describe, split, squash, absorb, rebase, bookmark, fetch, push, workspace creation) needs current authorization.