deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
双 Agent 交付协作工作流的 DeepSeek Harness 原生插件。基于 DSH 的 Cordis 插件系统,以 bundle 方式分发,不改动 DSH 源码。
核心:一切确定性逻辑从 LLM 下沉到插件代码——状态机是 JS 纯函数(可单测)、审查结论经 schema 强校验的结构化提交(不再自由文本解析)、交互走 DSH 原生结构化提问(GUI 点选)、Web 活动面板实时显示进度(解决"Web 环境不直观"的核心痛点)。
/dsh-delivery <描述> → 上下文确认 → 双轨方案 + 自动分级(light/standard/heavy,启动时探测改动规模)→ 方案审查(heavy 级按需)→ 目标声明 → fixer ↔ 只读 reviewer 隔离子代理循环(状态机代码驱动:震荡/dispute > 收敛 > 质量门 > 轮次上限)→ 人工验收(裁决权归用户,ask_user_question 点选)→ 交付报告 docs/delivery-review-<日期>-<HHmm>.md。
核心元认知:每个交付节点必须输出「未知清单」——你不知道的远比你知道的重要。
| 行 id | 能力 |
|---|---|
delivery-review-command |
/dsh-delivery 命令:注入决策指引 + 唤醒编排者 + 自动任务分级探测(改动文件数/行数 → light/standard/heavy) |
delivery-review-hook |
监听 tools/post-execute,write/edit/pwsh/bash 后自动刷新审查材料(串行队列在 material.js 模块级,防竞态) |
delivery-review-refresh |
refresh_review_material 工具:手动兜底刷新材料 |
delivery-review-roles |
delivery_review_role 工具:按需取回 fixer/reviewer/planner 角色指令 |
delivery-review-skills |
方法论技能随插件注册进 ctx.skills,安装即用 |
delivery-review-submit |
delivery_submit_review 工具:reviewer 结论结构化提交(schema 强校验 risk 数组/score/存疑/未知),自动推进状态机 + 轮次记录落盘 |
delivery-review-panel |
Web 活动面板:/plugins/delivery-review/state 状态路由 + 右上角浮层(tapIndex 注入,免构建,可拖动、位置记忆)+ delivery_status 状态查询工具(调用即激活面板) |
delivery-review-subagent-fixer |
subagent_fixer 子代理工具(读写) |
delivery-review-subagent-reviewer |
subagent_reviewer 子代理工具(toolFilter allow 只读白名单 + delivery_submit_review:read/read_image/glob/grep + 提交工具) |
delivery-review-subagent-planner |
subagent_planner 子代理工具(只读白名单,heavy 级按需触发) |
另有纯库模块(被上述插件 import,不单独挂载):src/state.js(确定性状态机,纯函数可单测)、src/store.js(状态/轮次持久化)、src/material.js(审查材料生成核心)。
要求:DSH >= 0.1.0-rc.6(web profile)、git。
dsh plugin --profile web add github:xiaoxiao-svg/delivery-review-dsh-plugin
该命令把插件装进 profile 依赖(pnpm 拉取源码),并因包声明了 dsh.bundle 自动追加进 dsh.profile.bundles——无需手动编辑任何配置文件。重启 web profile 即生效,之后可按 id 在 profile 的 cordis.patch.yml 里覆盖任意行。
node scripts/sync-installed.mjs # 把工作区同步到 harness 实际加载的安装位置
然后重启 web profile 生效。详见「改动后部署」。
不要把安装位置换成 junction/symlink:Node 对链接做 realpath 解析,插件内部
@deepseek-ai/*依赖会从真实路径(工作区,无依赖树)解析失败。
/dsh-delivery 我要修一下登录页的鉴权流程
.delivery-review/review_material.md(hook 自动 + refresh_review_material 兜底)node scripts/verify.mjs # 语法 + cordis.patch.yml 结构 + 资源完整性 + 模块导出
node scripts/test-state.mjs # 状态机纯函数单测(13 项:去重/门禁/退出四级/归一化/纯函数)
node scripts/test-integration.mjs # 集成测试(临时 git 仓库:材料刷新/清单/竞态/截断/存储)
集成测试在临时 git 仓库运行、结束自动清理;测试脚本属开发期工具,未随仓库分发(npm pack 时被 files 字段排除)。
bundle 安装是实体拷贝,harness 从 %DSH_HOME%/profiles/<profile>/node_modules/delivery-review-plugin 加载插件代码,改工作区源码不会自动生效。改完代码执行:
node scripts/sync-installed.mjs # 同步到安装位置,然后重启 web profile
不要把安装位置换成 junction/symlink(Node realpath 会导致插件依赖解析失败),详见
docs/pitfalls.md。
[{ type: "text", text }]):裸字符串会触发误导性的 DeepSeek API stream ... failed(TRANSPORT)报错ctx.skills.register 必须带 source 字符串(如 "bundled"),否则加载技能时报 source must be a stringwebServer/httpServer):panel.js 双键探测,两者都兼容tapIndex(幂等:带标记则跳过);状态路由/浮层脚本注册用 webServer.registermax_rounds(当前统一上限 3 轮,待设计)MIT。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。