dsh-tdd-guard:DSH 下的提交前測試門禁

前言

在 DeepSeek Harness(DSH)裏做項目時,智能體或開發者常會改完代碼就提交,本地是否跑過測試全憑習慣。單靠口頭約定「先測再 commit」很難在 Git 層落地;而在編輯器裏強制「先寫測試再寫實現」又是另一類工具的職責。若你希望在 commit 這一刻 用項目自帶的 npm test 做一道硬門檻,同時可選地安裝帶標記的 pre-commit hook,社區插件 dsh-tdd-guard(維護者 lengrufeng2008,分類:工作流)提供的是輕量 test-before-commit 守衛,而不是原版 TDD Guard 的編輯期 enforcement。

這是什麼

dsh-tdd-guard 在 DSH 中運行項目測試腳本,並可選擇安裝 opt-in 的 .git/hooks/pre-commit。README 明確說明:它受 nizos/tdd-guard 啓發,但未複製其源碼(詳見倉庫 NOTICE.md)。許可證爲 MIT;package.json 中版本爲 0.1.0,要求 Node >= 20。

社區目錄頁:https://www.skillhub.cn/plugins/lengrufeng2008/dsh-tdd-guard(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。源碼:https://github.com/lengrufeng2008/dsh-tdd-guard。

核心功能

下面只列 README 與 package.json 中已寫明的行爲。

提交門禁

  • 受管理的 hook 會執行 npm test;退出碼非零則 阻止 commit。
  • check:返回通過/失敗,並附帶最近約 20 KB 輸出;超時 120 s(工具側 150 s)。
  • status:查看當前守衛/hook 相關狀態(與 --root 指向的項目根目錄配合)。

Hook 的安裝與卸載

  • install --root .:安裝帶 dsh-tdd-guard 標記 的 hook;若已有未標記的 hook,默認 拒絕覆蓋,除非傳入 --force。
  • uninstall --root .:僅移除帶有上述標記的 hook,避免誤刪手工編寫的 hook。

在 DSH 會話中使用

在 DSH 裏可對當前項目使用自然語言指令(README 原文):

Use tdd_check on this project.

插件通過 DSH 的 bundle 配置(plugin/cordis.patch.yml)接入;具體以倉庫內插件入口 plugin/index.js 爲準。

它保證什麼、不保證什麼

保證

  • commit 前由 hook 跑 npm test,失敗則無法提交。
  • 安裝/卸載行爲受標記與 --force 規則約束,降低誤覆蓋風險。

不保證

  • 不能證明「測試一定寫在代碼之前」——那是原版 TDD Guard 類工具的任務;本插件只是 commit gate。
  • 執行的是 項目腳本,請在可信 checkout 上使用。
  • 無覆蓋率、變異測試、LLM 評判或跨語言測試探測。
  • Git hook 面向 POSIX 取向環境;Windows 行爲可能不一致。
  • 測試通過是證據,不是正確性證明。

命令行用法

在插件倉庫或已安裝包內,對目標項目根目錄執行(README 原文):

node bin/dsh-tdd-guard.mjs status --root .
node bin/dsh-tdd-guard.mjs check --root .
node bin/dsh-tdd-guard.mjs install --root .
node bin/dsh-tdd-guard.mjs uninstall --root .

也可通過 npm 包暴露的 bin 名 dsh-tdd-guard 調用(見 package.json 的 bin 字段)。

典型流程可以是:先用 check 在 CI 或本地確認測試與輸出,確認無誤後再 install 啓用 pre-commit;換機器或不再需要門禁時用 uninstall 清理。

插件自身測試(倉庫內):

npm test

安裝與啓用

已抓取資料中 未給出 dsh plugin add … 一類固定安裝命令,請勿憑插件名自行拼接。建議從社區目錄頁 lengrufeng2008/dsh-tdd-guard 查看當前 DSH 安裝說明,或按 DSH「一切皆插件」的常規方式從 GitHub 倉庫引入;啓用 hook 前請閱讀源碼與 MIT 許可證。

安裝 hook 前確認項目根目錄的 package.json 裏 scripts.test 指向你期望的命令(本守衛固定調用 npm test)。

適用場景與注意

適合:已在 Node 項目中用 npm test 作爲統一測試入口的團隊或個人;希望在 Git commit 前自動擋掉未過測的變更;在 DSH 工作流裏用 tdd_check 讓智能體先跑檢查再討論提交。

注意:

  • 插件以 當前 DSH 進程權限 運行,會執行項目腳本;安裝前應檢查倉庫源碼、依賴與許可證。
  • 與「測試驅動開發」的 編寫順序 無強制關係,命名中的 TDD 更多指 commit 前的測試門禁。
  • 需要編輯期 test-first 約束時,應選用其他工具(如 README 所指的 original TDD Guard 方向),而非本插件。

結尾

dsh-tdd-guard 把「提交前跑一遍 npm test」做成可管理的 Git hook 與 DSH 可調用檢查,邊界清晰:commit gate,而非編輯期 TDD 警察。需要詳情與更新時,請查閱目錄頁 https://www.skillhub.cn/plugins/lengrufeng2008/dsh-tdd-guard 與 GitHub https://github.com/lengrufeng2008/dsh-tdd-guard。

羽毛球分组比赛记分
小程序二维码

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

小夜