mcpField
U
using-jj-workspaces

using-jj-workspaces

github.com/edmundmiller開発8053 回インストール今日更新
リポジトリ

using-jj-workspaces について

タスクごとの jj ワークスペースを管理するスキルです。Herdr 内外の手順を分け、重複作成や安全でない Git から jj への変換を避けながら、作成、確認、検証、引き継ぎを扱います。

主な機能

  1. 01リポジトリとワークスペース状態の確認
  2. 02タスク用ワークスペースの作成と記録
  3. 03Herdr 内外の手順の使い分け
  4. 04ワークスペースを切り替えずに変更を確認
  5. 05タスク作業の検証と引き継ぎ

活用シーン

  1. 01jj リポジトリでのタスク開始
  2. 02Herdr または外部ランチャーでの作業
  3. 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 スキルを使用してください。このスキルはタスクを整え、タスクで明示された範囲のみをリベースし、タスクのワークスペースで明示されたブックマークを公開して、リモートとの同一性を証明し、レシートを記録してから、最後にこのワークスペースをクリーンアップします。

コメント