dsh-loopx-plugin
loopx-project/loopxLoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
为 DeepSeek Harness 打造的 Trellis 风格工作流:基于 agent/pre-step 的每轮速记注入、内置技能提供方,以及带 git 清洁度护栏的 DSH 原生任务与相位状态管理。
Trellis 工作流扩展 · DeepSeek Harness 结构化阶段流转 · 步骤状态机 · 质量验收门禁 · 可选规划期只读保护
🌏 中文 · English
dsh-trellis 是为 DeepSeek Harness (DSH) 开发的工程化工作流插件,借鉴了 Trellis 的阶段规范与状态机设计思想。
在大模型长程编程任务中,常见以下协作问题:
dsh-trellis 通过统一的步骤状态机、任务阶段流转和运行时工具过滤,帮助大模型在复杂任务中遵循“先方案后编码、验证后再完结”的工程规范。
task.json.steps 作为唯一的执行状态依据,避免分散维护清单带来的状态不一致。pending、in_progress、verifying、blocked、completed),支持区分自动化测试(AI 验证)与人工审批卡点,并在任务完结时严格检查验收状态。write / edit),仅开放文档受控修改通道,确保方案敲定后再动代码。.trellis/.runtime/sessions/ 中,多会话与并发子代理并行工作时互不串扰。⌘K 实时搜索与工作流类型筛选);右侧详情面板内置 Step Tracker 步骤流水线、阶段轨道节点与产物文件列表。看板遵循单强调色设计与克制交互——不直接改任务状态,仅提供「▶ 推进任务」将指令安全填入输入框交由 Agent 执行,产物点击生成 @.trellis/tasks/... 原生文件引用交给 DSH 原生查看。trellis_task_update / trellis_task_archive 中通过 modified_files 声明任务实际改动文件,校验将限缩到清单内文件(须已提交),清单外未提交改动仅告警、不再阻塞;未传该参数时保持全局严格校验。确保环境 Node.js ≥ 20,在终端运行:
dsh plugin --profile web add @banana-peeljj12/dsh-trellis@latest安装完成后重启 DSH 服务。
桌面版(DeepSeek Harness App)请用自带的 carrier CLI。 普通 dsh CLI 会以error: profile "desktop" is managed exclusively by the Electron application 拒绝操作desktop profile(该名字被硬编码保护)。请改用桌面版自带的 CLI:```sh
& "F:\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add link:F:\dsh-plugins\dsh-trellis
`装的若是本地开发目录,用 link:;装完成后完整退出并重启桌面版(含托盘图标,确认任务管理器中不再有 DeepSeek Harness.exe)才会生效。版本兼容性:插件声明的 @deepseek-ai/dsh-* peer 范围必须覆盖当前 DSH 运行时版本。DSH 会在安装前置检查(pnpm 运行之前)与 profile 启动时校验该范围,不匹配会直接
installation rejected 并拒绝加载——这不是代码问题,而是声明问题:例如运行时为0.2.0-rc.2时,^0.1.7-rc.1(=>=0.1.7-rc.1 <0.2.0-0)不覆盖它,
必须提升到 ^0.2.0-rc.2。升级 DSH 后若插件突然失效,请先核对 peer 范围。本仓库当前面向 DSH 0.2.0-rc.2;审计证据见
docs/ref/dsh-0.2.0-rc.2-audit.md。为避免非预期介入,插件默认不会拦截未授权的目录。请在 Web 端或配置文件中添加生效路径:
也可点击 浏览… 按钮弹出系统文件夹选择器直接选取,保存后即时生效。
提示:若希望在方案定稿前限制模型修改源码,可在该设置页同时开启 规划期只读保护 (enforceReadonlyPlanning) 开关。
在对话中提出较复杂的需求时,模型会引导创建或推进工作流任务:
feat-mm-dd-name,推进 prd → design → impl → review → check;issue-mm-dd-name,推进 report → analyze → fix → fix-note;refactor-mm-dd-name,推进 scan → design → apply → done。如需在某轮对话中临时跳过工作流拦截,在消息中包含 no-trellis 即可。
插件内置了三类标准工作流轨道,任务状态与当前所处阶段(work.stage)紧密挂钩:
工作流类型 · 命名规范 · 阶段推进顺序 · 说明 功能特性 (`feat`) · feat-MM-DD-name · prd → design → impl → review → check · 适合从 0 到 1 开发新特性或重大功能调整 缺陷修复 (`issue`) · issue-MM-DD-name · report → analyze → fix → fix-note · 适合排查和定位 bug、回归问题及异常情况 代码重构 (`refactor`) · refactor-MM-DD-name · scan → design → apply → done · 保持对外行为不变的前提下进行架构或代码优化
任务的 steps 数组为执行清单,支持 5 种状态:
pending:步骤待开始;in_progress:当前正在实施该步骤;verifying:代码实施完毕,等待验证;blocked:遇到外部阻塞,必须附带 blockedReason;completed:验证通过后完结。trellis_task_update 填入 verified: true 与 verificationNotes 测试记录,随后才允许将状态更新为 completed,防止单次调用跳过测试。verifiedBy: 'human' 后,该步骤才被允许标记为 completed。在 DSH Web 客户端中,顶部阶段徽章支持交互式展开任务看板,具备以下双模态形态:
常态下点击徽标展开紧凑弹窗:顶部将当前绑定任务展示为焦点卡片,内置 Step Tracker 步骤清单(加粗当前实施步骤、展示验收标准,并支持已完成步骤折叠),下方按生命周期状态清晰分组;点击右上角放大按钮可平滑展开为全屏大看板,支持 ⌘K 实时搜索与右侧完整详情抽屉:
大看板顶栏支持按「功能 / 缺陷 / 重构」分类药丸即时过滤。当选择特定工作流(如代码重构)时,视图聚焦当前分类任务,配合右侧详情抽屉呈现阶段流水线节点、完整步骤状态机与交付物文档:
@.trellis/tasks/... 原生文件引用,无缝调起 DSH 侧边栏文件预览。当在配置中启用 enforceReadonlyPlanning: true 时,插件会根据当前任务状态仅裁剪指定的工具(denylist,其余工具——包括其他插件注册的工具——原样保留):
授权状态 · 触发条件 · 被裁剪的工具 · 说明 undecided · 项目在白名单内、无活跃任务且未声明跳过 · write / edit + trellis_task_update / trellis_artifact_update / trellis_task_archive / trellis_ui_update · 移除代码写工具与任务写工具,避免盲目直接改写源码;trellis_task_create / trellis_task_skip 与所有其他工具(含其他插件工具)保留 planning · 任务处于规划类阶段(prd, design, scan, report 等) · write / edit + trellis_task_create / trellis_task_skip / trellis_task_archive / trellis_ui_update · 移除通用 write / edit 工具与任务生命周期工具,仅放行受控的任务产物更新;trellis_task_update / trellis_artifact_update 与所有其他工具保留 authorized · 任务进入实施阶段(impl, fix, apply)或用户已跳过 · 无(不裁剪) · 允许根据设计方案修改项目源码
注:trellis_artifact_update仅允许写入当前任务目录(.trellis/tasks//)内的白名单文档,杜绝跨目录修改。
插件向运行时注册了以下专用工具:
task.json 与阶段交付物模板,并自动绑定当前会话。slug 只选择更新目标;切换任务请使用看板的激活按钮。prd.md, design.md, check.md 等),受白名单和路径校验约束。.trellis/tasks/archive/YYYY-MM/ 目录下,并解除当前会话绑定。可在 Web 设置面板(设置 → 插件 → Trellis 工作流)或 ~/.dsh/settings.yaml 中进行配置:
配置项 · 类型 · 默认值 · 说明 allowlist · string[] · [] · 生效白名单:允许插件接入的项目根目录绝对路径列表。为空时不介入任何项目 enforceReadonlyPlanning · boolean · false · 规划期只读保护:开启后,方案定稿前在运行时移除代码修改工具 skipKeywords · string[] · ['no-trellis'] · 跳过关键词:用户消息包含这些词时,该轮跳过工作流注入与拦截 injectStep · number · 1 · 面包屑提示词的注入步数,默认仅在每轮交互第 1 步注入 inline · boolean · false · 是否开启 codex-inline 风格的阶段解析模式
dsh-trellis/
├── lib/
│ ├── index.js # 插件入口:注册 pre-step 钩子、运行时工具过滤与 API 路由
│ ├── task.js # 任务执行逻辑:步骤流转、验证门禁检查与状态校验
│ ├── skills.js # 技能供给:向项目注入 standard 工作流技能与产物模板
│ ├── breadcrumb.js # 上下文提示:提取焦点步骤与构建面包屑
│ ├── readonly.js # 只读策略:推导 undecided / planning / authorized 授权状态
│ ├── state.js # 状态解析:阶段推断、会话指针与 slug 格式校验
│ ├── artifact.js # 产物写入:受控文档更新与路径安全限制
│ ├── archive.js # 归档处理:任务完结检查、目录归档迁移与 Git 干净度校验
│ ├── board.js # 看板数据:任务记录(含 steps 聚合)、阶段轨道与归档列表
│ ├── client.js # 前端界面:Web 阶段徽章、双模态看板(紧凑浮层 + 全屏工作台)与设置项
│ └── types/index.d.ts # TypeScript 类型定义
├── skills/ # 内置的工作流技能与各阶段 Markdown 模板
├── docs/images/ # 界面截图与架构图素材
└── test/ # 自动化单元测试套件