using-jj
Installation
SKILL.md
jj Workflow
For daily-command tables, git equivalents, troubleshooting, parallel-experiment patterns, immutable-heads disable/restore commands, recommended config, and the full revset cheatsheet, see REFERENCE.md.
Philosophy
- Commits are cheap, descriptions are mandatory. The working copy is always a commit. Never leave it as "(no description set)".
- Experiment freely, the oplog is your safety net.
jj undoandjj op restoremake anything reversible. - Conflicts are state, not emergencies. jj records conflicts in commits as structured data; rebase still succeeds.
- Change IDs are your handle on work. Commit hashes change on rewrite; change IDs don't.
- Bookmarks exist for GitHub, not for you. Work with anonymous changes; add bookmarks only when pushing.
- Keep the stack shallow. Squash early.
- Use
absorbover manual squash routing. Let jj distribute hunks to the right ancestor. - Colocated = invisible to the team. Teammates see standard git.
CRITICAL: AI-specific rules
Always pass -m — unset opens an editor and blocks the agent: