前言¶
在 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.0plugin 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_statusgit_diffgit_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