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
羽毛球分组比赛记分
小程序二维码

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

小夜