Runs Herdr task workspaces with OMP, jj, Hunk, and durable receipts from creation through cleanup. Use for creating, resuming, reviewing, publishing, shipping, or removing a Herdr jj task workspace.
Install
npx skillscat add edmundmiller/dotfiles/herdr-jj-workflow Install via the SkillsCat registry.
Herdr + OMP + jj task workflow
Use one durable Herdr workspace per issue, PR, or task. Share one stable name across the checkout, jj workspace, jj bookmark, Herdr workspace label, and PR head:
issue-N-slugpr-N-slugtask-slug
Treat that name as durable. Treat Herdr workspace, tab, and pane IDs as live handles; re-read them after lifecycle changes.
Use Hunk from the Git root when one exists. In a pure jj workspace, use jj diff --git -r @ in OMP and record findings plus check output in the worklog when present, otherwise in the final handoff. “Review surface” below means either path.
When to use
Use this skill for create, resume, approve commit, publish, ship, submit review, cleanup, or abandon requests involving a Herdr jj task workspace.
Non-negotiable rules
- Before controlling Herdr, require
HERDR_ENV=1; use the current session and never launch nested Herdr. - Before any jj mutation, run
pwdandjj log -r @. Never usejj editonly to inspect history. - Keep one task bookmark per workspace. Reuse it; do not create a replacement branch.
- Shape the current change in place with
jj describeandjj squash. Runjj newonly when starting another reviewed intent. - Review every intended commit. Use Hunk from the Git root when available; otherwise use the pure-jj review surface defined above. Commit only after the user says
approve commitand findings plus checks are clear. - Keep pure jj workspaces OMP-only; never launch Hunk from an arbitrary pane directory.
- Fetch only during explicit
publishorship, never during workspace creation. - Never stop or kill Herdr. Use config reloads and read-only state checks.
Create or resume
- Use
prefix+ato create a jj workspace. Enter the stable task name and base revision. Base defaults totrunk(); use a published parent bookmark for a stacked task. - Let Herdr create the workspace and bootstrap its tabs. Do not create another workspace from the new OMP session.
- Run
hey agent-startwithout--workspacefrom the created checkout and retain its receipt. For work covered byAGENT_WORKFLOW.md, keep its required worklog too. - Expect
ompfocused in every workspace. A Git-backed checkout also getshunk; a non-Git workspace intentionally does not. - Use
herdr agent listandherdr workspace listto resolve current live handles; never reuse example IDs. - Use
prefix+gonly for the native Git-only worktree flow. - Resume from the issue or PR, jj log/bookmarks, review findings, the run receipt, any worklog, and live Herdr state. Conversation history is not authoritative.
Review and commit
- Inspect
jj diffand the current task bookmark. - Refresh the review surface: Hunk from
git rev-parse --show-toplevel, orjj diff --git -r @for pure jj. - Address every applicable finding and run the focused check.
- On
approve commit, re-read the same review surface and check output. - Run
jj describe -m '<message>'. - Run
jj bookmark set <task-name> -r @. - If another independent intent remains, run
jj new; otherwise leave@at the reviewed task tip.
Publish
On explicit publish:
- Verify any stacked parent is reviewed, pushed, and has a PR.
- Run
jj git fetch. - Rebase only the task stack:
jj rebase -b <task-name> -o <base>. - Resolve conflicts, rerun focused checks, and refresh the review surface.
- Run
jj bookmark set <task-name> -r @andjj git push --bookmark <task-name>. - Create or update the PR. A stacked PR targets its parent bookmark; otherwise it targets the repository default branch.
Ship
On explicit ship, verify recorded review approval and CI, then enable auto-merge. Ask before changing code to fix CI. After a parent PR merges, rebase and retarget each child from its own workspace.
Cleanup and abandon
prefix+dremoves only a clean secondary workspace whose PR is closed or merged.prefix+Dis the explicit abandon path. It still requires a clean workspace and exact typed task-name confirmation.- Never remove the main jj workspace. Never clean up work that is changed, ambiguous, or still under an open PR.
External PR review
Use pr-N-slug. Stay read-only by default. Put findings in the active review surface and submit them upstream only on explicit submit review. Modify the PR only after explicit takeover.