// Understand and work with Jujutsu (jj) version control system. Use when the user mentions commits, changes, version control, or working with jj repositories. Helps with stack-based commit workflows, change curation, and jj best practices.
| name | Working with Jujutsu Version Control |
| description | Understand and work with Jujutsu (jj) version control system. Use when the user mentions commits, changes, version control, or working with jj repositories. Helps with stack-based commit workflows, change curation, and jj best practices. |
| allowed-tools | Bash(jj status:*), Bash(jj log:*), Bash(jj show:*), Bash(jj diff:*) |
Jujutsu (jj) - Git-compatible VCS with:
jj op log, use jj op restore to time travelvs Git: No staging area, edit any commit (jj edit), conflicts stored in commits
@)Current commit is always @:
jj log -r @ - Current commitjj log -r @- - Parent commitjj log -r 'ancestors(@, 5)' - Recent stackState:
jj new@ (new files tracked automatically via /jj:commit)jj describe -m "message" or /jj:commitjj newWhy stack: Individual review, easy reordering, incremental shipping, clean history
/jj:commitTodoWrite: One commit per major todo, jj new between todos
Every jj command auto-snapshots. Use jj op log, jj undo, or jj op restore <id> for time travel.
Viewing state: jj status, jj log, jj show, jj diff
Creating commits:
/jj:commit (not jj describe directly)Organizing commits:
/jj:split <pattern> when mixing concerns (tests+code)/jj:squash for multiple WIP commitsUndoing: jj undo, jj op restore, jj abandon
/jj:commit [message] - Stack commit with message generation/jj:split <pattern> - Split by pattern (test, docs, config)/jj:squash [revision] - Merge commits/jj:cleanup - Remove empty workspacesRepository blocks git write commands via hook. Prefer jj equivalents:
git status โ jj statusgit commit โ /jj:commitgit log โ jj loggit checkout โ jj newDo: Stack commits, describe clearly (what/why), use plan-driven workflow, leverage jj op log, split mixed concerns
Don't: Mix git/jj, leave work undescribed, create monolithic commits, forget everything is undoable