dsh-diff-context: Provides read-only, compact Git diff context for DSH

前言

在 DeepSeek Harness(DSH)里做代码审查或改动的跟进时,模型需要知道「改了哪些文件、增删多少行、hunk 长什么样」。常见做法是整段粘贴 git diff,体积大、噪声多,还容易把未跟踪文件或无关上下文一并塞进去。下面介绍社区插件 dsh-diff-context(维护者 lengrufeng2008,分类:工作流):它在本机读取 Git 差异,输出结构化、有边界的 diff 摘要,且不调用模型、不发起网络请求。

这是什么

dsh-diff-context 的定位是:Read-only compact git diff context —— 文件列表、增删行数、hunk 文本,只读、紧凑。仓库地址:GitHub;社区目录页:SkillHub。SkillHub 与 DeepSeek / 幻方无官方从属关系,DSH 生态采用「一切皆插件」的思路,插件在独立站点收录。

许可证为 MIT(README Provenance);package.json 中版本 0.1.0,要求 Node.js >= 20。

核心功能

插件自述为小型独立 diff 读取器,能力以 README 为准:

  1. 工作区或暂存区 diff:通过 CLI 指定路径,可选 --json 或 --staged。
  2. 在 DSH 内调用:通过技能/指令使用 diff_context 针对当前仓库(见下文典型用法)。
  3. 边界明确(Limits):
    - 不包含未跟踪文件(No untracked files)
    - 不做语义或风险分析(No semantic/risk analysis)
    - 不执行测试(No test execution)
    - hunk 文本有长度上限;输出不是审查结论或批准(Bounded hunk text; not a review approval)

安装与启用

目录页「发送给 DeepSeek Harness 安装」区块提供可复制话术,核心是向 DSH 说明安装插件 lengrufeng2008/dsh-diff-context(页面以 请安装 DSH 插件 lengrufeng2008/dsh-diff-context 开头)。复制时以 SkillHub 插件页 当前全文为准。

安装前建议自行查看 GitHub 源码与 LICENSE,并知悉:插件以当前 DSH 进程的权限运行,会读取本机 Git 仓库状态。

package.json 中 dsh.bundle.patch 指向 ./plugin/cordis.patch.yml,由 DSH 插件打包机制集成;勿凭插件名自行拼接未在文档出现的 shell 安装命令。

典型用法

命令行(仓库根目录或指定路径)

README 中的可复现示例:

node bin/dsh-diff-context.mjs . --json
node bin/dsh-diff-context.mjs . --staged

第一行对工作区 diff 输出 JSON;第二行针对已暂存变更(--staged)。

在 DSH 会话中

Use diff_context on this repository.

经过上面的步骤,Harness 会走插件提供的只读 diff 上下文,而不是让你手动复制整段 git diff。

适用场景与注意

适合:需要在 Agent 工作流里快速注入「改了什么」的事实层上下文;本地审查、变更说明、与 DSH 技能链配合时,希望 diff 格式统一、体积受控。

不适合:依赖未跟踪文件清单、自动化风险打分、或跑测试再决定是否合并的场景 —— 这些均在 Limits 中明确排除。

维护者仓库提供测试入口:

npm test

(对应 node --test test/*.test.mjs。)

结尾

dsh-diff-context 把 Git diff 收成 DSH 可用的只读上下文:文件、增删、hunk,无模型、无网络。若你在工作流里反复手工贴 diff,可以按目录页指引安装后在会话里使用 diff_context。

  • 目录页:https://www.skillhub.cn/plugins/lengrufeng2008/dsh-diff-context
  • GitHub:https://github.com/lengrufeng2008/dsh-diff-context
羽毛球分组比赛记分
小程序二维码

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

Xiaoye