Community아트 & 디자인github.com

netresearch/jujutsu-workflow-skill

Agent-safe version control with Jujutsu (jj) — jj for local change management, Git as the canonical remote/PR/CI/audit interface. Netresearch agent skill.

지원 대상Claude Code~Codex CLI~CursorAntigravity
npx skills add netresearch/jujutsu-workflow-skill

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

문서

Jujutsu Workflow

For agentic coding, prefer jj (Jujutsu) over raw git whenever a .jj/ repo is present — it is the superior local change layer. Git stays the canonical remote/PR/CI/audit interface: mutate with jj, verify with read-only Git.

1. Detect & gate first

Run ${CLAUDE_SKILL_DIR}/scripts/detect_jj_state.sh, or check manually:

  • .jj/ present → jj repo: use jj, never mutating raw git.
  • .jj/ and .git/ → colocated: mutate with jj, read with git, never touch the git index/staging.
  • only .git/ → plain Git repo: do not introduce jj unless asked.

See references/git-interop.md.

2. Agent-safety rules (non-negotiable)

  • Always --no-pager on output commands; set jj config set --user ui.paginate never.
  • Always -m. Never run editor/TUI forms — bare jj describe|commit|squash, jj split (interactive), jj squash -i, jj resolve, jj diffedit — they hang agents.
  • jj snapshots the working copy only when a jj command runs, not on every file write.

See references/agent-safety.md.

3. Edit loop

jj --no-pager status
# edit files (snapshotted on the next jj command)
jj --no-pager diff
jj describe -m "<project-conventional message>"
jj new -m "<next unit>"     # one change per logical unit — avoids one fat commit

Split a mixed change non-interactively: jj split <path> -m "<msg>". See references/command-map.md.

4. Recover (reversible)

jj --no-pager op logjj undo (last op) or jj op restore <id>. Conflicts are first-class: jj status flags them; resolve by editing markers, then verify. See references/recovery-playbook.md.

5. Hand off via Git

jj git fetch
jj rebase -d <default-branch>
jj bookmark create <branch> -r @-
jj git push --bookmark <branch>      # new bookmarks push directly

Never push to a protected/default branch; never rewrite public history unless allowed. Open the PR with gh/glab. See references/pr-handoff.md.

6. Parallel agents

One jj workspace per concurrent agent — never share a working copy. See references/parallel-agents.md.

7. Verify before "done"

Run ${CLAUDE_SKILL_DIR}/scripts/verify_handoff.sh, or report jj --no-pager status, jj --no-pager log --limit 10, jj --no-pager diff --stat, git status --short --branch. Report exact commands and output; never claim "done/tested/ready" without it; disclose force-pushes, recoveries, conflicts.

Why jj beats git for agents (and when NOT to use it): references/why-jj-for-agents.md.

관련 스킬