dsh-loopx-plugin
loopx-project/loopxLoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
DeepSeek Harness 的「项目开发模式」预设与聊天内开发看板:主对话只澄清需求并向 Agent Team 派活,悬浮看板把每个用户修改点按派单、执行、测试、验收追踪(含 7 个看板工具)。
DeepSeek Harness 的「项目开发模式」+「开发进度看板」插件。
模式:主对话(Lead)只做 理解需求 → 记录修改点 → 按工种派活 → 验收汇报,完全不动手;具体工作全部交给 agent-team。 插件:聊天内一张悬浮开发看板,把用户提出的每个修改点按「派单(含各环节成员)→ 执行 → 测试 → 验收」追踪;同一问题多次返工归并进同一条目;并持续维护对参考方案的对标。
dsh-project-dev(同一个 bundle 同时携带 preset、Host 服务/路由、7 个看板工具、Lead 硬拦截与 Client 悬浮卡)>= 0.2.1-rc.2(实验版 Agent Teams)、Node >= 22
长时间的项目开发里,主对话容易犯四类错:自己动手干活、漏掉用户后来提的修改点、同一问题反复返工却没有归并记录、没有持续对标的参考实现。这个项目把它们变成机制:
guard.js 在 profile 级按 SessionHeader.agentPreset 识别项目开发模式 Lead,用 agent.ctx.tools.guard() 拒绝一切不在允许清单内的工具调用(读文件、跑命令、查网页、写文件全部拦截);Lead 自己只用 agent-team + 看板 + ask/todo/goal/plan/present。userQuote),状态机 pending → dispatched → running → testing → tested → accepting → accepted,失败回退并记录 attempts。researcher-ada、frontend-cyrus,团队面板直接可辨工种),显示「中文职位 · 昵称」;闲置成员即时**改定义(redefine)**复用,不扩编不辞退。reference,14 天未对标会在审计里提醒。把本仓库克隆到本地任意目录,然后在 DSH 里让 Agent 执行:
plugin_manager install_bundle target = <本仓库绝对路径>
或直接调用 plugin_manager 的工具动作(Web 端 Plugins 页的安装能力同源)。
# 直接用 GitHub 仓库安装(推荐)
dsh plugin --profile desktop add github:kkomia/dsh-code-team
# 或先 clone 再装本地目录
git clone https://github.com/kkomia/dsh-code-team.git
dsh plugin --profile desktop add link:<本仓库绝对路径>
# 然后重启一次 DeepSeek Harness(Host 插件改动需要重启生效)
--profile desktop换成你实际使用的 Web profile 名称即可。若本包发布到 npm,也可以dsh plugin --profile desktop add dsh-project-dev。
安装完成后:
之后如果只改
client.js:刷新页面即可;改 Host 文件(index/store/board-tools/mode-guard/guard/patch)需要重新安装并重启。
ask_user_question 追问。send_message 派活并登记 dispatch(记录环节 + 成员)。project_board_audit 抓「未派单 / 未测试 / 未验收 / 返工≥2 / 待确认 / 对标过期」,Lead 汇报前也会看审计。
数据按工作区路径持久化:$DSH_HOME/project-dev/boards/<boardId>.json(boardId = pb- + sha1(工作区路径)[:8];原子写 + 进程内串行队列)。UI 只读,写入只经 agent 工具。
| 工具 | 作用 |
|---|---|
project_board_open | 打开/创建当前工作区看板,自动同步团队名册(team[]) |
project_board_add | 新增一个用户修改点;带 mergeInto 时作为该条目的新一轮返工记录 |
project_board_update | 推进状态:dispatch / start / test / accept / reject / fail / attempt / block / obsolete / reopen / redefine / unmerge;另含 prune 批量清理(按 ids / statuses / categories,或 scope:"all" 清空整板;dryRun 预览、confirm 保护) |
project_board_merge | 把重复/关联条目并入目标条目(保留来源 id 于 mergedFrom,禁链式合并) |
project_board_reference | 设置/更新参考方案与对标差距表 |
project_board_list | 精简查询(状态/类别/关键词) |
project_board_audit | 完整性审计(未派单/未测试/未验收/返工≥2/待确认/对标过期/stale running) |
写权限:Lead 与「工程进度对照员」负责写看板;其他成员用 list/audit 只读自查。
id, number, title, userQuote, detail, category, priority, status, dispatch{stages[]}, execution, test{status,member,evidence}, acceptance{status,member,evidence}, attempts[], mergedFrom[], mergedInto, tags, note, createdAt, updatedAt
同一问题多次未修复:用 fail / attempt / mergeInto 记进同一 attempts[],禁止新开条目掩盖。
| 职位 | 必要性 | 职责 |
|---|---|---|
| 调研员 | 常设 | 读参考实现源码/文档/截图,出对标差距表;可行性调研 |
| 规划员 | 常设 | 把修改点拆成工作流与依赖,排批次与里程碑 |
| 设计师 | 常设 | UI/UX/动效/文案方案,先方案后实施 |
| 工程进度对照员 | 常设 | 看板第二写手:核对用户消息与看板、抓遗漏、推进状态、出审计报告 |
| 测试员 | 常设 | 写/跑测试,给命令输出/截图/复现步骤等证据 |
| 验收员 | 常设 | 逐条对照用户原话验收,拒绝无证据的「已完成」;兼审核 |
| 前端 / 后端 / 探索 / 审核 | 机动 | 按需增设;一人最多两职 |
成员 name 受 spawn_teammate 限制只能是小写英文 kebab,因此强制采用「英文职位-英文昵称」(如 researcher-ada、frontend-cyrus、tester-dora;固定前缀:researcher/planner/designer/progress/tester/acceptance/frontend/backend/explorer/reviewer),这样团队面板(只显示 name)一眼能看出工种;中文职位写在 description 首段、看板 team[] 与成员 chip 中。send_message 的 target 必须用英文 name/target(list_agents 返回值),显示名只用于汇报。改职(redefine)不改 name,当前职位以 description/看板为准。
# 33 条单元测试(store 状态机/返工归并/持久化 + guard 硬拦截),只依赖 Node 内置模块
node --test test/
# 或
node --test test/store.test.mjs
node --test test/guard.test.mjs
本机验证用 node >= 22.19(node --test test/ 走 test/index.js 聚合入口)。
agentPreset=project-dev);7 个 project_board_* 工具全链路实测(open → add → dispatch → start → test/audit);悬浮卡在真实会话中渲染、展开、条目详情与审计均正常。read/write 的工具定义被替换为「⛔ 本模式禁用」占位描述,Lead 即使用户明确要求"允许违反一次"也拒绝调用;ralph/subagent_codex 完全不可见。详见 docs/VERIFICATION.md。
目录:
index.js Host 入口:projectBoard 服务 + 只读快照路由 /api/project-board/snapshot
guard.js profile 级 Lead 硬拦截(agent.ctx.tools.guard)
store.js 纯函数看板存储/状态机/审计(可直接 node --test)
board-tools.js preset 内 7 个 project_board_* 工具
mode-guard.js preset 内提示词 sections + 子智能体工具 restrict + best-effort 影子工具
client.js Client 悬浮看板(conversation.input.dock)
cordis.patch.yml profile 补丁:project-board / project-dev-guard / preset-project-dev
docs/ DESIGN.md(设计规格)、PROTOCOL.md(字段契约)、MODE-TEXT.md(提示词正文)、VERIFICATION.md(重启后复测记录)
spawn_teammate 的 name 只接受小写英文 kebab-case,因此强制用「英文职位-英文昵称」(如 researcher-ada)让团队面板可辨工种;中文职位放在 description 首段/看板中显示。改职(redefine)不改 name,当前职位以 description/看板为准。guard.js 的 per-Agent guard 实现。run_code 并被 Lead 守护拒绝(设计上不兼容 PTC)。@deepseek-ai/dsh-experimental-agent-team 等)。MIT © 2026 kkomia