dsh-docx-redline 0.1.0-alpha.7 → 0.1.0-alpha.8
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 +24 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/CONTRIBUTING.md +35 -0
- package/PRIVACY.md +11 -0
- package/README-es.md +134 -7
- package/README-hi.md +134 -7
- package/README-pt.md +134 -7
- package/README-zh.md +134 -7
- package/README.md +128 -1
- package/SECURITY.md +19 -0
- package/icon.svg +5 -0
- package/package.json +10 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `dsh-docx-redline` are documented here. The format follows Keep a Changelog; this project uses alpha versions.
|
|
4
|
+
|
|
5
|
+
## [0.1.0-alpha.8] — 2026-11-01
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Five-language READMEs: English, 简体中文, Español, Português, हिन्दी.
|
|
10
|
+
- Local workflow SVG at `docs/assets/dsh-docx-redline-flow.svg`.
|
|
11
|
+
- Family cross-links (domain index, checker family, `dsh-kit`), compatibility, permissions, and related-work sections.
|
|
12
|
+
- Standard repository files: `SECURITY.md`, `PRIVACY.md`, `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, and `icon.svg`.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- README aligned with the PerryLink DSH checker/plugin family style; package remains public/synthetic, alpha, not GA.
|
|
17
|
+
|
|
18
|
+
### Maintenance
|
|
19
|
+
|
|
20
|
+
- Frozen on 2026-10-31: no new features; only genuine breakage fixes.
|
|
21
|
+
|
|
22
|
+
## [Earlier]
|
|
23
|
+
|
|
24
|
+
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>.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for taking a look at `dsh-docx-redline`.
|
|
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 **frozen** (2026-10-31). Only genuine breakage fixes are considered; do not open feature PRs.
|
|
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-docx-redline` 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
|
@@ -54,6 +54,16 @@ Desinstalar:
|
|
|
54
54
|
dsh plugin --profile <profile> remove dsh-docx-redline
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
|
|
58
|
+
### Canales de instalación
|
|
59
|
+
|
|
60
|
+
npm es el canal recomendado; los demás sirven para fijar versión u offline.
|
|
61
|
+
|
|
62
|
+
- **npm (recomendado):** `dsh plugin --profile <profile> add dsh-docx-redline`
|
|
63
|
+
- **canal git:** `dsh plugin --profile <profile> add github:PerryLink/dsh-docx-redline`
|
|
64
|
+
- **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-docx-redline-<version>.tgz`
|
|
65
|
+
- **tienda 1024:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-docx-redline`
|
|
66
|
+
|
|
57
67
|
## Qué hace
|
|
58
68
|
|
|
59
69
|
Inspección de estructura DOCX, roundtrip byte a byte y reemplazo limitado de texto en un solo run. Se ejecuta localmente en DeepSeek Harness. La tabla siguiente es la superficie exacta de herramientas; los ejemplos usan la interfaz real.
|
|
@@ -62,14 +72,14 @@ La entrada y la salida permanecen locales; no se sube nada.
|
|
|
62
72
|
|
|
63
73
|
## Herramientas
|
|
64
74
|
|
|
65
|
-
Los nombres
|
|
75
|
+
Los nombres de herramientas son la API estable; las descripciones están localizadas.
|
|
66
76
|
|
|
67
|
-
| Herramienta | Propósito
|
|
77
|
+
| Herramienta | Propósito | Riesgo |
|
|
68
78
|
|---|---|---|
|
|
69
|
-
| `doc.inspect` |
|
|
70
|
-
| `doc.roundtrip` |
|
|
71
|
-
| `doc.replace_text` |
|
|
72
|
-
| `redline.diff` |
|
|
79
|
+
| `doc.inspect` | Leer un ZIP/XML `.docx` local, guardar el original e informar el SHA-256 de cada parte y los recuentos de estructura (párrafos, tablas, encabezados/pies, notas al pie, comentarios, campos, marcadores, numeración, secciones, estilos) | R0 read + local store |
|
|
80
|
+
| `doc.roundtrip` | Copiar el original byte a byte y comparar el hash de cada parte; devolver un informe sin diferencias | R1 local write |
|
|
81
|
+
| `doc.replace_text` | Reemplazar un run `w:t` exacto; fallar de forma segura cuando el texto no es único o abarca varios runs | R1 local write |
|
|
82
|
+
| `redline.diff` | Diff de párrafos a nivel de texto entre dos archivos DOCX inspeccionados; sin escritura de OOXML | R0 |
|
|
73
83
|
|
|
74
84
|
## Inicio rápido
|
|
75
85
|
|
|
@@ -78,6 +88,22 @@ dsh plugin --profile <profile> add dsh-docx-redline
|
|
|
78
88
|
dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
79
89
|
```
|
|
80
90
|
|
|
91
|
+
## Ejemplos
|
|
92
|
+
|
|
93
|
+
### Ejemplo respaldado por fixture
|
|
94
|
+
|
|
95
|
+
Entrada: [`fixtures/public/python-docx/blk-containing-table.docx`](fixtures/public/python-docx/blk-containing-table.docx)
|
|
96
|
+
|
|
97
|
+
Comando: `pnpm test`
|
|
98
|
+
|
|
99
|
+
Fila de aceptación:
|
|
100
|
+
|
|
101
|
+
| req_id | metric | threshold | actual | pass | source | counted |
|
|
102
|
+
|---|---|---|---|---|---|---|
|
|
103
|
+
| SKU-01-A01 | 无改动往返通过率(20 合成) | 100% | 1 | true | public/synthetic | false |
|
|
104
|
+
|
|
105
|
+
*Es una fila de aceptación respaldada por fixture, no una ejecución de cliente; no se inventa salida.*
|
|
106
|
+
|
|
81
107
|
## Límites
|
|
82
108
|
|
|
83
109
|
- Solo público/sintético; sin datos ni evidencia de clientes.
|
|
@@ -87,7 +113,7 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
87
113
|
|
|
88
114
|
## Muestra pública
|
|
89
115
|
|
|
90
|
-
Las fixtures públicas/sintéticas están en `
|
|
116
|
+
Las fixtures públicas/sintéticas están en `fixtures/`; `ACCEPTANCE.csv` registra las comprobaciones con `counted=false`.
|
|
91
117
|
|
|
92
118
|
## Desarrollo
|
|
93
119
|
|
|
@@ -147,6 +173,107 @@ Paquetes hermanos e índices de familia: [dsh-ifc-qto](https://github.com/PerryL
|
|
|
147
173
|
|
|
148
174
|
</details>
|
|
149
175
|
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>Familia principal — 92 specs de instalación</summary>
|
|
179
|
+
|
|
180
|
+
| Package | npm |
|
|
181
|
+
|---|---|
|
|
182
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
183
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
184
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
185
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
186
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
187
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
188
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
189
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
190
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
191
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
192
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
193
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
194
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
195
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
196
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
197
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
198
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
199
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
200
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
201
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
202
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
203
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
204
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
205
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
206
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
207
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
208
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
209
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
210
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
211
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
212
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
213
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
214
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
215
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
216
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
217
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
218
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
219
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
220
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
221
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
222
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
223
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
224
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
225
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
226
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
227
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
228
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
229
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
230
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
231
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
232
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
233
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
234
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
235
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
236
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
237
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
238
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
239
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
240
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
241
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
242
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
243
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
244
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
245
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
246
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
247
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
248
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
249
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
250
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
251
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
252
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
253
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
254
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
255
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
256
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
257
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
258
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
259
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
260
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
261
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
262
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
263
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
264
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
265
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
266
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
267
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
268
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
269
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
270
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
271
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
272
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
273
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
274
|
+
|
|
275
|
+
</details>
|
|
276
|
+
|
|
150
277
|
## Licencia
|
|
151
278
|
|
|
152
279
|
Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
|
package/README-hi.md
CHANGED
|
@@ -54,6 +54,16 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
54
54
|
dsh plugin --profile <profile> remove dsh-docx-redline
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
|
|
58
|
+
### इंस्टॉल चैनल
|
|
59
|
+
|
|
60
|
+
npm अनुशंसित है; बाकी वर्ज़न पिन या ऑफ़लाइन के लिए हैं।
|
|
61
|
+
|
|
62
|
+
- **npm (अनुशंसित):** `dsh plugin --profile <profile> add dsh-docx-redline`
|
|
63
|
+
- **git चैनल:** `dsh plugin --profile <profile> add github:PerryLink/dsh-docx-redline`
|
|
64
|
+
- **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-docx-redline-<version>.tgz`
|
|
65
|
+
- **1024 स्टोर:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-docx-redline`
|
|
66
|
+
|
|
57
67
|
## यह क्या करता है
|
|
58
68
|
|
|
59
69
|
DOCX संरचना निरीक्षण, बाइट-सटीक राउंडट्रिप और सीमित एक-रन टेक्स्ट रिप्लेस। DeepSeek Harness पर स्थानीय रूप से चलता है। नीचे दी गई तालिका ही सटीक टूल सतह है; उदाहरण वास्तविक कमांड का उपयोग करते हैं।
|
|
@@ -62,14 +72,14 @@ DOCX संरचना निरीक्षण, बाइट-सटीक र
|
|
|
62
72
|
|
|
63
73
|
## टूल्स
|
|
64
74
|
|
|
65
|
-
टूल नाम
|
|
75
|
+
टूल नाम स्थिर API हैं; विवरण स्थानीयकृत हैं।
|
|
66
76
|
|
|
67
|
-
| टूल | उद्देश्य
|
|
77
|
+
| टूल | उद्देश्य | जोखिम |
|
|
68
78
|
|---|---|---|
|
|
69
|
-
| `doc.inspect` |
|
|
70
|
-
| `doc.roundtrip` |
|
|
71
|
-
| `doc.replace_text` |
|
|
72
|
-
| `redline.diff` |
|
|
79
|
+
| `doc.inspect` | स्थानीय `.docx` ZIP/XML पढ़ें, मूल प्रति संग्रहीत करें और भाग SHA-256 तथा संरचना गणनाएँ (पैराग्राफ़, तालिकाएँ, हेडर/फ़ुटर, फ़ुटनोट, टिप्पणियाँ, फ़ील्ड, बुकमार्क, नंबरिंग, सेक्शन, स्टाइल) रिपोर्ट करें | R0 read + local store |
|
|
80
|
+
| `doc.roundtrip` | मूल प्रति को बाइट-दर-बाइट कॉपी करें और प्रत्येक भाग का हैश तुलना करें; शून्य-अंतर रिपोर्ट लौटाएँ | R1 local write |
|
|
81
|
+
| `doc.replace_text` | एक सटीक `w:t` रन बदलें; टेक्स्ट अद्वितीय न हो या कई रन में फैला हो तो fail closed करें | R1 local write |
|
|
82
|
+
| `redline.diff` | दो निरीक्षित DOCX फ़ाइलों के बीच टेक्स्ट-स्तरीय पैराग्राफ़ अंतर; कोई OOXML लेखन नहीं | R0 |
|
|
73
83
|
|
|
74
84
|
## त्वरित शुरुआत
|
|
75
85
|
|
|
@@ -78,6 +88,22 @@ dsh plugin --profile <profile> add dsh-docx-redline
|
|
|
78
88
|
dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
79
89
|
```
|
|
80
90
|
|
|
91
|
+
## उदाहरण
|
|
92
|
+
|
|
93
|
+
### fixture-आधारित उदाहरण
|
|
94
|
+
|
|
95
|
+
इनपुट: [`fixtures/public/python-docx/blk-containing-table.docx`](fixtures/public/python-docx/blk-containing-table.docx)
|
|
96
|
+
|
|
97
|
+
कमांड: `pnpm test`
|
|
98
|
+
|
|
99
|
+
स्वीकृति पंक्ति:
|
|
100
|
+
|
|
101
|
+
| req_id | metric | threshold | actual | pass | source | counted |
|
|
102
|
+
|---|---|---|---|---|---|---|
|
|
103
|
+
| SKU-01-A01 | 无改动往返通过率(20 合成) | 100% | 1 | true | public/synthetic | false |
|
|
104
|
+
|
|
105
|
+
*यह fixture-आधारित स्वीकृति पंक्ति है, ग्राहक रन नहीं; कोई आउटपुट नहीं गढ़ा गया।*
|
|
106
|
+
|
|
81
107
|
## सीमाएँ
|
|
82
108
|
|
|
83
109
|
- केवल सार्वजनिक/सिंथेटिक; ग्राहक डेटा या साक्ष्य नहीं।
|
|
@@ -87,7 +113,7 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
87
113
|
|
|
88
114
|
## सार्वजनिक नमूना
|
|
89
115
|
|
|
90
|
-
सार्वजनिक/सिंथेटिक fixtures `
|
|
116
|
+
सार्वजनिक/सिंथेटिक fixtures `fixtures/` में हैं; `ACCEPTANCE.csv` सार्वजनिक जाँचों को `counted=false` के साथ दर्ज करता है।
|
|
91
117
|
|
|
92
118
|
## विकास
|
|
93
119
|
|
|
@@ -147,6 +173,107 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
147
173
|
|
|
148
174
|
</details>
|
|
149
175
|
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>मुख्य परिवार — 92 वर्तमान इंस्टॉल spec</summary>
|
|
179
|
+
|
|
180
|
+
| Package | npm |
|
|
181
|
+
|---|---|
|
|
182
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
183
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
184
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
185
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
186
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
187
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
188
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
189
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
190
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
191
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
192
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
193
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
194
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
195
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
196
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
197
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
198
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
199
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
200
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
201
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
202
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
203
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
204
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
205
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
206
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
207
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
208
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
209
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
210
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
211
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
212
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
213
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
214
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
215
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
216
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
217
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
218
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
219
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
220
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
221
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
222
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
223
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
224
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
225
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
226
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
227
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
228
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
229
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
230
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
231
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
232
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
233
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
234
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
235
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
236
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
237
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
238
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
239
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
240
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
241
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
242
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
243
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
244
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
245
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
246
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
247
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
248
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
249
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
250
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
251
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
252
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
253
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
254
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
255
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
256
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
257
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
258
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
259
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
260
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
261
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
262
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
263
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
264
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
265
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
266
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
267
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
268
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
269
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
270
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
271
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
272
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
273
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
274
|
+
|
|
275
|
+
</details>
|
|
276
|
+
|
|
150
277
|
## लाइसेंस
|
|
151
278
|
|
|
152
279
|
Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
|
package/README-pt.md
CHANGED
|
@@ -54,6 +54,16 @@ Desinstalar:
|
|
|
54
54
|
dsh plugin --profile <profile> remove dsh-docx-redline
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
|
|
58
|
+
### Canais de instalação
|
|
59
|
+
|
|
60
|
+
npm é o canal recomendado; os demais servem para fixar versão ou offline.
|
|
61
|
+
|
|
62
|
+
- **npm (recomendado):** `dsh plugin --profile <profile> add dsh-docx-redline`
|
|
63
|
+
- **canal git:** `dsh plugin --profile <profile> add github:PerryLink/dsh-docx-redline`
|
|
64
|
+
- **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-docx-redline-<version>.tgz`
|
|
65
|
+
- **loja 1024:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-docx-redline`
|
|
66
|
+
|
|
57
67
|
## O que faz
|
|
58
68
|
|
|
59
69
|
Inspeção de estrutura DOCX, roundtrip byte a byte e substituição limitada de texto em um único run. Executa localmente no DeepSeek Harness. A tabela abaixo é a superfície exata de ferramentas; os exemplos usam a interface real.
|
|
@@ -62,14 +72,14 @@ Entrada e saída permanecem locais; nada é enviado.
|
|
|
62
72
|
|
|
63
73
|
## Ferramentas
|
|
64
74
|
|
|
65
|
-
|
|
75
|
+
Os nomes das ferramentas são a API estável; as descrições estão localizadas.
|
|
66
76
|
|
|
67
|
-
| Ferramenta | Finalidade
|
|
77
|
+
| Ferramenta | Finalidade | Risco |
|
|
68
78
|
|---|---|---|
|
|
69
|
-
| `doc.inspect` |
|
|
70
|
-
| `doc.roundtrip` |
|
|
71
|
-
| `doc.replace_text` |
|
|
72
|
-
| `redline.diff` |
|
|
79
|
+
| `doc.inspect` | Lê um ZIP/XML `.docx` local, armazena o original e relata o SHA-256 das partes mais contagens de estrutura (parágrafos, tabelas, cabeçalhos/rodapés, notas de rodapé, comentários, campos, marcadores, numeração, seções, estilos) | R0 read + local store |
|
|
80
|
+
| `doc.roundtrip` | Copia o original byte a byte e compara o hash de cada parte; retorna um relatório de diferença zero | R1 local write |
|
|
81
|
+
| `doc.replace_text` | Substitui um run `w:t` exato; recusa a operação quando o texto não é único ou abrange vários runs | R1 local write |
|
|
82
|
+
| `redline.diff` | Diff de parágrafos em nível de texto entre dois arquivos DOCX inspecionados; sem gravação de OOXML | R0 |
|
|
73
83
|
|
|
74
84
|
## Início rápido
|
|
75
85
|
|
|
@@ -78,6 +88,22 @@ dsh plugin --profile <profile> add dsh-docx-redline
|
|
|
78
88
|
dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
79
89
|
```
|
|
80
90
|
|
|
91
|
+
## Exemplos
|
|
92
|
+
|
|
93
|
+
### Exemplo com fixture
|
|
94
|
+
|
|
95
|
+
Entrada: [`fixtures/public/python-docx/blk-containing-table.docx`](fixtures/public/python-docx/blk-containing-table.docx)
|
|
96
|
+
|
|
97
|
+
Comando: `pnpm test`
|
|
98
|
+
|
|
99
|
+
Linha de aceitação:
|
|
100
|
+
|
|
101
|
+
| req_id | metric | threshold | actual | pass | source | counted |
|
|
102
|
+
|---|---|---|---|---|---|---|
|
|
103
|
+
| SKU-01-A01 | 无改动往返通过率(20 合成) | 100% | 1 | true | public/synthetic | false |
|
|
104
|
+
|
|
105
|
+
*É uma linha de aceitação com fixture, não uma execução de cliente; nenhuma saída é inventada.*
|
|
106
|
+
|
|
81
107
|
## Limites
|
|
82
108
|
|
|
83
109
|
- Apenas público/sintético; sem dados ou evidência de clientes.
|
|
@@ -87,7 +113,7 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
87
113
|
|
|
88
114
|
## Amostra pública
|
|
89
115
|
|
|
90
|
-
As fixtures públicas/sintéticas ficam em `
|
|
116
|
+
As fixtures públicas/sintéticas ficam em `fixtures/`; `ACCEPTANCE.csv` registra as verificações com `counted=false`.
|
|
91
117
|
|
|
92
118
|
## Desenvolvimento
|
|
93
119
|
|
|
@@ -147,6 +173,107 @@ Pacotes irmãos e índices da família: [dsh-ifc-qto](https://github.com/PerryLi
|
|
|
147
173
|
|
|
148
174
|
</details>
|
|
149
175
|
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>Família principal — 92 specs de instalação</summary>
|
|
179
|
+
|
|
180
|
+
| Package | npm |
|
|
181
|
+
|---|---|
|
|
182
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
183
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
184
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
185
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
186
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
187
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
188
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
189
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
190
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
191
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
192
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
193
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
194
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
195
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
196
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
197
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
198
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
199
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
200
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
201
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
202
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
203
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
204
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
205
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
206
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
207
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
208
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
209
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
210
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
211
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
212
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
213
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
214
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
215
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
216
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
217
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
218
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
219
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
220
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
221
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
222
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
223
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
224
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
225
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
226
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
227
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
228
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
229
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
230
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
231
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
232
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
233
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
234
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
235
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
236
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
237
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
238
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
239
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
240
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
241
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
242
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
243
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
244
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
245
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
246
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
247
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
248
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
249
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
250
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
251
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
252
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
253
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
254
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
255
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
256
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
257
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
258
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
259
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
260
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
261
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
262
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
263
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
264
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
265
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
266
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
267
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
268
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
269
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
270
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
271
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
272
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
273
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
274
|
+
|
|
275
|
+
</details>
|
|
276
|
+
|
|
150
277
|
## Licença
|
|
151
278
|
|
|
152
279
|
Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
|
package/README-zh.md
CHANGED
|
@@ -54,6 +54,16 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
54
54
|
dsh plugin --profile <profile> remove dsh-docx-redline
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
|
|
58
|
+
### 安装通道
|
|
59
|
+
|
|
60
|
+
推荐 npm;其他通道用于固定版本或离线。
|
|
61
|
+
|
|
62
|
+
- **npm(推荐):** `dsh plugin --profile <profile> add dsh-docx-redline`
|
|
63
|
+
- **git 通道:** `dsh plugin --profile <profile> add github:PerryLink/dsh-docx-redline`
|
|
64
|
+
- **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-docx-redline-<version>.tgz`
|
|
65
|
+
- **1024 商店:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-docx-redline`
|
|
66
|
+
|
|
57
67
|
## 它做什么
|
|
58
68
|
|
|
59
69
|
DOCX 结构检查、逐字节 roundtrip 与单 run 文本替换。 在 DeepSeek Harness 本地运行;下表就是实际工具面,示例使用真实命令面。
|
|
@@ -62,14 +72,14 @@ DOCX 结构检查、逐字节 roundtrip 与单 run 文本替换。 在 DeepSeek
|
|
|
62
72
|
|
|
63
73
|
## 工具
|
|
64
74
|
|
|
65
|
-
|
|
75
|
+
工具名是稳定 API;说明已本地化。
|
|
66
76
|
|
|
67
|
-
| 工具 |
|
|
77
|
+
| 工具 | 用途 | 风险 |
|
|
68
78
|
|---|---|---|
|
|
69
|
-
| `doc.inspect` |
|
|
70
|
-
| `doc.roundtrip` |
|
|
71
|
-
| `doc.replace_text` |
|
|
72
|
-
| `redline.diff` |
|
|
79
|
+
| `doc.inspect` | 读取本地 `.docx` 的 ZIP/XML,保存原始文件,并报告各部件 SHA-256 及结构计数(段落、表格、页眉/页脚、脚注、批注、域、书签、编号、节、样式) | R0 read + local store |
|
|
80
|
+
| `doc.roundtrip` | 逐字节复制原始文件并比对每个部件的哈希;返回零差异报告 | R1 local write |
|
|
81
|
+
| `doc.replace_text` | 替换单个精确匹配的 `w:t` 文本运行;文本不唯一或跨运行时分则失败关闭 | R1 local write |
|
|
82
|
+
| `redline.diff` | 对两个已检查的 DOCX 文件做文本级段落差异比对;不写入 OOXML | R0 |
|
|
73
83
|
|
|
74
84
|
## 快速开始
|
|
75
85
|
|
|
@@ -78,6 +88,22 @@ dsh plugin --profile <profile> add dsh-docx-redline
|
|
|
78
88
|
dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
79
89
|
```
|
|
80
90
|
|
|
91
|
+
## 示例
|
|
92
|
+
|
|
93
|
+
### fixture 支撑的示例
|
|
94
|
+
|
|
95
|
+
输入: [`fixtures/public/python-docx/blk-containing-table.docx`](fixtures/public/python-docx/blk-containing-table.docx)
|
|
96
|
+
|
|
97
|
+
命令: `pnpm test`
|
|
98
|
+
|
|
99
|
+
验收行:
|
|
100
|
+
|
|
101
|
+
| req_id | metric | threshold | actual | pass | source | counted |
|
|
102
|
+
|---|---|---|---|---|---|---|
|
|
103
|
+
| SKU-01-A01 | 无改动往返通过率(20 合成) | 100% | 1 | true | public/synthetic | false |
|
|
104
|
+
|
|
105
|
+
*这是 fixture 支撑的验收行,不是客户运行;没有编造输出。*
|
|
106
|
+
|
|
81
107
|
## 边界
|
|
82
108
|
|
|
83
109
|
- 仅公开/合成样例;不含客户数据或客户证据。
|
|
@@ -87,7 +113,7 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
87
113
|
|
|
88
114
|
## 公开样例
|
|
89
115
|
|
|
90
|
-
公开/合成 fixture 在 `
|
|
116
|
+
公开/合成 fixture 在 `fixtures/`;`ACCEPTANCE.csv` 记录公开检查,全部 `counted=false`。
|
|
91
117
|
|
|
92
118
|
## 开发
|
|
93
119
|
|
|
@@ -147,6 +173,107 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
147
173
|
|
|
148
174
|
</details>
|
|
149
175
|
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>主线家族 — 92 个当前安装 spec</summary>
|
|
179
|
+
|
|
180
|
+
| Package | npm |
|
|
181
|
+
|---|---|
|
|
182
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
183
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
184
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
185
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
186
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
187
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
188
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
189
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
190
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
191
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
192
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
193
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
194
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
195
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
196
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
197
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
198
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
199
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
200
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
201
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
202
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
203
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
204
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
205
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
206
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
207
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
208
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
209
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
210
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
211
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
212
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
213
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
214
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
215
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
216
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
217
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
218
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
219
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
220
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
221
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
222
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
223
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
224
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
225
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
226
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
227
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
228
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
229
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
230
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
231
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
232
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
233
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
234
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
235
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
236
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
237
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
238
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
239
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
240
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
241
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
242
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
243
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
244
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
245
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
246
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
247
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
248
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
249
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
250
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
251
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
252
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
253
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
254
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
255
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
256
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
257
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
258
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
259
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
260
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
261
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
262
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
263
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
264
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
265
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
266
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
267
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
268
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
269
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
270
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
271
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
272
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
273
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
274
|
+
|
|
275
|
+
</details>
|
|
276
|
+
|
|
150
277
|
## 许可证
|
|
151
278
|
|
|
152
279
|
Apache-2.0. See `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES`.
|
package/README.md
CHANGED
|
@@ -54,6 +54,16 @@ Uninstall:
|
|
|
54
54
|
dsh plugin --profile <profile> remove dsh-docx-redline
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
|
|
58
|
+
### Install channels
|
|
59
|
+
|
|
60
|
+
npm is the recommended channel; the others are for pinning or offline use.
|
|
61
|
+
|
|
62
|
+
- **npm (recommended):** `dsh plugin --profile <profile> add dsh-docx-redline`
|
|
63
|
+
- **git channel:** `dsh plugin --profile <profile> add github:PerryLink/dsh-docx-redline`
|
|
64
|
+
- **tarball:** `pnpm pack` then `dsh plugin --profile <profile> add ./dsh-docx-redline-<version>.tgz`
|
|
65
|
+
- **1024 store:** `npm i -g dsh1024` then `dsh1024 plugin --profile <profile> add dsh-docx-redline`
|
|
66
|
+
|
|
57
67
|
## What it does
|
|
58
68
|
|
|
59
69
|
DOCX structure inspection, byte-exact roundtrip and limited exact-run text replace. Runs locally on DeepSeek Harness. The table below is the exact tool surface; the examples use the real command surface.
|
|
@@ -78,6 +88,22 @@ dsh plugin --profile <profile> add dsh-docx-redline
|
|
|
78
88
|
dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
79
89
|
```
|
|
80
90
|
|
|
91
|
+
## Examples
|
|
92
|
+
|
|
93
|
+
### Fixture-backed example
|
|
94
|
+
|
|
95
|
+
Input: [`fixtures/public/python-docx/blk-containing-table.docx`](fixtures/public/python-docx/blk-containing-table.docx)
|
|
96
|
+
|
|
97
|
+
Command: `pnpm test`
|
|
98
|
+
|
|
99
|
+
Acceptance row:
|
|
100
|
+
|
|
101
|
+
| req_id | metric | threshold | actual | pass | source | counted |
|
|
102
|
+
|---|---|---|---|---|---|---|
|
|
103
|
+
| SKU-01-A01 | 无改动往返通过率(20 合成) | 100% | 1 | true | public/synthetic | false |
|
|
104
|
+
|
|
105
|
+
*This is a fixture-backed acceptance row, not a customer run; no output is invented.*
|
|
106
|
+
|
|
81
107
|
## Limits
|
|
82
108
|
|
|
83
109
|
- Public/synthetic only; no customer data or customer evidence.
|
|
@@ -87,7 +113,7 @@ dsh --profile <profile> --dump-config | grep dsh-docx-redline
|
|
|
87
113
|
|
|
88
114
|
## Public sample
|
|
89
115
|
|
|
90
|
-
Public/synthetic fixtures live in `
|
|
116
|
+
Public/synthetic fixtures live in `fixtures/`; `ACCEPTANCE.csv` records the public checks with `counted=false`.
|
|
91
117
|
|
|
92
118
|
## Development
|
|
93
119
|
|
|
@@ -147,6 +173,107 @@ Sibling packages and family indexes: [dsh-ifc-qto](https://github.com/PerryLink/
|
|
|
147
173
|
|
|
148
174
|
</details>
|
|
149
175
|
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>Mainline family — 92 current install specs</summary>
|
|
179
|
+
|
|
180
|
+
| Package | npm |
|
|
181
|
+
|---|---|
|
|
182
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
183
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
184
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
185
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
186
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
187
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
188
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
189
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
190
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
191
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
192
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
193
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
194
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
195
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
196
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
197
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
198
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
199
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
200
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
201
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
202
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
203
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
204
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
205
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
206
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
207
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
208
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
209
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
210
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
211
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
212
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
213
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
214
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
215
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
216
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
217
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
218
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
219
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
220
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
221
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
222
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
223
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
224
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
225
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
226
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
227
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
228
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
229
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
230
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
231
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
232
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
233
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
234
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
235
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
236
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
237
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
238
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
239
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
240
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
241
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
242
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
243
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
244
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
245
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
246
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
247
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
248
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
249
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
250
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
251
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
252
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
253
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
254
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
255
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
256
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
257
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
258
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
259
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
260
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
261
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
262
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
263
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
264
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
265
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
266
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
267
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
268
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
269
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
270
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
271
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
272
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
273
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
274
|
+
|
|
275
|
+
</details>
|
|
276
|
+
|
|
150
277
|
## License
|
|
151
278
|
|
|
152
279
|
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-docx-redline` 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/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="DOCX">
|
|
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="22" font-weight="700">DOCX</text>
|
|
5
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-docx-redline",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.8",
|
|
4
4
|
"description": "DOCX structure inspection, byte-exact roundtrip and limited exact-run text replace.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/plugin/index.js",
|
|
@@ -22,7 +22,13 @@
|
|
|
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
|
+
"icon.svg"
|
|
26
32
|
],
|
|
27
33
|
"dsh": {
|
|
28
34
|
"bundle": {
|
|
@@ -91,5 +97,6 @@
|
|
|
91
97
|
"homepage": "https://perrylink.github.io/dsh-plugins/packages/dsh-docx-redline.html",
|
|
92
98
|
"bugs": {
|
|
93
99
|
"url": "https://github.com/PerryLink/dsh-docx-redline/issues"
|
|
94
|
-
}
|
|
100
|
+
},
|
|
101
|
+
"icon": "icon.svg"
|
|
95
102
|
}
|