.config/opencode/skill/jujutsu/SKILL.md
Prefer Jujutsu (jj) over git for version control. Use squash workflow pattern where commits are described first, then changes are made in a scratch child commit and squashed into the parent.
npx skillsauth add jm96441n/dotfiles 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.
Use this skill for all version control operations. Prefer jj commands over git unless:
command -v jj fails)Jujutsu differs fundamentally from git:
@ represents your current working-copy commit.kxryzmor) are stable across rebases. Prefer them for references.squash, split, rebase are core workflows.Separate intent (commit message) from implementation (working changes).
# 1. Create the described commit
jj new main -m "feat: implement user authentication"
# 2. Create a scratch child to work in
jj new
# 3. Make changes in the scratch commit
# 4. When satisfied, squash into the parent
jj squash
# 5. Repeat steps 2-4 for additional changes
# First commit
jj new main -m "refactor: extract auth module"
jj new
# ... work ...
jj squash
# Second commit as child of first
jj new -m "feat: add JWT validation"
jj new
# ... work ...
jj squash
| Operation | Command |
| ------------------ | -------------------------- |
| Status | jj status or jj st |
| Log | jj log |
| Current diff | jj diff |
| Show commit | jj show <change_id> |
| New commit | jj new |
| Describe | jj describe -m "message" |
| Squash into parent | jj squash |
| Abandon | jj abandon |
| Operation | Command |
| ------------- | --------------------------- |
| Fetch | jj git fetch |
| Push bookmark | jj git push -b <bookmark> |
| Push all | jj git push --all |
# Create/move bookmark to current commit
jj bookmark set feature-name
# Push to remote
jj git push -b feature-name
# After more work, must re-set bookmark before pushing again
jj bookmark set feature-name
jj git push -b feature-name
| Git | Jujutsu |
| ------------------------- | -------------------------------------------------------- |
| git status | jj status |
| git diff | jj diff |
| git commit -m "msg" | jj commit -m "msg" or jj describe -m "msg" && jj new |
| git commit --amend | jj describe (message) or jj squash (content) |
| git checkout -b feature | jj new -m "feature" |
| git rebase main | jj rebase -d main |
| git stash | jj new (old commit stays) |
| git log --oneline | jj log --no-graph |
| git reflog | jj op log |
| git reset --hard | jj abandon |
Always use colocated repos for compatibility with git-expecting tools:
# New repo
jj git init --colocate
# Existing git repo
cd existing-repo
jj git init --colocate
jj git fetch
jj new main -m "feat: add widget support"
jj new
# ... work ...
jj squash
jj bookmark set add-widget-support
jj git push -b add-widget-support
jj git fetch
jj rebase -d main
jj edit <change_id> # go to commit needing fixes
jj new # scratch commit
# ... make fixes ...
jj squash
jj bookmark set feature-name
jj git push -b feature-name
Bookmarks don't auto-advance: After jj git push, run jj bookmark set <name> again before next push.
Colocated sync: Run jj git export if external tools aren't seeing changes, jj git import after raw git commands.
Revset shortcuts: @ is current, @- is parent, @-- is grandparent.
Undo anything: jj undo reverts last operation. jj op log shows history.
Empty commits are fine: Unlike git, empty commits are normal placeholders.
Conflicts are commits: Conflicts appear in the commit itself. Edit files to resolve, commit auto-updates.
tools
Protocol for properly ending a coding session - ensures all work is committed, pushed, and handed off correctly.
development
# Jira Skill Guidelines for creating and managing Jira issues for HashiCorp projects. ## InfraGraph Project (IG) ### Project Information - **Project Key**: `IG` - **Team Field**: `customfield_10001` - **Default Team Value**: `"InfraGraph-Graph Engine"` ### Creating Issues When creating Jira issues for the InfraGraph project, always include the team field: ```python jira_create_issue( project_key="IG", summary="Task summary", issue_type="Task", description="Task description
development
Write Gremlin graph traversal queries for Neptune using the gremlin-go driver patterns in this codebase
development
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search.