前言¶
在 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。