dsh-contract-suite
Verifieddsh-contract-suite · v0.1.0-alpha.9 · Apache-2.0
One-command install for dsh-legal-intake and dsh-legal-clause.
Install
dsh plugin add dsh-contract-suite Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Readme
dsh-contract-suite
Official repository. The only official repository of this package, maintained by PerryLink. Same-name repositories under other accounts are not affiliated. Apache-2.0.
One-command install for dsh-legal-intake and dsh-legal-clause.
Status: alpha / public-synthetic / partial / not counted / not GA. No customer evidence, customer data, or production-readiness claim.
English · 简体中文 · Español · Português · हिन्दी
dsh plugin --profile <profile> add dsh-contract-suite
⭐ If this helps, a star makes it easier for the next person to find it. Nothing is gated behind it.
Workflow: local input → plugin → local output. No model call is required.
One line
Install the two contract packages in one command and verify every member version resolves.
Best for / not for
- Best for: installing dsh-legal-intake and dsh-legal-clause into one DSH profile; keeping both members on one pinned version set; confirming no member row is missing right after install.
- Not for: installing only one package (install that member directly); expecting the suite itself to review contracts (it has no tool surface — the members do); OCR, external CLM, or e-sign integration.
Input
- The install itself reads no business documents.
- The bundled sample reads
samples/quickstart/input/profile.json(synthetic profile dump, < 1 KB), plus this package'spackage.jsonandcordis.patch.yml. It reads no other directory and no customer contract. - Each member's own input (contract text, clause lists, playbook) is documented in that member's README; the suite does not change it.
Output
- The terminal prints the member list, pinned version, and where each version was resolved from; exit code
0means 2/2 resolved. node samples/quickstart/run.mjs --jsonprints the golden JSON stored atsamples/quickstart/expected/result.json.- No files are written, no model is called, no network is used, nothing is uploaded, and source contracts are untouched.
Example
Paste this into DSH:
帮我装好合同法务两件套(合同录入、条款审查),确认两个成员包都能解析,并列出各自版本。
Then run the bundled sample from the package directory (offline, no dependency install needed):
node samples/quickstart/run.mjs
Real output:
dsh-contract-suite quickstart (offline)
suite: dsh-contract-suite 0.1.0-alpha.8
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)
golden: samples/quickstart/expected/result.json matches
quickstart ok

The screenshot is the real output of the command above; the golden file and screenshot metadata are in screenshots.json.
Permissions
Read: samples/quickstart/input/profile.json, cordis.patch.yml, package.json; no other directory
Write: none (R0 — terminal output only; no $DSH_HOME writes, source files untouched)
Network: no
External systems: none
FAQ
- The install fails or a member is missing. Run
node samples/quickstart/run.mjs. If the two member lists disagree it raisesE_SUITE_PATCH_MISMATCH; align them as described in TROUBLESHOOTING.md, then reinstall. - The version does not match the suite declaration. The suite pins exact member versions; upgrading one member alone raises
E_SUITE_VERSION_MISMATCH. Removenode_modulesin that profile and reinstall the suite. - Can the suite review my contracts? No — the suite only installs members. Use the member packages for intake and clause review; the bundled sample uses a synthetic profile and reads no real contract.
- Does uninstalling the suite remove the members? No. Removing the suite removes only its row; member packages stay installed until you remove them.
Version
Current version: 0.1.0-alpha.8 (matches package.json).
Local verification (2026-11-02):
node --test test/suite.test.mjs # 8 passed, 0 failed
node samples/quickstart/run.mjs --check # golden matches
Install
Install and verify:
dsh plugin --profile <profile> add dsh-contract-suite
dsh --profile <profile> --dump-config | grep dsh-contract-suite
Uninstall:
dsh plugin --profile <profile> remove dsh-contract-suite
Removing the suite removes only the suite row; the member packages stay installed. Remove them individually if needed. See SUITE.md.
Install channels
npm is the recommended channel; the others are for pinning or offline use.
- npm (recommended):
dsh plugin --profile <profile> add dsh-contract-suite - git channel:
dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite - tarball:
pnpm packthendsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz - 1024 store:
npm i -g dsh1024thendsh1024 plugin --profile <profile> add dsh-contract-suite
What it does
One-command install for dsh-legal-intake and dsh-legal-clause. Runs locally on DeepSeek Harness. The table below is the exact tool surface; the examples use the real command surface.
Input and output stay local; nothing is uploaded.
Members
The suite only installs these members; it has no tool surface of its own. Versions are pinned in dependencies.
| Member | Version |
|---|---|
dsh-legal-intake |
0.1.0-alpha.10 |
dsh-legal-clause |
0.1.0-alpha.12 |
Post-install self-check
Run the bundled sample after install to confirm both members resolve:
node samples/quickstart/run.mjs
Each member's tool surface lives in its own repository; the suite ships no tools.
Limits
- Public/synthetic only; no customer data or customer evidence.
- Alpha/partial, not counted, no GA or production-readiness claim.
- No model or network call unless a tool explicitly says so.
- The exact per-tool boundaries are in the table and
ACCEPTANCE.csv.
Public sample
Public/synthetic fixtures live in fixtures/; ACCEPTANCE.csv records the public checks with counted=false.
Development
pnpm install --frozen-lockfile
pnpm build && pnpm lint && pnpm typecheck && pnpm test
Compatibility
| Surface | Status |
|---|---|
| Harness | dsh >=0.2.1-rc.3 <0.3.0 |
| Node | >=24.9.0 <25 |
| Platforms | All; local files only |
| Data | No network, no model call, no upload |
Permissions & data
- Runs locally; no network, no model call, no upload.
- Public/synthetic fixtures only; no customer data, no customer evidence.
- Alpha/partial; not counted, no GA or production-readiness claim.
Related work
Sibling packages and family indexes: dsh-legal-intake · dsh-legal-clause
Family
DSH domain plugin family (15 packages + 2 suites)
Mainline family — 92 current install specs
License
Apache-2.0. See LICENSE, NOTICE, THIRD-PARTY-NOTICES.