Skip to content

dsh-contract-suite

Verified

dsh-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.

npm CI License dsh-plugin docs Gitee dshfind DSH Market Node npm downloads

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 diagram for dsh-contract-suite: local input, plugin, local output.

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's package.json and cordis.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 0 means 2/2 resolved.
  • node samples/quickstart/run.mjs --json prints the golden JSON stored at samples/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

dsh-contract-suite quickstart real terminal output

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

  1. The install fails or a member is missing. Run node samples/quickstart/run.mjs. If the two member lists disagree it raises E_SUITE_PATCH_MISMATCH; align them as described in TROUBLESHOOTING.md, then reinstall.
  2. The version does not match the suite declaration. The suite pins exact member versions; upgrading one member alone raises E_SUITE_VERSION_MISMATCH. Remove node_modules in that profile and reinstall the suite.
  3. 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.
  4. 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 pack then dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz
  • 1024 store: npm i -g dsh1024 then dsh1024 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)
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
Mainline family — 92 current install specs
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
npm
npm
npm
npm
npm

License

Apache-2.0. See LICENSE, NOTICE, THIRD-PARTY-NOTICES.