合同条款处理:构建条款树、按 12 项 playbook 映射、登记 playbook 并导出未决清单——5 个 `legal.*` 工具。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-legal-clause
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:PerryLink/dsh-legal-clause
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-legal-clause
官方仓库。 本包唯一官方仓库,由 PerryLink 维护;其他账号下的同名仓库与本项目无关。Apache-2.0。
合同条款树、playbook 映射与未解决报告。
状态:alpha / 公开合成 / partial / not counted / 非 GA。 不含客户证据、客户数据,也不作生产可用声明。
English · 简体中文 · Español · Português · हिन्दी
dsh plugin --profile <profile> add dsh-legal-clause
一句话
把一份合同文本拆成条款树,核对 12 项关键条款是否齐全并标出缺失。
适合 / 不适合
- 适合:10–200 条、UTF-8 纯文本的中英文合同;先看条款编号有没有重复/跳号,再看 12 类关键条款缺哪几项。
- 不适合:扫描件、PDF、Word 原件(要先转成纯文本);逐条法律意见或风险评级;把客户合同上传到任何地方(只在你的电脑上算)。
输入
- 格式:UTF-8 纯文本
.txt,每个条款单独一行、以1.、2.开头;也可以直接粘贴正文。 - 大小:单份 ≤ 1 MB(自带样例约 3 KB)。
- 来源:合同系统导出、Word 另存为纯文本,或手工粘贴;原文件不会被修改。
输出
- 终端摘要:条款数、未识别条款数、12 项条款命中/缺失、条款编号问题数。
- 条款树 JSON:写到
$DSH_HOME/storages/dsh-legal-clause/exports/<合同编号>.json;原文件不改。 - 样例金标:
samples/quickstart/expected/result.json(由真实运行产生)。
示例
直接复制下面这句:
我有一份 10 条的保密协议文本,帮我拆成条款树,看看 12 项关键条款缺哪几项。
用自带样例复跑并核对金标:
node samples/quickstart/run.mjs --check

截图就是上面这条命令的真实输出;金标比对结果见 samples/quickstart/expected/result.json。
权限
读:用户指定的 UTF-8 纯文本合同;不读其他目录 写:$DSH_HOME/storages/dsh-legal-clause/exports/;不改原文件 联网:否 外部系统:无
写文件的工具是 legal.clause_tree、legal.playbook_register、legal.export_tree,均标 R1(本地写);其余标 R0(只读)。
FAQ
1. 装不上怎么办?
确认 Node >=24.9 <25、DSH >=0.2.1-rc.3 <0.4.0,再执行 dsh plugin --profile <profile> add dsh-legal-clause。仍失败先看 TROUBLESHOOTING.md 第 1 条。
2. 结果不对怎么办?
先跑 node samples/quickstart/run.mjs --check:样例通过说明安装没问题,再检查合同是不是每个条款单独一行、以 1. 开头。本包只按编号和关键词做静态检查,不判断条款写得好不好。
3. 能处理我的文件吗?
能。单份 ≤1 MB 的 UTF-8 纯文本,本地读、本地算,不上传、不联网。PDF/Word 请先转纯文本;客户合同不要贴进 issue。
4. 会改我的原文件吗?
不会。只往 $DSH_HOME/storages/dsh-legal-clause/exports/ 写一份新的 JSON。
版本
0.1.0 · 25 项测试通过(node --test test/*.test.mjs)。
⭐ 如果它帮到了你,点个 star 会让下一个人更容易找到它;没有任何功能被 star 解锁。
工作流:本地输入 → 插件 → 本地输出;不需要调用模型。

本地真实测试运行;不调用模型或网络。
安装
安装并验证:
dsh plugin --profile <profile> add dsh-legal-clause
dsh --profile <profile> --dump-config | grep dsh-legal-clause
卸载:
dsh plugin --profile <profile> remove dsh-legal-clause
安装通道
推荐 npm;其他通道用于固定版本或离线。
- npm(推荐):
dsh plugin --profile <profile> add dsh-legal-clause - git 通道:
dsh plugin --profile <profile> add github:PerryLink/dsh-legal-clause - tarball:
pnpm packthendsh plugin --profile <profile> add ./dsh-legal-clause-<version>.tgz - 1024 商店:
npm i -g dsh1024thendsh1024 plugin --profile <profile> add dsh-legal-clause
它做什么
合同条款树、playbook 映射与未解决报告。 在 DeepSeek Harness 本地运行;下表就是实际工具面,示例使用真实命令面。
输入和输出都留在本地,不上传。
工具
工具名是稳定 API;说明已本地化。
| 工具 | 用途 | 风险 |
|---|---|---|
legal.playbook |
加载默认的 12 键 playbook | R0 |
legal.clause_tree |
从法律文本构建条款树 | R1 local write |
legal.playbook_register |
注册带版本的自定义 playbook 键 | R1 local write |
legal.playbook_check |
将已保存的条款树与 playbook 比对,报告缺失/多余的键 | R0 |
legal.export_tree |
将条款树导出为 JSON | R1 local write |
legal.clause_integrity |
检查条款编号重复/跳号/乱序 | R0 |
legal.coverage_check |
直接对文本计算 12 项条款覆盖率 | R0 |
快速开始
dsh plugin --profile <profile> add dsh-legal-clause
dsh --profile <profile> --dump-config | grep dsh-legal-clause
验收证据
fixture 支撑的示例
输入: fixtures/public/mit/sample_nda.txt
命令: pnpm test
验收行:
| req_id | metric | threshold | actual | pass | source | counted |
|---|---|---|---|---|---|---|
| SKU-10-A01 | 合同条款树(20) | 20/20 | 20 | true | public/synthetic | false |
这是 fixture 支撑的验收行,不是客户运行;没有编造输出。
边界
- 仅公开/合成样例;不含客户数据或客户证据。
- alpha/partial、not counted,不作 GA 或生产可用声明。
- 除非工具明确说明,否则不调用模型、不联网。
- 每个工具的精确边界见工具表与
ACCEPTANCE.csv。
公开样例
公开/合成 fixture 在 fixtures/;ACCEPTANCE.csv 记录公开检查,全部 counted=false。
开发
pnpm install --frozen-lockfile
pnpm build && pnpm lint && pnpm typecheck && pnpm test
兼容性
| 维度 | 状态 |
|---|---|
| Harness | dsh >=0.2.1-rc.3 <0.3.0 |
| Node | >=24.9.0 <25 |
| Platforms | All; local files only |
| 数据 | No network, no model call, no upload |
数据边界
- 本地运行;不联网、不调用模型、不上传。
- 只使用公开/合成 fixture;不含客户数据或客户证据。
- alpha/partial;not counted,不作 GA 或生产可用声明。
相关项目
兄弟包与家族索引: dsh-legal-intake · dsh-docx-redline · dsh-contract-suite
相关核查器(英文表): Related checkers.
家族
许可证
Apache-2.0. See LICENSE, NOTICE, THIRD-PARTY-NOTICES.
链接
同类插件
loopx-project/loopx#dsh-loopx-plugin★ 6537
LoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
Q00/ouroboros#integrations/dsh-plugin★ 6308
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。
chuspeeism/dashi-taskboard#deepseek-harness★ 3434
把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述文件连接,而不是使用固定端口。
NanmiCoder/dsh-agent-teams★ 2647
AgentTeams 多智能体团队。
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 2265
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。
Miaotofu01/Study-Mate★ 1307
你的AI学习搭档:定计划、讲知识、做项目,学透一门科目。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。