一条命令装齐合同法务两件套,装完立刻核对两个成员版本是否都能解析。
面向 DeepSeek Harness 的纯安装型套件:把合同需求收件(dsh-legal-intake)与条款/playbook 审查(dsh-legal-clause)钉在同一组精确版本上一起装;套件本身没有工具面,不读合同、不联网、不调用模型。
安装 · 配置 · FAQ · 简体中文 · English · Español · Português · हिन्दी
dsh plugin --profile <profile> add dsh-contract-suite社区套件,与 DeepSeek 官方无关。唯一官方仓库:https://github.com/PerryLink/dsh-contract-suite(Apache-2.0)。
dsh-contract-suite 是一个 install-only 套件:它不审合同,只负责把两个成员包一次性装进同一个 DSH profile,并把版本钉死。package.json#dependencies 固定 dsh-legal-intake(合同需求收件)与 dsh-legal-clause(条款/playbook 审查)的精确版本,cordis.patch.yml 固定插入两行成员。安装后跑自带离线样例,终端逐行给出成员、固定版本与解析结果——2/2 resolved 才算装全。全程不联网、不调用模型、不写文件。
- 适合:在同一个 DSH profile 里同时装合同录入与条款审查;需要把两个成员锁在同一组版本;装完先确认成员行一个不少。
- 不适合:只想装其中一件(直接装对应成员包更轻);想让 suite 自己审合同(suite 没有工具面,审查由成员包完成);需要 OCR、外部 CLM 或 e-sign 对接。
输入
- 安装动作本身不读业务单据。
- 自带样例只读
samples/quickstart/input/profile.json(合成 profile dump,< 1 KB)、本包package.json与cordis.patch.yml;不读其他目录、不读客户合同。 - 成员包各自的输入(合同文本、条款清单、playbook)见成员仓库 README;本 suite 不改变它们的输入输出。
输出
- 终端给出成员清单、固定版本、解析来源;2/2 表示两个成员都可解析。
node samples/quickstart/run.mjs --json输出金标 JSON,文件在samples/quickstart/expected/result.json;--check与金标逐字段比对。- 不写任何文件、不调用模型、不联网、不上传;不改动原合同。
-
安装(四选一):
# npm 通道(推荐,已发布版本) dsh plugin --profile <profile> add dsh-contract-suite # git 通道(最新 main) dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite # tarball 通道:本仓库 pnpm pack 后 dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz # 1024 商店通道 npm i -g dsh1024 && dsh1024 plugin --profile <profile> add dsh-contract-suite
无构建步骤——纯 ESM,
src/与samples/即发布内容。 -
装配(默认即完成):bundle 自动应用
cordis.patch.yml,两行成员进入 profile:- insert: - id: dsh-legal-intake name: dsh-legal-intake - id: dsh-legal-clause name: dsh-legal-clause
套件没有配置键;成员各自的配置见成员仓库 README。
-
验证已生效:
dsh --profile <profile> --dump-config | grep dsh-contract-suite node samples/quickstart/run.mjs
真实输出(2026-11-05 实跑,成员解析段):
dsh-contract-suite quickstart (offline) suite: dsh-contract-suite 0.1.0-alpha.10 profile: contract-demo (synthetic, 2/2 rows enabled) members: 2/2 resolved dsh-legal-intake 0.1.0-alpha.10 [manifest pin] profile=enabled dsh-legal-clause 0.1.0-alpha.12 [manifest pin] profile=enabled network: false (no fetch, no registry call)
卸载:dsh plugin --profile <profile> remove dsh-contract-suite(或从 profile patch 删掉该行)。卸载只移除 suite 行,成员包仍保持安装。
- 一键装齐 —— 一条
dsh plugin add同时装上两个成员,不需要分别记两个包名与版本。 - 版本共锁 —— 成员版本在
package.json#dependencies里精确固定;node_modules里成员版本一旦漂移就报E_SUITE_VERSION_MISMATCH,绝不静默混装。升级成员要等新套件版本,不要单独升级。 - 成员行对账 ——
cordis.patch.yml与dependencies双向核对:少一行、多一行、重复 id、id与name不匹配都会报E_SUITE_PATCH_MISMATCH;清单缺失或非法 JSON 报E_SUITE_MANIFEST_MISSING。 - 离线自检 ——
samples/quickstart/run.mjs只读三个文件,打印成员、固定版本与解析来源;--json给机器可读结果,--check与金标比对。零网络、零写入。 - 零工具面 —— 不注册工具、命令、slot、HTTP 路由或服务键,只插入两行成员;成员保持独立,可单独安装、单独卸载。
- 证据可复现 ——
ACCEPTANCE.csv记录公开验收行(counted标明是否计入),screenshots.json记录截图命令、时间与 SHA-256,node scripts/acceptance.mjs可重建验收行。
套件只负责安装这些成员,本身没有工具面;版本由 dependencies 固定。
| 成员 | 固定版本 |
|---|---|
dsh-legal-intake |
0.1.0-alpha.10 |
dsh-legal-clause |
0.1.0-alpha.12 |
套件当前版本:0.1.0-alpha.10(与 package.json 一致)。
把这句话粘进 DSH:
帮我装好合同法务两件套(合同录入、条款审查),确认两个成员包都能解析,并列出各自版本。
装好后在包目录跑自带样例(离线,不装依赖也能跑):
node samples/quickstart/run.mjs真实输出见上方「三步上手」第 3 步。截图是 2026-11-02 捕获的同一条命令的真实终端输出(当时 suite 版本为 0.1.0-alpha.8,成员版本与现在一致):
截图记录(命令、时间、输出 SHA-256)见 screenshots.json。
套件是 install-only bundle,没有 Config schema,也没有运行时可调键。可调的只有装配面与安装目标:
| 可调项 | 位置 | 当前值 | 说明 |
|---|---|---|---|
| 成员集合 | cordis.patch.yml |
dsh-legal-intake、dsh-legal-clause |
每个成员一行 id + name;必须与 dependencies 完全一致 |
| 成员版本 | package.json#dependencies |
0.1.0-alpha.10、0.1.0-alpha.12 |
精确版本;成员单独升级会触发 E_SUITE_VERSION_MISMATCH |
| 安装目标 | dsh plugin --profile <profile> |
由你指定 | 套件只装进指定 profile |
| 演示元数据 | package.json#dsh.demo |
sample / prompt / expect / screenshot |
声明离线样例、提示语与证据路径 |
成员各自的配置(合同文本、条款清单、playbook 等)在成员仓库 README;本套件不读取、不改写,也不会覆盖成员的配置行。
完整装配文件(cordis.patch.yml)
- insert:
- id: dsh-legal-intake
name: dsh-legal-intake
- id: dsh-legal-clause
name: dsh-legal-clause安装通道对比
| 通道 | 命令 | 适用 |
|---|---|---|
| npm(推荐) | dsh plugin --profile <profile> add dsh-contract-suite |
常规安装,取已发布版本 |
| git | dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite |
跟踪最新 main |
| tarball | pnpm pack 后 dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz |
离线、固定产物 |
| 1024 商店 | npm i -g dsh1024 后 dsh1024 plugin --profile <profile> add dsh-contract-suite |
经 1024 渠道安装 |
装不上,或装完少一个成员怎么办?
先跑 node samples/quickstart/run.mjs。如果两处成员列表不一致,会报 E_SUITE_PATCH_MISMATCH;按 TROUBLESHOOTING.md 把 cordis.patch.yml 与 dependencies 对齐后重装。如果是清单缺失或 tarball 不完整,会报 E_SUITE_MANIFEST_MISSING,在包根目录重跑或重新安装即可。
版本和套件声明的不一样怎么办?
套件固定成员版本,承诺的是一组固定版本。单独升级某个成员、或 node_modules 里残留旧版本,都会报 E_SUITE_VERSION_MISMATCH。删掉该 profile 下的 node_modules 后重装 suite;确实需要新成员版本时,等套件发布新的固定版本,不要只升成员。
suite 能直接审我的合同吗?
不能。suite 只负责一次装齐成员,本身没有工具面;合同录入与条款审查各自用成员包的工具。自带样例只用合成 profile,不读真实合同、不产生审查结论。
卸载 suite 会把成员也删掉吗?
不会。卸载只移除 suite 行,成员包保留;不需要时再逐个卸载。成员是独立的 Cordis 行,也可以完全不装 suite、单独安装。
数据存哪?会联网或上传吗?
安装本身不读业务单据;自带样例只读 samples/quickstart/input/profile.json、cordis.patch.yml 与 package.json 三个文件。不写文件、不联网、不上传、不调用模型。唯一会联网的是开发侧的 scripts/check.mjs(查 registry 确认成员版本存在),它不在安装与运行时执行。
- 读:
samples/quickstart/input/profile.json、cordis.patch.yml、package.json;不读其他目录 - 写:无(R0,只打印到终端;不写
$DSH_HOME、不改原文件) - 联网:否
- 外部系统:无
- 公开/合成 fixture only;不含客户数据,也不含客户证据。
- alpha/partial;not counted,不作 GA 或生产可用声明。
- 只安装,不处理内容。 套件没有工具面、没有命令、不注册 slot 或 HTTP 路由;合同内容始终留在成员包与你的本地环境。
- 公开/合成样例。 仓库内只有公开或合成的 fixture;不含客户数据、客户合同、客户证据,也不作生产可用声明。
- 失败关闭。 清单缺失、patch 与依赖不一致、成员版本漂移都在加载/自检期以明确的
E_错误码失败,不静默降级、不混装。 - 不改成员配置。 组合包 patch 只
insert自己的两行,不覆写内置行或成员行的config。 - 权限最小化。 安装不写
$DSH_HOME、不改原文件;成员工具各自的权限与数据边界见成员仓库与各自ACCEPTANCE。
- install-only。 套件本身没有工具面,不能审合同,也不做 OCR、外部 CLM 或 e-sign 对接;这些能力(如果有)属于成员包。
- alpha / partial / not counted。 不作 GA 或生产可用声明;公开验收行里
counted=false的项不计入正式验收。 - 版本由套件发布决定。 成员版本钉死后,单独升级成员会失败;要换成员版本必须等新套件发布。
- 样例金标停留在上一版。 仓内
samples/quickstart/expected/result.json记录的是0.1.0-alpha.8,而当前发布物是0.1.0-alpha.10;run.mjs --check与依赖它的测试会报金标不一致。以run.mjs --json的实际输出为准,重新生成金标即可恢复。此问题不影响安装与成员解析。 - 无配置键。 成员的可调项在各自 README;套件不提供额外开关。
- 无共享服务/端口/存储域。 套件与成员不占用共享 service、端口或 storage domain;成员是独立 Cordis 行。
- 无工具/命令/slot/路由注册。 套件不注册任何工具、命令、客户端 slot 或
webServer前缀,因此不存在重名与座位争抢。 - 只增不改。 组合包 patch 只
insert成员行,不覆写内置行或成员行的config。 - 可单独安装。 成员可以脱离套件单独装、单独卸;卸载 suite 不会带走成员。
- 渠道无关。 npm、git、tarball、1024 商店装出来的是同一组成员与版本。
| 维度 | 状态 |
|---|---|
| Harness | dsh >=0.2.1-rc.3 <0.3.0 |
| Node | >=24.9.0 <25 |
| 平台 | 所有 DSH 可运行平台;只读本地文件 |
| 数据 | 不联网、不调用模型、不上传 |
- 领域索引(包目录与安装入口)
- Checker 家族(检查器插件一览)
- 主线家族(安装 spec 与家族清单)
- Gitee 聚合镜像(以 GitHub 为准)
- dshfind 插件页(安装量与排名)
- DSH Market(已上架)
- 1024 商店渠道:先
npm i -g dsh1024,再dsh1024 plugin --profile <profile> add dsh-contract-suite(计入 deepseek1024.com 安装排行) - 证据文件:
ACCEPTANCE.csv·screenshots.json·samples/quickstart/expected/result.json
pnpm install --frozen-lockfile
pnpm quickstart # node samples/quickstart/run.mjs
pnpm test # node --test test/suite.test.mjs
pnpm gate # node scripts/gate.mjs(离线发布门禁)
pnpm check # node scripts/check.mjs(查 registry,CI 用)无构建步骤:发布物就是 src/ + samples/ + cordis.patch.yml。
| 路径 | 作用 |
|---|---|
src/members.mjs |
唯一运行时代码:读 package.json + cordis.patch.yml,校验成员并解析版本 |
samples/quickstart/ |
离线样例:input/profile.json、expected/result.json、run.mjs |
test/suite.test.mjs |
node --test:清单、样例、金标、错误分支 |
scripts/gate.mjs |
发布门禁:清单、样例、文档块、证据、金标、测试 |
scripts/check.mjs |
registry 安装冒烟(CI 用,唯一联网脚本) |
scripts/acceptance.mjs |
由真实本地检查重建 ACCEPTANCE.csv |
scripts/gen-readme-assets.py |
生成 README 配图(Python + Pillow) |
docs/assets/ |
流程图与 quickstart 截图 |
cordis.patch.yml |
成员装配面(两行 insert) |
配图由 scripts/gen-readme-assets.py 程序化生成:python scripts/gen-readme-assets.py 会输出 docs/assets/dsh-contract-suite-hero-{zh,en}-{light,dark}.webp(横幅)与 docs/assets/dsh-contract-suite-flow-v5-{light,dark}.svg(结构图,深浅两版,五语共用),旧版 dsh-contract-suite-flow-{light,dark}.svg 与单图 dsh-contract-suite-flow.svg 保留不动。脚本可重复执行。
五语 README:README.md 是中文源,README.en.md / README.es.md / README.pt.md / README.hi.md 同步。
Topics:dsh, deepseek-harness, dsh-plugin, dsh-bundle, perrylink, suite, legal
本项目是 PerryLink 维护的 DeepSeek Harness 插件家族成员(全部 Apache-2.0)。如果这个套件帮到了你,给个 star——它不解锁任何功能,但会让下一个人更容易找到它。
- dsh-legal-intake —— 合同需求收件成员。
- dsh-legal-clause —— 条款/playbook 审查成员。
- @PerryLink —— 创建者与维护者:套件契约、版本钉死、离线 quickstart、验收行与五语文档。
DSH 领域插件家族(15 个包 + 2 个 suite)
主线家族 — 87 个当前安装 spec
LICENSE(Apache License 2.0)© 2026 dsh-contract-suite contributors
Apache-2.0 · 社区套件,与 DeepSeek 无关。
