v0.3.1
A compatibility release: the skill's whole command surface was re-verified against jj 0.43.0, two undocumented jj behaviours were written up, and the repo gained a probe so the next jj release is one command to check. Released in #21 and #22 by @CybotTM.
It follows on from the worktree fix in v0.3.0 (issue #18): that fix was verified against jj 0.43.0 while the skill still declared 0.42.0, and closing that mismatch is what this release does.
Verified against jj 0.43.0
compatibility previously claimed jj 0.42.0 only. All 53 documented commands, flags and revsets were re-checked hands-on against jj 0.43.0 — core verbs, bookmarks and remote handoff, revsets (including that a bare description("…") still uses glob semantics), the operation log and conflict handling, workspaces, signing and identity config, and all five editor/TUI forms agent-safety.md forbids, each confirmed to still open an editor and hang an agent.
No drift. The field now reads "Verified against jj 0.42.0 and 0.43.0", and the per-version notes in command-map.md were rewritten to match.
Two behaviours the references were missing
Push rejects an undescribed commit anywhere in the pushed range — ancestors included, not only the bookmark target. A bookmark sitting on a properly described change still fails when an undescribed change lies between it and the trunk; describing that middle change makes the same push succeed. pr-handoff.md now shows the range check (jj log -r 'trunk()..@') that catches this before you push, rather than only warning about @-.
Identity config applies to future commits only. After jj config set user.name/user.email, the existing working-copy commit keeps its old author until jj metaedit --update-author. An agent that configures identity after making changes otherwise pushes commits that fail DCO. Covered in agent-safety.md §6.
New: tests/verify_jj_version.sh
The probe that produced the results above, kept in the repo so the next jj release is a single command instead of a manual pass. It exits 1 on drift and names the reference file each stale claim lives in. It is a compatibility probe, not a CI gate — smoke_test.sh remains the behavioural gate.
Its first run reported six drifts, all six false, every one a bug in the probe rather than in jj; chasing them is what surfaced the push-description rule above. The probe is negative-controlled, deterministic across runs, and isolates the sections that rewrite history so they cannot contaminate later checks.
Housekeeping
CHANGELOG.mdadded, with entries for 0.1.0 through 0.3.0 reconstructed from git history and marked as such.verify_handoff.shandtests/superiority_evals.shreformatted withshfmt— formatting only, both suites re-run to confirm behaviour is unchanged. Every shell file in the repo now passes shellcheck and shfmt.- Two evals added for the newly documented behaviours.
No breaking changes. Upgrading from 0.3.0 needs no action.
Full Changelog: v0.3.0...v0.3.1