agent/skills/jujutsu/SKILL.md
Manages version control with Jujutsu (jj), including rebasing, conflict resolution, and Git interop. Use when tracking changes, navigating history, squashing/splitting commits, or pushing to Git remotes.
npx skillsauth add knoopx/pi jujutsuInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Git-compatible VCS with a different data model — no staging area, changes are immediate. Every file is tracked in the working copy as "changes" (like commits without parents).
⚠️ Never use
gitfor mutations in a jj repo — it corrupts history. Allowed:git log,git diff,git show,git blame,git grep.
Create a change, describe it, view history:
jj new # Start a new change (like working on a commit)
jj desc -m "feat: add login" # Write the message
jj log # View history — this is your main view command
jj diff # See what changed in working copy
Edit an existing change:
jj edit <change-id> # Switch to a specific change
# Make changes to files...
jj squash # Move new edits into the parent change
Jump to any point in history:
jj edit @- # Go to parent
jj next --edit # Go to child
jj edit <change-id> # Jump to specific change
jj new --before @ # Insert a new change before current
Combine changes into one:
# Merge two changes together
jj squash -m "combined message"
# Split working copy into separate commits
jj split # Interactive — pick hunks to commit separately
Auto-move changes to relevant commits in a stack:
jj absorb # Smart squashing across mutable revisions
Rebase changes onto another:
jj rebase -s @- -d main # Rebase current change onto main
jj rebase -d main -s ::@ # Rebase all descendants of @ onto main
Merge two changes:
jj new x yz -m "merge" # Create merge of x and yz
Resolve interactively:
# Edit conflicted files, then continue
jj resolve
Bookmarks are like branches. Track and push them:
jj bookmark create main -r @ # Create a bookmark at current change
jj git push --bookmark main # Push that bookmark
jj git fetch # Fetch from remote
jj bookmark track main@origin # Track a remote bookmark
Undo an operation: jj undo — reverses the last jj command.
Get git commit hash from jj change:
jj log -T 'commit_id\n' -r @ # Full hash
jj log -T 'commit_id.short()\n' -r @ # Short hash
git rev-parse @ # Also works in colocated repos
Operation history: jj op log — see all jj operations.
@~1 → ✅ Use @- (parent)a,b,c for union → ✅ Use a | b | c (pipe, not comma)jj changes → ✅ Use jj log or jj difftools
Inform the user what is happening — skip passive lookups
development
Renders markdown to self-contained HTML with a custom dark stylesheet and opens in browser. Use when previewing markdown documents, generating styled HTML from README or report files.
testing
Programmatic hunk selection for Jujutsu — split, commit, or squash specific hunks without interactive prompts. Use when making partial commits or selective squashes.
content-media
Manage version control with Jujutsu (jj) — no staging area, immediate changes, smart rebasing. Use when navigating history, squashing, or pushing to Git remotes.