dsh-gitflow:給 DeepSeek Harness 的受控 Git 工具

前言

在 DSH 插件場景裏,智能體操作 Git 時,需要先把邊界說清楚:哪些動作只讀,哪些動作會修改倉庫,哪些動作必須經過 approval。

dsh-gitflow 把常用 Git 動作拆成明確工具:讀取 status、diff、log,提交已存在的 staged changes,列出分支,以及可選 Change Ledger restore point。

它當前版本是 0.1.3,許可證爲 MIT,由 lonelymoon87 維護。

定位與邊界

dsh-gitflow 的一句話定位是:

Git status, diff, log, commit, branch, and optional Change Ledger tools for DeepSeek Harness.

它支持:

  • DSH >=0.1.0-rc.6 <0.2.0 plugin APIs
  • Node.js ^22.19 || >=24

v0.1.3 release 與 DSH 0.1.0-rc.8 和 0.1.1-rc.1 測試,並保留 rc.6-compatible peer range。

它明確不在 MVP 內的事項包括:

  • Pull-request creation
  • push
  • worktree management
  • branch deletion

它也明確不做以下操作:

  • 隱式暫存文件
  • 運行 git add
  • 運行 git reset
  • 運行 git stash
  • 運行 git push
  • 使用 hook-bypass flags
  • 使用 destructive branch commands
  • 訪問 credentials
  • 聯繫 Git hosts
  • 註冊 custom durable session event

核心功能

下面是當前列出的能力:

  • git_status:讀取分支和工作樹計數。
  • git_diff:讀取未暫存或已暫存的 unified diffs,且不觸碰 index。
  • git_log:返回有界結構化提交歷史,並處理 unborn repositories。
  • git_commit:只提交已存在的 staged changes,且要求 DSH approval。
  • git_branch:列出本地分支;創建和切換要求 approval。
  • /commit:在調用 git_commit 前加載 staged-change review skill。
  • checkpoint_list 和兩階段 checkpoint_restore:委託給可選 Change Ledger service。
  • 可選 autoCheckpoint:在 tools/pre-execute 爲配置好的 mutation tools 捕獲 Change Ledger restore point。

配置項可設置:

timeoutMs
maxOutputBytes
maxLogEntries
conventionalCommits
autoCheckpoint
checkpointTools

autoCheckpoint 默認禁用。啓用但沒有 Change Ledger service 時,不會假裝恢復存在,保持調用不變。

安裝與啓用

默認示例安裝到 web profile:

dsh plugin --profile web add https://github.com/lonelymoon87/dsh-gitflow/releases/download/v0.1.3/dsh-gitflow-0.1.3.tgz

這條命令安裝的是 release tarball。prebuilt packages 通過 GitHub Releases 分發;npm publication is prepared but not yet live。

也可以使用 pinned source install:

dsh plugin --profile web add github:lonelymoon87/dsh-gitflow#v0.1.3

pinned source install 會運行 prepare build。pnpm 10 及以後在 profile allowlists 精確 package key 前會拒絕;按提示處理後,重跑同一 dsh plugin add 命令。

如果要安裝到 one-shot agent profile,將 web 替換爲 headless。

升級時,重新運行 dsh plugin add,並使用新版 release URL。

卸載命令如下:

dsh plugin --profile web remove dsh-gitflow

審批與變更邊界

讀取類工具圍繞本地 Git 狀態工作:

  • git_status
  • git_diff
  • git_log

其中 git_diff 讀取 unified diffs,且不觸碰 index。

變更類工具走 DSH approval seam:

  • git_commit 只提交已存在的 staged changes,並要求 DSH approval。
  • git_branch 創建和切換要求 approval。
  • /commit 最終調用 git_commit 時請求 approval。

可選 Change Ledger 集成依賴外部 service。autoCheckpoint 默認禁用;啓用但沒有 Change Ledger service 時,不會假裝恢復存在,保持調用不變。

適用場景與注意

適合這些場景:

  • 希望在 DSH 中讀取 Git status、diff、log 的智能體。
  • 希望在 approval 後才執行 commit 或 branch create/switch 的工作流。
  • 希望把 mutation tools 的 restore point 接入可選 Change Ledger service 的項目。

注意:

  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  • dsh-gitflow 不 push、不訪問 credentials、不聯繫 Git hosts;但提交和分支操作仍依賴當前 Git 倉庫狀態和 approval 結果。
  • v0.1.3 是 release 版本;升級時使用新的 release URL。

鏈接

GitHub 倉庫:

https://github.com/lonelymoon87/dsh-gitflow

插件目錄頁(按插件線索提供):

https://www.skillhub.cn/plugins/lonelymoon87/dsh-gitflow
羽毛球分组比赛记分
小程序二维码

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

小夜