前言¶
在 DeepSeek Harness(DSH)里做完一轮开发,收尾汇报往往要手写:分支与 commit、测试构建是否跑过、交付物哈希、有没有把密钥一起带出去。写少了缺证据,写多了又容易把「本机当时是这样」说成「已经可复现交付」。社区里常见两类插件帮不上这个口径:2008924/dsh-progress-viz、133563825as-ai/dsh-api-dashboard 是给开发者自己看的实时状态面板;名字相近的 dsh-receipt 系列(如 bluechips-zhao/dsh-receipt、louisyeaaah/dsh-receipt)是会话或用量小票(token、耗时、成本等),也不回答「哪几条别人能复现、哪几条只在你机器上成立」。
下面介绍维护者 dingchenhui0618-arch 的 dsh-delivery-receipt(交付回执):项目收尾时按一次,把分支与 commit、测试与构建结果、关键交付物的尺寸与 sha256、密钥扫描结论汇成一张可对外展示的页面,并把每一条声明硬性归入「已验证 / 仅本地 / 未验证」三区;没有证据的板块留空,不补话。
这是什么¶
dsh-delivery-receipt 是 DSH 的交付回执插件(npm 包名 dsh-delivery-receipt,当前资料中版本为 0.1.0,MIT 许可证)。它把「交付陈述」和「证据强度」绑成一条可测试的规则:三区只看证据,不看措辞,也不把成败当成区划标准——测试失败、密钥扫描命中只要有证据,同样进「已验证」,只是展示上可能带警示色调。
| 区 | 判定(资料原文摘要) |
|---|---|
| 已验证 | 证据来自本次采集且能在别处复现:命令确实执行(退出码即事实)、文件哈希且文件已入版本库、扫描确实扫到文件、git 引用在本地记录的远端里 |
| 仅本地 | 只在本机成立:未提交改动、未推送提交、交付物未被 git 跟踪等 |
| 未验证 | 无证据或证据不足:命令未运行/超时、声明文件不存在、扫描 0 个文件,以及配置里 claims 等人写的任何一句话 |
插件不替你做「好不好」的结论,也不联网核实远端仓库是否 public、tag 是否已推送——这类信息会落在「仅本地」或「未验证」。
安装与启用¶
DSH 生态是「一切皆插件」;插件目录在独立社区站点展示,与 DeepSeek / 幻方无官方从属关系。安装前建议查看 GitHub 仓库 源码与许可证。插件以当前 DSH 进程权限运行,配置里的 tests / builds 会在生成回执时被执行,只应写入你信任的命令。
官方 README 给出的安装方式如下。
dsh plugin --profile <你的 profile> add dsh-delivery-receipt
也可从 GitHub 直装:
dsh plugin --profile <你的 profile> add github:dingchenhui0618-arch/dsh-delivery-receipt
装好后重启 DSH,对话视图里会出现「交付回执」Tab。运行环境要求 Node >= 20(见 package.json 的 engines)。
配置:项目根目录的 delivery-receipt.json¶
在项目根放置 delivery-receipt.json,定义要执行的测试/构建、交付物 glob、密钥扫描忽略项,以及仅作说明、永远进「未验证」区的 claims。
{
"project": "my-project",
"tests": [{ "name": "单元测试", "command": "node --test test/*.test.mjs" }],
"builds": [{ "name": "构建", "command": "node scripts/build.mjs" }],
"artifacts": ["docs/*.png"],
"scan": { "ignore": ["docs/big-demo.html"] },
"claims": [{ "label": "已内部评审", "value": "2026-10-12 通过" }],
"runCommands": true
}
常用字段含义(与 README 一致):
tests/builds:生成回执时执行,并把退出码、通过数、耗时写入回执;项可以是字符串或{ "name", "command" }。artifacts:交付物路径或模式(如docs/*.png),记录字节数、sha256、图片尺寸、是否已入版本库。scan.ignore:密钥扫描跳过的路径前缀。scan.allowMarker:逐行豁免标记,默认delivery-receipt:allow;豁免行数会出现在回执里,不是静默放过。claims:人工声明,永远进未验证区;能附证据的内容应写成 tests/builds/artifacts 等字段。runCommands:默认true;false时只采集不执行命令。cwd:可选,覆盖采集目录(相对路径按配置文件所在目录解析);HTTP 生成时带的cwd须在插件配置的白名单内。
典型用法¶
在 DSH 面板里生成¶
- 打开对话视图 →「交付回执」。
- 点击「生成回执」。面板会先列出本次将执行的命令,再按三区展示结果。
- 「打开回执页」得到自包含 HTML(可存文件或转发);「复制 Markdown」便于贴进 PR 或聊天。
不装 DSH 时用 CLI¶
仓库提供 scripts/receipt.mjs,可在项目目录直接跑:
node scripts/receipt.mjs # 打印摘要
node scripts/receipt.mjs --out receipt.html # 落盘自包含页面
node scripts/receipt.mjs --md # 打印 Markdown
node scripts/receipt.mjs --no-run # 只采集,不执行命令
示例回执见仓库 docs/receipt-example.md。
HTTP 接口(宿主内)¶
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /dsh-delivery-receipt/state |
当前配置、将要执行的命令、上次回执摘要 |
| POST | /dsh-delivery-receipt/generate |
生成一次回执(body 可带 {"cwd": "..."},须在白名单内) |
| GET | /dsh-delivery-receipt/receipt.html |
自包含回执页(未生成时有明确提示页) |
| GET | /dsh-delivery-receipt/receipt.md |
同内容的 Markdown |
| GET | /dsh-delivery-receipt/receipt.json |
回执对象(未生成时 404) |
安全边界(README 强调):要执行的命令只来自 delivery-receipt.json 或插件配置的 receiptConfig,不来自 HTTP 请求体;可采集目录受 cwd 与 roots 白名单约束;不联网;密钥命中只记文件与行号、规则名,不写匹配内容;回执页无外链脚本与 CDN,便于离线保存。
适用场景与注意¶
适合谁:需要在项目收尾、对内对外交接时,用同一套规则区分「可复现事实」「仅本机事实」和「无证据陈述」的团队或个人;希望测试、构建、交付物哈希与简易密钥扫描结论落在一张页面上,而不是每次手写 Markdown。
它不做什么(资料原文):不判断好坏;不替你核实远端;某个板块没证据就空着;内置正则扫描降低误发凭据的概率,不等于完备安全审计。
维护者在 README 中披露:仓库自身 node --test(64 个测试)、构建与 dogfood 回执有记录,但尚未在运行中的 DSH 里端到端安装验证——面板相关能力除单元测试外,截图示例来自 CLI 生成的回执页。使用前请自行在目标环境验证。
结尾¶
dsh-delivery-receipt 把交付汇报从「写一段话」改成「按证据分区、缺证留空」的可重复流程,和进度可视化、会话小票类插件解决的问题不同。若你要在 DSH 里接这条收尾链路,可从社区目录页与 GitHub 仓库入手核对安装与配置。
- 目录页:https://www.skillhub.cn/plugins/dingchenhui0618-arch/dsh-delivery-receipt
- GitHub:https://github.com/dingchenhui0618-arch/dsh-delivery-receipt