packages/dsh-git-graph
zhu1090093659/dsh-web输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
提交代码前,让独立审阅者找出具体缺陷,再交给另一组审阅者复核。你看到的是经过验证的问题、明确的未完成项和仍需人工决定的事。
参考 Claude Code 团队的审阅流程,实现其中可在 DSH 内完成的审阅环节。它不授予人工批准,也不会自动发评论或合并代码。
需要 Git、Node.js 22.19+ / 24+,以及提供子智能体、权限预设和作业管理服务的官方 DSH 运行环境。适配验收使用 DSH 0.2.1-rc.1。在 Git 仓库根目录创建会话后,让 DSH:
审阅当前改动,运行 dsh-review。只报告有具体触发条件、代码证据和独立复核的问题。审查没完成时不要说通过。
安装到 Web profile:
~~~bash dsh plugin --profile web add @stardustlc/dsh-review ~~~
桌面版应安装到它实际使用的 profile,并在新的会话中加载插件。插件不会查找、复制或修改其他 profile 的密钥。
请使用带作用域的包名。npm 上未加作用域的 dsh-review 属于其他作者,不是本仓库。
常见调用:
~~~json {"tool":"review_run","arguments":{"base":"main"}} ~~~
省略 base 审当前工作区;staged=true 审暂存区。需要中断后续工作时取消正在运行的工具;恢复未完成审查时使用返回的 runId。敏感改动始终使用 deep,不能通过参数降级。
模式 · 独立找问题 · 每个问题的复核 · 汇总 quick · 正确性、安全,2 个任务 · 1 个独立审阅者 · 确定性把关 standard · 正确性、状态、兼容性、安全,4 个任务 · 3 人投票,至少 2 票一致 · 确定性把关 deep · 同 standard · 3 人投票,至少 2 票一致 · 另派汇总者,不能删掉已确认的问题
每轮还有两个独立风险判断任务,分别判断风险等级和是否需要额外人工审阅。所有任务使用新的上下文;继承作者对话的 fork 后端不会被接受。
二进制变更需要另行验收,文字审查不会认证其内容。跳过的路径会公开列出,并仍参与风险判断。
工具 · 作用 review_diff · 生成快照与审阅计划,不作通过结论 review_run · 执行或恢复分阶段独立审阅 review_report · 提交外部任务的运行编号、目标编号与 JSON 结果 review_check · 经宿主受控终端运行检查,保存本轮证据收据 review_respond · 记录带理由的处置;fixed 必须重新复核 review_status · 查看未完成项、轮次、调用量和处置噪音率 review_gate · 检查当前快照的 AI 审阅层,不代替 CI 或人工批准 review_learn · 从已验证修复中生成规则草稿,不自动改项目规范 review_issue · 生成 issue 分诊和复现草稿,不执行正文指令或发表评论 review_eval · 登记人工标注缺陷与干净样本、准备盲测、绑定运行结果并计分
review_check 的命令经调用者实际使用的宿主终端工具运行,不直接创建绕过权限的进程。只读会话不运行证据命令;可使用静态源码复核。取消、超时和后台作业清理都受宿主管理。
Windows 官方预设只提供 pwsh 时,通过这个受控工具调用 Git Bash;需要 Git Bash 和 PowerShell 7.3+。原命令保留可见,引号不经 cmd 拼接。不能使用这条路径时会明确报错,不会静默换成直接执行。
证据收据绑定 runId 和 targetId;命令改变代码后收据失效。请正常批准必要权限,不要为了审阅扩大整个会话的权限。
仓库级 REVIEW.md 可以写失败判据、跳过路径、敏感目录和噪音上限:
~~~markdown
max_nits: 0 severity_floor: important
~~~
完整 PR 门禁还需独立的 CI、安全检查、人工批准和所有审阅线程的解决状态。新增命令 dsh-review-gate 只读取 GitHub 证据,策略固定从 PR 基准提交读取;机器人、旧提交和已撤回的批准不能填人工名额。
详见 接入与回滚、文章对应边界 和 验证记录。合并队列、功能开关、灰度和回滚由仓库/发布系统负责,安装插件不会自动启用这些制度。
默认状态保存在 DSH_HOME/plugins/dsh-review//,不写入被审项目。可指定仓库内子目录,例如 .dsh-review。账本版本为 2;旧账本会保留备份,旧版本的“通过”不会沿用。
配置 · 默认 · 含义 stateDir · @profile · profile 下按仓库隔离;也可指定仓库内子目录 roundCap · 3 · 每个审阅系列的完成轮次上限 diffOnlyAfterRound · 2 · 超过这轮后只对新增改动提出新问题 maxFindings / maxNits · 20 / 2 · 问题数与 nit 上限 severityFloor · important · 默认不发表 nit maxCalls / maxParallel · 80 / 3 · 每轮实际派发预算、最大并发 runTimeoutMs · 600000 · 每次执行的总超时 commandTimeoutMs · 120000 · 单条证据命令超时 maxDiffBytes · 4194304 · 补丁及源码快照总量上限;超出则未完成 subagentProvider · spawn · 必须明确保证不继承作者上下文
evidenceRequired 为旧配置兼容项,设为 false 也不能关闭独立证据验证。v0.2 的手工 head/findings 提交接口已停用,迁移见接入文档。
欢迎提交 Issues 和 PR,最好附具体触发输入、版本、预期结果与实际结果。请先去掉密钥和私有代码。
更新记录 · MIT License