← 返回列表
未验证
在 DeepSeek Harness 中简化最近改动的代码,保持原有功能。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/18 · 已提供中文文档
DSH Simplify — 为 DeepSeek Harness 提供限定 Git 变更范围的代码简化,支持未跟踪文件、跨平台路径与可靠的 Git 异常处理 · Git-scoped code simplification with untracked-file support, cross-platform paths, and reliable Git error handling for DeepSeek Harness
综合分
30.6
GitHub 分
30.6
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add MichengAI/dsh-simplify该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-commands@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-subprocess-local用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DSH Simplify 在 DeepSeek Harness 中简化最近改动的代码,保持原有功能。 English · 安装 · 使用 · 故障排查 · 更新日志 · Apache-2.0 许可证:Apache-2.0 npm package DSH Web Plugin Node.js 22.19+ DSH Simplify 是社区维护的 DeepSeek Harness 插件,并非 DeepSeek AI 官方产品。在当前会话中输入 /simplify,即可请 Agent 整理 Git 改动范围内的代码,改善可读性并保持原有功能。支持 DSH Web 及集成 DSH Web 的桌面应用。 命令文案及提示词使用简体中文。 功能概览 写完一轮代码后,用 /simplify 请当前 Agent 整理刚改过的部分,改善可读性并保持原有功能。 - 聚焦本次改动:按 Git 变更范围整理代码,避免把需求扩大到无关文件。 - 覆盖新增文件:新文件可以整份审查,也支持尚无首次提交的仓库。 - 选择适合的范围:默认检查工作区改动,也可仅检查暂存区、指定提交或路径。 - 提交后也能回看:默认模式在工作区没有改动时,可回看最近一次提交。 - 范围不可靠时停止:遇到冲突、文件变化或读取失败时返回原因,便于修正后重试。 命令提交的是简化任务;是否完成修改和验证,应以 Agent 后续回复和实际差异为准。 DSH 产品生态 想使用桌面工作台,可下载 DSH Codex Desktop;已有 DeepSeek Harness 环境,可按各项目 README 按需安装。以下列出 11 个自研插件;桌面端实际随附范围以对应版本的发行说明和内置清单为准。 | 插件 | 你可以用它做什么 | | --- | --- | | Codex UI | 整理项目与会话、搜索任务、跳转对话轮次 | | Agency Agents | 按任务选择并召唤专业角色 | | Skills Manager | 统一查找、启停、创建和导入本机技能 | | Archive Manager | 搜索、恢复或清理已归档会话 | | IM Connect | 从消息平台下任务、收回复 | | Automation | 按计划执行任务,查看每次运行的结果 | | BTW | 在当前上下文中临时旁问,不打断主任务 | | Simplify | 用 /simplify 整理 Git 改动范围内的代码 | | PUA | 引导 Agent 在失败时换方法、查原因,并在完成前验证结果 | | Code Review | 用 /review 发起独立 Agent 代码审查,在当前会话接收报告 | | Codex Pet | 通过桌面宠物查看会话提醒、处理工具审批和问题回答 | 前置条件 - 已安装 DeepSeek Harness,可在终端执行 dsh,宿主提供 commands 和 subprocess 服务。 - 宿主 peer 依赖声明为 0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2。 - Node.js >= 22.19,PATH 中可执行 Git。 - 当前会话关联本地 Git 项目。 安装 当前版本为 0.1.7。以下命令使用 web profile,请按实际环境替换。安装前停用其他注册 /simplify 的插件。 让 Agent 帮你安装(推荐) 把下面这段话发给任意能够执行本机终端命令的 Agent。将 web 替换为实际使用的 profile;安装完成后,在 DSH 中使用本插件。 请将 DSH 插件 @michengai/dsh-simplify 安装到本机 web profile,执行:dsh plugin --profile web add @michengai/dsh-simplify@0.1.7 --registry=https://registry.npmjs.org/。安装后执行 dsh --profile web --dump-config,确认配置包含 michengai-simplify,并告诉我如何重新加载 DSH 和开始使用。 手动从 npm 安装 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 dsh plugin --profile web add @michengai/dsh-simplify@0.1.7 --registry=https://registry.npmjs.org/ 从本地安装包安装 从 GitHub Release 下载已发布的 tgz,然后在安装包所在目录执行: [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 dsh plugin --profile web add .\michengai-dsh-simplify-0.1.7.tgz --ignore-scripts 重新加载与确认 请在当前任务结束后安装或更新,桌面应用可能自动重载。若未生效,使用桌面应用的重新加载功能,或重启 dsh web;仅刷新浏览器不够。 执行 dsh --profile web --dump-config,确认包含 michengai-simplify。分享完整配置前先检查其中是否包含敏感设置。然后在 Git 项目会话中输入 /simplify。 使用 写完一轮代码后,在当前 Git 项目会话中输入: /simplify 等待 Agent 完成修改与验证,再检查实际 diff。需要缩小范围时,可使用以下参数。 选择审查范围 | 输入 | 范围 | | --- | --- | | /simplify | HEAD 到当前工作区的净改动,包含未跟踪新增文件;确实没有改动时回看最近一次提交 | | /simplify --staged | 仅暂存区;所选暂存文件另有未暂存改动时拒绝执行 | | /simplify --ref=main | 指定提交到当前工作区的差异,包含未跟踪文件;不回退其他提交 | | /simplify --ref HEAD | 显式 HEAD 范围,不启动上一提交回看 | | /simplify src/a.ts "src/中文 文件.ts" | 仅指定文件的改动;未跟踪文件按整文件处理 | | /simplify src | 展开目录中的变更文件 | | /simplify -- --special.ts | 选项终止符后可使用以连字符开头的路径 | - 路径相对当前会话目录,支持仓库内绝对路径;提示词统一使用仓库根目录相对路径。 - 支持单双引号组合带空格路径,反斜杠按路径字符保留;不执行 Shell 展开、通配符或命令替换。 - --ref 支持分支、标签和单个提交表达式,不支持 a..b / a...b;不能与 --staged 混用。 - 没有首次提交时,所选范围内的文件视为新增文件,允许整文件整理:默认包含暂存与未跟踪文件,--staged 仅包含暂存文件。可指定文件或目录缩小范围,文件数量和大小限制仍然生效。只有一个提交且工作区干净时直接返回无变更。 - 上一提交回看相对于 HEAD 第一父提交;merge commit 不做多父合并审查。 命令结果 | 返回结果 | 含义 | | --- | --- | | 已提交 N 个文件的简化审查 | 审查任务已入队,不代表 Agent 已完成编辑或测试。 | | 没有可简化的当前代码行 | 没有可操作的当前行,不发起模型请求;结果可能附带跳过明细。 | | 错误信息 | 无法可靠建立审查范围,不发起模型请求;修正所报问题后再试。 | 故障排查 回车后输入框清空,但没有回答。 空审查不会启动 Agent。已收到的用户反馈中,后端返回成功,但两份 CHANGELOG 被判定没有可简化的当前行而跳过;部分宿主界面未明显展示这类命令结果,反馈可见性仍待排查。后端成功不等于界面已经显示结果。 当前目录不是 Git 仓库。 在正确的 Git 项目会话中执行,或自行初始化项目仓库。插件不会自动初始化仓库、暂存或提交。 暂存文件还有未暂存改动。 先自行保存或处理这些改动,再运行 --staged;也可用默认 /simplify 审查当前工作区的净改动。插件不会自动重置或 stash。 安装器提示 peer 依赖缺失。 官方包可能由 DSH 宿主运行时提供。应核实实际模块解析版本和后端加载结果,不要直接向 profile 重复安装宿主包;版本仍需满足 package.json。 超时、输出超限或快照过期。 使用具体文件或目录缩小范围,并在并发编辑结束后重试。 执行边界 插件只执行 Git 只读查询和读取本地文件,不自动 git add、提交、重置或存储工作区。Git 参数通过 DSH subprocess 的 argv 传递,不依赖 PowerShell/Bash 引用规则。 修改范围是提示词约束,不是文件写入权限隔离。 Agent 按宿主工具和用户授权执行修改及测试;本插件没有拦截其他工具的写入,也不能保证排队后文件不再变化。不要把“已提交审查”理解成“已完成简化”。 实现针对本地文件系统与本地 subprocess 同一工作区,未验证远程 subprocess 或远程文件系统组合。 查看 Git 范围收集、快照校验与资源限制 仓库和索引依据会话工作目录及 Git worktree 元数据确定;子进程不继承 GIT_DIR、GIT_WORK_TREE、GIT_INDEX_FILE 等仓库局部环境或临时配置覆盖,保留普通用户与仓库配置。Git 返回的仓库必须包含当前会话工作目录。 Git 失败、信号终止、取消、超时、输出截断、未解决冲突和过期快照都会阻止提示词投递,不将它们当作无改动。补丁解析器按正文核对每块的新旧行数,拒绝残缺正文,并排除上下文行。显式路径不存在、被忽略或位于仓库外时返回错误。 删除文件、纯删除行、仅重命名、二进制文件、非普通文件及大于 5 MiB 的文件不进入可编辑范围,并说明跳过原因。子模块不纳入 diff 收集。已检测到的改动全部被跳过时,不会因此扩大到其他范围。最多收集 200 个变更文件,单次 Git 最多 30 秒,整个范围收集最多 60 秒(进程终止还有最多 1 秒宽限);Git stdout 上限 8 MiB、stderr 64 KiB,提示词上限 128 KiB。 所有文件累计最多 4,096 个离散行范围,审查清单元数据(含跳过明细)最多 128 KiB;收集过程中超限即停止,不截取部分文件提交审查。连续修改行按一个范围计数。最终提示词仍独立检查 128 KiB 上限;超限时请指定文件或目录缩小范围。 --staged 先确认所选暂存文件与工作区一致,并在入队前再次核对暂存区、HEAD 和文件 SHA-256,避免把 index 行号直接用于不同的工作区内容。Agent 编辑前还需复核内容快照;内容变化时停止该文件的简化并重新运行命令。 卸载 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 dsh plugin --profile web remove @michengai/dsh-simplify 若桌面应用未自动重载,手动重新加载 DSH。卸载不会撤销 Agent 已产生的代码修改。 二次开发 从源码安装 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 git clone https://github.com/MichengAI/dsh-simplify.git Set-Location dsh-simplify npm ci --ignore-scripts npm run check dsh plugin --profile web add . --ignore-scripts 入口为 lib/index.js,必须先构建再安装;profile 使用本地链接时需要保留源码目录。 验证 开发依赖固定为 DSH 0.1.6-alpha.2。 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 npm ci --ignore-scripts npm run check npm pack --dry-run 测试使用真实临时 Git 仓库,覆盖路径、未跟踪文件、回退、冲突、暂存区错位、快照过期及执行错误。测试夹具位于 .test-tmp,正常结束时自动清理。 tests/host.test.mjs 默认使用项目 node_modules 中的 DSH 运行时;也可通过 DSH_RUNTIME_ROOT 指定其 node_modules 路径。检测到时执行隔离的真实服务注册、Git 执行、消息投递与卸载测试;缺失时明确标为跳过。测试不调用模型,不修改已安装 profile。 GitHub Actions 在 Windows、Linux、macOS 上检查类型与测试,并通过 DSH_RUNTIME_ROOT 使用开发依赖中的宿主运行时。发布正式 GitHub Release 后,publish.yml 先完成三平台检查,再核对版本、双语发布说明及安装包内容,通过 npm Trusted Publishing 发布,并把同一 tgz 上传到 Release。npm 中的工作流文件名需配置为 publish.yml,并允许 npm publish;不需要发布令牌。 | 目录 | 职责 | | --- | --- | | src/args.ts | 命令参数解析 | | src/exec.ts | DSH subprocess 与 Git 错误、取消、超时处理 | | src/git.ts | Git 范围选择、NUL 解析、行号与快照复核 | | src/prompt.ts | 编辑任务、范围与验证提示词 | | src/command.ts、src/index.ts | 命令处理、投递及生命周期 | | tests | 回归与宿主集成验证 | 许可证 Apache-2.0,Copyright 2026 MichengAI。
扫码进群