返回目录

skill-wb-exec

精选清单收录维护状态: 活跃

luminousyyh/skill-wb-exec

将有范围限制的编码任务交给 WorkBuddy 或 CodeBuddy 命令行智能体,并返回结构化结果和实际差异;支持路径白名单与 worktree 隔离。

前往 GitHub
$ dsh plugin --profile <profile> add github:Luminousyyh/skill-wb-exec

155

星标

0

Fork

Python

语言

MIT

许可证

2026-10-27

创建于

2026-11-08

最近推送

MIT 的 DSH skill:在隔离 worktree 里把有边界的编码任务交给无头 CLI 执行器,并回传结构化结果、真实 diff 与越界检查。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-12

许可证

MIT

01它能帮你完成什么?

  • 把边界清晰的编码 / 重构 / 写测试子任务交给更便宜的无头 CLI 执行器,自己只负责规划和审阅

    一份结构化 `result.json`:执行器摘要、真实 `git diff` 补丁、改动文件、测试结果、越界写入的 `violations`,以及 `needs_human` 标记

    想让执行器 CLI 承担量活、但 diff 复核、验收命令和合入仍留在宿主侧的 DSH 用户

  • 在隔离 worktree 里跑委派任务,并基于真实 diff 而不是执行器的自述来评审

    一个独立的 `wb-exec/<id8>` worktree,不提交、不推送、不自动合并,`change.patch` 与 `changed_files_git` 取自真实 `git diff`

    需要人工审阅后才让改动落地的团队

02如何接入 DeepSeek Harness?

前置条件

  • Python 3.10+,只用标准库,README 明确不需要 `pip install`
  • 同一台机器上装好一个受支持的执行器 CLI:`workbuddy`(默认)、`codex`、`claude`、`aider`,或通过 `WB_CLI` / `WB_CLI_ARGV` 配的 `custom`
  • Git 是可选项:没有 Git 时退化为原地执行,也拿不到 diff
  • 用 `workbuddy` 后端时,需要账号或套餐允许使用 `deepseek-v4.1-flash`

安装步骤

  1. 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

  2. 02

    不装插件也可以:`git clone` 仓库后把 `skills/wb-exec` 复制到 Agent 的 skills 目录,加载器会在 `<skills-root>/wb-exec/SKILL.md` 找到它

    $ git clone

  3. 03

    运行 `python <SKILL_DIR>/scripts/wb_exec.py doctor` 检查 CLI、git、环境与状态目录

验证接入成功

  • `doctor` 返回 JSON 且 `ok=true`,并给出解析到的 `cli`;当 `ok=false` 或 `cli_error` 非空时,README 要求停下并把原始输出交给用户

03DSH 适配与能力边界

DSH 适配原生运行时

DSH 插件包:由 `ctx.skills` provider 把 `skills/wb-exec/` 发布成宿主 Agent 可调用的 skill

  • 路径白名单(`owned_paths`)

    一个任务包 JSON:`goal`、`context`、`inputs`、`owned_paths`、`acceptance`、`notes`→白名单之外的改动会写进 `result.violations` 而不是被默默接受;空列表等价于只允许新增文件

    空的 `owned_paths` 被执行为「只允许新增」,不是「不检查」
  • 结构化采集与 `needs_human` 路由

    执行器的 stream-json 输出→一份机器可读的 `result.json`:`--json-schema` 约束的结果、git diff、越界检查,以及结构化的 `needs_human` 对象

    `stdout.jsonl` 与 `stderr.log` 合计上限 64 MiB(可用 `WB_EXEC_LOG_CAP` 覆盖),超限会杀掉子进程并把任务标为失败
  • 递归防护与路径级派发锁

    一次 dispatch 调用→一个 `job_id`,其 `owned_paths` 不与正在运行的任务重叠

    子进程会拿到 `WB_SUBAGENT=1`,再派发会被拒绝并以退出码 3 结束;路径重叠的派发以退出码 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` 只在用户明确要求时才执行。
2026-10-272026-11-08v1.4.0

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/` 发布成一个 skill。不装插件也可以 clone 仓库,把 `skills/wb-exec` 复制到 Agent 的 skills 目录。

需要哪个执行器 CLI?

`workbuddy`(写死的默认)、`codex`、`claude`、`aider`,或用 `WB_CLI` 加 `WB_CLI_ARGV` 模板配的 `custom`,任选其一,并且必须装在同一台机器上。缺了它插件照样能装,但 `doctor` 会报 `ok=false`,skill 直接停下。

wb-exec 会替执行器提交或合并改动吗?

不会。在 Git 仓库里任务跑在 `wb-exec/<id8>` 分支的独立 worktree 中,不提交、不推送、不自动合并。合入是宿主的活:`git apply --check` → `git apply` → 自己跑验收命令 → 汇报。

两个任务同时改同一批文件会怎样?

路径级派发锁会拒绝:`owned_paths` 与运行中任务重叠的第二次 dispatch 以退出码 4 和 `error: PATHS_LOCKED` 失败,并指出占用者;不重叠的路径仍可并行。`jobs` 只读列出当前占用。锁文件损坏时会被拒绝,而不是当成空锁处理。

被派发的执行器能再起一个 wb-exec 吗?

不能。子进程会带上 `WB_SUBAGENT=1`,脚本看到该变量就以退出码 3 拒绝派发。README 还提醒不要在 WorkBuddy / CodeBuddy 会话内部调用 `dispatch`,否则子进程会和该会话的 daemon 冲突并静默卡住。

08数据与来源

  • 作者声明github.comf02c7f259bab…

    `wb-exec` is a **DeepSeek Harness plugin (skill bundle)**: the host agent hands **coding / refactoring / test-writing**…

  • 作者声明github.comf02c7f259bab…

    This repository is a **DSH plugin package** (`package.json` declares `dsh.bundle`). Once installed, a `ctx.skills` provi…

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-12。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。