dsh-coding-discipline:为 DeepSeek Harness 常驻注入编码纪律

前言

在 DeepSeek Harness(DSH)里做长会话编码时,常见的问题不是「模型不会写代码」,而是行为漂移:早期说好的约束几十轮后被忘掉、改完就说「已完成」却未在本轮跑构建或测试、三行改动被整文件替换并夹带无关 diff、链接器或 ABI 类问题陷入猜改循环。这些失败模式会实打实消耗时间。

dsh-coding-discipline 是社区维护者 339006900 发布的 DSH 插件(GitHub:339006900/dsh-coding-discipline)。它不新增工具、也不二次调用模型,而是在每一步请求里改写模型被告知的「可接受工作标准」,并在任务需要时可加载更长的协议文档。下面介绍它的定位、规则、安装方式与效果观测。

这是什么

一句话:面向 DSH 的「始终开启」编码纪律层——通过 prompt 与可选 skill 影响智能体行为,并附带基于会话日志的效果仪表盘。

维护与发布:仓库由 339006900 维护;npm 包名 dsh-coding-discipline,当前资料中的版本为 0.1.0,许可证 MIT。社区目录页:https://www.skillhub.cn/plugins/339006900/dsh-coding-discipline(独立站点,与 DeepSeek / 幻方无官方从属关系)。DSH 生态理念是「一切皆插件」,本插件即其一。

针对的失败模式与规则

每条规则对应 README 中列出的一种长会话代价:

规则 id 要防的失败
ledger 早期约束(如「别动公开 API」)在数十轮后被丢弃
proof 本轮未跑构建或测试却宣称「已完成 / 应该没问题」
smallest-diff 小改动被整文件替换并产生无关 churn
hypothesis 链接器 / ABI / 运行时类问题靠猜改而非可区分实验
no-invented-apis 编造看似合理的 flag、签名或配置键
finish-migration 重构后仍留一处旧路径调用
evidence-over-agreeing 因用户说「看起来不对」就改本来能工作的代码
no-speculative-code 未要求的抽象、参数与防御分支
closing-shape 收尾只庆祝成果,不说改了什么、跑了什么、什么未验证

规则以触发式表述(如「第一次编辑前」「连续两次 speculative 编辑」),README 说明这比泛泛的「美德」在长会话里更不易被忽略——但这是 prompt 影响,不是强制 enforcement,模型仍可能违反规则。

核心能力

  1. 常驻 prompt 段:安装并重启后,<coding_discipline> 相关说明进入每次请求;composition 内所有 agent(含 subagent)都会收到。
  2. 可选 bundled skill:来自 SKILL.md 的长协议(清单、配方、调试阶梯),可通过配置只保留 prompt 或只保留 skill。
  3. 效果仪表盘:读取持久化会话日志(默认 ~/.dsh/sessions/**/session.v4.jsonl.zstd),按 turn 统计是否含 <coding_discipline> 来区分「处理组 / 对照」——同一会话若在安装前开始,安装后的 turn 计入处理组;无随机化,基线是你自己的历史,页面会说明这一点,回答的是「行为是否变化」而非「模型是否更好」。

仪表盘指标(资料原文):

指标 计算方式
改动-验证闭环率 含编辑/写入工具调用且同 turn 内有验证命令的 turn,占所有编辑 turn 的比例
无证据的完成声明 收尾声称完成但该 turn 未跑验证命令的 turn
代价 每 turn 工具调用数、回答字符数
  1. 本地 HTTP 路由:插件加载后可访问 http://127.0.0.1:<dsh-port>/coding-discipline(需 dashboard: true)。

安装与启用

三种方式均需 重启 DSH。官方 npm 安装命令如下(勿凭仓库名自行拼接 github: 安装串):

dsh plugin --profile desktop add dsh-coding-discipline

或在 DSH 内:Settings → Plugins → Plugin Market,搜索 dsh-coding-discipline,安装后重启。

本地 link 开发与通过 local plugin manager 指向目录的方式见 GitHub README;本质是在 ~/.dsh/profiles/desktop/package.json 中 link 依赖并加入 dsh.profile.bundles,再执行 cd ~/.dsh/profiles/desktop && npx pnpm@11 install。

验证是否加载(任选其一):

  • 让模型复述其 <coding_discipline> 规则,应能引用;
  • 在插件目录执行 node --test(22 个测试,无需启动 DSH)。

若安装后应用无法启动,从 dsh.profile.bundles 删除单独一行 "dsh-coding-discipline" 后重启即可回滚,README 称不会改动其他项。

运行环境(package.json):DSH ^0.2.0-rc.1 || ^0.2.1-rc.1 || ^0.2.2-alpha.2;Node ^22.19.0 || >=24.0.0。

配置

在 ~/.dsh/profiles/desktop/cordis.patch.yml 中调整(字段以 README 为准):

- id: coding-discipline
  config:
    enabled: true        # false = 注销全部贡献
    order: 9500          # prompt 顺序;runtime context 在 10000+
    promptSection: true  # false = 仅保留 skill
    skill: true          # false = 仅保留 prompt 段
    compact: false       # true = 仅保留 proof / ledger / smallest-diff / hypothesis
    extraRules: ''       # 追加的部署行
    dropRules: []        # 要 omit 的规则 id,如 ['closing-shape']
    dashboard: true      # false = 不提供 /coding-discipline
    sessionsRoot: ''     # '' = ~/.dsh/sessions;可指定路径只统计某工作区

完整 prompt 段约 750 tokens/请求;compact: true 约 470 tokens。

典型用法

生成静态仪表盘 HTML(不依赖 DSH 进程,直接读会话日志):

node scripts/dashboard.mjs

输出:~/.dsh/plugin-data/dsh-coding-discipline/dashboard.html,可用浏览器从磁盘打开。

在 DSH 已加载插件时访问托管路由:

open http://127.0.0.1:<dsh-port>/coding-discipline

将 <dsh-port> 换成本机 DSH 监听端口。

需要长任务清单与调试流程时,依赖 bundled skill(SKILL.md);日常则靠每步注入的短规则约束验证闭环、约束账本与最小 diff 等。

适用场景与注意

适合:长期在 DSH desktop profile 里做编码 agent 工作、希望减少「口头完成」与约束遗忘、并想用自有会话历史对比安装前后 turn 级行为的人。

务必知晓:

  • 插件以当前 DSH 进程权限运行;安装前应阅读仓库源码与 MIT 许可证,确认可接受其读取 ~/.dsh/sessions 及可选 sessionsRoot 下的日志。
  • 它不会替你跑构建,只是把「未验证就声称完成」显式化。
  • 仪表盘非 A/B 实验,结论限于你本机历史与 turn 分组逻辑。

仓库布局(便于二次开发):src/prompt.js(段文本与配置归一化)、src/skill.js、src/index.js(cordis 接线)、src/sessions.js、src/analyze.js、src/report.js、src/route.js、scripts/dashboard.mjs、test/(22 个 node:test 用例)。

结尾

dsh-coding-discipline 用常驻 prompt(与可选 skill)把验证闭环、约束账本、最小 diff、假设优先调试等习惯写进每一步,并提供基于会话日志的效果页,便于对照安装前后是否更少「无证据完成声明」。DeepSeek Harness 插件可按 npm 市场安装,社区索引见目录页与 GitHub:

  • 目录页:https://www.skillhub.cn/plugins/339006900/dsh-coding-discipline
  • GitHub:https://github.com/339006900/dsh-coding-discipline
羽毛球分组比赛记分
小程序二维码

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

小夜