3.4 KiB
3.4 KiB
name, description
| name | description |
|---|---|
| jj-issue-workspaces | Create one Jujutsu workspace per issue, base them on an updated mainline bookmark like master, optionally create feature bookmarks, and open a zellij tab running pi in each workspace. Use when the user wants to fan out work across multiple issues, especially from a screenshot, Linear board, or issue list. |
JJ Issue Workspaces
This skill sets up a parallel issue workflow with jj workspaces.
Use it when the user wants any of the following:
- one workspace per issue
- multiple issues opened side by side
- a zellij tab for each issue
piopened in each issue workspace with a task-specific prompt- issue fan-out from a screenshot, Linear board, or manually listed issues
Workflow
- Confirm the target repo and verify it is a
jjrepo. - If the user gave a screenshot path, use the
readtool on the screenshot first and extract the issue keys and titles. - Decide the base bookmark/revision, usually
masterormain. - Run the helper script to:
- fetch the base bookmark from
origin - create sibling workspaces like
../Phoenix-spa-748 - create bookmarks like
feature/spa-748 - optionally open one zellij tab per workspace and launch
pi
- fetch the base bookmark from
- Tell the user which workspaces and tabs were created.
Helper script
Use the helper script in this skill:
./scripts/jj-workspace-fanout.sh --help
Run it from anywhere. Pass absolute paths when convenient.
Common usage
Create workspaces and bookmarks only
./scripts/jj-workspace-fanout.sh \
--repo /path/to/repo \
--base master \
--issue "SPA-748=Wrap text in credits line items" \
--issue "SPA-428=Implement \"Downgrade\" Mimir modal (maximalist)" \
--issue "SPA-754=Resize seat count picker"
Create workspaces, bookmarks, zellij tabs, and launch pi
./scripts/jj-workspace-fanout.sh \
--repo /path/to/repo \
--base master \
--session attio \
--open-pi \
--issue "SPA-748=Wrap text in credits line items" \
--issue "SPA-428=Implement \"Downgrade\" Mimir modal (maximalist)" \
--issue "SPA-754=Resize seat count picker"
Recreate existing workspaces from scratch
./scripts/jj-workspace-fanout.sh \
--repo /path/to/repo \
--base master \
--session attio \
--open-pi \
--reset-existing \
--issue "SPA-748=Wrap text in credits line items"
Defaults and conventions
- Workspace names use the lowercased issue key, for example
spa-748 - Workspace directories are created beside the repo, for example
../Phoenix-spa-748 - Bookmark names default to
feature/<issue-key-lowercase> - Base revision defaults to
master - Remote defaults to
origin - If
--open-piis used, the script launchespiin each workspace with a task-specific prompt
Recommended agent behavior
When using this skill:
- Prefer
jjovergit - Check
jj workspace listbefore changing anything - If the user says to update
masterormainfirst, let the script fetch that base revision before creating workspaces - If the user wants an existing set recreated, use
--reset-existing - If zellij tabs already exist and the user wants a clean retry, close those tabs first or recreate the session
Notes
- The script does not delete existing workspaces unless
--reset-existingis provided. --open-pirequires a zellij session name, either via--session <name>orZELLIJ_SESSION_NAME.- If the repo uses
maininstead ofmaster, pass--base main.