dshplugin.devDeepSeek Harness Plugins
DSH Git Plugin plugin logo
DeepSeek Harness Plugin

DSH Git Plugin

0
Published by MashedPotato817

Git workflow plugin for DeepSeek Harness: slash commands and read-only git tools

Automation

Get this plugin

Review the source, then continue to the publisher.

dsh plugin add dsh-git-plugin@latest
Get this plugin
Share on X ↗

About this plugin

Source snapshot 8/13/2026

dsh-git-plugin

给 DeepSeek Harness(DSH)的 Git 工作流插件:补齐 DSH 相比 Claude Code / Codex 缺失的「程序员手感」——diff 感知、自动分支、规范提交、可恢复撤销。全部通过 ctx.subprocess seam 以纯 argv 调用 git,不经过 shell 层,每次运行都受字节与超时上限约束。

能力

命令(面向人 / 斜杠命令)

命令作用
/status显示当前分支与工作区状态(porcelain v1)
/diff摘要显示已暂存 / 未暂存的改动
/branch [<name>]不带参数列出分支;带参数则 git switch -c <name> 新建并切换
/commit [<message>]带参数则 git add -A + 提交;不带参数显示提交规范与当前改动
/undo [list|pop]默认 git stash push -u 做可恢复快照;list 查看、pop 恢复

工具(面向模型 / 只读)

工具作用
git-status分支 + 工作区状态
git-diff未暂存(默认)或已暂存(staged=true)的 diff
git-log最近提交历史(count 控制条数,path 过滤文件)
git-show查看某个提交(默认 HEAD)的 message / author / diff

插件还会注入一段 system-prompt 指引,让模型主动用 git 工具查看状态、并遵循仓库的提交与分支规范。

安装

尚未发布到 npm registry,当前按本地包安装。发布后可直接 dsh plugin --profile <name> add dsh-git-plugin

# 1) 本地安装到某个 profile
dsh plugin --profile <name> add /path/to/dsh-git-plugin

# 2) 在 profile 配置里声明插件
- name: dsh-git-plugin
  config:
    maxBytes: 1048576
    timeoutMs: 30000

配置

默认值含义
maxBytes1048576单次 git 调用 stdout 的上限字节数
stderrMaxBytes65536单次 git 调用 stderr 的上限字节数
graceMs3000子进程终止前的宽限毫秒数
timeoutMs30000工具调用的协作超时毫秒数
preCommit[]提交前要运行的 argv 命令(如 ["npm","test"]);非零退出则中止 /commit

提交规范

/commit 默认提示 MAA 风格的提交信息,与本仓库约定一致:

<类型>(<可选作用域>): <中文主体>
feat / fix / docs / chore / style / refactor / test / perf

若仓库根目录存在 AGENTS.md / CLAUDE.md,模型会读取并遵循其中的自定义规范。

开发

  • 分支工作流:所有开发在功能分支进行,稳定后才合并到 main
  • 分支命名:feat/xxxfix/xxxdocs/xxxchore/xxx
  • 提交消息:<类型>(<可选作用域>): <中文主体>

本地校验与测试:

npm install
npm run check   # 语法校验
npm test        # 单元 + 真实 git 集成测试

集成测试会在临时目录里真正 git init / commit / stash,验证 /commit/undo/branch 与只读工具端到端可用。

Hook 与 CI

  • 插件 pre-commit 钩子:通过 config.preCommit 配置一个 argv 命令,/commit 会在 git add 前运行它,失败即中止提交。

  • 仓库 commit-msg 钩子.githooks/commit-msg 强制 MAA 提交格式。启用:

    git config core.hooksPath .githooks
    
  • CI.github/workflows/ci.yml 在 push / PR 时跑 npm cinode --checknode --test

License

MIT