dsh-doublecheck 0.9.12 → 0.9.14
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 +45 -0
- package/README-es.md +50 -46
- package/README-hi.md +50 -46
- package/README-pt.md +50 -46
- package/README-zh.md +50 -46
- package/README.md +33 -21
- package/lib/events.d.ts +58 -0
- package/lib/events.js +38 -1
- package/lib/guard/command.js +2 -1
- package/lib/guard/gate.d.ts +12 -1
- package/lib/guard/gate.js +12 -1
- package/lib/guard/index.d.ts +88 -13
- package/lib/guard/index.js +86 -48
- package/package.json +19 -16
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,51 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to dsh-doublecheck are recorded here, newest first.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.9.14] - 2026-09-22
|
|
8
|
+
|
|
9
|
+
Adapted to DeepSeek Harness `dsh-v0.1.7-alpha.1`. Three of the host's seams this
|
|
10
|
+
package sat on were replaced in that line, so this is a compatibility release:
|
|
11
|
+
existing behaviour, existing `gate.*` configuration, and existing session logs
|
|
12
|
+
all keep working, and one editable surface moved house.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- **Durable notices carry a producer-owned message source.** The harness deleted the shared catch-all `plugin` kind from `MessageSourceMap` ("there is no shared catch-all `plugin` kind") and its physical-row admission now refuses a `kind: 'plugin'` source outright — in `@deepseek-ai/dsh-llm`, in `session-format-v3-to-v4`'s message-source admission, and in the same layer's developer-message check. Every injected reminder, review steer, and switch notice would therefore have been rejected on write and on restore. `src/events.ts` now declares `'dsh-doublecheck'` on `MessageSourceMap` (mixed with `ContextFormed`) — the shape the harness's own `tool-jobs` row uses — and builds every notice through one shared `noticeSource()` helper, so `src/guard/index.ts` and `src/guard/command.ts` can no longer drift apart.
|
|
17
|
+
- **A session recorded by 0.9.13 keeps its once-semantics.** The guard's `remindOnce` fold reads the notice summary out of the durable source, and a durable log outlives any one release line. `noticeSummaryOf()` recognizes all three shapes a log can carry: the new `dsh-doublecheck` kind, the `plugin:dsh-doublecheck` kind the host's V3→V4 migration stamps on a released catch-all wrapper (it rewrites an unknown plugin name to `plugin:<name>` and preserves the rest of the source), and the released `{ kind: 'plugin', plugin: 'dsh-doublecheck' }` wrapper itself. Without the second shape a resumed or restored pre-upgrade session would re-show reminders it had already shown.
|
|
18
|
+
- **The gate settings seam moved onto the row's own Config.** `@deepseek-ai/dsh-settings` is now `SettingsForms`: `SettingsProvider`, `SettingsNamespace`, `SettingsScope`, `installSection`, and `settings.register(ns, schema, options)` are all gone from the package. A row's settings surface is now its own Config, addressed by profile entry id, and only the fields it marks `.volatile()` are projected into a form. The guard row marks `gate` `.volatile()` and registers its page policy through `ctx.inject(['settings'], child => child.effect(() => child.settings.configure({ auto: false }, ctx.fiber)))`; the retired `GATE_SETTINGS_NS` export is removed rather than left as a name for a registry that no longer exists. `validateGateConfig` still runs fail-loud at load — the host validates the Config schema on every write, but the unique/in-range checklist rule is this package's own and has no write-path channel in the new contract.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Pin every `@deepseek-ai/dsh-*` dev/test dependency to the published `0.1.7-alpha.1` line (the harness release this is adapted to). `0.1.5-rc.3` is the *previous* contract's `next` line — it still carries `installSection` / `SettingsProvider` and still carries the `plugin` message-source kind — so it cannot be the adaptation target.
|
|
23
|
+
- Move the **dev/test** pins for `@deepseek-ai/cordis` to `^4.0.3` and `@deepseek-ai/schemastery` to `^3.18.3` — the newest published line, and the one the harness release ships. `Volatile` does not exist in cordis `4.0.2` and `.volatile()` does not exist in schemastery `3.18.2`, so the live `gate` field needs both; `@deepseek-ai/cosmokit` resolves to `1.8.4` through them. The **peer** ranges stay `^4.0.2` / `^3.18.2` and the live-field surface is feature-detected at load (see Behavior), so a host line shipping the older packages still mounts this row. The three-clause `@deepseek-ai/dsh-*` peer band and `engines.dsh` are unchanged, so no supported host line is dropped.
|
|
24
|
+
- Add `@deepseek-ai/dsh-invariants` as a devDependency. It was already a declared peer with no pin, so the package manager auto-installed a stale `0.1.2-rc.1`, which dragged a second `schemastery@3.18.2` copy into the graph and made the emitted `Config` declaration unnameable. Pinning it to the `0.1.7-alpha.1` line collapses the graph to one schemastery.
|
|
25
|
+
- `Config`'s schema is no longer annotated with the `Schema<Config>` alias, and `GateConfigSchema` keeps its `Schema<GateConfig>` alias. A live field resolves to a `Volatile` reference, which the alias's output mapping cannot express; the hand-written interface still documents what `apply` reads.
|
|
26
|
+
- Annotate `Config['gate']` as `Volatile<GateConfig | undefined>` and resolve the absence once at the read. The schema carries a root default, so the absence is unreachable in practice; the check makes it loud instead of silent if that ever stops being true.
|
|
27
|
+
|
|
28
|
+
### Behavior
|
|
29
|
+
|
|
30
|
+
- **Older host lines keep working — they just have no settings card.** The live-field surface is detected once at load, not assumed: `.volatile()` is called only when the mounted schemastery has it, the resolved `gate` block is read through `resolveGateBlock()` (a `Volatile` reference or a plain object, whichever the host produced), and the presentation policy is registered only when the settings service actually exposes `configure`. On the `0.1.2-rc.1` / `0.1.5-alpha.1` / `0.1.6-alpha.2` lines the guard row therefore behaves exactly as it did in 0.9.13 — the gate block comes from the profile patch, and there is simply no card to edit it from.
|
|
31
|
+
- **`gate.*` edits are still restart-scoped.** The row reads the resolved block once at load, because `gate.enabled` decides whether the turn-boundary red notice is installed at all — the same reason the removed namespace was registered with `applies: 'restart'`. An edit made from the row's settings card lands in the profile patch and is picked up on the next load.
|
|
32
|
+
- **The one place the storage moved.** The removed namespace kept its values in a `doublecheck-gate` section of the host's `settings.yaml`. That document is gone in this harness line, and its legacy importer maps a section name to a *profile entry id*, so a section named `doublecheck-gate` has no entry to land on. A pre-upgrade `doublecheck-gate:` section is therefore not carried over; the same values set under the guard row's own `gate` block behave identically.
|
|
33
|
+
- `tool/code-dispatch` stays readable. The pre-V3 sub-dispatch label is only ever *read* back out of a session log (`src/domain/evidence.ts`), never written — so it is legacy read compatibility, not retired syntax this package emits, and the harness's refusal applies to rows it writes. Note that on this host line a physical row carrying that label without `ignorable: true` is refused during migration, so the legacy branch is reachable for `ignorable`-stamped rows and for hosts below the V4 format line.
|
|
34
|
+
|
|
35
|
+
### Docs
|
|
36
|
+
|
|
37
|
+
- Five-language READMEs: the harness baseline moves to `dsh-v0.1.7-alpha.1`, the `doublecheck-gate` settings-namespace row becomes the row's live `gate` field, and the adaptation history gains the `0.1.7-alpha.1` entry.
|
|
38
|
+
- `AGENTS.md`: the `src/events.ts` and `src/guard/gate.ts` layout notes now describe the producer-owned notice source and the live `gate` field, and the hard rules record why the notice fold reads three source shapes and why the live-field surface must stay feature-detected.
|
|
39
|
+
- Extend both smoke matrices to `0.1.7-alpha.1` (`ci.yml`'s profile install and `compat.yml`'s weekly run) and record it in `dshWorkshop.compatibility.dshVersions`. The older lines stay in the matrix on purpose: they are what proves `gate` still resolves as plain config where `.volatile()` does not exist.
|
|
40
|
+
|
|
41
|
+
## [0.9.13] - 2026-09-19
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- `pnpm run check:lockfile` (`scripts/check-lockfile-drift.mjs`) fails fast when `package.json` and `pnpm-lock.yaml` disagree; the probe is read-only and the documented checks chain runs it alongside the other gates.
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- The release workflow now publishes through **npm trusted publishing** (OIDC) instead of the long-lived `NPM_TOKEN` secret: `setup-node` no longer sets `registry-url` (its empty `_authToken` line made the registry answer 404 on PUT), npm is upgraded to >= 11.5.1 before publishing, and the "NPM_TOKEN is not set -> skip" guard is gone so a missing publisher cannot turn a release into a silent no-op.
|
|
5
50
|
## [0.9.12] - 2026-09-18
|
|
6
51
|
|
|
7
52
|
### Fixed
|
package/README-es.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
[](https://gitee.com/perrylink/dsh-doublecheck)
|
|
12
12
|
[](https://github.com/topics/dsh-plugin)
|
|
13
13
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
14
|
+
[](https://dsh.market/)
|
|
14
15
|
[](#)
|
|
15
16
|
[](https://github.com/PerryLink/dsh-doublecheck/actions)
|
|
16
17
|
[](https://github.com/PerryLink/dsh-doublecheck/releases)
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
|
|
28
29
|
| Superficie | Estado |
|
|
29
30
|
|---|---|
|
|
30
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
31
|
+
| Harness | DeepSeek Harness `dsh-v0.1.7-alpha.1`. Verificado el 2026-09-22 (doble typecheck + suite completa en verde); el rango de peers admite `0.1.2-rc.1`, `0.1.5-alpha.1`, `0.1.5-rc.2`, `0.1.6-alpha.2` y `0.1.7-alpha.1`, así que no se pierde ninguna línea soportada. |
|
|
31
32
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
32
33
|
| Plataformas | Todas (host puro; sin código nativo, sin solicitudes de red directas propias) |
|
|
33
34
|
| Modelo | Cualquiera (el guard nunca llama a un modelo; las fases de crítico y revisor se ejecutan como subagentes del harness) |
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
`dsh-doublecheck` instala dos filas de plugin que leen y aplican desde el mismo registro de sesión durable:
|
|
38
39
|
|
|
39
40
|
1. **`doublecheck-grill`** — el horno de requisitos: la skill empaquetada `grill-requirements` más las herramientas orientadas al modelo `doublecheck_skills`, `doublecheck_spec` y `doublecheck_report`, y el flujo de verificación por dimensión.
|
|
40
|
-
2. **`doublecheck-guard`** — el guard de disciplina: la puerta grill, las puertas de evidencia rojo/verde, la revisión adversarial, los comandos `/doublecheck` y `/gate`,
|
|
41
|
+
2. **`doublecheck-guard`** — el guard de disciplina: la puerta grill, las puertas de evidencia rojo/verde, la revisión adversarial, los comandos `/doublecheck` y `/gate`, la tarjeta de ajustes en vivo `gate` y la puerta de entrega de cuatro fases.
|
|
41
42
|
|
|
42
43
|
Juntos imponen el **bucle de disciplina** — *grill → design → red → green → review → verify*:
|
|
43
44
|
|
|
@@ -127,6 +128,8 @@ Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.
|
|
|
127
128
|
| `gate.review.engine` | `'auto'` | `auto` = registros de veredicto de dsh-auto-review cuando están presentes, si no el revisor local; `local` = siempre local. |
|
|
128
129
|
| `gate.review.provider` | `'fork'` | Proveedor del revisor local de revisión (su `model`/`tools`/`timeoutMs`/`maxFindings` coinciden con `gate.consistency.*`). |
|
|
129
130
|
|
|
131
|
+
Cada clave `gate.*` de arriba forma parte de un único **campo en vivo**: el guard marca todo el bloque `gate` como `.volatile()`, así que es la tarjeta de ajustes editable de la fila (el espacio de nombres del formulario es el id de entrada de perfil de la fila). Las demás claves son configuración de composición normal del parche de perfil. El bloque se lee una vez al cargar, así que una edición surte efecto en la siguiente carga: `gate.enabled` decide si el aviso rojo del límite de turno se instala. Si el schemastery del host es anterior a `.volatile()`, la fila monta igualmente: no hay tarjeta y el bloque viene del parche de perfil.
|
|
132
|
+
|
|
130
133
|
La mala configuración falla en voz alta al cargar: regex inválidas, listas de nombres vacías o duplicadas, umbrales fuera de rango e ids de lista duplicados lanzan error en lugar de no hacer nada en silencio. `strict.patch.yml` es la capa de todas las puertas en bloqueo que vuelve a declarar la fila guard con `intensity: block`, todos los módulos activos y el requisito de cobertura habilitado.
|
|
131
134
|
|
|
132
135
|
## Herramientas y superficies
|
|
@@ -139,7 +142,7 @@ La mala configuración falla en voz alta al cargar: regex inválidas, listas de
|
|
|
139
142
|
| `/doublecheck status\|report\|on\|off` | comando | Interruptor, módulos, intensidad, hechos de etapa, informe plegado y la sobrescritura durable on/off. |
|
|
140
143
|
| `/gate status\|run\|config` | comando | Progreso de la lista en vivo, el informe entregable/rehacer asentado y la configuración efectiva. |
|
|
141
144
|
| `grill-requirements`, `red-green-tdd`, `delivery-review`, `delivery-proof` | skill | Skills de disciplina empaquetadas que cubren las seis etapas del bucle. |
|
|
142
|
-
| `
|
|
145
|
+
| `gate` | campo de configuración en vivo | La lista enchufable es el único campo `.volatile()` de la fila del guard: se edita desde la tarjeta de ajustes de la fila (espacio de nombres = el id de entrada de perfil de la fila) y se lee una vez al cargar. |
|
|
143
146
|
| `strict.patch.yml` | capa superpuesta | Cada puerta activa con intensidad `block` más el requisito de cobertura, en una capa de parche. |
|
|
144
147
|
| `dsh-doublecheck/invariant` | fila acompañante | Informa contradicciones de ruta de escritura propias del paquete a través del registro `invariants` del host. |
|
|
145
148
|
|
|
@@ -210,7 +213,7 @@ El CLI solo serializa el `GateState` ya asentado — nunca vuelve a ejecutar la
|
|
|
210
213
|
|
|
211
214
|
## Permisos y datos
|
|
212
215
|
|
|
213
|
-
- **Lee**: el registro de sesión (`tool/call` / `tool/result` / `tool/ptc-dispatch`, fuentes `user/message` inyectadas y los registros de veredicto ajenos `autoReview/*`) solo en proceso; el estado opcional del servicio de modo plan. Antes del renombrado de V3 el host registra los subenvíos PTC con la etiqueta predecesora `tool/code-dispatch`; ambas etiquetas se pliegan de forma idéntica.
|
|
216
|
+
- **Lee**: el registro de sesión (`tool/call` / `tool/result` / `tool/ptc-dispatch`, fuentes `user/message` inyectadas y los registros de veredicto ajenos `autoReview/*`) solo en proceso; el estado opcional del servicio de modo plan. Antes del renombrado de V3 el host registra los subenvíos PTC con la etiqueta predecesora `tool/code-dispatch`; ambas etiquetas se pliegan de forma idéntica. Los avisos inyectados llevan el kind de fuente de mensaje propio del paquete, `dsh-doublecheck`; los registros anteriores a ese kind llegan como `plugin:dsh-doublecheck` (la reescritura que la migración V3→V4 del host aplica a un envoltorio catch-all publicado) o como el envoltorio `plugin` publicado, y las tres formas se pliegan igual.
|
|
214
217
|
- **Escribe**: `doublecheck-spec.md`, `doublecheck-report.md` y `gate-report.md` en el workspace de sesión (rutas configurables) a través de la interfaz `ctx.fs`; los eventos de sesión durables `doublecheck/state` y `doublecheck/gate`.
|
|
215
218
|
- **Llamadas a modelo**: las fases de consistencia y revisión local de la puerta (un subagente cada una por `/gate run`), la revisión adversarial opcional y el flujo de verificación de `doublecheck_report` inician ejecuciones de subagente; nada más llama a un modelo o a la red.
|
|
216
219
|
- **Nunca toca**: credenciales, variables de entorno o cualquier archivo fuera del workspace de sesión. El manifiesto del workshop declara solo `filesystem:read` y `filesystem:write`. Los informes de la puerta llevan solo conteos, ids y veredictos; los secretos reconocidos en los textos del revisor se redactan antes de almacenarlos o mostrarlos.
|
|
@@ -227,10 +230,11 @@ El CLI solo serializa el `GateState` ya asentado — nunca vuelve a ejecutar la
|
|
|
227
230
|
|
|
228
231
|
- **Escrituras durables.** `/doublecheck on\|off` → `doublecheck/state` y `/gate run` → `doublecheck/gate` necesitan la superficie de append `ignorable` del host (post-rc.6 hasta `0.1.1-rc.2`). En hosts sin esa superficie (rc.6/rc.8 y `0.1.2-alpha.1`, que eliminó el sobre — `0.1.2-rc.1` restaura el campo solo para compatibilidad de lectura de logs almacenados y aún no puede estamparlo), las escrituras se omiten y el interruptor queda en proceso.
|
|
229
232
|
0.1.2-rc.1 (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia.
|
|
230
|
-
0.1.5-alpha.1 (adaptado el 2026-09-09): el formato de sesión V3 renombra el evento durable de subenvío `tool/code-dispatch` a `tool/ptc-dispatch` (carga útil sin cambios; ambas etiquetas se pliegan de forma idéntica). Session.append sigue sin canal `ignorable`, así que las escrituras durables se omiten y el interruptor permanece en proceso - comportamiento sin cambios. El espacio de ajustes `doublecheck-gate`
|
|
233
|
+
0.1.5-alpha.1 (adaptado el 2026-09-09): el formato de sesión V3 renombra el evento durable de subenvío `tool/code-dispatch` a `tool/ptc-dispatch` (carga útil sin cambios; ambas etiquetas se pliegan de forma idéntica). Session.append sigue sin canal `ignorable`, así que las escrituras durables se omiten y el interruptor permanece en proceso - comportamiento sin cambios. (El espacio de ajustes `doublecheck-gate` que introdujo esa entrada se eliminó en 0.1.7-alpha.1, cuando el host borró el registro de espacios de nombres.)
|
|
231
234
|
0.1.5-rc.1 (adaptado el 2026-09-10): los pines de dependencias pasan a la línea publicada 0.1.5-rc.1; ningún cambio de interfaz afecta el comportamiento de este plugin.
|
|
232
235
|
0.1.5-rc.2 (adaptado el 2026-09-11): los pines de dependencias pasan a la línea publicada 0.1.5-rc.2; ningún cambio de interfaz afecta el comportamiento de este plugin.
|
|
233
|
-
-
|
|
236
|
+
0.1.7-alpha.1 (adaptado el 2026-09-22): el host eliminó el kind de fuente de mensaje catch-all compartido `plugin` (los avisos ahora llevan el kind propio `dsh-doublecheck`, y el plegado de `remindOnce` sigue leyendo las dos formas previas a la actualización que un registro durable puede contener) y sustituyó el registro de espacios de nombres de ajustes por `SettingsForms` (el espacio `doublecheck-gate` desaparece; la lista de la puerta pasa a ser el único campo `.volatile()` de la fila del guard, todavía leído una vez al cargar). Los pisos de peers de `@deepseek-ai/cordis` y `@deepseek-ai/schemastery` pasan a `^4.0.3` / `^3.18.3` en las dependencias de desarrollo; los rangos de peers siguen siendo `^4.0.2` / `^3.18.2` y la capacidad de campos en vivo se detecta al cargar, así que las líneas de host anteriores siguen montando la fila (sin tarjeta de ajustes). Sin cambios de comportamiento salvo la ubicación de almacenamiento de los ajustes.
|
|
237
|
+
- **Interfaces opcionales.** La tarjeta de ajustes de la fila del guard aparece cuando el servicio de ajustes está montado; la tarjeta es la Config de esta propia fila (espacio de nombres = su id de entrada de perfil), y el bloque `gate` se lee una vez al cargar, así que sus valores aplican al panel `/gate` y al aviso rojo en la siguiente carga. La capacidad de campos en vivo se detecta al cargar: si el schemastery del host es anterior a `.volatile()`, la fila monta igualmente — sin tarjeta, con el bloque `gate` tomado del parche de perfil. La línea de modo plan de `/gate status` lee el `ctx.planMode` opcional (muestra `unknown` sin él); la revisión adversarial necesita `ctx.subagents`; la verificación necesita `workflowEngine`.
|
|
234
238
|
- **Degradación local.** `gate.review.engine: auto` degrada al revisor local cuando dsh-auto-review está ausente o no tiene registros de veredicto en esta sesión — el informe nombra la razón en lugar de inventar un veredicto.
|
|
235
239
|
- **La evidencia dsh-eval se basa en archivos.** El motor de evaluación de dsh-auto-review (`dsh-eval`) escribe sus resultados de regresión de prompt / estrés / equidad en un archivo de informe del espacio de trabajo, no en el registro de sesión. `gate.tests.evalReports.enabled` pliega ese archivo (desactivado por defecto; salta cuando está ausente) y los recuentos pliegados viajan en el registro duradero `doublecheck/gate` para que una ejecución asentada siga siendo reproducible.
|
|
236
240
|
|
|
@@ -258,56 +262,56 @@ pnpm run pack:check # build + pack the tarball
|
|
|
258
262
|
|
|
259
263
|
## PerryLink DSH Plugin Family
|
|
260
264
|
|
|
261
|
-
|
|
265
|
+
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
262
266
|
|
|
263
267
|
| Plugin | One-liner |
|
|
264
268
|
|---|---|
|
|
265
|
-
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** |
|
|
266
|
-
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Agentes hijos en segundo plano durables con barra lateral de UI web, mensajería e interrupción | |
|
|
267
|
-
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Gobernanza de costes para DeepSeek Harness: presupuestos, carbono y latencia en un panel. | |
|
|
268
|
-
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Equivalente a /rewind de Claude Code: instantáneas, bifurcaciones de sesión, restauración de un solo uso | |
|
|
269
|
-
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migra sesiones, memoria, habilidades y CLAUDE.md de Claude Code a DSH | |
|
|
270
|
-
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Control de escritorio nativo multiplataforma para DeepSeek Harness — Windows primero. | |
|
|
271
|
-
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Historial de entrada estilo terminal para el compositor web: flechas, búsqueda Ctrl+R | |
|
|
272
|
-
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Comprobaciones de calidad de datasets y verificación de citas (el puente numérico opcional consumido aquí) | |
|
|
273
|
-
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Defensa contra inyección de prompts, jailbreak y fuga de secretos para DeepSeek Harness. | |
|
|
274
|
-
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Enrutamiento unificado de generación de imágenes estáticas para DeepSeek Harness. | |
|
|
275
|
-
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Diagnóstico de rendimiento de solo lectura para DeepSeek Harness. | |
|
|
276
|
-
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Informes de investigación deterministas para fondos mutuos públicos chinos | |
|
|
277
|
-
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | Integración de PR/issues de GitHub para DSH, cada escritura controlada por aprobación | |
|
|
278
|
-
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Orquestación de investigación sectorial que sella sus entregables mediante el `ctx.researchReport.assemble` de este plugin | |
|
|
279
|
-
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | Base de conocimiento documental local para DeepSeek Harness. | |
|
|
280
|
-
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Integración de modelos locales (Ollama) para DeepSeek Harness. | |
|
|
281
|
-
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | Diagnósticos, formato, autocompletado, acciones de código y renombrado LSP sobre servidores de lenguaje | |
|
|
282
|
-
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | Middleware de enmascaramiento de PII: anonimiza en el límite del modelo, restaura en la capa de visualización | |
|
|
283
|
-
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Panel de tiempo de ejecución MCP de solo lectura: comando /mcp + pestaña Settings con estado, herramientas y errores | |
|
|
284
|
-
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Memoria entre sesiones controlada por aprobación: costura ctx.memory + SQLite + herramienta de memoria | |
|
|
285
|
-
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | Exportador de observabilidad OpenTelemetry y Langfuse para DeepSeek Harness. | |
|
|
286
|
-
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Cambio de estilo en tiempo de ejecución equivalente a outputStyles de Claude Code | |
|
|
287
|
-
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Puente multicanal de aprobación/preguntas: WeChat/Telegram/Feishu, consola de sesión |
|
|
288
|
-
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Reglas de permisos declarativas allow/deny/ask estilo Claude Code con auditoría | |
|
|
289
|
-
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Inyector de directivas personales con interruptor en la barra superior (edición framework) |
|
|
290
|
-
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Base de conocimiento de desarrollo de plugins como habilidad de agente bajo demanda | |
|
|
291
|
-
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
292
|
-
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Motor de informes de investigación verificables con evidencia direccionada por contenido | |
|
|
293
|
-
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Puntuación de calidad multidimensional para plugins de DeepSeek Harness. | |
|
|
294
|
-
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Fija sesiones en la barra lateral web con orden durable | |
|
|
295
|
-
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Sincronización de sesiones entre dispositivos para DeepSeek Harness — un espejo git dedicado de tu almacén de sesiones. | |
|
|
296
|
-
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Paquete de habilidades de auditoría de seguridad: escaneo de secretos, revisión de dependencias y cadena de suministro | |
|
|
297
|
-
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Bucle de sesión con voz para DeepSeek Harness: háblale y escucha su respuesta. | |
|
|
298
|
-
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Pruebas de instalación y humo aisladas para plugins de DeepSeek Harness. | |
|
|
299
|
-
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | Puente de tareas TickTick/Dida365: panel de cabecera de sesión + 11 herramientas |
|
|
300
|
-
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Traducción de parámetros entre proveedores y reparación determinista de JSON para DeepSeek Harness. | |
|
|
301
|
-
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | Puente WeChat ↔ DSH (bot Tencent iLink): texto/imagen/archivo/voz, aprobaciones en el chat |
|
|
269
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
|
|
302
270
|
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
271
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | |
|
|
272
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | |
|
|
303
273
|
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
304
274
|
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
305
|
-
| **[dsh-
|
|
275
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
|
|
276
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | |
|
|
277
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
|
|
278
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
|
|
279
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
|
|
280
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | |
|
|
281
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
|
|
282
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | |
|
|
283
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
|
|
284
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
|
|
285
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
|
|
286
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
|
|
287
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
|
|
288
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
|
|
289
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
|
|
290
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
|
|
291
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
|
|
292
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
|
|
293
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
|
|
294
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
|
|
295
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
|
|
296
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
|
|
306
297
|
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
298
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
299
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
|
|
307
300
|
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
308
|
-
| **[dsh-plugin-
|
|
301
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
|
|
309
302
|
| **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | |
|
|
303
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | |
|
|
304
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
|
|
305
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
|
|
306
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | |
|
|
307
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. | |
|
|
308
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
|
|
309
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
|
|
310
310
|
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
311
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
312
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
|
|
313
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
|
314
|
+
|
|
311
315
|
|
|
312
316
|
### Instalar desde el mercado de DSH Desktop
|
|
313
317
|
|
package/README-hi.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
[](https://gitee.com/perrylink/dsh-doublecheck)
|
|
12
12
|
[](https://github.com/topics/dsh-plugin)
|
|
13
13
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
14
|
+
[](https://dsh.market/)
|
|
14
15
|
[](#)
|
|
15
16
|
[](https://github.com/PerryLink/dsh-doublecheck/actions)
|
|
16
17
|
[](https://github.com/PerryLink/dsh-doublecheck/releases)
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
|
|
28
29
|
| सतह | स्थिति |
|
|
29
30
|
|---|---|
|
|
30
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
31
|
+
| Harness | DeepSeek Harness `dsh-v0.1.7-alpha.1`। 2026-09-22 को सत्यापित (दोहरा typecheck + पूरी टेस्ट सूट हरी); peer रेंज `0.1.2-rc.1`, `0.1.5-alpha.1`, `0.1.5-rc.2`, `0.1.6-alpha.2` और `0.1.7-alpha.1` को स्वीकार करती है, इसलिए कोई समर्थित लाइन नहीं छूटती। |
|
|
31
32
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
32
33
|
| प्लेटफ़ॉर्म | सभी (शुद्ध host; कोई नेटिव कोड नहीं, स्वयं का कोई सीधा नेटवर्क अनुरोध नहीं) |
|
|
33
34
|
| मॉडल | कोई भी (guard स्वयं कभी मॉडल नहीं बुलाता; critic और reviewer चरण harness subagent के रूप में चलते हैं) |
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
`dsh-doublecheck` दो plugin पंक्तियाँ स्थापित करता है जो एक ही टिकाऊ सत्र लॉग से पढ़ती और लागू करती हैं:
|
|
38
39
|
|
|
39
40
|
1. **`doublecheck-grill`** — आवश्यकताओं की भट्टी: बंडल की गई `grill-requirements` skill, साथ ही मॉडल-मुखी `doublecheck_skills`, `doublecheck_spec` और `doublecheck_report` उपकरण, तथा प्रति-आयाम सत्यापन वर्कफ़्लो।
|
|
40
|
-
2. **`doublecheck-guard`** — अनुशासन guard: grill द्वार, लाल/हरा साक्ष्य द्वार, प्रतिकूल समीक्षा, `/doublecheck` और `/gate` कमांड, `
|
|
41
|
+
2. **`doublecheck-guard`** — अनुशासन guard: grill द्वार, लाल/हरा साक्ष्य द्वार, प्रतिकूल समीक्षा, `/doublecheck` और `/gate` कमांड, लाइव `gate` सेटिंग्स कार्ड, तथा चार-चरण डिलीवरी द्वार।
|
|
41
42
|
|
|
42
43
|
दोनों मिलकर **अनुशासन लूप** लागू करते हैं — *grill → design → red → green → review → verify*:
|
|
43
44
|
|
|
@@ -127,6 +128,8 @@ dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
|
|
|
127
128
|
| `gate.review.engine` | `'auto'` | `auto` = उपस्थित होने पर dsh-auto-review के निर्णय रिकॉर्ड, अन्यथा स्थानीय समीक्षक; `local` = हमेशा स्थानीय। |
|
|
128
129
|
| `gate.review.provider` | `'fork'` | स्थानीय समीक्षा समीक्षक का प्रदाता (इसके `model`/`tools`/`timeoutMs`/`maxFindings` `gate.consistency.*` से मेल खाते हैं)। |
|
|
129
130
|
|
|
131
|
+
ऊपर की हर `gate.*` कुंजी एक ही **लाइव फ़ील्ड** का हिस्सा है: guard पूरे `gate` ब्लॉक को `.volatile()` चिह्नित करता है, इसलिए यही इस पंक्ति का संपादन-योग्य सेटिंग्स कार्ड है (फ़ॉर्म नेमस्पेस = पंक्ति की profile प्रविष्टि id)। शेष कुंजियाँ profile patch से आने वाला सामान्य composition कॉन्फ़िगरेशन हैं। यह ब्लॉक लोड पर एक बार पढ़ा जाता है, इसलिए संपादन अगले लोड पर लागू होता है — `gate.enabled` तय करता है कि टर्न-सीमा का लाल नोटिस लगेगा या नहीं। यदि host का schemastery `.volatile()` से पुराना है, तो पंक्ति फिर भी माउंट होती है: कार्ड नहीं होता और ब्लॉक profile patch से आता है।
|
|
132
|
+
|
|
130
133
|
गलत कॉन्फ़िगरेशन लोड पर ज़ोर से विफल होता है: अमान्य regex, खाली या दोहराई गई नाम सूचियाँ, सीमा से बाहर थ्रेशोल्ड और दोहराए गए सूची id चुपचाप कुछ न करने के बजाय त्रुटि फेंकते हैं। `strict.patch.yml` सभी-द्वार-अवरोध ओवरले है जो guard पंक्ति को `intensity: block`, सभी मॉड्यूल चालू और कवरेज आवश्यकता सक्षम करके दोबारा घोषित करता है।
|
|
131
134
|
|
|
132
135
|
## उपकरण और सतहें
|
|
@@ -139,7 +142,7 @@ dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
|
|
|
139
142
|
| `/doublecheck status\|report\|on\|off` | कमांड | स्विच, मॉड्यूल, तीव्रता, चरण तथ्य, मुड़ी हुई रिपोर्ट, और टिकाऊ on/off ओवरराइड। |
|
|
140
143
|
| `/gate status\|run\|config` | कमांड | लाइव सूची प्रगति, तय deliverable/rework रिपोर्ट, और प्रभावी कॉन्फ़िग। |
|
|
141
144
|
| `grill-requirements`, `red-green-tdd`, `delivery-review`, `delivery-proof` | skill | सभी छह लूप चरणों को कवर करने वाली बंडल अनुशासन skills। |
|
|
142
|
-
| `
|
|
145
|
+
| `gate` | लाइव कॉन्फ़िग फ़ील्ड | प्लग करने योग्य सूची guard पंक्ति की एकमात्र `.volatile()` फ़ील्ड है: इसे पंक्ति के सेटिंग्स कार्ड से संपादित किया जाता है (नेमस्पेस = पंक्ति की profile प्रविष्टि id) और लोड पर एक बार पढ़ा जाता है। |
|
|
143
146
|
| `strict.patch.yml` | ओवरले | `block` तीव्रता पर हर द्वार चालू और कवरेज आवश्यकता, एक पैच परत में। |
|
|
144
147
|
| `dsh-doublecheck/invariant` | सहयोगी पंक्ति | host `invariants` रजिस्ट्री के माध्यम से पैकेज-स्वामित्व वाले लेखन-पथ विरोधाभासों की रिपोर्ट करता है। |
|
|
145
148
|
|
|
@@ -210,7 +213,7 @@ CLI केवल पहले से स्थापित `GateState` को
|
|
|
210
213
|
|
|
211
214
|
## अनुमतियाँ और डेटा
|
|
212
215
|
|
|
213
|
-
- **पढ़ता है**: सत्र लॉग (`tool/call` / `tool/result` / `tool/ptc-dispatch`, इंजेक्ट किए गए `user/message` स्रोत, और बाहरी `autoReview/*` निर्णय रिकॉर्ड) केवल प्रक्रिया के भीतर; वैकल्पिक प्लान-मोड सेवा स्थिति। V3 नाम-परिवर्तन से पहले का host PTC उप-प्रेषण पूर्ववर्ती लेबल `tool/code-dispatch` से दर्ज करता है; दोनों लेबल समान रूप से फ़ोल्ड होते हैं।
|
|
216
|
+
- **पढ़ता है**: सत्र लॉग (`tool/call` / `tool/result` / `tool/ptc-dispatch`, इंजेक्ट किए गए `user/message` स्रोत, और बाहरी `autoReview/*` निर्णय रिकॉर्ड) केवल प्रक्रिया के भीतर; वैकल्पिक प्लान-मोड सेवा स्थिति। V3 नाम-परिवर्तन से पहले का host PTC उप-प्रेषण पूर्ववर्ती लेबल `tool/code-dispatch` से दर्ज करता है; दोनों लेबल समान रूप से फ़ोल्ड होते हैं। इंजेक्ट किए गए नोटिस इस पैकेज का अपना संदेश-स्रोत kind `dsh-doublecheck` लेकर चलते हैं; उस kind से पहले दर्ज लॉग `plugin:dsh-doublecheck` के रूप में (host का V3→V4 माइग्रेशन जारी catch-all रैपर पर जो पुनर्लेखन करता है) या जारी `plugin` रैपर के रूप में आते हैं, और तीनों रूप समान रूप से फ़ोल्ड होते हैं।
|
|
214
217
|
- **लिखता है**: सत्र कार्यक्षेत्र में `doublecheck-spec.md`, `doublecheck-report.md` और `gate-report.md` (पथ कॉन्फ़िगर करने योग्य) `ctx.fs` इंटरफ़ेस के माध्यम से; टिकाऊ `doublecheck/state` और `doublecheck/gate` सत्र इवेंट।
|
|
215
218
|
- **मॉडल कॉलें**: द्वार के संगति और स्थानीय-समीक्षा चरण (प्रत्येक `/gate run` पर एक-एक subagent), वैकल्पिक प्रतिकूल समीक्षा, और `doublecheck_report` सत्यापन वर्कफ़्लो subagent रन शुरू करते हैं; इसके अलावा कुछ भी मॉडल या नेटवर्क नहीं बुलाता।
|
|
216
219
|
- **कभी नहीं छूता**: क्रेडेंशियल, पर्यावरण चर, या सत्र कार्यक्षेत्र के बाहर कोई फ़ाइल। workshop मेनिफ़ेस्ट केवल `filesystem:read` और `filesystem:write` घोषित करता है। द्वार रिपोर्टें केवल गणना, id और निर्णय रखती हैं; समीक्षक पाठों में पहचाने गए रहस्य भंडारण या प्रदर्शन से पहले संपादित (redacted) कर दिए जाते हैं।
|
|
@@ -227,10 +230,11 @@ CLI केवल पहले से स्थापित `GateState` को
|
|
|
227
230
|
|
|
228
231
|
- **टिकाऊ लेखन।** `/doublecheck on\|off` → `doublecheck/state` और `/gate run` → `doublecheck/gate` को host की `ignorable` append सतह (rc.6 के बाद से `0.1.1-rc.2` तक) चाहिए। उस सतह के बिना hosts (rc.6/rc.8 और `0.1.2-alpha.1`, जिसने envelope हटा दिया — `0.1.2-rc.1` केवल संग्रहीत-लॉग पठन संगतता के लिए फ़ील्ड बहाल करता है और अभी भी स्टैम्प नहीं कर सकता) पर लेखन छोड़ दिया जाता है और स्विच प्रक्रिया-स्थानीय रहता है।
|
|
229
232
|
0.1.2-rc.1 (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है।
|
|
230
|
-
0.1.5-alpha.1 (2026-09-09 को अनुकूलित): सत्र प्रारूप V3 टिकाऊ उप-प्रेषण इवेंट `tool/code-dispatch` का नाम `tool/ptc-dispatch` करता है (पेलोड अपरिवर्तित; दोनों लेबल समान रूप से फ़ोल्ड होते हैं)। Session.append में अभी भी `ignorable` चैनल नहीं है, इसलिए टिकाऊ लेखन छोड़े जाते हैं और स्विच प्रक्रिया-स्थानीय रहता है - व्यवहार अपरिवर्तित। `doublecheck-gate` सेटिंग्स नेमस्पेस
|
|
233
|
+
0.1.5-alpha.1 (2026-09-09 को अनुकूलित): सत्र प्रारूप V3 टिकाऊ उप-प्रेषण इवेंट `tool/code-dispatch` का नाम `tool/ptc-dispatch` करता है (पेलोड अपरिवर्तित; दोनों लेबल समान रूप से फ़ोल्ड होते हैं)। Session.append में अभी भी `ignorable` चैनल नहीं है, इसलिए टिकाऊ लेखन छोड़े जाते हैं और स्विच प्रक्रिया-स्थानीय रहता है - व्यवहार अपरिवर्तित। (उस प्रविष्टि में जोड़ा गया `doublecheck-gate` सेटिंग्स नेमस्पेस 0.1.7-alpha.1 में हटा दिया गया, जब host ने नेमस्पेस रजिस्ट्री मिटा दी।)
|
|
231
234
|
0.1.5-rc.1 (2026-09-10 को अनुकूलित): निर्भरता पिन प्रकाशित 0.1.5-rc.1 लाइन पर चले जाते हैं; कोई इंटरफ़ेस परिवर्तन इस प्लगइन के व्यवहार को प्रभावित नहीं करता।
|
|
232
235
|
0.1.5-rc.2 (2026-09-11 को अनुकूलित): निर्भरता पिन प्रकाशित 0.1.5-rc.2 लाइन पर चले जाते हैं; कोई इंटरफ़ेस परिवर्तन इस प्लगइन के व्यवहार को प्रभावित नहीं करता।
|
|
233
|
-
-
|
|
236
|
+
0.1.7-alpha.1 (2026-09-22 को अनुकूलित): host ने साझा catch-all `plugin` संदेश-स्रोत kind हटा दिया (नोटिस अब अपना `dsh-doublecheck` kind लेकर चलते हैं, और `remindOnce` फ़ोल्ड टिकाऊ लॉग में संभव दोनों अपग्रेड-पूर्व रूपों को अब भी पढ़ता है), और सेटिंग्स नेमस्पेस रजिस्ट्री को `SettingsForms` से बदल दिया (`doublecheck-gate` नेमस्पेस समाप्त; गेट सूची अब guard पंक्ति की एकमात्र `.volatile()` फ़ील्ड है, जो अब भी लोड पर एक बार पढ़ी जाती है)। `@deepseek-ai/cordis` और `@deepseek-ai/schemastery` के dev/test पिन `^4.0.3` / `^3.18.3` पर चले जाते हैं; peer रेंज `^4.0.2` / `^3.18.2` ही रहती है और लाइव-फ़ील्ड क्षमता लोड पर पहचानी जाती है, इसलिए पुरानी host लाइनें भी इस पंक्ति को माउंट करती हैं (बिना सेटिंग्स कार्ड के)। सेटिंग्स के भंडारण-स्थान के अलावा कोई व्यवहार परिवर्तन नहीं।
|
|
237
|
+
- **वैकल्पिक इंटरफ़ेस।** सेटिंग्स सेवा माउंट होने पर guard पंक्ति का अपना सेटिंग्स कार्ड दिखता है; वह कार्ड इसी पंक्ति का Config है (नेमस्पेस = इसकी profile प्रविष्टि id), और `gate` ब्लॉक लोड पर एक बार पढ़ा जाता है, इसलिए उसके मान अगले लोड पर `/gate` पैनल और लाल नोटिस पर लागू होते हैं। लाइव-फ़ील्ड क्षमता लोड पर पहचानी जाती है: यदि host का schemastery `.volatile()` से पुराना है, तो पंक्ति फिर भी माउंट होती है — कार्ड नहीं, और `gate` ब्लॉक profile patch से लिया जाता है। `/gate status` की प्लान-मोड पंक्ति वैकल्पिक `ctx.planMode` पढ़ती है (इसके बिना `unknown` दिखाती है); प्रतिकूल समीक्षा को `ctx.subagents` चाहिए; सत्यापन को `workflowEngine` चाहिए।
|
|
234
238
|
- **स्थानीय अवनति।** जब dsh-auto-review अनुपस्थित हो या इस सत्र में उसके कोई निर्णय रिकॉर्ड न हों, तो `gate.review.engine: auto` स्थानीय समीक्षक पर घट जाता है — रिपोर्ट निर्णय गढ़ने के बजाय कारण बताती है।
|
|
235
239
|
- **dsh-eval साक्ष्य फ़ाइल-आधारित है।** dsh-auto-review का मूल्यांकन इंजन (`dsh-eval`) अपने prompt-regression / stress / fairness परिणाम कार्यक्षेत्र रिपोर्ट फ़ाइल में लिखता है, सत्र लॉग में नहीं। `gate.tests.evalReports.enabled` उस फ़ाइल को मोड़ता है (डिफ़ॉल्ट रूप से बंद; अनुपस्थित होने पर छोड़ देता है) और मोड़ी गई गणनाएँ टिकाऊ `doublecheck/gate` रिकॉर्ड पर चलती हैं, ताकि तयशुदा रन फिर भी रीप्ले हो सके।
|
|
236
240
|
|
|
@@ -258,56 +262,56 @@ pnpm run pack:check # build + pack the tarball
|
|
|
258
262
|
|
|
259
263
|
## PerryLink DSH Plugin Family
|
|
260
264
|
|
|
261
|
-
|
|
265
|
+
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
262
266
|
|
|
263
267
|
| Plugin | One-liner |
|
|
264
268
|
|---|---|
|
|
265
|
-
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** |
|
|
266
|
-
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | वेब UI साइडबार, संदेश और अवरोधन के साथ टिकाऊ पृष्ठभूमि चाइल्ड एजेंट | |
|
|
267
|
-
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | DeepSeek Harness के लिए लागत प्रशासन: बजट, कार्बन और विलंबता एक पैनल में। | |
|
|
268
|
-
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-समतुल्य: स्नैपशॉट, सत्र फ़ॉर्क, एक-बार पुनर्स्थापना | |
|
|
269
|
-
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Claude Code सत्र, मेमोरी, कौशल और CLAUDE.md को DSH में स्थानांतरित करें | |
|
|
270
|
-
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | DeepSeek Harness के लिए क्रॉस-प्लेटफ़ॉर्म नेटिव डेस्कटॉप नियंत्रण — Windows पहले। | |
|
|
271
|
-
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | वेब कंपोज़र के लिए टर्मिनल-शैली इनपुट इतिहास: तीर, Ctrl+R खोज | |
|
|
272
|
-
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | डेटासेट गुणवत्ता जाँच व उद्धरण सत्यापन (यहाँ उपभोग किया गया वैकल्पिक संख्या-सेतु) | |
|
|
273
|
-
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | DeepSeek Harness के लिए प्रॉम्प्ट-इंजेक्शन, जेलब्रेक और सीक्रेट-लीक रक्षा। | |
|
|
274
|
-
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | DeepSeek Harness के लिए एकीकृत स्थैतिक-छवि निर्माण रूटिंग। | |
|
|
275
|
-
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | DeepSeek Harness के लिए रीड-ओनली प्रदर्शन डायग्नोस्टिक्स। | |
|
|
276
|
-
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | चीनी सार्वजनिक म्यूचुअल फंड के लिए नियतात्मक अनुसंधान रिपोर्ट | |
|
|
277
|
-
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | DSH के लिए GitHub PR/issues एकीकरण, हर लेखन अनुमोदन-द्वारित | |
|
|
278
|
-
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | उद्योग-अनुसंधान ऑर्केस्ट्रेशन जो इस प्लगिन के `ctx.researchReport.assemble` से डिलीवरेबल सील करता है | |
|
|
279
|
-
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | DeepSeek Harness के लिए स्थानीय दस्तावेज़ ज्ञानकोश। | |
|
|
280
|
-
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | DeepSeek Harness के लिए स्थानीय-मॉडल (Ollama) एकीकरण। | |
|
|
281
|
-
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | भाषा सर्वरों पर LSP निदान, फ़ॉर्मेटिंग, पूर्णता, कोड क्रियाएँ और नाम बदलना | |
|
|
282
|
-
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII मास्किंग मिडलवेयर: मॉडल सीमा पर अनाम करें, डिस्प्ले लेयर पर पुनर्स्थापित करें | |
|
|
283
|
-
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | केवल-पढ़ने वाला MCP रनटाइम पैनल: /mcp कमांड + स्थिति, टूल और त्रुटियों वाला Settings टैब | |
|
|
284
|
-
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | अनुमोदन-द्वारित क्रॉस-सत्र मेमोरी: ctx.memory सीम + SQLite + मेमोरी टूल | |
|
|
285
|
-
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | DeepSeek Harness के लिए OpenTelemetry और Langfuse अवलोकनीयता निर्यातक। | |
|
|
286
|
-
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-समतुल्य रनटाइम शैली बदलाव | |
|
|
287
|
-
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | मल्टी-चैनल अनुमोदन/प्रश्न ब्रिज: WeChat/Telegram/Feishu, सत्र कंसोल |
|
|
288
|
-
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | ऑडिट के साथ Claude Code-शैली घोषणात्मक allow/deny/ask अनुमति नियम | |
|
|
289
|
-
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | शीर्ष-बार टॉगल के साथ व्यक्तिगत निर्देश इंजेक्टर (फ्रेमवर्क संस्करण) |
|
|
290
|
-
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | माँग पर एजेंट कौशल के रूप में प्लगइन-विकास ज्ञान आधार | |
|
|
291
|
-
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
292
|
-
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | सामग्री-पता साक्ष्य और सीलबंद संस्करणों वाला सत्यापन-योग्य अनुसंधान-रिपोर्ट इंजन | |
|
|
293
|
-
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | DeepSeek Harness प्लगिनों की बहु-आयामी गुणवत्ता स्कोरिंग। | |
|
|
294
|
-
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | टिकाऊ क्रम के साथ वेब साइडबार में सत्र पिन करें | |
|
|
295
|
-
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | DeepSeek Harness के लिए क्रॉस-डिवाइस सत्र सिंक — आपके सत्र स्टोर का एक समर्पित git मिरर। | |
|
|
296
|
-
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | सुरक्षा-ऑडिट कौशल पैक: गुप्त स्कैन, निर्भरता और आपूर्ति-श्रृंखला समीक्षा | |
|
|
297
|
-
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | DeepSeek Harness के लिए आवाज़-प्रथम सत्र लूप: बोलें और उत्तर सुनें। | |
|
|
298
|
-
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | DeepSeek Harness प्लगिनों के लिए पृथक इंस्टॉल-एंड-स्मोक टेस्ट ड्राइव। | |
|
|
299
|
-
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 कार्य ब्रिज: सत्र-हेडर पैनल + 11 टूल |
|
|
300
|
-
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | DeepSeek Harness के लिए वेंडर पैरामीटर अनुवाद और नियतात्मक JSON मरम्मत। | |
|
|
301
|
-
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | WeChat ↔ DSH ब्रिज (Tencent iLink bot): टेक्स्ट/इमेज/फ़ाइल/आवाज़, चैट में अनुमोदन |
|
|
269
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
|
|
302
270
|
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
271
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | |
|
|
272
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | |
|
|
303
273
|
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
304
274
|
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
305
|
-
| **[dsh-
|
|
275
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
|
|
276
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | |
|
|
277
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
|
|
278
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
|
|
279
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
|
|
280
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | |
|
|
281
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
|
|
282
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | |
|
|
283
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
|
|
284
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
|
|
285
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
|
|
286
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
|
|
287
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
|
|
288
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
|
|
289
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
|
|
290
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
|
|
291
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
|
|
292
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
|
|
293
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
|
|
294
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
|
|
295
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
|
|
296
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
|
|
306
297
|
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
298
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
299
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
|
|
307
300
|
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
308
|
-
| **[dsh-plugin-
|
|
301
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
|
|
309
302
|
| **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | |
|
|
303
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | |
|
|
304
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
|
|
305
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
|
|
306
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | |
|
|
307
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. | |
|
|
308
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
|
|
309
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
|
|
310
310
|
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
311
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
312
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
|
|
313
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
|
314
|
+
|
|
311
315
|
|
|
312
316
|
### DSH Desktop मार्केट से इंस्टॉल करें
|
|
313
317
|
|