dot_claude/skills/jj/SKILL.md
Use when a repository contains `.jj/`, when the user asks to use Jujutsu/jj, or when recovering/inspecting jj operation history.
npx skillsauth add nijaru/dotfiles jjInstall 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.
If .jj/ exists, use jj for VCS writes. Do not use git add, git commit, git checkout, git rebase, git merge, git stash, or git reset in that workspace.
@. Most jj commands snapshot file changes before they run. There is no staging area.jj new; finish by giving the revision a useful description with jj describe -m "...".jj op log, jj undo, and jj redo over manual Git recovery.jj st
jj log -r 'ancestors(@, 8) | @'
jj new
# edit files
jj st
jj diff
jj describe -m "type(scope): message"
When using Git remotes:
jj bookmark set <name> -r @ # create or move the bookmark to the revision to publish
jj git push --bookmark <name> --dry-run
jj git push --bookmark <name>
Use jj git push --change @ only for temporary/generated bookmark names. Use explicit bookmarks for normal branches and PRs.
| Task | Command |
| :--- | :--- |
| Status | jj st |
| Recent graph | jj log -r 'ancestors(@, 12) | descendants(@, 2)' |
| New child revision | jj new |
| Edit another revision | jj edit <rev> |
| Update message | jj describe -m "msg" |
| Split current revision | jj split |
| Move changes into ancestors | jj absorb |
| Squash into parent | jj squash |
| Rebase revision | jj rebase -r <rev> -d <dest> |
| Restore a file | jj restore <path> |
| Operation history | jj op log |
| Undo/redo operation | jj undo / jj redo |
Conflicts are first-class revision state and may be materialized as file markers when you edit the conflicted revision.
jj st, jj log, or jj show <rev>.jj edit <rev>.jj resolve <path> with the configured merge tool.jj st and verify no conflicts remain before pushing.Do not push a stack with conflicted revisions or conflicted bookmarks.
| Excuse | Reality |
| :--- | :--- |
| "I'll stage this later" | There is no staging; snapshotting is automatic. Use jj split, jj squash, or jj absorb to shape revisions. |
| "The commit exists, so it will push" | Git remotes see bookmarks. Set/move a bookmark or use jj git push --change. |
| "Git is familiar for this one command" | In a jj workspace, Git write commands bypass jj's operation model and can desync the working copy. |
development
Use after completing a bug fix, feature, refactor, or tk task when the first implementation taught enough context to replace it with a simpler, cleaner, or more coherent version before finalizing.
development
Use when writing, migrating, or reviewing Zig code across recent stable versions (0.14-0.16), especially to correct stale syntax or stdlib, build.zig, allocator, formatting, or runtime API knowledge.
documentation
Use when reviewing or revising text (prose, docs, commits) to remove AI patterns and improve voice/clarity.
content-media
Use when fetching X/Twitter post content by URL, or searching for recent X posts.