← ClaudeAtlas

jjlisted

Drives jujutsu (jj) version control on the user's behalf so they don't have to memorize commands. Use for single-agent feature work (the default), whenever the user mentions jujutsu/jj, when undo-safety or a clean rewritable history matters, or when starting/finishing a change in a jj-managed repo. For MULTI-agent parallel work use git worktrees (or jj workspaces) instead — see "jj vs worktrees" below.
jckeen/dotfiles · ★ 2 · AI & Automation · score 68
Install: claude install-skill jckeen/dotfiles
# jj (jujutsu) The user adopts the convention: **jj for single-agent work, worktrees for multi-agent work.** They do NOT want to memorize jj commands — you drive jj correctly on their behalf. Repos are **colocated** (jj on top of git), so `git` and `gh` still work and GitHub/PRs are unchanged. ## Preflight (every session in a jj repo) 1. `command -v jj` — if missing, say so and fall back to plain git. Install: `cargo install --locked jj-cli` or `brew install jj` (mention, don't auto-run). 2. Detect a repo: `jj root` succeeds inside one. If a git repo isn't yet jj-managed and the user wants jj, run `jj git init --colocate` (keeps `.git`, adds jj on top; `--colocate` is the default in recent versions but pass it explicitly). ## Mental model (so you operate it correctly) - **The working copy IS a commit**, addressed as `@`. There's no staging area and no "dirty tree" — every edit is auto-committed into `@` on the next `jj` command. - **Changes are anonymous and rewritable.** A change keeps a stable change-ID even as you amend it. You freely edit history; jj records each rewrite (undoable). - **Bookmarks ≈ git branches** — named pointers you attach to a change to push to GitHub. They do NOT auto-advance with `@`; you move/set them when ready to push. - `@-` means "the parent of the working copy" (i.e. the change you just finished). ## The commands you'll actually use | Goal | Command | |------|---------| | See state | `jj status` (alias `jj st`) | | See hist