repo-autopilot-plugin:把 repo-autopilot 只读检查注册成 DSH 工具

前言

在 DeepSeek Harness(DSH)里做仓库维护或验收,模型往往需要知道「环境是否就绪」「演练台账是否合格」「两份副本能否合并」——这些检查若靠人工翻脚本、对文档,容易打断对话节奏。直接在会话里跑 repo-autopilot 的写流程(开 PR、打标等)又会牵涉凭证与人类闸门,不适合当成通用工具暴露给模型。

repo-autopilot-plugin(维护者 AristotleAsborg,分类:工作流)做的是另一件事:把 repo-autopilot 本体打包进插件,并把其中只读入口注册成 Harness 可调用的一个工具。四种模式(doctor / drill / acceptance / compare)不读 GitHub 凭证、不写仓库,适合在智能体工作流里做自检与比对。

这是什么

插件全名对应 GitHub 仓库 AristotleAsborg/repo-autopilot-plugin。它不是 repo-autopilot 业务逻辑的分叉,而是适配层:定位仓库根、拼命令行、经 shell 起子进程,再把退出码和 stdout/stderr 翻译成人话返回给模型。

仓库内自带一份已打好的 repo-autopilot(vendor/repo-autopilot/,含 MANIFEST.json 逐文件 sha256),装完不需要再单独准备 repo-autopilot 检出;也可用工具参数 repo_root 指向你自己的路径。

目录页:SkillHub 插件页
源码:GitHub

核心功能:工具 repo_autopilot_check

模型通过 1 个工具 repo_autopilot_check 调用,可选参数 mode 与 repo_root:

模式 检查内容
doctor 七项环境自检(state 完整性、闸门悬挂审批、本地小模型、GitHub 连通性等)
drill 7 天实战演练台账是否合格
acceptance 验收步骤表能否加载
compare 源仓库与副本的逐文件内容哈希比对(合并两份副本之前使用)

对外行为可以概括为:执行一条只读命令 → 按内置语义解释退出码(例如 drill 退出码 1 表示「未满 7 天」,而非失败)→ 返回结论与原始输出尾部。插件范围内不存在读取凭证或对外写入的路径;repo-autopilot 的写能力仍在其自身闸门流程中,不在本插件内。

环境要求

项目 要求
Python 3.12 或更高
Python 模块 yaml、requests、numpy
repo-autopilot 随插件自带;或自备路径并通过 repo_root 指定
shell 服务 PowerShell 系(Windows 上为 pwsh),用于拼接并执行命令
Node ≥ 20(见 package.json 的 engines)
git 可选;只读四种模式不依赖 git

repo-autopilot 仓库本身没有 requirements.txt,依赖须装在实际用来跑检查的那个解释器里。

安装与启用

两种装法共用同一份实现(lib/index.js 由 host.js 生成)。注意:向 profile 安装会写 %DSH_HOME%\profiles\...,在 DSH 会话沙箱内可能 EPERM,宜在资源管理器双击安装脚本或在普通终端执行。

一键安装(profile 层,推荐「装完重启即生效」)

双击 install.cmd,脚本会:

  1. 查找 Python(-Python → 环境变量 REPO_AUTOPILOT_PYTHON → python3 → python → py -3.12),检查版本与依赖,并对自带 vendor/repo-autopilot/ 做逐文件 sha256 校验;
  2. 生成 host.local.js(写入自带副本路径 DEFAULT_REPO_ROOT);
  3. 执行 profile 层安装:
dsh plugin --profile <名字> add <本插件目录>

可用环境变量:DSH_PROFILE(默认 standard)、DSH_BIN(dsh 可执行文件路径)。

卸载:

dsh plugin --profile <名字> remove repo-autopilot-plugin

会话内安装(dynamic Package)

生成 host 配置:

python scripts/install.py --emit-host

将输出的 host.local.js 全部内容交给 cordis_define 注册 Cordis Package(详见仓库 README「注册成 Cordis Package」一节)。

安装前自检(路线 A,推荐)

在插件目录用 Python 3.12+ 运行:

python scripts/install.py --repo-root <repo-autopilot 的绝对路径>

省略 --repo-root 时,脚本会从当前目录向上自动查找 repo-autopilot 根。退出码 0 表示可以注册,1 表示有缺件。成功后建议固定解释器:

$env:REPO_AUTOPILOT_PYTHON = 'D:\PythonEnv\venv\Scripts\python.exe'

(路径换成你本机实际解释器。)

装后随时可跑冒烟检查:

python scripts/smoke.py
python scripts/smoke.py --repo-root <你自己的 repo-autopilot 路径>

典型用法

在 Harness 会话中,由模型调用工具即可,例如:

  • 部署或改配置后:repo_autopilot_check(mode="doctor"),确认环境与 state 是否完整;
  • 跟进 7 天演练:repo_autopilot_check(mode="drill"),对照台账是否达标(注意退出码语义);
  • 发布前:repo_autopilot_check(mode="acceptance"),确认验收表可加载;
  • 合并两份仓库副本前:repo_autopilot_check(mode="compare", repo_root="..."),做逐文件哈希比对。

若你维护的是独立检出的 repo-autopilot,传入 repo_root 指向该绝对路径;否则默认使用安装时写入的自带副本路径。

适用场景与注意

适合谁

  • 已在用或计划用 repo-autopilot 做仓库维护、验收与演练,希望在 DSH 对话里让模型只读拉自检结果;
  • 需要在合并副本、上线前用同一套 doctor/drill/acceptance/compare 逻辑,且不想在插件层暴露写 token 或开 PR 能力。

边界

  • 本插件仅覆盖四种只读模式;/细化idea、/修复、/建新项目 等写路径仍走 repo-autopilot 本体与人类闸门,不通过此工具触发。
  • 插件以当前 dsh 进程权限在主机上起子进程;安装前应阅读源码与 MIT 许可证,确认路径与 shell 行为符合你的安全策略。
  • SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系;插件星标与版本以 GitHub 仓库为准(当前 package 版本 1.0.0)。

结尾

repo-autopilot-plugin 把 repo-autopilot 的只读检查收成 Harness 上的一个工具:自带可校验的 vendor 副本、零凭证、语义化的退出码,便于在工作流里做环境体检、演练台账、验收表与副本比对。需要写操作或完整八条对话指令时,应继续使用 repo-autopilot 本体。

  • 目录页:https://www.skillhub.cn/plugins/AristotleAsborg/repo-autopilot-plugin
  • GitHub:https://github.com/AristotleAsborg/repo-autopilot-plugin
  • repo-autopilot 本体:https://github.com/AristotleAsborg/repo-autopilot
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜