jj-workflow

Guides Jujutsu version control workflows for change management, PR reviews, and conflict resolution.

2.1k|97|Updated Jan 22, 2025
One-click install
npx skills add https://github.com/GoogleCloudPlatform/khi --skill jj-workflow-googlecloudplatform
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: jj-workflow
Source: https://github.com/GoogleCloudPlatform/khi/tree/main/.agents/skills/jj_workflow
Command: npx skills add https://github.com/GoogleCloudPlatform/khi --skill jj-workflow-googlecloudplatform

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams using Jujutsu (jj) instead of raw Git often struggle with its unique model where the working copy is always a change, bookmarks replace branches, and conflicts are recorded as first-class commit states. This Skill standardizes the entire jj workflow for the KHI project so contributors avoid common mistakes like squashing review fixes or inventing manual branch names. ## Core Features & Use Cases - Change Management: Enforces correct use of jj new, jj describe, and jj status with clear task boundaries and workspace isolation rules. - PR Review Handling: Prescribes an incremental commit workflow (no squashing) with bookmark advancement so reviewers can inspect per-round diffs. - Conflict Resolution: Defines an oldest-to-newest conflict resolution procedure using jj log -r 'conflicts()', jj new, and jj squash. - Use Case: A contributor receives PR review feedback on a jj-managed change. The Skill directs them to create a new child revision on the PR commit, apply fixes, run make test-go and make test-web, move the bookmark with jj bookmark move, and push—preserving full review history. ## Quick Start Ask the assistant to follow the jj workflow to create a new change, address PR review feedback without squashing, or resolve conflicts from oldest to newest commit.

Frequently Asked Questions about jj-workflow

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new change in Jujutsu jj?▼

Run `jj new -m "feat(scope): short description"` after verifying a clean state with `jj status`. In Jujutsu the working copy is always a change, so `jj new` freezes the current change and starts a fresh empty working-copy change on top.

How to address PR review feedback with jj without squashing?▼

Create a new child revision on the PR commit with `jj new`, apply the fixes, run tests, then move the PR bookmark to the new commit using `jj bookmark move <name> --to @` and push. This preserves incremental diffs so reviewers can verify each review round.

How does jj git push create branch names automatically?▼

Running `jj git push -c @` makes Jujutsu generate a bookmark named push-<change_id> and push it to the remote. Use that auto-generated bookmark as the head branch when opening a GitHub pull request instead of inventing custom names.

Why resolve jj conflicts from oldest to newest commit?▼

Jujutsu records conflicts as first-class states on commits, and resolving the oldest conflicted commit often clears downstream conflicts automatically. List conflicts with `jj log -r 'conflicts()'`, spawn a working copy on the oldest one, resolve markers, then `jj squash`.

What is the difference between jj describe and jj new?▼

`jj describe -m` only updates the commit message of the current change without creating a commit. `jj new` freezes the current change into history and creates a new empty working-copy change on top of it.