dsh-memento 0.5.25 → 0.5.28

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 CHANGED
@@ -1,10 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.28] - 2026-10-22
4
+
5
+ ### Added
6
+
7
+ - **The floating entry is draggable and remembers its position (issue #21).** Pointer Events with `setPointerCapture` move `#mem-open`; a drag past 4px persists `{x,y}` in `localStorage` (`dsh.memento.fab.position.v1`), clamps into the viewport with an 8px margin, and re-clamps on `resize` / `orientationchange`. Double-click resets to the CSS default. The click that follows a drag is swallowed, and the suppression clears on the next task so a later click still opens the drawer.
8
+
9
+ ### Fixed
10
+
11
+ - **Narrow screens no longer put the entry on top of the send button.** Below 640px the default position moves to `bottom: 132px`; once the user drags it, the stored position wins.
12
+
13
+ ## [0.5.27] - 2026-10-18
14
+
15
+ ### Changed
16
+
17
+ - Add a 1280×720 hero and a 960×540, 4-second terminal GIF rendered from the test run; `screenshots.json` is an object array and `capture.json` records the command.
18
+
19
+ ## [0.5.26] - 2026-10-18
20
+
21
+ ### Changed
22
+
23
+ - Compatibility: devDependencies to `0.2.1-rc.2`; add `@deepseek-ai/dsh-working-directory`; `dshVersions` includes `0.2.1-rc.2`. The peer range keeps the old-host corridors.
24
+
3
25
  All notable changes to this project will be documented in this file.
4
26
 
5
27
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
28
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
29
 
30
+ ## [Unreleased]
31
+
32
+ ### Added
33
+
34
+ - **The README now carries the video walkthrough.** `docs/assets/dsh-memento-demo.mp4` — a 2 min 23 s narrated run, H.264 (Main @ 4.2) + AAC-LC stereo, 960×544, 1.87 MB — sits behind a click-to-open thumbnail (`docs/assets/dsh-memento-demo-video.png`: the documented terminal still with a play affordance, carrying no language-specific copy so all five READMEs share one asset). All five READMEs carry the block. Neither asset joins the published `files` list: the poster is referenced by absolute `raw.githubusercontent.com` URL, as the PNG and the GIF already were, and the MP4 by both a `github.com/blob` link and a raw direct-download link.
35
+
36
+ ### Changed
37
+
38
+ - **The video is documented as a file to open, not as inline playback.** Two facts drive the wording, both checked against the hosts rather than assumed: GitHub's HTML sanitizer whitelists no `video`/`source` element, so a `<video>` tag in a README renders as nothing, and `raw.githubusercontent.com` serves `.mp4` as `application/octet-stream`, i.e. a download. The caption therefore says what to do — the thumbnail opens the MP4 file, and *Download raw file* is the fallback if it does not play on the page — rather than promising playback inside the README.
39
+ - **The `@alex-debap` credit is restated with the role named.** `0.5.24` introduced the credit; this release names the role (**product manager**), writes out the scope it covers, and drops the version anchor `0.5.24` used. Two claims are narrowed to what the code actually guarantees: the write-approval gate is enforced inside the service so that **no model path** can bypass it — an in-process holder of `ctx.memory` can still reach the store — and the character budgets are hard **per track and per layer**, not per track alone.
40
+
8
41
  ## [0.5.25] - 2026-10-12
9
42
 
10
43
  ### Changed
package/README-es.md CHANGED
@@ -21,6 +21,11 @@
21
21
 
22
22
  [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
23
23
 
24
+ ```sh
25
+ dsh plugin --profile <name> add dsh-memento
26
+ ```
27
+
28
+
24
29
  </div>
25
30
 
26
31
  ---
@@ -29,11 +34,18 @@
29
34
  **📖 Base de conocimiento del ecosistema** — datos medidos, no marketing: [guía de desarrollo · datos de selección · criterios de mantenimiento](https://perrylink.github.io/dsh-plugin-guide/).
30
35
 
31
36
  <!-- star-cta -->
37
+ ## Install & uninstall
38
+
39
+ - **canal git** (último `main`): `dsh plugin --profile web add git+https://github.com/PerryLink/dsh-memento.git`.
40
+ - **canal npm** (versiones publicadas): `dsh plugin --profile web add dsh-memento`.
41
+ - **canal tarball**: `npm pack` en este repo, luego `dsh plugin --profile web add ./dsh-memento-<version>.tgz`.
42
+ - **desinstalar**: `dsh plugin --profile web remove dsh-memento` (la base de datos de memoria y los registros de sesión se conservan).
43
+
32
44
  ## ⭐ 如果它帮到了你
33
45
 
34
46
  Este plugin forma parte de la [familia de plugins DSH](https://github.com/PerryLink) (más de 40, todos Apache-2.0). Si te resulta útil, **dale una estrella**: no desbloquea nada, pero ayuda a que la siguiente persona lo encuentre antes.
35
47
 
36
- *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
48
+ *English:* part of a 95 plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
37
49
 
38
50
  ## What is dsh-memento?
39
51
 
@@ -41,12 +53,17 @@ Memoria entre sesiones acotada, por capas, con puerta de aprobación y auditable
41
53
 
42
54
  Una costura tipada `ctx.memory`, una puerta de aprobación de escritura que ninguna ruta del modelo puede eludir y una auditoría reconstruible — desde el par de aprobación más la tabla de auditoría del plugin, con la brecha del registro de sesión dicha en voz alta.
43
55
 
44
- ![Demostración de terminal de dsh-memento: dsh-memento — read-only stdio MCP server, tools/list over JSON-RPC](https://raw.githubusercontent.com/PerryLink/dsh-memento/main/docs/assets/dsh-memento-demo.png)
56
+ ![Diagrama de flujo de dsh-memento: instalar → abrir panel → actuar.](docs/assets/dsh-memento-flow.svg)
57
+
58
+ *Resumen del flujo: instalar → abrir panel → actuar. Los ejemplos siguientes usan la superficie de comandos real.*
45
59
 
46
- ![Animated terminal demo of dsh-memento](https://raw.githubusercontent.com/PerryLink/dsh-memento/main/docs/assets/dsh-memento-demo.gif)
47
60
 
48
61
  *La misma ejecución, animada.*
49
62
 
63
+ [![Recorrido en vídeo de dsh-memento — abre el archivo MP4](https://raw.githubusercontent.com/PerryLink/dsh-memento/main/docs/assets/dsh-memento-demo-video.png)](https://github.com/PerryLink/dsh-memento/blob/main/docs/assets/dsh-memento-demo.mp4)
64
+
65
+ *▶ **Recorrido narrado de 2 min 23 s** — la miniatura abre el archivo MP4; si no se reproduce en la página, usa *Download raw file* allí ([MP4, 1,87 MB](https://github.com/PerryLink/dsh-memento/blob/main/docs/assets/dsh-memento-demo.mp4) · [descarga directa](https://raw.githubusercontent.com/PerryLink/dsh-memento/main/docs/assets/dsh-memento-demo.mp4)). GitHub elimina las etiquetas `<video>` de los README, así que el vídeo es un archivo que hay que abrir, no algo incrustado.*
66
+
50
67
  ## Compatibility
51
68
 
52
69
  | Surface | Status |
@@ -84,12 +101,70 @@ dsh plugin --profile web add dsh-memento
84
101
  dsh --profile web --dump-config | grep -A3 'id: memento'
85
102
  ```
86
103
 
87
- ## Install & uninstall
104
+ ### Ejemplos
88
105
 
89
- - **canal git** (último `main`): `dsh plugin --profile web add git+https://github.com/PerryLink/dsh-memento.git`.
90
- - **canal npm** (versiones publicadas): `dsh plugin --profile web add dsh-memento`.
91
- - **canal tarball**: `npm pack` en este repo, luego `dsh plugin --profile web add ./dsh-memento-<version>.tgz`.
92
- - **desinstalar**: `dsh plugin --profile web remove dsh-memento` (la base de datos de memoria y los registros de sesión se conservan).
106
+ Son los puntos de entrada reales; instala y llama a uno.
107
+
108
+ #### Ejemplo detallado
109
+
110
+ **Comando**
111
+
112
+ ~~~sh
113
+ memory_stats
114
+ ~~~
115
+
116
+ **Entrada**
117
+
118
+ ~~~json
119
+ {"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"memory_stats","arguments":{}}}
120
+ ~~~
121
+
122
+ **Salida**
123
+
124
+ ~~~text
125
+ {
126
+ "total": 3,
127
+ "namespaces": [
128
+ {
129
+ "track": "agent",
130
+ "scope": "user-global",
131
+ "count": 1
132
+ },
133
+ {
134
+ "track": "agent",
135
+ "scope": "workspace",
136
+ "count": 1
137
+ },
138
+ {
139
+ "track": "user",
140
+ "scope": "workspace",
141
+ "count": 1
142
+ }
143
+ ]
144
+ }
145
+ ~~~
146
+
147
+ *Observado en `test/mcp.test.mjs:108-118 (fixture seed at 21-27); README.md:160-176`*
148
+
149
+ #### Rama de fallo
150
+
151
+ **Entrada**
152
+
153
+ ~~~text
154
+ {"jsonrpc":"2.0","id":10,"method":"tools/call","params":{"name":"memory_search","arguments":{}}}
155
+ ~~~
156
+
157
+ **Salida**
158
+
159
+ ~~~text
160
+ {"jsonrpc":"2.0","id":10,"result":{"content":[{"type":"text","text":"invalid arguments: query must be a non-empty string"}],"isError":true}}
161
+ ~~~
162
+
163
+ *Observado en `plugins/dsh-memento/lib/mcp.mjs:188; plugins/dsh-memento/test/mcp.test.mjs:126-127; reproduced via plugins/dsh-memento/bin/mcp-server.mjs`*
164
+
165
+ #### Ejemplos breves
166
+
167
+ - `/memory`
93
168
 
94
169
  ## Configuration
95
170
 
@@ -286,59 +361,114 @@ Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las compr
286
361
  ## Contributors
287
362
 
288
363
  - [@Niuniu-Sir](https://github.com/Niuniu-Sir) — el informe de fallo de arranque en [issue #1](https://github.com/PerryLink/dsh-memento/issues/1) que llevó al fallback `~/.dsh` incluido en 0.3.1.
289
- - [@alex-debap](https://github.com/alex-debap) — presente desde la etapa de concepción de la 0.1.0: la tesis de la costura y no otro almacén, la insistencia en que la puerta de aprobación sea estructuralmente ineludible y una auditoría reconstruible desde el par de aprobación más la tabla de auditoría del plugin. Nombró el modelo de recuerdo acotado y por capas, defendió el almacenamiento local primero y sin credenciales, y llevó el ensayo del protocolo al espacio público con un registro de adaptadores y una suite de conformidad.
364
+ - [@alex-debap](https://github.com/alex-debap) — **product manager**. Se ocupó de la forma del producto, no de su código, a lo largo de toda la línea de diseño desde el principio: la tesis de la costura y no otro almacén (una costura tipada `ctx.memory`, no otro almacén de memoria), la exigencia de que la puerta de aprobación de escritura se aplique dentro del servicio de modo que ninguna ruta del modelo pueda eludirla, en lugar de ser una convención de la capa de herramientas, y la garantía de auditoría de que toda escritura sea reconstruible desde el par de aprobación más la tabla de auditoría del propio plugin. Nombró el modelo de recuerdo acotado y por capas —dos pistas × dos capas, clave por agente, presupuestos de caracteres duros por pista y por capa— y defendió el almacenamiento local primero y sin credenciales (`0600`, SQLite bajo `$DSH_HOME`, sin red y sin claves). Llevó el trabajo de protocolo como una línea de producto: el ensayo público de `dsh-memory-protocol` v1, su registro de adaptadores y su suite de conformidad. Sostuvo la línea de alcance sobre lo que este plugin deliberadamente no hace.
290
365
 
291
366
  ## PerryLink DSH Plugin Family
292
367
 
293
- Este proyecto es uno de los **34 plugins activamente mantenidos** de DeepSeek Harness de [PerryLink](https://github.com/PerryLink): el registro tiene **42**, de los cuales **5** están congelados y **3** retirados; cada uno conserva su fila abajo, con el motivo en la columna Estado. Si este te ayuda, probablemente los demás también:
368
+ Este proyecto forma parte de la familia de plugins de DeepSeek Harness de [PerryLink](https://github.com/PerryLink). El registro permanece plegado abajo para que cada README conserve una primera pantalla corta; expándelo para ver cada fila y su estado.
294
369
 
295
- | Plugin | En una línea | Estado |
296
- |---|---|---|
297
- | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
298
- | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
299
- | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | 🚫 **RETIRADO** — ver la nota arriba |
300
- | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | 🧊 CONGELADO — ver el README del repositorio |
301
- | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
302
- | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
303
- | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
304
- | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | 🧊 CONGELADO — ver el README del repositorio |
305
- | **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
306
- | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
307
- | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
308
- | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | 🧊 CONGELADO — ver el README del repositorio |
309
- | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
310
- | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | 🧊 CONGELADO — ver el README del repositorio |
311
- | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
312
- | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
313
- | **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
314
- | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
315
- | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
316
- | **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
317
- | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
318
- | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
319
- | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
320
- | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
321
- | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
322
- | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
323
- | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
324
- | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
325
- | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
326
- | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
327
- | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
328
- | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
329
- | **[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 | |
330
- | **[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 | 🚫 RETIRADO — corredores asumidos por `dsh-plugin-upgrade` |
331
- | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | 🧊 CONGELADO — ver el README del repositorio |
332
- | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
333
- | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
334
- | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | 🚫 **RETIRADO** — ver la nota arriba |
335
- | **[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. | |
336
- | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
337
- | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
338
- | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | 🚫 **RETIRADO** — ver la nota arriba |
339
- | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
340
- | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
341
- | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
370
+ <details>
371
+ <summary>Expandir todos los plugins</summary>
372
+
373
+ | Plugin | Estado |
374
+ |---|---|
375
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
376
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
377
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
378
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
379
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
380
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
381
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
382
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
383
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
384
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
385
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
386
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
387
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
388
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
389
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
390
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
391
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
392
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
393
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
394
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
395
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
396
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
397
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
398
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
399
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
400
+ | **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
401
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
402
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
403
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
404
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
405
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
406
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
407
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
408
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
409
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
410
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
411
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
412
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
413
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
414
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
415
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
416
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
417
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
418
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
419
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
420
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
421
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
422
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
423
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
424
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
425
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
426
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
427
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
428
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
429
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
430
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
431
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
432
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
433
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
434
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
435
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
436
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
437
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
438
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
439
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
440
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
441
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
442
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
443
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
444
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
445
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
446
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
447
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
448
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
449
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
450
+ | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
451
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
452
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
453
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
454
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
455
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
456
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
457
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
458
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
459
+ | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
460
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
461
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
462
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 CONGELADO — ver el README del repositorio |
463
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 CONGELADO — ver el README del repositorio |
464
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 CONGELADO — ver el README del repositorio |
465
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 CONGELADO — ver el README del repositorio |
466
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 CONGELADO — ver el README del repositorio |
467
+ | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRADO — ver el README del repositorio |
468
+ | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO — ver el README del repositorio |
469
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO — ver el README del repositorio |
470
+
471
+ </details>
342
472
 
343
473
  ## License
344
474