using-jj-workspaces について
タスクごとの jj ワークスペースを管理するスキルです。Herdr 内外の手順を分け、重複作成や安全でない Git から jj への変換を避けながら、作成、確認、検証、引き継ぎを扱います。
主な機能
- 01リポジトリとワークスペース状態の確認
- 02タスク用ワークスペースの作成と記録
- 03Herdr 内外の手順の使い分け
- 04ワークスペースを切り替えずに変更を確認
- 05タスク作業の検証と引き継ぎ
活用シーン
- 01jj リポジトリでのタスク開始
- 02Herdr または外部ランチャーでの作業
- 03複数の jj ワークスペース間の変更確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ edmundmiller/ dotfiles --skill using-jj-workspacesインストール後、Claude Code で/using-jj-workspacesを入力して読み込まれたか確認します。
詳細
jj ワークスペースの使用
ワークスペースの所有者は1つだけ選び、同じタスクに対して2つ目のワークスペースを作成しないでください。
開始
まず、現在のチェックアウトが jj リポジトリであることを確認します。
jj root --ignore-working-copy
Herdr 内
prefix+a でタスク名の jj ワークスペースを作成し、その OMP タブを開きます。そのチェックアウトから、--workspace を付けずに既存のワークスペースを記録します。
hey agent-start \
--repo "$PWD" \
--task my-task \
--runtime omp \
--model openai-codex/gpt-5.6-sol
Herdr はすべてのワークスペースで OMP をブートストラップし、チェックアウトに Git ルートがある場合に限り Hunk を追加します。新しい OMP セッションから Herdr を入れ子にして起動したり、別の jj ワークスペースを作成したりしないでください。
Herdr 外
決定論的なランチャーを使用して、ワークスペースを作成し記録します。
hey agent-start \
--repo "$PWD" \
--workspace "../workspaces/my-task" \
--base 'trunk()' \
--task my-task \
--runtime omp \
--model openai-codex/gpt-5.6-sol
どちらの形式も、1つの JSON レシートを出力します。done 用に、その receiptPath を保存してください。--workspace を付けない場合、ランチャーは現在のワークスペースを記録します。
ランチャーは次の処理を行います。
- 実行中のリポジトリの状態から jj を検出します。
- ワークスペースの親ディレクトリを作成しますが、既存の保存先を上書きしません。
${XDG_STATE_HOME:-~/.local/state}/dotfiles-agent-runs/の下に、安定した変更 ID と操作 ID を記録します。- Git のみのチェックアウト、または Codex Git ワークツリー内での jj の初期化を拒否します。
Git ワークツリーとの境界
Codex Desktop などのエージェントランタイムは、エージェントの起動前に Git ワークツリーを作成することがあります。その中で jj git init --colocate を実行しないでください。入れ子になったメタデータによって、プライマリリポジトリが安全に変換されることはありません。そのタスクは Git で完了してください。jj の初期化は、別のタスクでプライマリチェックアウトから一度だけ行います。その後のエージェントは、そのリポジトリから jj ワークスペースを使用できます。
ワークスペースのモデル
- 各ワークスペースには、それぞれ独自の作業コピーコミット
@があります。 - ワークスペースはコミット履歴と操作ログを共有します。
- あるワークスペースの
@を変更しても、別のワークスペースの@が直接移動することはありません。 - リポジトリ全体に関わる操作の復旧は、並行作業に影響する可能性があります。
jj undoまたはjj op restoreを実行する前にjj op logを確認し、連携してください。 - Herdr では、タスク名は長期的に有効ですが、ワークスペース、タブ、ペインの ID は一時的なハンドルです。ライフサイクルの変更後は、ID を再取得してください。
- 利用可能な場合は、Git ルートから Hunk でレビューしてください。純粋な jj では、OMP で
jj diff --git -r @を使用し、所見とチェック結果を、存在する場合は作業ログに、そうでない場合は最終引き継ぎに記録してください。
1つのワークスペースで扱うタスクは1つにしてください。他の変更を確認するには jj diff -r、jj file show -r、jj log -r を使用し、確認だけを目的に jj edit を使用しないでください。
検証
jj workspace list
jj status
jj log -r '@-::@ | trunk()'
編集する前に、リポジトリのベースラインチェックを実行してください。失敗した場合は、その失敗をレシートまたは作業ログに記録し、タスクが原因だとしないでください。
完了
グローバルの done スキルを使用してください。このスキルはタスクを整え、タスクで明示された範囲のみをリベースし、タスクのワークスペースで明示されたブックマークを公開して、リモートとの同一性を証明し、レシートを記録してから、最後にこのワークスペースをクリーンアップします。