Skip to content

About

Contract suite: one-command install for dsh-legal-intake and dsh-legal-clause.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

dsh-contract-suite 横幅:右侧是两张成员存根(dsh-legal-intake 固定 0.1.0-alpha.10、dsh-legal-clause 固定 0.1.0-alpha.12),用同一组版本锁扣在一起;下方 cordis.patch.yml 的两行 insert 与 package.json 的两个精确 pin 逐项对账,绿色印章显示 2/2 resolved;数据取自 package.json 与 quickstart 合成样例

dsh-contract-suite

一条命令装齐合同法务两件套,装完立刻核对两个成员版本是否都能解析。

面向 DeepSeek Harness 的纯安装型套件:把合同需求收件(dsh-legal-intake)与条款/playbook 审查(dsh-legal-clause)钉在同一组精确版本上一起装;套件本身没有工具面,不读合同、不联网、不调用模型。

安装 · 配置 · FAQ · 简体中文 · English · Español · Português · हिन्दी

License DSH npm CI Node

Stars npm downloads dshfind DSH Market Gitee

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-contract-suite 结构图(对账表):两个成员各一行,按检查顺序对照三个面——装配面 cordis.patch.yml 的两行 insert(id 与 name 同名)、版本面 package.json#dependencies 的两个精确 pin、解析面 node_modules 或 manifest pin 加 profile 行的 enabled 状态;缝线把同一成员串过各列,任一面不一致都不算装全;底部注明 rows != deps → E_SUITE_PATCH_MISMATCH、pin drift → E_SUITE_VERSION_MISMATCH、manifest / sample missing → E_SUITE_MANIFEST_MISSING,汇总为 2/2 resolved、network: false

适合与不适合

  • 适合:在同一个 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 与金标逐字段比对。
  • 不写任何文件、不调用模型、不联网、不上传;不改动原合同。

三步上手

  1. 安装(四选一):

    # 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/ 即发布内容。

  2. 装配(默认即完成):bundle 自动应用 cordis.patch.yml,两行成员进入 profile:

    - insert:
        - id: dsh-legal-intake
          name: dsh-legal-intake
        - id: dsh-legal-clause
          name: dsh-legal-clause

    套件没有配置键;成员各自的配置见成员仓库 README。

  3. 验证已生效:

    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,成员版本与现在一致):

dsh-contract-suite quickstart 真实运行输出

截图记录(命令、时间、输出 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 渠道安装

FAQ

装不上,或装完少一个成员怎么办?

先跑 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;套件不提供额外开关。

与其他 DSH 插件的互操作性

  • 无共享服务/端口/存储域。 套件与成员不占用共享 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 可运行平台;只读本地文件
数据 不联网、不调用模型、不上传

生态与质量

开发

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)
Package npm
dsh-einvoice npm
dsh-docx-redline npm
dsh-policy-ledger npm
dsh-ghg npm
dsh-bankrec npm
dsh-ap-three-way npm
dsh-ifc-qto npm
dsh-qms-capa npm
dsh-legal-intake npm
dsh-legal-clause npm
dsh-freight-audit npm
dsh-hs-candidate npm
dsh-travel-recon npm
dsh-pim-lint npm
dsh-eval-pack npm
dsh-finops-suite npm
dsh-contract-suite npm
主线家族 — 87 个当前安装 spec
Package npm
dsh-aqua-input-check npm
dsh-archive-check npm
dsh-bid-ca-precheck npm
dsh-bid-qual-check npm
dsh-contract-stance npm
dsh-customs-doc-check npm
dsh-demurrage-ledger npm
dsh-drill-script-check npm
dsh-eia-guide-check npm
dsh-emergency-plan npm
dsh-essay-rubric-check npm
dsh-evidence-check npm
dsh-export-ctl-check npm
dsh-fmea-table-check npm
dsh-forecast-penalty npm
dsh-gongwen-flow-check npm
dsh-gongwen-word-check npm
dsh-guard-plan-qc npm
dsh-hazchem-check npm
dsh-hazplan-check npm
dsh-hidden-risk-map npm
dsh-hs-classify npm
dsh-icd-rule-check npm
dsh-lawcite-adapter npm
dsh-lc-doc-check npm
dsh-learning-gap-check npm
dsh-medrec-qc npm
dsh-nsfc-form-check npm
dsh-nurse-record-check npm
dsh-origin-rvc-check npm
dsh-ota-review-check npm
dsh-paper-doc-adapter npm
dsh-permit-report-check npm
dsh-pipeline-check npm
dsh-pleading-draft npm
dsh-policy-brief-draft npm
dsh-power-loss-split npm
dsh-power-ticket-check npm
dsh-ppap-check npm
dsh-protest-deadline npm
dsh-railway-window npm
dsh-repair-order-qc npm
dsh-review-reply-check npm
dsh-rulefile-check npm
dsh-safety-brief-check npm
dsh-site-log-check npm
dsh-soe-decision-check npm
dsh-soilwater-check npm
dsh-sop-sync-check npm
dsh-spc-gbt-adapter npm
dsh-tender-extract npm
dsh-tender-matrix npm
dsh-warranty-calc npm
dsh-auto-review npm
dsh-autotier npm
dsh-budget npm
dsh-cert-mcp npm
dsh-checkpoint-rewind npm
dsh-claude-move npm
dsh-click npm
dsh-composer-history npm
dsh-data-quality npm
dsh-defend npm
dsh-doublecheck npm
dsh-draw npm
dsh-fast npm
dsh-fund-research npm
dsh-industry-research npm
dsh-laya npm
dsh-library npm
dsh-local-ai npm
dsh-lsp-actions npm
dsh-mask npm
dsh-mcp-panel npm
dsh-memento npm
dsh-observe npm
dsh-output-styles npm
dsh-permission-rules npm
dsh-plugin-guide npm
dsh-plugin-upgrade npm
dsh-reach npm
dsh-research-report npm
dsh-score npm
dsh-session-sync npm
dsh-talk npm
dsh-test-drive npm
dsh-translate npm

License

LICENSE(Apache License 2.0)© 2026 dsh-contract-suite contributors

Apache-2.0 · 社区套件,与 DeepSeek 无关。

About

Contract suite: one-command install for dsh-legal-intake and dsh-legal-clause.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages