deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:PPawnsir/task-board-plugin
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
智能看板插件 — Agent 自主任务驱动开发:看板管理 + 一次性 Worker/Verifier 派发 + 依赖调度 + Team 模式。
dsh --profile web已发布至 npm 官方 registry(dsh-agent-board):
dsh plugin --profile web add dsh-agent-board
# 重启 dsh 生效
dsh --profile web
git clone https://github.com/PPawnsir/task-board-plugin.git
dsh plugin --profile web add <本仓库绝对路径>/packages/dsh-agent-board
# 重启 dsh
plugin tree failed to loadcurl -X POST http://127.0.0.1:3080/dsh-agent-board \
-H "Content-Type: application/json" \
-d '{"method":"get-tasks","args":{"sessionId":"<sessionId>"}}'
返回 JSON 即正常;405 空 body 说明路由未挂载。
# 市场版
dsh plugin --profile web add dsh-agent-board@latest
# 源码版
git pull
# 两者都需重启 dsh
dsh plugin --profile web remove dsh-agent-board
# 重启 dsh
看板数据存在
~/.dsh/tasks-<sessionId>.json,卸载不删数据。
currentColor 跟随主题,浅深色自适应)draft → pending → in-progress → verifying → resolved → archived
↓ ↑
blocked ←────── reject
dependsOn 声明依赖(DFS 环检测),依赖全部完成后才会被派发,串行链路自动编排full(执行+验证)/ work(只做不验)/ direct(不进池,主窗口直接处理),创建时按规则自动分类、可手动覆盖acceptance 字段写验收脚本命令,Worker 必须实际运行、Verifier 必须独立复跑| 🤖 自动 | 👤 手动 | |
|---|---|---|
| Worker 派发 | poolCycle 自动调度(并发上限可配) | 主窗口自行 claim 处理,或详情页手动「派发」 |
| Verifier 派发 | 自动 | 自动(主窗口手动做完的 full 档任务也会自动验收) |
| 孤儿回收 | 开启 | 开启 |
Team 模式开启时强制自动派发(防止"引导派发 + 手动模式"死锁组合)。
开启后(Team 开关):
| 类别 | 工具 |
|---|---|
| 任务管理 | task_create / task_list / task_context / task_update / task_claim / task_resolve / task_verify / task_archive |
| 池治理 | task_terminate / task_intervene / task_arbitrate |
| 子代理上报 | board_report / board_verdict |
管理工具仅主窗口可用(子代理调用会被拒绝);
board_report/board_verdict是子代理的专用上报通道。
└── packages/dsh-agent-board/ # 插件全部源码(直接维护,无构建步骤)
│ ├── index.mjs # host 端:IO 编排(工具/RPC/一次性派发引擎接线)
│ ├── lib/core.mjs # 纯逻辑核心:状态机/依赖/分类/prompt/解析(无 IO,可单测)
│ ├── lib/client.js # client 端(ModuleLoader 包装,图标统一走 ICONS + ic())
│ ├── test/core.test.mjs # 单元测试(node --test,30 例)
│ ├── package.json # dsh.bundle.patch + dsh.client 元数据
│ └── cordis.patch.yml # bundle 挂载行
└── docs/
├── PRD.md # 产品需求文档
├── PACKAGING.md # 打包/安装踩坑记录(link 依赖、单例隔离等)
├── icon-style-guide.md # 图标风格指南(Lucide 线性 SVG + emoji 分界)
└── REGRESSION-v59.md # 端到端回归测试记录
v68 起拆除了"动态源码 → 静态包"的转换层(build-pkg.cjs):插件已稳定, 双形态维护的复杂度大于收益,包内文件即唯一源码,改完重启 dsh 即生效。
v74 起去池化(一次性派发)+ 纯逻辑抽到
lib/core.mjs,跑node --test packages/dsh-agent-board/test/即可验证状态机/依赖/派发决策, 不用重启 dsh 人肉回归。
tag 驱动,GitHub Actions 自动发布到 npm(.github/workflows/publish.yml)。两种打 tag 方式都支持:
方式 1:命令行
cd packages/dsh-agent-board
npm version patch # 或 minor / major——改 package.json
git add -A && git commit -m 'release: vX.Y.Z' && git tag vX.Y.Z
git push --follow-tags # tag 推送触发流水线
方式 2:GitHub 网页(Releases 页)
packages/dsh-agent-board/package.json 的 version 改成目标版本并合入 main(网页直接编辑即可)vX.Y.Z 选 Create new tag(target 选 main)package.json version(如 tag v1.0.1 但包里是 1.0.0),防止版本错位NPM_TOKEN
(npm granular access token:bypass 2FA + direct publish)test.yml 跑语法检查 + 30 例单测npm publish --registry=https://registry.npmjs.org(本机默认源是镜像时必须显式指定)MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。