···48484949This workflow uses jj workspaces, not Git worktrees. Do not use `.worktrees/`, `git -C .worktrees`, `git merge --squash`, or `.merge-lock` unless the project explicitly overrides this skill.
50505151-First inspect project instructions for a workspace wrapper. If one exists, use it. Otherwise use generic jj commands. After creating or entering the workspace, always start a fresh change with `jj new -m ...` before editing; otherwise work may be smushed into the current jj change.
5151+First inspect project instructions for a workspace wrapper. If one exists, use it. Otherwise use generic jj commands. After creating or entering the workspace, always start a fresh change with `jj new -m ...` or describe an existing empty change with `jj desc -m ...` before editing; otherwise work may be smushed into the current jj change.
52525353Suggested generic flow:
5454···5757jj workspace list
5858workspace_path="$(dirname "$root")/<workspace-name>"
5959jj workspace add "$workspace_path" -r @
6060-cd "$workspace_path" && jj new -m "<ticket-key>: <summary>"
6060+cd "$workspace_path" && jj desc -m "<ticket-key>: <summary>"
6161```
62626363Important shell rule: every shell call starts fresh. Use the absolute workspace path from setup for every workspace command; do not rely on relative paths like `../<workspace-name>`, and do not assume a previous `cd` persisted.
···6666cd "$workspace_path" && <command>
6767```
68686969-For file tools, use paths in the active project checkout unless the harness has permission to access the sibling workspace. If file tools cannot write the sibling workspace safely, stop and ask whether to continue in the current checkout or adjust permissions.
6969+For file tools, use absolute paths, never relative paths. If file tools cannot write the sibling workspace safely, stop and ask whether to continue in the current checkout or adjust permissions.
70707171### 3. Track todos around the whole workflow
72727373Make sure the todo list covers:
74747575- Jira claim verified;
7676-- jj workspace created/entered and fresh ticket change started with `jj new`;
7676+- jj workspace created/entered and fresh ticket change started with `jj desc`;
7777- implementation;
7878- formatting/build/tests;
7979- implementation review loop;
···100100101101Run the configured reviewer set. Default panel:
102102103103-- `general-purpose` with `model_override` `codex/gpt-5.5(high)`
104104-- `general-purpose` with `model_override` `anthropic/claude-opus-4-8(medium)`
105105-- `general-purpose` with `model_override` `zai/glm-5.2(max)`
103103+- `code-reviewer` with `model_override` `codex/gpt-5.5(high)`
104104+- `code-reviewer` with `model_override` `anthropic/claude-opus-4-8(medium)`
105105+- `code-reviewer` with `model_override` `zai/glm-5.2(max)`
106106107107Ask reviewers for Critical/High/Medium/Low findings, with evidence and suggested fixes.
108108
+4-4
.polytoken/skills/jira-solo-tasker-plan/SKILL.md
···9595- state that the ticket is already In Progress and execute must verify the claim, not re-claim blindly;
9696- specify a concrete jj workspace name and bookmark name derived from the ticket, using the form `pm-<number>-<short-description>` with at most three kebab-case summary words;
9797- direct execute to create or enter a jj workspace for the ticket, not a Git worktree;
9898-- include todos around the implementation: verify Jira state, create/enter jj workspace, implement, run formatting/tests, run the review loop, describe/squash the jj change as appropriate, move Jira to In Review, wait for operator acceptance, then move Jira to Done;
9898+- include todos around the implementation: verify Jira state, create/enter jj workspace, implement, run formatting/tests, run the review loop, describe/squash the jj change as appropriate, move Jira to In Review, wait for operator acceptance, merge (usually via rebase) if approved, then move Jira to Done;
9999- encode the shared review gate: run the configured reviewer set, fix or rebut every Critical/High finding with evidence, and re-run targeted review until zero unrebutted Critical/High findings remain;
100100- include final reporting expectations: restate the ticket key and summary, summarize changes, list validation performed, and give concrete operator test advice.
101101···103103104104Use jj terminology consistently:
105105106106-- workspace: isolated checkout created with `jj workspace add` or the project’s configured wrapper;
106106+- workspace: isolated checkout created with the project’s configured workspace creation wrapper or `jj workspace add`;
107107- change: rename the change with the right context for the ticket work with `jj desc -m "<ticket-key>: <summary>"` before any edits;
108108- bookmark: optional named ref for pushing/sharing, normally the same slug as the workspace.
109109110110Do not mention Git worktrees, `.worktrees/`, `git merge --squash`, or `.merge-lock` unless the current project explicitly uses those. This workflow defaults to jj workspaces.
111111112112-If the repo has a project wrapper for workspaces, cite it. Otherwise specify generic jj commands and make execution verify them. The handoff must require a fresh change with `jj new -m ...` before any edits; `jj describe` is only for updating an already-isolated change later.
112112+If the repo has a project wrapper for workspaces, cite it. Otherwise specify generic jj commands and make execution verify them. The handoff will start on a fresh change after workspace creation, and individual internal tasks should use `jj new -m` to create new, labeled changes before starting a chunk of work; `jj describe` is only for updating an already-isolated change later.
113113114114```sh
115115root="$(jj workspace root)"
116116workspace_path="$(dirname "$root")/<workspace-name>"
117117jj workspace add "$workspace_path" -r @
118118-cd "$workspace_path" && jj new -m "<ticket-key>: <summary>" # optional after this: jj bookmark create <workspace-name> -r @
118118+cd "$workspace_path" && jj desc -m "<ticket-key>: <summary>" # optional after this: jj bookmark create <workspace-name> -r @
119119```
120120121121The exact parent directory for sibling workspaces is project policy. If not obvious, require execute to ask before creating one.