dsh-docx-redline 0.1.0-alpha.7 → 0.1.0-alpha.9
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 +31 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/CONTRIBUTING.md +35 -0
- package/PRIVACY.md +11 -0
- package/README-es.md +136 -7
- package/README-hi.md +136 -7
- package/README-pt.md +136 -7
- package/README-zh.md +136 -7
- package/README.md +139 -1
- package/SECURITY.md +19 -0
- package/icon.svg +5 -0
- package/package.json +10 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.1.0-alpha.9] — 2026-11-01
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Documentation: five-language fixture/acceptance links now resolve on npm; added specific related-checker/tool links.
|
|
8
|
+
- Marketplace metadata: taxonomy category, archetype, domains and status; docs page now shows the same.
|
|
9
|
+
|
|
10
|
+
All notable changes to `dsh-docx-redline` are documented here. The format follows Keep a Changelog; this project uses alpha versions.
|
|
11
|
+
|
|
12
|
+
## [0.1.0-alpha.8] — 2026-11-01
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Five-language READMEs: English, 简体中文, Español, Português, हिन्दी.
|
|
17
|
+
- Local workflow SVG at `docs/assets/dsh-docx-redline-flow.svg`.
|
|
18
|
+
- Family cross-links (domain index, checker family, `dsh-kit`), compatibility, permissions, and related-work sections.
|
|
19
|
+
- Standard repository files: `SECURITY.md`, `PRIVACY.md`, `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, and `icon.svg`.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- README aligned with the PerryLink DSH checker/plugin family style; package remains public/synthetic, alpha, not GA.
|
|
24
|
+
|
|
25
|
+
### Maintenance
|
|
26
|
+
|
|
27
|
+
- Frozen on 2026-10-31: no new features; only genuine breakage fixes.
|
|
28
|
+
|
|
29
|
+
## [Earlier]
|
|
30
|
+
|
|
31
|
+
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`](https://github.com/PerryLink/dsh-docx-redline/blob/main/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
|
|
|
@@ -116,6 +142,8 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
116
142
|
|
|
117
143
|
Paquetes hermanos e índices de familia: [dsh-ifc-qto](https://github.com/PerryLink/dsh-ifc-qto) · [dsh-legal-clause](https://github.com/PerryLink/dsh-legal-clause) · [dsh-contract-suite](https://github.com/PerryLink/dsh-contract-suite)
|
|
118
144
|
|
|
145
|
+
Verificadores relacionados (tabla en inglés): [Related checkers](README.md#related-checkers).
|
|
146
|
+
|
|
119
147
|
- [Índice de dominio](https://perrylink.github.io/dsh-plugins/)
|
|
120
148
|
- [Familia de checkers](https://perrylink.github.io/zh/checkers/)
|
|
121
149
|
- [Familia principal](https://github.com/PerryLink/dsh-kit)
|
|
@@ -147,6 +175,107 @@ Paquetes hermanos e índices de familia: [dsh-ifc-qto](https://github.com/PerryL
|
|
|
147
175
|
|
|
148
176
|
</details>
|
|
149
177
|
|
|
178
|
+
|
|
179
|
+
<details>
|
|
180
|
+
<summary>Familia principal — 92 specs de instalación</summary>
|
|
181
|
+
|
|
182
|
+
| Package | npm |
|
|
183
|
+
|---|---|
|
|
184
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
185
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
186
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
187
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
188
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
189
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
190
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
191
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
192
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
193
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
194
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
195
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
196
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
197
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
198
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
199
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
200
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
201
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
202
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
203
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
204
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
205
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
206
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
207
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
208
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
209
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
210
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
211
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
212
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
213
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
214
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
215
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
216
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
217
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
218
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
219
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
220
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
221
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
222
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
223
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
224
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
225
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
226
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
227
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
228
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
229
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
230
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
231
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
232
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
233
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
234
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
235
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
236
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
237
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
238
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
239
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
240
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
241
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
242
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
243
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
244
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
245
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
246
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
247
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
248
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
249
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
250
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
251
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
252
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
253
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
254
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
255
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
256
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
257
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
258
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
259
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
260
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
261
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
262
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
263
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
264
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
265
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
266
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
267
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
268
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
269
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
270
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
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
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
275
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
276
|
+
|
|
277
|
+
</details>
|
|
278
|
+
|
|
150
279
|
## Licencia
|
|
151
280
|
|
|
152
281
|
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`](https://github.com/PerryLink/dsh-docx-redline/blob/main/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
|
|
|
@@ -116,6 +142,8 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
116
142
|
|
|
117
143
|
सहोदर पैकेज और परिवार सूचकांक: [dsh-ifc-qto](https://github.com/PerryLink/dsh-ifc-qto) · [dsh-legal-clause](https://github.com/PerryLink/dsh-legal-clause) · [dsh-contract-suite](https://github.com/PerryLink/dsh-contract-suite)
|
|
118
144
|
|
|
145
|
+
संबंधित चेकर (अंग्रेज़ी तालिका): [Related checkers](README.md#related-checkers).
|
|
146
|
+
|
|
119
147
|
- [डोमेन सूचकांक](https://perrylink.github.io/dsh-plugins/)
|
|
120
148
|
- [चेकर परिवार](https://perrylink.github.io/zh/checkers/)
|
|
121
149
|
- [मुख्य परिवार](https://github.com/PerryLink/dsh-kit)
|
|
@@ -147,6 +175,107 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
147
175
|
|
|
148
176
|
</details>
|
|
149
177
|
|
|
178
|
+
|
|
179
|
+
<details>
|
|
180
|
+
<summary>मुख्य परिवार — 92 वर्तमान इंस्टॉल spec</summary>
|
|
181
|
+
|
|
182
|
+
| Package | npm |
|
|
183
|
+
|---|---|
|
|
184
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
185
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
186
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
187
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
188
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
189
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
190
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
191
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
192
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
193
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
194
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
195
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
196
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
197
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
198
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
199
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
200
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
201
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
202
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
203
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
204
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
205
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
206
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
207
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
208
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
209
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
210
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
211
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
212
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
213
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
214
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
215
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
216
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
217
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
218
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
219
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
220
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
221
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
222
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
223
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
224
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
225
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
226
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
227
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
228
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
229
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
230
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
231
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
232
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
233
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
234
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
235
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
236
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
237
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
238
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
239
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
240
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
241
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
242
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
243
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
244
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
245
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
246
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
247
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
248
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
249
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
250
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
251
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
252
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
253
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
254
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
255
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
256
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
257
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
258
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
259
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
260
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
261
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
262
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
263
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
264
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
265
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
266
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
267
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
268
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
269
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
270
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
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
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
275
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
276
|
+
|
|
277
|
+
</details>
|
|
278
|
+
|
|
150
279
|
## लाइसेंस
|
|
151
280
|
|
|
152
281
|
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`](https://github.com/PerryLink/dsh-docx-redline/blob/main/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
|
|
|
@@ -116,6 +142,8 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
116
142
|
|
|
117
143
|
Pacotes irmãos e índices da família: [dsh-ifc-qto](https://github.com/PerryLink/dsh-ifc-qto) · [dsh-legal-clause](https://github.com/PerryLink/dsh-legal-clause) · [dsh-contract-suite](https://github.com/PerryLink/dsh-contract-suite)
|
|
118
144
|
|
|
145
|
+
Verificadores relacionados (tabela em inglês): [Related checkers](README.md#related-checkers).
|
|
146
|
+
|
|
119
147
|
- [Índice de domínio](https://perrylink.github.io/dsh-plugins/)
|
|
120
148
|
- [Família de checkers](https://perrylink.github.io/zh/checkers/)
|
|
121
149
|
- [Família principal](https://github.com/PerryLink/dsh-kit)
|
|
@@ -147,6 +175,107 @@ Pacotes irmãos e índices da família: [dsh-ifc-qto](https://github.com/PerryLi
|
|
|
147
175
|
|
|
148
176
|
</details>
|
|
149
177
|
|
|
178
|
+
|
|
179
|
+
<details>
|
|
180
|
+
<summary>Família principal — 92 specs de instalação</summary>
|
|
181
|
+
|
|
182
|
+
| Package | npm |
|
|
183
|
+
|---|---|
|
|
184
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
185
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
186
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
187
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
188
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
189
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
190
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
191
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
192
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
193
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
194
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
195
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
196
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
197
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
198
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
199
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
200
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
201
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
202
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
203
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
204
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
205
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
206
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
207
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
208
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
209
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
210
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
211
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
212
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
213
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
214
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
215
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
216
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
217
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
218
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
219
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
220
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
221
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
222
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
223
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
224
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
225
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
226
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
227
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
228
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
229
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
230
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
231
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
232
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
233
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
234
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
235
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
236
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
237
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
238
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
239
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
240
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
241
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
242
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
243
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
244
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
245
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
246
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
247
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
248
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
249
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
250
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
251
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
252
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
253
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
254
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
255
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
256
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
257
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
258
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
259
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
260
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
261
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
262
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
263
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
264
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
265
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
266
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
267
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
268
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
269
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
270
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
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
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
275
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
276
|
+
|
|
277
|
+
</details>
|
|
278
|
+
|
|
150
279
|
## Licença
|
|
151
280
|
|
|
152
281
|
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`](https://github.com/PerryLink/dsh-docx-redline/blob/main/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
|
|
|
@@ -116,6 +142,8 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
116
142
|
|
|
117
143
|
兄弟包与家族索引: [dsh-ifc-qto](https://github.com/PerryLink/dsh-ifc-qto) · [dsh-legal-clause](https://github.com/PerryLink/dsh-legal-clause) · [dsh-contract-suite](https://github.com/PerryLink/dsh-contract-suite)
|
|
118
144
|
|
|
145
|
+
相关核查器(英文表): [Related checkers](README.md#related-checkers).
|
|
146
|
+
|
|
119
147
|
- [领域索引](https://perrylink.github.io/dsh-plugins/)
|
|
120
148
|
- [Checker 家族](https://perrylink.github.io/zh/checkers/)
|
|
121
149
|
- [主线家族](https://github.com/PerryLink/dsh-kit)
|
|
@@ -147,6 +175,107 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
147
175
|
|
|
148
176
|
</details>
|
|
149
177
|
|
|
178
|
+
|
|
179
|
+
<details>
|
|
180
|
+
<summary>主线家族 — 92 个当前安装 spec</summary>
|
|
181
|
+
|
|
182
|
+
| Package | npm |
|
|
183
|
+
|---|---|
|
|
184
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
185
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
186
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
187
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
188
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
189
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
190
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
191
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
192
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
193
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
194
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
195
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
196
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
197
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
198
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
199
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
200
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
201
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
202
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
203
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
204
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
205
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
206
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
207
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
208
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
209
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
210
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
211
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
212
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
213
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
214
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
215
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
216
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
217
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
218
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
219
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
220
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
221
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
222
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
223
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
224
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
225
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
226
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
227
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
228
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
229
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
230
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
231
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
232
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
233
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
234
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
235
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
236
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
237
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
238
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
239
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
240
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
241
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
242
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
243
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
244
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
245
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
246
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
247
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
248
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
249
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
250
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
251
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
252
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
253
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
254
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
255
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
256
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
257
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
258
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
259
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
260
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
261
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
262
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
263
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
264
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
265
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
266
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
267
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
268
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
269
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
270
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
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
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
275
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
276
|
+
|
|
277
|
+
</details>
|
|
278
|
+
|
|
150
279
|
## 许可证
|
|
151
280
|
|
|
152
281
|
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`](https://github.com/PerryLink/dsh-docx-redline/blob/main/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
|
|
|
@@ -116,6 +142,17 @@ pnpm build && pnpm lint && pnpm typecheck && pnpm test
|
|
|
116
142
|
|
|
117
143
|
Sibling packages and family indexes: [dsh-ifc-qto](https://github.com/PerryLink/dsh-ifc-qto) · [dsh-legal-clause](https://github.com/PerryLink/dsh-legal-clause) · [dsh-contract-suite](https://github.com/PerryLink/dsh-contract-suite)
|
|
118
144
|
|
|
145
|
+
|
|
146
|
+
### Related checkers
|
|
147
|
+
|
|
148
|
+
Each entry is a separate package with its own rule pack and version; install only the ones you need.
|
|
149
|
+
|
|
150
|
+
| Package | Why it is relevant |
|
|
151
|
+
|---|---|
|
|
152
|
+
| [`dsh-gongwen-word-check`](https://github.com/PerryLink/dsh-gongwen-word-check) | Official-document formatting elements. |
|
|
153
|
+
| [`dsh-archive-check`](https://github.com/PerryLink/dsh-archive-check) | Archive filing register and retention periods. |
|
|
154
|
+
| [`dsh-paper-doc-adapter`](https://github.com/PerryLink/dsh-paper-doc-adapter) | Parsed exam-paper structural consistency. |
|
|
155
|
+
|
|
119
156
|
- [Domain index](https://perrylink.github.io/dsh-plugins/)
|
|
120
157
|
- [Checker family](https://perrylink.github.io/zh/checkers/)
|
|
121
158
|
- [Mainline family](https://github.com/PerryLink/dsh-kit)
|
|
@@ -147,6 +184,107 @@ Sibling packages and family indexes: [dsh-ifc-qto](https://github.com/PerryLink/
|
|
|
147
184
|
|
|
148
185
|
</details>
|
|
149
186
|
|
|
187
|
+
|
|
188
|
+
<details>
|
|
189
|
+
<summary>Mainline family — 92 current install specs</summary>
|
|
190
|
+
|
|
191
|
+
| Package | npm |
|
|
192
|
+
|---|---|
|
|
193
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | [npm](https://www.npmjs.com/package/dsh-aqua-input-check) |
|
|
194
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | [npm](https://www.npmjs.com/package/dsh-archive-check) |
|
|
195
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | [npm](https://www.npmjs.com/package/dsh-bid-ca-precheck) |
|
|
196
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | [npm](https://www.npmjs.com/package/dsh-bid-qual-check) |
|
|
197
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | [npm](https://www.npmjs.com/package/dsh-contract-stance) |
|
|
198
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | [npm](https://www.npmjs.com/package/dsh-customs-doc-check) |
|
|
199
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | [npm](https://www.npmjs.com/package/dsh-demurrage-ledger) |
|
|
200
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | [npm](https://www.npmjs.com/package/dsh-drill-script-check) |
|
|
201
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | [npm](https://www.npmjs.com/package/dsh-eia-guide-check) |
|
|
202
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | [npm](https://www.npmjs.com/package/dsh-emergency-plan) |
|
|
203
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | [npm](https://www.npmjs.com/package/dsh-essay-rubric-check) |
|
|
204
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | [npm](https://www.npmjs.com/package/dsh-evidence-check) |
|
|
205
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | [npm](https://www.npmjs.com/package/dsh-export-ctl-check) |
|
|
206
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | [npm](https://www.npmjs.com/package/dsh-fmea-table-check) |
|
|
207
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | [npm](https://www.npmjs.com/package/dsh-forecast-penalty) |
|
|
208
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-flow-check) |
|
|
209
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | [npm](https://www.npmjs.com/package/dsh-gongwen-word-check) |
|
|
210
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | [npm](https://www.npmjs.com/package/dsh-guard-plan-qc) |
|
|
211
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | [npm](https://www.npmjs.com/package/dsh-hazchem-check) |
|
|
212
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | [npm](https://www.npmjs.com/package/dsh-hazplan-check) |
|
|
213
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | [npm](https://www.npmjs.com/package/dsh-hidden-risk-map) |
|
|
214
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | [npm](https://www.npmjs.com/package/dsh-hs-classify) |
|
|
215
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | [npm](https://www.npmjs.com/package/dsh-icd-rule-check) |
|
|
216
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | [npm](https://www.npmjs.com/package/dsh-lawcite-adapter) |
|
|
217
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | [npm](https://www.npmjs.com/package/dsh-lc-doc-check) |
|
|
218
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | [npm](https://www.npmjs.com/package/dsh-learning-gap-check) |
|
|
219
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | [npm](https://www.npmjs.com/package/dsh-medrec-qc) |
|
|
220
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | [npm](https://www.npmjs.com/package/dsh-nsfc-form-check) |
|
|
221
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | [npm](https://www.npmjs.com/package/dsh-nurse-record-check) |
|
|
222
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | [npm](https://www.npmjs.com/package/dsh-origin-rvc-check) |
|
|
223
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | [npm](https://www.npmjs.com/package/dsh-ota-review-check) |
|
|
224
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | [npm](https://www.npmjs.com/package/dsh-paper-doc-adapter) |
|
|
225
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | [npm](https://www.npmjs.com/package/dsh-permit-report-check) |
|
|
226
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | [npm](https://www.npmjs.com/package/dsh-pipeline-check) |
|
|
227
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | [npm](https://www.npmjs.com/package/dsh-pleading-draft) |
|
|
228
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | [npm](https://www.npmjs.com/package/dsh-policy-brief-draft) |
|
|
229
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | [npm](https://www.npmjs.com/package/dsh-power-loss-split) |
|
|
230
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | [npm](https://www.npmjs.com/package/dsh-power-ticket-check) |
|
|
231
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | [npm](https://www.npmjs.com/package/dsh-ppap-check) |
|
|
232
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | [npm](https://www.npmjs.com/package/dsh-protest-deadline) |
|
|
233
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | [npm](https://www.npmjs.com/package/dsh-railway-window) |
|
|
234
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | [npm](https://www.npmjs.com/package/dsh-repair-order-qc) |
|
|
235
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | [npm](https://www.npmjs.com/package/dsh-review-reply-check) |
|
|
236
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | [npm](https://www.npmjs.com/package/dsh-rulefile-check) |
|
|
237
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | [npm](https://www.npmjs.com/package/dsh-safety-brief-check) |
|
|
238
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | [npm](https://www.npmjs.com/package/dsh-site-log-check) |
|
|
239
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | [npm](https://www.npmjs.com/package/dsh-soe-decision-check) |
|
|
240
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | [npm](https://www.npmjs.com/package/dsh-soilwater-check) |
|
|
241
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | [npm](https://www.npmjs.com/package/dsh-sop-sync-check) |
|
|
242
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | [npm](https://www.npmjs.com/package/dsh-spc-gbt-adapter) |
|
|
243
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | [npm](https://www.npmjs.com/package/dsh-tender-extract) |
|
|
244
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | [npm](https://www.npmjs.com/package/dsh-tender-matrix) |
|
|
245
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | [npm](https://www.npmjs.com/package/dsh-warranty-calc) |
|
|
246
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | [npm](https://www.npmjs.com/package/dsh-auto-review) |
|
|
247
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | [npm](https://www.npmjs.com/package/dsh-autotier) |
|
|
248
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | [npm](https://www.npmjs.com/package/dsh-budget) |
|
|
249
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | [npm](https://www.npmjs.com/package/dsh-cert-mcp) |
|
|
250
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | [npm](https://www.npmjs.com/package/dsh-checkpoint-rewind) |
|
|
251
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | [npm](https://www.npmjs.com/package/dsh-claude-move) |
|
|
252
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | [npm](https://www.npmjs.com/package/dsh-click) |
|
|
253
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | [npm](https://www.npmjs.com/package/dsh-composer-history) |
|
|
254
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | [npm](https://www.npmjs.com/package/dsh-data-quality) |
|
|
255
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | [npm](https://www.npmjs.com/package/dsh-defend) |
|
|
256
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | [npm](https://www.npmjs.com/package/dsh-doublecheck) |
|
|
257
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | [npm](https://www.npmjs.com/package/dsh-draw) |
|
|
258
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | [npm](https://www.npmjs.com/package/dsh-fast) |
|
|
259
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | [npm](https://www.npmjs.com/package/dsh-fund-research) |
|
|
260
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | [npm](https://www.npmjs.com/package/dsh-industry-research) |
|
|
261
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | [npm](https://www.npmjs.com/package/dsh-laya) |
|
|
262
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | [npm](https://www.npmjs.com/package/dsh-library) |
|
|
263
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | [npm](https://www.npmjs.com/package/dsh-local-ai) |
|
|
264
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | [npm](https://www.npmjs.com/package/dsh-lsp-actions) |
|
|
265
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | [npm](https://www.npmjs.com/package/dsh-mask) |
|
|
266
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | [npm](https://www.npmjs.com/package/dsh-mcp-panel) |
|
|
267
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | [npm](https://www.npmjs.com/package/dsh-memento) |
|
|
268
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | [npm](https://www.npmjs.com/package/dsh-observe) |
|
|
269
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | [npm](https://www.npmjs.com/package/dsh-output-styles) |
|
|
270
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | [npm](https://www.npmjs.com/package/dsh-permission-rules) |
|
|
271
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | [npm](https://www.npmjs.com/package/dsh-plugin-guide) |
|
|
272
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | [npm](https://www.npmjs.com/package/dsh-plugin-upgrade) |
|
|
273
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | [npm](https://www.npmjs.com/package/dsh-reach) |
|
|
274
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | [npm](https://www.npmjs.com/package/dsh-research-report) |
|
|
275
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | [npm](https://www.npmjs.com/package/dsh-score) |
|
|
276
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | [npm](https://www.npmjs.com/package/dsh-session-sync) |
|
|
277
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | [npm](https://www.npmjs.com/package/dsh-talk) |
|
|
278
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | [npm](https://www.npmjs.com/package/dsh-test-drive) |
|
|
279
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | [npm](https://www.npmjs.com/package/dsh-translate) |
|
|
280
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
281
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
282
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
283
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
284
|
+
| **[](https://github.com/PerryLink/)** | [npm](https://www.npmjs.com/package/) |
|
|
285
|
+
|
|
286
|
+
</details>
|
|
287
|
+
|
|
150
288
|
## License
|
|
151
289
|
|
|
152
290
|
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.9",
|
|
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
|
}
|