境界付きのコーディング作業を隔離 worktree 内でヘッドレス CLI 実行器に委譲し、構造化結果・実際の diff・範囲外チェックを返す MIT の DSH スキル。
DSH 統合
ネイティブ実行
作者による申告
安全性監査
未監査
最終検証日
2026-11-12
ライセンス
MIT
01どんなタスクに使えるのか?
境界がはっきりしたコーディング / リファクタリング / テスト作成のサブタスクを、より安価なヘッドレス CLI 実行器に渡し、自分は計画とレビューに専念する
実行器のサマリー、実際の `git diff` パッチ、変更ファイル、テスト結果、範囲外書き込みの `violations`、`needs_human` フラグを含む構造化された `result.json`
量の多い作業は実行器 CLI に任せつつ、diff の確認・受け入れコマンドの実行・統合はホスト側に残したい DSH ユーザー
委譲した作業を隔離された worktree で走らせ、実行器の自己申告ではなく実際の diff でレビューする
コミット・プッシュ・自動マージを行わない専用の `wb-exec/<id8>` worktree と、実際の `git diff` から取った `change.patch` / `changed_files_git`
変更が入る前に人がレビューする必要があるチーム
02DeepSeek Harness への導入方法
前提条件
- Python 3.10+。標準ライブラリのみで、README は `pip install` が不要だと明記している
- 同じマシンに導入済みの対応 CLI 実行器が 1 つ: `workbuddy`(既定)、`codex`、`claude`、`aider`、または `WB_CLI` / `WB_CLI_ARGV` で設定する `custom`
- Git は任意。Git がない場合はその場での実行になり、diff も取得できない
- `workbuddy` バックエンドでは `deepseek-v4.1-flash` を利用できるアカウントまたはプランが必要
インストール手順
- 01
`dsh plugin --profile <profile> add github:Luminousyyh/skill-wb-exec` でプラグインパッケージを導入するか、DSH Desktop の Plugins → Plugin Market から導入する
$ dsh plugin --profile <profile> add github:Luminousyyh/skill-wb-exec
- 02
プラグインを使わない場合: リポジトリを `git clone` し、`skills/wb-exec` をエージェントの skills ディレクトリへコピーすると、ローダーが `<skills-root>/wb-exec/SKILL.md` を見つける
$ git clone
- 03
`python <SKILL_DIR>/scripts/wb_exec.py doctor` を実行し、CLI・git・環境・状態ディレクトリを確認する
導入成功の確認
- `doctor` が `ok=true` と解決済みの `cli` を含む JSON を返す。`ok=false` または `cli_error` が空でない場合、README は停止して生の出力をユーザーに渡すよう指示している
03DSH 統合と能力の範囲
DSH プラグインパッケージ。`ctx.skills` provider が `skills/wb-exec/` をスキルとして公開し、ホスト側のエージェントから呼び出せるようにする
パス許可リスト(`owned_paths`)
`goal`、`context`、`inputs`、`owned_paths`、`acceptance`、`notes` を持つタスクパッケージ JSON→許可リスト外の変更は黙って受け入れず `result.violations` に記録される。空リストは「新規ファイルのみ」として扱われる
空の `owned_paths` は「検査なし」ではなく「新規作成のみ」として強制される構造化キャプチャと `needs_human` による振り分け
実行器の stream-json 出力→`--json-schema` で拘束した結果、git diff、範囲外チェック、構造化された `needs_human` をまとめた機械可読な `result.json`
`stdout.jsonl` と `stderr.log` の合計は 64 MiB が上限(`WB_EXEC_LOG_CAP` で変更可)。上限を超えると子プロセスを停止し、ジョブを失敗として記録する再帰ガードとパス単位のディスパッチロック
dispatch の呼び出し→実行中ジョブと `owned_paths` が重ならないジョブの `job_id`
子プロセスには `WB_SUBAGENT=1` が渡り、入れ子の dispatch は終了コード 3 で拒否される。パスが重なる dispatch は終了コード 4 と `error: PATHS_LOCKED` で失敗するノンブロッキングな監督コマンド
`dispatch`、`run`、`status`、`collect`、`cancel`、`jobs`→即座に返る `job_id`、観測可能なハートビートとタイムアウト、稼働中の占有と直近履歴を読み取り専用で示す `jobs`
状態は `~/.wb-exec/` に置かれ(`WB_EXEC_HOME` で変更可)、`jobs` は占有を削除も解放もしない
04誰に向いているのか?使うべきでない場面は?
向いている用途
- 量の多い作業は実行器 CLI に任せつつ、diff の確認・受け入れコマンドの実行・統合はホスト側に残したい DSH ユーザー
- 変更が入る前に人がレビューする必要があるチーム
不向きな用途
- worktree と `owned_paths` は隔離であり、閉じ込めではない。境界を無視するプロセスを止める仕組みはない。workbuddy バックエンドでは子コマンドに `--permission-mode bypassPermissions` も付くため、実際に効いている制約は許可リストと隔離の組み合わせになる。
- 既定の workbuddy バックエンドは DeepSeek V4.1 Flash・effort `max` に固定され、`--model` / `--effort` は存在しない。アカウントがそのモデルを拒否すると実行は失敗し、README は別モデルでの再試行を禁じている。
- Git 管理外のディレクトリではその場で実行され(`isolated=false`)、diff は取得できず、`owned_paths` だけが防御になる。
- パスが重なる作業は待ち行列に入らず拒否される。`dispatch` は終了コード 4 と `PATHS_LOCKED` で失敗し、README はロックファイルを消すのではなく `jobs` で確認して分割を広げるよう求めている。
- 統合はホストの責務。`tests` の `pass` は独立した検証ではなく、`git commit` / `git push` はユーザーが明示的に求めたときだけ実行する。
05互換性・メンテナンス・セキュリティ上の注意
- worktree と `owned_paths` は隔離であり、閉じ込めではない。境界を無視するプロセスを止める仕組みはない。workbuddy バックエンドでは子コマンドに `--permission-mode bypassPermissions` も付くため、実際に効いている制約は許可リストと隔離の組み合わせになる。
- 既定の workbuddy バックエンドは DeepSeek V4.1 Flash・effort `max` に固定され、`--model` / `--effort` は存在しない。アカウントがそのモデルを拒否すると実行は失敗し、README は別モデルでの再試行を禁じている。
- Git 管理外のディレクトリではその場で実行され(`isolated=false`)、diff は取得できず、`owned_paths` だけが防御になる。
- パスが重なる作業は待ち行列に入らず拒否される。`dispatch` は終了コード 4 と `PATHS_LOCKED` で失敗し、README はロックファイルを消すのではなく `jobs` で確認して分割を広げるよう求めている。
- 統合はホストの責務。`tests` の `pass` は独立した検証ではなく、`git commit` / `git push` はユーザーが明示的に求めたときだけ実行する。
MIT のソース。ここに書いた事実はすべて記録したコミットの README に基づき、独立した安全性監査は行っていない。
06よくある質問
DeepSeek Harness に wb-exec を導入するには?
`dsh plugin --profile <profile> add github:Luminousyyh/skill-wb-exec` でプラグインパッケージを追加するか、DSH Desktop の Plugins → Plugin Market から導入する。導入後は `ctx.skills` provider が `skills/wb-exec/` をスキルとして公開する。プラグインを使わず、リポジトリを clone して `skills/wb-exec` をエージェントの skills ディレクトリへコピーする方法もある。
必要な実行器 CLI はどれか?
`workbuddy`(固定の既定)、`codex`、`claude`、`aider`、または `WB_CLI` と `WB_CLI_ARGV` テンプレートで設定する `custom` のいずれか 1 つ。同じマシンに入っている必要があり、欠けているとプラグイン自体は導入できても `doctor` が `ok=false` を返してスキルは停止する。
wb-exec が変更をコミットしたりマージしたりすることはある?
ない。Git リポジトリでは `wb-exec/<id8>` ブランチの専用 worktree で実行され、コミット・プッシュ・自動マージは行わない。統合はホストの仕事で、`git apply --check` → `git apply` → 受け入れコマンドを自分で実行 → 報告、という順になる。
同じファイルを触る 2 つのジョブはどう扱われる?
パス単位のディスパッチロックが拒否する。実行中ジョブと `owned_paths` が重なる 2 回目の dispatch は終了コード 4 と `error: PATHS_LOCKED` で失敗し、占有しているジョブ名を示す。重ならないパスは並列に実行できる。`jobs` は稼働中の占有を読み取り専用で表示する。壊れたロックは空として扱わず拒否する。
委譲された実行器がさらに wb-exec を起動できる?
できない。子プロセスには `WB_SUBAGENT=1` が渡り、スクリプトはそれを見つけると終了コード 3 で dispatch を拒否する。README は WorkBuddy / CodeBuddy のセッション内部から `dispatch` を呼ばないよう警告している。子プロセスがそのセッションのデーモンと衝突し、無言でハングするためだ。
07関連する DSH ワークフロー
archify
by tt-a1i
アーキテクチャ図、ワークフロー図、シーケンス図、データフロー図などを動きのある自己完結型 HTML として生成し、鮮明に書き出せるエージェントスキル
openviking
by volcengine
AI エージェント向けの自己進化型コンテキストデータベース。メモリ、知識 RAG、スキルを統合
aitoearn
by yikart
AIを活用した収益化のアイデアや作業を支援するDeepSeek Harness向けプラグインです。
learn-harness-engineering
by walkinglabs
Harness エンジニアリング入門チュートリアル。ゼロから一歩ずつ学べる
08データと出典
`wb-exec` is a **DeepSeek Harness plugin (skill bundle)**: the host agent hands **coding / refactoring / test-writing**…
This repository is a **DSH plugin package** (`package.json` declares `dsh.bundle`). Once installed, a `ctx.skills` provi…
このページは、プロジェクトの公開ドキュメント、リポジトリのメタデータ、および DSH Plugins の構造化解析に基づいて生成されています。最終検証日:2026-11-12。誤りを見つけた場合は、修正を送信してください。
dsh プラグイン おすすめ
最初に入れたい 12 のプラグイン。全カタログ・全カテゴリから厳選しました。
