dsh-contract-suite 0.1.0-alpha.3 → 0.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ ## [0.1.0-alpha.5] — 2026-11-01
4
+
5
+ ### Changed
6
+
7
+ - Documentation: five-language fixture/acceptance links now resolve on npm; added specific related-checker/tool links.
8
+ - Marketplace metadata: taxonomy category, archetype, domains and status; docs page now shows the same.
9
+ - Added `SUITE.md` with member pins, install/uninstall/upgrade semantics.
10
+
11
+ All notable changes to `dsh-contract-suite` are documented here. The format follows Keep a Changelog; this project uses alpha versions.
12
+
13
+ ## [0.1.0-alpha.4] — 2026-11-01
14
+
15
+ ### Added
16
+
17
+ - Five-language READMEs: English, 简体中文, Español, Português, हिन्दी.
18
+ - Local workflow SVG at `docs/assets/dsh-contract-suite-flow.svg`.
19
+ - Family cross-links (domain index, checker family, `dsh-kit`), compatibility, permissions, and related-work sections.
20
+ - Standard repository files: `SECURITY.md`, `PRIVACY.md`, `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, and `icon.svg`.
21
+
22
+ ### Changed
23
+
24
+ - README aligned with the PerryLink DSH checker/plugin family style; package remains public/synthetic, alpha, not GA.
25
+
26
+ ## [Earlier]
27
+
28
+ Earlier alpha builds are available from npm and GitHub Releases; this file starts at the family-standard documentation wave.
@@ -0,0 +1,31 @@
1
+ # Code of Conduct
2
+
3
+ ## Our pledge
4
+
5
+ We as members, contributors, and maintainers pledge to make participation in this project a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our standards
8
+
9
+ Examples of behavior that contributes to a positive environment:
10
+
11
+ - Demonstrating empathy and kindness toward other people.
12
+ - Being respectful of differing opinions, viewpoints, and experiences.
13
+ - Giving and gracefully accepting constructive feedback.
14
+ - Accepting responsibility and apologizing to those affected by our mistakes.
15
+ - Focusing on what is best for the community and the project.
16
+
17
+ Examples of unacceptable behavior:
18
+
19
+ - Sexualized language or imagery, and sexual attention or advances.
20
+ - Trolling, insulting or derogatory comments, and personal or political attacks.
21
+ - Public or private harassment.
22
+ - Publishing others' private information without explicit permission.
23
+ - Other conduct which could reasonably be considered inappropriate in a professional setting.
24
+
25
+ ## Enforcement
26
+
27
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to **novelnexusai@outlook.com**. All complaints will be reviewed and investigated promptly and fairly. Maintainers will respect the privacy and security of the reporter.
28
+
29
+ ## Attribution
30
+
31
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
@@ -0,0 +1,35 @@
1
+ # Contributing
2
+
3
+ Thanks for taking a look at `dsh-contract-suite`.
4
+
5
+ ## Before you start
6
+
7
+ - This is a **public/synthetic alpha** project, not a production product. Do not send customer data, customer documents, credentials, or private evidence.
8
+ - The project is alpha. Small, focused fixes and documentation corrections are welcome; large features should be discussed first.
9
+ - One pull request should do one thing. Keep generated evidence and unrelated formatting out of the diff.
10
+
11
+ ## Local checks
12
+
13
+ ```sh
14
+ pnpm install --frozen-lockfile
15
+ pnpm build && pnpm lint && pnpm typecheck && pnpm test
16
+ ```
17
+
18
+ For the suite repositories, also run:
19
+
20
+ ```sh
21
+ node scripts/check.mjs
22
+ npm pack --dry-run
23
+ ```
24
+
25
+ ## Pull requests
26
+
27
+ - Describe the user-visible problem and the failure before the fix.
28
+ - Include a regression test or a fixture-backed reproduction.
29
+ - Update `CHANGELOG.md` for user-visible changes.
30
+ - Do not add a network call, model call, telemetry, or a customer-data path without an explicit design discussion.
31
+ - By contributing, you agree your contribution is licensed under Apache-2.0.
32
+
33
+ ## Security
34
+
35
+ Do not open a public issue for a vulnerability; see `SECURITY.md`.
package/PRIVACY.md ADDED
@@ -0,0 +1,11 @@
1
+ # Privacy
2
+
3
+ `dsh-contract-suite` is a local, public/synthetic alpha project.
4
+
5
+ - It does **not** collect telemetry, analytics, or usage data.
6
+ - It does **not** upload files, call a model, or call a network service unless a tool in the README explicitly says so.
7
+ - Its fixtures are public/synthetic; no customer data is included.
8
+ - The package writes only to the local paths documented in its README and `DSH_*` environment variables.
9
+ - npm/GitHub/Gitee/GitCode process download and repository metadata under their own privacy policies; that is outside this package.
10
+
11
+ Questions: **novelnexusai@outlook.com**.
package/README-es.md CHANGED
@@ -48,6 +48,18 @@ Desinstalar:
48
48
  dsh plugin --profile <profile> remove dsh-contract-suite
49
49
  ```
50
50
 
51
+ Desinstalar la suite solo elimina la fila de la suite; los paquetes miembros siguen instalados. Elimínelos individualmente si es necesario. Véase [SUITE.md](SUITE.md).
52
+
53
+
54
+ ### Canales de instalación
55
+
56
+ npm es el canal recomendado; los demás sirven para fijar versión u offline.
57
+
58
+ - **npm (recomendado):** `dsh plugin --profile <profile> add dsh-contract-suite`
59
+ - **canal git:** `dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite`
60
+ - **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz`
61
+ - **tienda 1024:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-contract-suite`
62
+
51
63
  ## Qué hace
52
64
 
53
65
  Paquete contract-ops en un comando: recepción legal y revisión de cláusulas/playbook. Se ejecuta localmente en DeepSeek Harness. La tabla siguiente es la superficie exacta de herramientas; los ejemplos usan la interfaz real.
@@ -56,12 +68,12 @@ La entrada y la salida permanecen locales; no se sube nada.
56
68
 
57
69
  ## Miembros
58
70
 
59
- Los nombres y descripciones de herramientas se mantienen en inglés para coincidir con la salida runtime.
71
+ La suite solo instala estos miembros; no tiene superficie de herramientas propia. Las versiones están fijadas en `dependencies`.
60
72
 
61
73
  | Miembro | Versión |
62
74
  |---|---:|
63
- | `dsh-legal-intake` | `0.1.0-alpha.2` |
64
- | `dsh-legal-clause` | `0.1.0-alpha.4` |
75
+ | `dsh-legal-intake` | `0.1.0-alpha.6` |
76
+ | `dsh-legal-clause` | `0.1.0-alpha.8` |
65
77
 
66
78
  ## Inicio rápido
67
79
 
@@ -74,6 +86,20 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
74
86
 
75
87
  *Salida real de `dsh plugin add dsh-finops-suite` en un perfil temporal; la ruta es temporal.*
76
88
 
89
+ ## Ejemplos
90
+
91
+ ### Ejemplo respaldado por fixture
92
+
93
+ Comando:
94
+
95
+ ```sh
96
+ dsh plugin --profile <profile> add dsh-contract-suite
97
+ ```
98
+
99
+ Es una fila de aceptación respaldada por fixture, no una ejecución de cliente; no se inventa salida.
100
+
101
+ ![Real install output](docs/assets/dsh-contract-suite-install.gif)
102
+
77
103
  ## Límites
78
104
 
79
105
  - Solo público/sintético; sin datos ni evidencia de clientes.
@@ -83,7 +109,7 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
83
109
 
84
110
  ## Muestra pública
85
111
 
86
- Las fixtures públicas/sintéticas están en `test/fixtures/`; `ACCEPTANCE.csv` registra las comprobaciones con `counted=false`.
112
+ Las fixtures públicas/sintéticas están en `fixtures/`; `ACCEPTANCE.csv` registra las comprobaciones con `counted=false`.
87
113
 
88
114
  ## Desarrollo
89
115
 
@@ -143,6 +169,107 @@ Paquetes hermanos e índices de familia: [dsh-legal-intake](https://github.com/P
143
169
 
144
170
  </details>
145
171
 
172
+
173
+ <details>
174
+ <summary>Familia principal — 92 specs de instalación</summary>
175
+
176
+ | Package | npm |
177
+ |---|---|
178
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
179
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
180
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
181
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
182
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
183
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
184
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
185
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
186
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
187
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
188
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
189
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
190
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
191
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
192
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
193
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
194
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
195
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
196
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
197
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
198
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
199
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
200
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
201
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
202
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
203
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
204
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
205
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
206
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
207
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
208
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
209
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
210
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
211
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
212
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
213
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
214
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
215
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
216
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
217
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
218
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
219
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
220
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
221
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
222
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
223
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
224
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
225
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
226
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
227
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
228
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
229
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
230
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
231
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
232
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
233
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
234
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
235
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
236
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
237
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
238
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
239
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
240
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
241
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
242
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
243
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
244
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
245
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
246
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
247
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
248
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
249
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
250
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
251
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
252
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
253
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
254
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
255
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
256
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
257
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
258
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
259
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
260
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
261
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
262
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
263
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
264
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
265
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
266
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
267
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
268
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
269
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
270
+
271
+ </details>
272
+
146
273
  ## Licencia
147
274
 
148
275
  Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
package/README-hi.md CHANGED
@@ -48,6 +48,18 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
48
48
  dsh plugin --profile <profile> remove dsh-contract-suite
49
49
  ```
50
50
 
51
+ सूट हटाने से केवल सूट पंक्ति हटती है; सदस्य पैकेज इंस्टॉल रहते हैं। आवश्यकता हो तो उन्हें अलग से हटाएँ। देखें [SUITE.md](SUITE.md)।
52
+
53
+
54
+ ### इंस्टॉल चैनल
55
+
56
+ npm अनुशंसित है; बाकी वर्ज़न पिन या ऑफ़लाइन के लिए हैं।
57
+
58
+ - **npm (अनुशंसित):** `dsh plugin --profile <profile> add dsh-contract-suite`
59
+ - **git चैनल:** `dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite`
60
+ - **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz`
61
+ - **1024 स्टोर:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-contract-suite`
62
+
51
63
  ## यह क्या करता है
52
64
 
53
65
  एक-कमांड contract-ops बंडल: कानूनी अनुरोध अंतर्ग्रहण और क्लॉज़/प्लेबुक समीक्षा। DeepSeek Harness पर स्थानीय रूप से चलता है। नीचे दी गई तालिका ही सटीक टूल सतह है; उदाहरण वास्तविक कमांड का उपयोग करते हैं।
@@ -56,12 +68,12 @@ dsh plugin --profile <profile> remove dsh-contract-suite
56
68
 
57
69
  ## सदस्य
58
70
 
59
- टूल नाम और विवरण runtime आउटपुट से मेल खाने के लिए अंग्रेज़ी में रखे गए हैं।
71
+ यह सूट केवल इन सदस्यों को इंस्टॉल करता है; इसका अपना टूल सरफेस नहीं है। संस्करण `dependencies` में pinned हैं।
60
72
 
61
73
  | सदस्य | संस्करण |
62
74
  |---|---:|
63
- | `dsh-legal-intake` | `0.1.0-alpha.2` |
64
- | `dsh-legal-clause` | `0.1.0-alpha.4` |
75
+ | `dsh-legal-intake` | `0.1.0-alpha.6` |
76
+ | `dsh-legal-clause` | `0.1.0-alpha.8` |
65
77
 
66
78
  ## त्वरित शुरुआत
67
79
 
@@ -74,6 +86,20 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
74
86
 
75
87
  *अस्थायी प्रोफ़ाइल में वास्तविक `dsh plugin add dsh-finops-suite` आउटपुट; पथ अस्थायी है।*
76
88
 
89
+ ## उदाहरण
90
+
91
+ ### fixture-आधारित उदाहरण
92
+
93
+ कमांड:
94
+
95
+ ```sh
96
+ dsh plugin --profile <profile> add dsh-contract-suite
97
+ ```
98
+
99
+ यह fixture-आधारित स्वीकृति पंक्ति है, ग्राहक रन नहीं; कोई आउटपुट नहीं गढ़ा गया।
100
+
101
+ ![Real install output](docs/assets/dsh-contract-suite-install.gif)
102
+
77
103
  ## सीमाएँ
78
104
 
79
105
  - केवल सार्वजनिक/सिंथेटिक; ग्राहक डेटा या साक्ष्य नहीं।
@@ -83,7 +109,7 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
83
109
 
84
110
  ## सार्वजनिक नमूना
85
111
 
86
- सार्वजनिक/सिंथेटिक fixtures `test/fixtures/` में हैं; `ACCEPTANCE.csv` सार्वजनिक जाँचों को `counted=false` के साथ दर्ज करता है।
112
+ सार्वजनिक/सिंथेटिक fixtures `fixtures/` में हैं; `ACCEPTANCE.csv` सार्वजनिक जाँचों को `counted=false` के साथ दर्ज करता है।
87
113
 
88
114
  ## विकास
89
115
 
@@ -143,6 +169,107 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
143
169
 
144
170
  </details>
145
171
 
172
+
173
+ <details>
174
+ <summary>मुख्य परिवार — 92 वर्तमान इंस्टॉल spec</summary>
175
+
176
+ | Package | npm |
177
+ |---|---|
178
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
179
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
180
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
181
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
182
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
183
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
184
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
185
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
186
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
187
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
188
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
189
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
190
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
191
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
192
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
193
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
194
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
195
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
196
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
197
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
198
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
199
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
200
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
201
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
202
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
203
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
204
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
205
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
206
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
207
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
208
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
209
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
210
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
211
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
212
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
213
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
214
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
215
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
216
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
217
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
218
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
219
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
220
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
221
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
222
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
223
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
224
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
225
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
226
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
227
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
228
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
229
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
230
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
231
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
232
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
233
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
234
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
235
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
236
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
237
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
238
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
239
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
240
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
241
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
242
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
243
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
244
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
245
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
246
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
247
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
248
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
249
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
250
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
251
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
252
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
253
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
254
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
255
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
256
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
257
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
258
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
259
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
260
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
261
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
262
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
263
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
264
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
265
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
266
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
267
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
268
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
269
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
270
+
271
+ </details>
272
+
146
273
  ## लाइसेंस
147
274
 
148
275
  Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
package/README-pt.md CHANGED
@@ -48,6 +48,18 @@ Desinstalar:
48
48
  dsh plugin --profile <profile> remove dsh-contract-suite
49
49
  ```
50
50
 
51
+ Remover a suíte remove apenas a linha da suíte; os pacotes membros continuam instalados. Remova-os individualmente se necessário. Veja [SUITE.md](SUITE.md).
52
+
53
+
54
+ ### Canais de instalação
55
+
56
+ npm é o canal recomendado; os demais servem para fixar versão ou offline.
57
+
58
+ - **npm (recomendado):** `dsh plugin --profile <profile> add dsh-contract-suite`
59
+ - **canal git:** `dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite`
60
+ - **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz`
61
+ - **loja 1024:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-contract-suite`
62
+
51
63
  ## O que faz
52
64
 
53
65
  Pacote contract-ops em um comando: recepção jurídica e revisão de cláusulas/playbook. Executa localmente no DeepSeek Harness. A tabela abaixo é a superfície exata de ferramentas; os exemplos usam a interface real.
@@ -56,12 +68,12 @@ Entrada e saída permanecem locais; nada é enviado.
56
68
 
57
69
  ## Membros
58
70
 
59
- Nomes e descrições de ferramentas ficam em inglês para corresponder à saída runtime.
71
+ A suíte apenas instala estes membros; não tem superfície de ferramentas própria. As versões são fixadas em `dependencies`.
60
72
 
61
73
  | Membro | Versão |
62
74
  |---|---:|
63
- | `dsh-legal-intake` | `0.1.0-alpha.2` |
64
- | `dsh-legal-clause` | `0.1.0-alpha.4` |
75
+ | `dsh-legal-intake` | `0.1.0-alpha.6` |
76
+ | `dsh-legal-clause` | `0.1.0-alpha.8` |
65
77
 
66
78
  ## Início rápido
67
79
 
@@ -74,6 +86,20 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
74
86
 
75
87
  *Saída real de `dsh plugin add dsh-finops-suite` em um perfil temporário; o caminho é temporário.*
76
88
 
89
+ ## Exemplos
90
+
91
+ ### Exemplo com fixture
92
+
93
+ Comando:
94
+
95
+ ```sh
96
+ dsh plugin --profile <profile> add dsh-contract-suite
97
+ ```
98
+
99
+ É uma linha de aceitação com fixture, não uma execução de cliente; nenhuma saída é inventada.
100
+
101
+ ![Real install output](docs/assets/dsh-contract-suite-install.gif)
102
+
77
103
  ## Limites
78
104
 
79
105
  - Apenas público/sintético; sem dados ou evidência de clientes.
@@ -83,7 +109,7 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
83
109
 
84
110
  ## Amostra pública
85
111
 
86
- As fixtures públicas/sintéticas ficam em `test/fixtures/`; `ACCEPTANCE.csv` registra as verificações com `counted=false`.
112
+ As fixtures públicas/sintéticas ficam em `fixtures/`; `ACCEPTANCE.csv` registra as verificações com `counted=false`.
87
113
 
88
114
  ## Desenvolvimento
89
115
 
@@ -143,6 +169,107 @@ Pacotes irmãos e índices da família: [dsh-legal-intake](https://github.com/Pe
143
169
 
144
170
  </details>
145
171
 
172
+
173
+ <details>
174
+ <summary>Família principal — 92 specs de instalação</summary>
175
+
176
+ | Package | npm |
177
+ |---|---|
178
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
179
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
180
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
181
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
182
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
183
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
184
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
185
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
186
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
187
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
188
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
189
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
190
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
191
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
192
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
193
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
194
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
195
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
196
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
197
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
198
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
199
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
200
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
201
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
202
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
203
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
204
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
205
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
206
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
207
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
208
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
209
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
210
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
211
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
212
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
213
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
214
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
215
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
216
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
217
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
218
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
219
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
220
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
221
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
222
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
223
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
224
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
225
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
226
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
227
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
228
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
229
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
230
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
231
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
232
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
233
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
234
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
235
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
236
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
237
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
238
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
239
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
240
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
241
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
242
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
243
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
244
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
245
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
246
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
247
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
248
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
249
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
250
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
251
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
252
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
253
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
254
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
255
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
256
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
257
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
258
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
259
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
260
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
261
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
262
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
263
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
264
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
265
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
266
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
267
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
268
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
269
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
270
+
271
+ </details>
272
+
146
273
  ## Licença
147
274
 
148
275
  Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
package/README-zh.md CHANGED
@@ -48,6 +48,18 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
48
48
  dsh plugin --profile <profile> remove dsh-contract-suite
49
49
  ```
50
50
 
51
+ 卸载 suite 只移除 suite 行;成员包仍保持安装。如需移除,请逐个卸载。见 [SUITE.md](SUITE.md)。
52
+
53
+
54
+ ### 安装通道
55
+
56
+ 推荐 npm;其他通道用于固定版本或离线。
57
+
58
+ - **npm(推荐):** `dsh plugin --profile <profile> add dsh-contract-suite`
59
+ - **git 通道:** `dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite`
60
+ - **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz`
61
+ - **1024 商店:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-contract-suite`
62
+
51
63
  ## 它做什么
52
64
 
53
65
  一键安装合同法务套件:法务需求收件与条款/playbook 审查。 在 DeepSeek Harness 本地运行;下表就是实际工具面,示例使用真实命令面。
@@ -56,12 +68,12 @@ dsh plugin --profile <profile> remove dsh-contract-suite
56
68
 
57
69
  ## 成员
58
70
 
59
- 工具名和说明保留英文,以对应运行输出。
71
+ suite 只负责安装这些成员,本身没有工具面;版本由 `dependencies` 固定。
60
72
 
61
73
  | 成员 | 版本 |
62
74
  |---|---:|
63
- | `dsh-legal-intake` | `0.1.0-alpha.2` |
64
- | `dsh-legal-clause` | `0.1.0-alpha.4` |
75
+ | `dsh-legal-intake` | `0.1.0-alpha.6` |
76
+ | `dsh-legal-clause` | `0.1.0-alpha.8` |
65
77
 
66
78
  ## 快速开始
67
79
 
@@ -74,6 +86,20 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
74
86
 
75
87
  *临时 profile 中真实 `dsh plugin add dsh-finops-suite` 输出;路径为临时目录。*
76
88
 
89
+ ## 示例
90
+
91
+ ### fixture 支撑的示例
92
+
93
+ 命令:
94
+
95
+ ```sh
96
+ dsh plugin --profile <profile> add dsh-contract-suite
97
+ ```
98
+
99
+ 这是 fixture 支撑的验收行,不是客户运行;没有编造输出。
100
+
101
+ ![Real install output](docs/assets/dsh-contract-suite-install.gif)
102
+
77
103
  ## 边界
78
104
 
79
105
  - 仅公开/合成样例;不含客户数据或客户证据。
@@ -83,7 +109,7 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
83
109
 
84
110
  ## 公开样例
85
111
 
86
- 公开/合成 fixture 在 `test/fixtures/`;`ACCEPTANCE.csv` 记录公开检查,全部 `counted=false`。
112
+ 公开/合成 fixture 在 `fixtures/`;`ACCEPTANCE.csv` 记录公开检查,全部 `counted=false`。
87
113
 
88
114
  ## 开发
89
115
 
@@ -143,6 +169,107 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
143
169
 
144
170
  </details>
145
171
 
172
+
173
+ <details>
174
+ <summary>主线家族 — 92 个当前安装 spec</summary>
175
+
176
+ | Package | npm |
177
+ |---|---|
178
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
179
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
180
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
181
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
182
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
183
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
184
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
185
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
186
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
187
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
188
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
189
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
190
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
191
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
192
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
193
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
194
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
195
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
196
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
197
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
198
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
199
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
200
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
201
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
202
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
203
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
204
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
205
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
206
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
207
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
208
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
209
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
210
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
211
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
212
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
213
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
214
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
215
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
216
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
217
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
218
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
219
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
220
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
221
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
222
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
223
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
224
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
225
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
226
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
227
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
228
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
229
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
230
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
231
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
232
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
233
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
234
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
235
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
236
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
237
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
238
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
239
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
240
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
241
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
242
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
243
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
244
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
245
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
246
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
247
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
248
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
249
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
250
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
251
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
252
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
253
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
254
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
255
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
256
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
257
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
258
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
259
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
260
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
261
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
262
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
263
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
264
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
265
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
266
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
267
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
268
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
269
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
270
+
271
+ </details>
272
+
146
273
  ## 许可证
147
274
 
148
275
  Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
package/README.md CHANGED
@@ -48,6 +48,18 @@ Uninstall:
48
48
  dsh plugin --profile <profile> remove dsh-contract-suite
49
49
  ```
50
50
 
51
+ Removing the suite removes only the suite row; the member packages stay installed. Remove them individually if needed. See [SUITE.md](SUITE.md).
52
+
53
+
54
+ ### Install channels
55
+
56
+ npm is the recommended channel; the others are for pinning or offline use.
57
+
58
+ - **npm (recommended):** `dsh plugin --profile <profile> add dsh-contract-suite`
59
+ - **git channel:** `dsh plugin --profile <profile> add github:PerryLink/dsh-contract-suite`
60
+ - **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-contract-suite-<version>.tgz`
61
+ - **1024 store:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-contract-suite`
62
+
51
63
  ## What it does
52
64
 
53
65
  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.
@@ -56,12 +68,12 @@ Input and output stay local; nothing is uploaded.
56
68
 
57
69
  ## Members
58
70
 
59
- Tool names and descriptions are kept in English to match the runtime output.
71
+ The suite only installs these members; it has no tool surface of its own. Versions are pinned in `dependencies`.
60
72
 
61
73
  | Member | Version |
62
74
  |---|---:|
63
- | `dsh-legal-intake` | `0.1.0-alpha.2` |
64
- | `dsh-legal-clause` | `0.1.0-alpha.4` |
75
+ | `dsh-legal-intake` | `0.1.0-alpha.6` |
76
+ | `dsh-legal-clause` | `0.1.0-alpha.8` |
65
77
 
66
78
  ## Quick start
67
79
 
@@ -74,6 +86,20 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
74
86
 
75
87
  *Real `dsh plugin add dsh-finops-suite` output in a temporary profile; the path is temporary.*
76
88
 
89
+ ## Examples
90
+
91
+ ### Fixture-backed example
92
+
93
+ Command:
94
+
95
+ ```sh
96
+ dsh plugin --profile <profile> add dsh-contract-suite
97
+ ```
98
+
99
+ This is a fixture-backed acceptance row, not a customer run; no output is invented.
100
+
101
+ ![Real install output](docs/assets/dsh-contract-suite-install.gif)
102
+
77
103
  ## Limits
78
104
 
79
105
  - Public/synthetic only; no customer data or customer evidence.
@@ -83,7 +109,7 @@ dsh --profile <profile> --dump-config | grep dsh-contract-suite
83
109
 
84
110
  ## Public sample
85
111
 
86
- Public/synthetic fixtures live in `test/fixtures/`; `ACCEPTANCE.csv` records the public checks with `counted=false`.
112
+ Public/synthetic fixtures live in `fixtures/`; `ACCEPTANCE.csv` records the public checks with `counted=false`.
87
113
 
88
114
  ## Development
89
115
 
@@ -143,6 +169,107 @@ Sibling packages and family indexes: [dsh-legal-intake](https://github.com/Perry
143
169
 
144
170
  </details>
145
171
 
172
+
173
+ <details>
174
+ <summary>Mainline family — 92 current install specs</summary>
175
+
176
+ | Package | npm |
177
+ |---|---|
178
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
179
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
180
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
181
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
182
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
183
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
184
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
185
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
186
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
187
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
188
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
189
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
190
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
191
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
192
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
193
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
194
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
195
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
196
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
197
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
198
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
199
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
200
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
201
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
202
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
203
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
204
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
205
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
206
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
207
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
208
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
209
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
210
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
211
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
212
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
213
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
214
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
215
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
216
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
217
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
218
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
219
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
220
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
221
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
222
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
223
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
224
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
225
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
226
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
227
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
228
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
229
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
230
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
231
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
232
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
233
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
234
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
235
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
236
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
237
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
238
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
239
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
240
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
241
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
242
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
243
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
244
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
245
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
246
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
247
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
248
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
249
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
250
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
251
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
252
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
253
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
254
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
255
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
256
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
257
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
258
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
259
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
260
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
261
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
262
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
263
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
264
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
265
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
266
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
267
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
268
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
269
+ | **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
270
+
271
+ </details>
272
+
146
273
  ## License
147
274
 
148
275
  Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
package/SECURITY.md ADDED
@@ -0,0 +1,19 @@
1
+ # Security policy
2
+
3
+ ## Supported versions
4
+
5
+ The current `alpha` line of `dsh-contract-suite` is supported for security reports. Older alpha builds are not supported.
6
+
7
+ ## Reporting a vulnerability
8
+
9
+ Please **do not** open a public issue for a vulnerability. Email **novelnexusai@outlook.com** with:
10
+
11
+ - the package and version,
12
+ - a minimal reproduction,
13
+ - the impact you believe it has.
14
+
15
+ This is a public/synthetic alpha project. It has no bug bounty, no SLA, and no customer data. Reports are handled on a best-effort basis; a fix or a written “not affected / won't fix” answer will be recorded in the repository.
16
+
17
+ ## Scope
18
+
19
+ In scope: the published npm package, its Cordis patch, local file handling, and the documented tool surface. Out of scope: findings that require customer data, a modified package, or a service this project does not ship.
package/SUITE.md ADDED
@@ -0,0 +1,36 @@
1
+ # dsh-contract-suite — suite contract
2
+
3
+ **Kind:** install-only bundle. **No tools of its own.** Members keep their own tools, stores, versions and acceptance rows.
4
+
5
+ ## Members
6
+
7
+ | Member | Pinned version |
8
+ |---|---:|
9
+ | `dsh-legal-intake` | `0.1.0-alpha.6` |
10
+ | `dsh-legal-clause` | `0.1.0-alpha.8` |
11
+
12
+ ## Install
13
+
14
+ ```sh
15
+ dsh plugin --profile <profile> add dsh-contract-suite
16
+ ```
17
+
18
+ ## Uninstall
19
+
20
+ ```sh
21
+ dsh plugin --profile <profile> remove dsh-contract-suite
22
+ ```
23
+
24
+ Removing the suite removes only the suite row. Member packages remain installed; remove them individually if you no longer need them.
25
+
26
+ ## Upgrade
27
+
28
+ The suite pins exact member versions. A member bump requires a new suite release; do not assume a suite upgrade moves members independently.
29
+
30
+ ## Conflicts
31
+
32
+ No shared service, port or storage domain. Members are separate Cordis rows and can be installed individually.
33
+
34
+ ## Verification
35
+
36
+ The install smoke workflow installs the suite, asserts every member row is present, and removes the suite again. Member acceptance rows stay with the member repositories.
package/icon.svg ADDED
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img" aria-label="CO">
2
+ <rect width="128" height="128" rx="28" fill="#0b1020"/>
3
+ <rect x="10" y="10" width="108" height="108" rx="22" fill="#141b30" stroke="#6ea8fe" stroke-width="3"/>
4
+ <text x="64" y="76" text-anchor="middle" fill="#e8edf7" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="34" font-weight="700">CO</text>
5
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-contract-suite",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.5",
4
4
  "description": "One-command install for dsh-legal-intake and dsh-legal-clause.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -22,7 +22,14 @@
22
22
  "README-es.md",
23
23
  "README-pt.md",
24
24
  "README-hi.md",
25
- "docs/assets"
25
+ "docs/assets",
26
+ "SECURITY.md",
27
+ "PRIVACY.md",
28
+ "CODE_OF_CONDUCT.md",
29
+ "CONTRIBUTING.md",
30
+ "CHANGELOG.md",
31
+ "SUITE.md",
32
+ "icon.svg"
26
33
  ],
27
34
  "keywords": [
28
35
  "deepseek-harness",
@@ -45,7 +52,8 @@
45
52
  "access": "public"
46
53
  },
47
54
  "dependencies": {
48
- "dsh-legal-intake": "0.1.0-alpha.4",
49
- "dsh-legal-clause": "0.1.0-alpha.6"
50
- }
55
+ "dsh-legal-intake": "0.1.0-alpha.6",
56
+ "dsh-legal-clause": "0.1.0-alpha.8"
57
+ },
58
+ "icon": "icon.svg"
51
59
  }