dsh-plugin-guide 0.4.4 → 0.4.6
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/README.en.md +375 -0
- package/README.es.md +375 -0
- package/README.hi.md +375 -0
- package/README.md +339 -52
- package/README.pt.md +375 -0
- package/docs/assets/dsh-plugin-guide-flow-dark.svg +35 -0
- package/docs/assets/dsh-plugin-guide-flow-light.svg +35 -0
- package/docs/assets/dsh-plugin-guide-flow-v3-dark.svg +82 -0
- package/docs/assets/dsh-plugin-guide-flow-v3-light.svg +82 -0
- package/docs/assets/dsh-plugin-guide-flow-v4-dark.svg +55 -0
- package/docs/assets/dsh-plugin-guide-flow-v4-light.svg +55 -0
- package/docs/assets/dsh-plugin-guide-hero-en-dark.webp +0 -0
- package/docs/assets/dsh-plugin-guide-hero-en-light.webp +0 -0
- package/docs/assets/dsh-plugin-guide-hero-zh-dark.webp +0 -0
- package/docs/assets/dsh-plugin-guide-hero-zh-light.webp +0 -0
- package/docs/flow.md +108 -54
- package/docs/rules.md +2 -2
- package/package.json +1 -1
- package/README-zh.md +0 -82
package/README.es.md
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/dsh-plugin-guide-hero-en-dark.webp">
|
|
5
|
+
<img src="docs/assets/dsh-plugin-guide-hero-en-light.webp" width="100%" alt="dsh-plugin-guide: ENTRY / FLOW / BOOST question lists; the verdict belongs to dsh-standards">
|
|
6
|
+
</picture>
|
|
7
|
+
|
|
8
|
+
# dsh-plugin-guide
|
|
9
|
+
|
|
10
|
+
**Haz la pregunta correcta antes de construir: aclara las capas ENTRY / FLOW / BOOST de un plugin DSH y deja el veredicto a la herramienta que ejecuta las comprobaciones.**
|
|
11
|
+
|
|
12
|
+
La capa de guía para plugins de DSH: explica qué comprobar, por qué importa y a qué herramienta pertenece el veredicto; no certifica, no puntúa y no clasifica, solo enruta las comprobaciones a `dsh-standards`.
|
|
13
|
+
|
|
14
|
+
[Instalar](#instalación-en-tres-pasos) · [Configuración](#configuración) · [FAQ](#faq) · [简体中文](README.md) · [English](README.en.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
|
|
15
|
+
|
|
16
|
+
[](LICENSE)
|
|
17
|
+
[](#compatibilidad)
|
|
18
|
+
[](https://www.npmjs.com/package/dsh-plugin-guide)
|
|
19
|
+
[](https://github.com/PerryLink/dsh-plugin-guide/actions/workflows/verify.yml)
|
|
20
|
+
[](#compatibilidad)
|
|
21
|
+
|
|
22
|
+
[](https://github.com/PerryLink/dsh-plugin-guide/stargazers)
|
|
23
|
+
[](https://www.npmjs.com/package/dsh-plugin-guide)
|
|
24
|
+
[](https://gitee.com/perrylink/dsh-plugin-guide)
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
dsh plugin --profile web add dsh-plugin-guide
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<sub>Guía de la comunidad, sin relación con DeepSeek; no es una certificación, ni una clasificación, ni una auditoría de seguridad. Repositorio canónico: <https://github.com/PerryLink/dsh-plugin-guide> (Gitee es una instantánea de solo lectura).</sub>
|
|
33
|
+
|
|
34
|
+
## Qué es
|
|
35
|
+
|
|
36
|
+
`dsh-plugin-guide` es la **capa de guía** para plugins de DSH: explica qué comprobar, por qué importa y a qué herramienta pertenece el veredicto. Al instalarse registra una skill de agente que se carga bajo demanda y cuyo cuerpo es `SKILL.md`; las referencias relativas de ese cuerpo (`./docs/...`) se resuelven dentro del paquete mediante un `resourceBase` de tipo directorio. No certifica, no puntúa y no clasifica: las comprobaciones están en `dsh-standards`, el texto de las reglas en `dsh-plugin-spec` y la construcción/andamiaje en `dsh-primer`.
|
|
37
|
+
|
|
38
|
+
| Paquete | Rol |
|
|
39
|
+
|---|---|
|
|
40
|
+
| **`dsh-plugin-guide`** | Este paquete: la guía en prosa, el mapa de tres capas y la skill de agente |
|
|
41
|
+
| **`dsh-standards`** | El paraguas de ejecución: comprobaciones ENTRY/FLOW, auditoría `dsh-levels` y los archivos de especificación |
|
|
42
|
+
| **`dsh-plugin-spec`** | El texto de reglas de bajo nivel y la fuente de las cláusulas |
|
|
43
|
+
| **`dsh-primer`** | La skill y CLI heredadas de construcción/andamiaje (antiguo `dsh-plugin-guide` 0.3.x) |
|
|
44
|
+
|
|
45
|
+
<picture>
|
|
46
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/dsh-plugin-guide-flow-v4-dark.svg">
|
|
47
|
+
<img src="docs/assets/dsh-plugin-guide-flow-v4-light.svg" width="100%" alt="dsh-plugin-guide assembly and routing: cordis.patch.yml → index.js → SKILL.md → docs/levels.md → dsh-standards">
|
|
48
|
+
</picture>
|
|
49
|
+
|
|
50
|
+
## Instalación en tres pasos
|
|
51
|
+
|
|
52
|
+
1. **Instalar** (elige un canal):
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
# canal git (último main)
|
|
56
|
+
dsh plugin --profile web add github:PerryLink/dsh-plugin-guide
|
|
57
|
+
# canal npm (versiones publicadas)
|
|
58
|
+
dsh plugin --profile web add dsh-plugin-guide
|
|
59
|
+
# canal tarball: tras npm pack en este repositorio
|
|
60
|
+
dsh plugin --profile web add ./dsh-plugin-guide-<version>.tgz
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Sin paso de compilación: `index.js` es el artefacto publicado, y `SKILL.md` más `docs/` son el cuerpo de la skill.
|
|
64
|
+
|
|
65
|
+
2. **Pedir la skill una vez** (las skills se cargan bajo demanda, nunca como prompt residente):
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
> Usa dsh-plugin-guide para revisar ./my-plugin: primero el veredicto ENTRY y luego qué capas están not-run.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
3. **Verificar que surte efecto**:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
dsh --profile web --dump-config | grep -A2 'id: dsh-plugin-guide'
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
El catálogo de skills de la sesión debe listar `dsh-plugin-guide`, y el cuerpo cargado debe apuntar a `docs/levels.md` (la forma de aceptación registrada en `package.json#dshWorkshop.capability.expected`).
|
|
78
|
+
|
|
79
|
+
**Desinstalar**: `dsh plugin --profile web remove dsh-plugin-guide` (o borra la fila del patch del perfil). El registro es un efecto de Cordis, así que descargar el plugin lo retira sin dejar residuos.
|
|
80
|
+
|
|
81
|
+
## Capacidades clave
|
|
82
|
+
|
|
83
|
+
- **Mapa de tres capas** — ENTRY pregunta «¿se puede reconocer, instalar y arrancar?», FLOW pregunta «¿puede el usuario instalarlo, configurarlo, usarlo, actualizarlo y desinstalarlo?» y BOOST pregunta «¿usa bien Cordis?». Tres pistas, no tres notas; juntas no suman una puntuación ni un certificado.
|
|
84
|
+
- **Enrutado de comprobaciones** — este paquete solo explica y enruta: las comprobaciones de conformidad van a `dsh-standards`, el texto de reglas está en `dsh-plugin-spec` y construir un plugin es cosa de `dsh-primer` (la antigua CLI `dsh-plugin-dev` vive allí, no aquí).
|
|
85
|
+
- **Reglas de evidencia** — `static` ≠ `runtime`, `recognized` ≠ `pass`, `not-run` ≠ `pass`; un PASS necesita comando, artefacto, entorno y fecha; si falta algo, se escribe `not-run`, `not-measured` o `incomplete`.
|
|
86
|
+
- **Skill bajo demanda** — `index.js` lee `SKILL.md`, quita el frontmatter YAML y lo registra con `source: bundled` y un `resourceBase` de directorio; la skill entra en el contexto solo cuando se pide, así que no añade prefijo residente.
|
|
87
|
+
- **Sin autoridad prestada** — sin veredictos, sin puerta de mercado y sin declaración de oficialidad; la disciplina de redacción está escrita en `SKILL.md` y `STANDARDS.md` y se puede revisar línea por línea.
|
|
88
|
+
|
|
89
|
+
### Las tres capas
|
|
90
|
+
|
|
91
|
+
| Capa | Pregunta | ¿Puede emitir veredicto? |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| **ENTRY** | ¿Se puede reconocer, instalar y arrancar? | Sí: recognized / runtime / failed / incomplete / unavailable |
|
|
94
|
+
| **FLOW** | ¿Puede el usuario instalarlo, configurarlo, usarlo, actualizarlo y desinstalarlo? | Sí, solo donde hay evidencia de runtime; si no, `not-run` |
|
|
95
|
+
| **BOOST** | ¿Usa bien Cordis? | Sin veredicto a nivel de plugin; la evidencia se registra por práctica |
|
|
96
|
+
|
|
97
|
+
Lee primero el mapa de una página: [docs/levels.md](docs/levels.md).
|
|
98
|
+
|
|
99
|
+
### Ejecutar las comprobaciones
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
# Solo reconocimiento ENTRY (sin reclamar runtime)
|
|
103
|
+
npx dsh-standards ./my-plugin --scope entry --entry-claim static
|
|
104
|
+
|
|
105
|
+
# Auditoría de tres capas; las capas no ejecutadas siguen not-run / not-measured
|
|
106
|
+
npx -p dsh-standards dsh-levels ./my-plugin --format json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
`recognized` no es un aprobado, `static` no es un aprobado y `not-run` tampoco. Códigos de salida: `0` completado, `1` FAIL atribuible, `2` incompleto/not-run, `3` error de uso; un resultado `not-run` o `incomplete` nunca debe escribirse como aprobado (ver [docs/entry.md](docs/entry.md)).
|
|
110
|
+
|
|
111
|
+
### Qué cambió en 0.4.0
|
|
112
|
+
|
|
113
|
+
- La skill de agente anterior y la CLI `dsh-plugin-dev` se mudaron a [`dsh-primer`](https://github.com/PerryLink/dsh-primer).
|
|
114
|
+
- Este paquete es ahora la capa de **guía**: mapa de tres capas, enrutado de comprobaciones y reglas de evidencia.
|
|
115
|
+
- Las versiones 0.3.x de npm están obsoletas y siguen disponibles para instalaciones existentes. La línea 0.4.0 es un cambio de producto; quien esté fijado a `^0.3` no se actualizará solo.
|
|
116
|
+
- Las comprobaciones viven en [`dsh-standards`](https://github.com/PerryLink/dsh-standards), no en este paquete.
|
|
117
|
+
|
|
118
|
+
## Configuración
|
|
119
|
+
|
|
120
|
+
Este paquete no tiene `Config` de Schemastery: `cordis.patch.yml` solo `insert`a una fila y el plugin no lee ninguna clave `config.*`. Lo único ajustable son esa fila y el perfil donde vive.
|
|
121
|
+
|
|
122
|
+
| Clave | Valor por defecto | Significado |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| `id` | `dsh-plugin-guide` | Identificador de fila; una capa de patch posterior la sustituye por `id` (reemplazo de fila completa) |
|
|
125
|
+
| `name` | `dsh-plugin-guide` | El módulo que importa el loader (`package.json#main` → `index.js`) |
|
|
126
|
+
| `config` | no se acepta | Este paquete no lee claves de configuración; lo que se escriba aquí no tiene efecto |
|
|
127
|
+
|
|
128
|
+
<details>
|
|
129
|
+
<summary>Archivo de patch completo (cordis.patch.yml, 9 líneas)</summary>
|
|
130
|
+
|
|
131
|
+
```yaml
|
|
132
|
+
# dsh-plugin-guide bundle layer: register the packaged knowledge base as an agent skill.
|
|
133
|
+
# This file is the `dsh.bundle.patch` layer (see package.json#dsh.bundle.patch).
|
|
134
|
+
# Layer semantics: a YAML array of row verbs; `insert` adds plugin rows to the
|
|
135
|
+
# composed config. Later layers override a row by `id` (whole-config replacement).
|
|
136
|
+
- insert:
|
|
137
|
+
# `id`: stable row identifier used by later layers to override this row.
|
|
138
|
+
- id: dsh-plugin-guide
|
|
139
|
+
# `name`: the module the loader imports; resolves to this package's entry (package.json#main → index.js).
|
|
140
|
+
name: dsh-plugin-guide
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
</details>
|
|
144
|
+
|
|
145
|
+
Para desactivarlo: borra esa fila del patch del perfil o ejecuta `dsh plugin --profile web remove dsh-plugin-guide`.
|
|
146
|
+
|
|
147
|
+
## FAQ
|
|
148
|
+
|
|
149
|
+
<details>
|
|
150
|
+
<summary>¿Va a decidir si mi plugin es suficientemente bueno?</summary>
|
|
151
|
+
|
|
152
|
+
No. Este paquete es la capa de guía, no el juez: explica las tres capas, enruta las comprobaciones a `dsh-standards` y enuncia las reglas de evidencia. BOOST tampoco tiene aprobado/suspenso a nivel de plugin: una práctica puede llevar evidencia, pero un plugin nunca recibe un «nivel BOOST».
|
|
153
|
+
|
|
154
|
+
</details>
|
|
155
|
+
|
|
156
|
+
<details>
|
|
157
|
+
<summary>¿Un resultado `recognized` o `static` cuenta como aprobado?</summary>
|
|
158
|
+
|
|
159
|
+
No. `recognized` solo significa que la forma del paquete se puede identificar y `static` solo que se hizo una preverificación estática; `static` ≠ `runtime` y `not-run` ≠ `pass`. Cuando FLOW solo ha recorrido unos pocos journeys el estado es `not-run`, nunca un aprobado blando; tampoco se debe publicar una tasa de aprobados ni una nota de FLOW.
|
|
160
|
+
|
|
161
|
+
</details>
|
|
162
|
+
|
|
163
|
+
<details>
|
|
164
|
+
<summary>¿Instalarlo toca mi perfil o mis otros plugins?</summary>
|
|
165
|
+
|
|
166
|
+
No. Registra exactamente una skill en el servicio `skills` (nombre `dsh-plugin-guide`, `source: bundled`), envuelta en `ctx.effect()` para que descargar o recargar en caliente la retire; no registra herramientas, comandos, slots de cliente ni prefijo `webServer`, no hace peticiones de red y solo declara el permiso `filesystem:read`.
|
|
167
|
+
|
|
168
|
+
</details>
|
|
169
|
+
|
|
170
|
+
<details>
|
|
171
|
+
<summary>¿Y los usuarios de 0.3.x?</summary>
|
|
172
|
+
|
|
173
|
+
0.3.x está obsoleto pero se puede instalar; 0.4.0 es un cambio de producto, así que un perfil fijado a `^0.3` no se actualizará solo. La skill y la CLI heredadas de construcción/andamiaje ahora pertenecen a [`dsh-primer`](https://github.com/PerryLink/dsh-primer); este paquete conserva solo la guía y el enrutado.
|
|
174
|
+
|
|
175
|
+
</details>
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>¿Dónde están realmente el comprobador y el texto de las reglas?</summary>
|
|
179
|
+
|
|
180
|
+
El comprobador y la auditoría de tres capas están en [`dsh-standards`](https://www.npmjs.com/package/dsh-standards) (`npx dsh-standards`, `npx -p dsh-standards dsh-levels`); el texto de las reglas está en [`dsh-plugin-spec`](https://github.com/PerryLink/dsh-plugin-spec). El marcador `dsh.standards` del `package.json` de este paquete sigue en entry/flow = `not-run`, boost = `not-measured`, `evidence: null`: eso significa «sin medir», no «aprobado».
|
|
181
|
+
|
|
182
|
+
</details>
|
|
183
|
+
|
|
184
|
+
## Límites de seguridad
|
|
185
|
+
|
|
186
|
+
- Sin aval oficial, certificación, acreditación ni auditoría de seguridad.
|
|
187
|
+
- Sin puntuación, clasificación ni puerta de mercado.
|
|
188
|
+
- Sin evidencia de runtime inventada: `static` ≠ `runtime`, `not-run` ≠ `pass`.
|
|
189
|
+
- BOOST es consejo y evidencia, nunca una nota del plugin.
|
|
190
|
+
- **El texto es el límite.** La guía solo afirma lo que puede señalar en un documento fuente; una práctica que no se puede medir (horas de desarrollo, coste de mantenimiento) se registra como WARN o nota, nunca como un número inventado (ver [docs/boost.md](docs/boost.md)).
|
|
191
|
+
- **No oficial por construcción.** Sin certificación, acreditación, auditoría de seguridad, clasificación ni puerta de mercado; la redacción evita declaraciones official / certified / secure / recommended / ranked (ver [STANDARDS.md](STANDARDS.md)).
|
|
192
|
+
|
|
193
|
+
## Permisos y datos
|
|
194
|
+
|
|
195
|
+
- **Permisos**: `package.json#dshWorkshop.permissions` declara solo `filesystem:read`. En `apply()` el plugin lee el `SKILL.md` empaquetado, y las referencias relativas del cuerpo se resuelven en el `docs/` del paquete mediante el `resourceBase` de directorio.
|
|
196
|
+
- **Datos**: no se escribe en el workspace ni fuera del perfil; no se añade telemetría, analítica, publicidad ni cuenta alojada, y no se envían datos a PerryLink (ver [PRIVACY.md](PRIVACY.md)). El almacenamiento de sesiones y logs del host y su retención los controla el host.
|
|
197
|
+
- **Desinstalación**: quitar el paquete borra solo su código, no los logs del host, los archivos del workspace ni los documentos que ya hayas producido.
|
|
198
|
+
|
|
199
|
+
## Limitaciones conocidas
|
|
200
|
+
|
|
201
|
+
- **La guía no produce veredicto.** No tiene capacidad de juez: no puede marcar un plugin como aprobado ni como suspenso; el veredicto solo sale de un resultado que `dsh-standards` haya ejecutado de verdad.
|
|
202
|
+
- **El runtime de FLOW sigue siendo un borrador.** J1/J2/J4/J6 tienen evidencia de runtime sobre fixtures; J3/J7 solo llegan a runtime de nivel fixture; J5/J8 solo tienen preverificación estática; el renderizado en navegador aún no está cubierto; por eso «solo se ejecutaron unos pocos journeys» debe escribirse como `not-run` (ver [docs/flow.md](docs/flow.md)).
|
|
203
|
+
- **Los ejemplos medidos de BOOST son fixtures o capturas sintéticas.** No son líneas base de producción; LEV-3, LEV-6 y LEV-7 tienen la evidencia más fuerte, el resto solo fixtures de nivel loader/contexto; sin evidencia el estado es `not-measured` (ver [docs/boost.md](docs/boost.md)).
|
|
204
|
+
- **Las reglas siguen al host.** La línea base es DSH `0.2.2-alpha.3` / Cordis `4.0.6-alpha.2` a fecha 2026-11-04; Node exige `>=24.9.0` desde `0.2.2-alpha.2`; `ctx.menus` desapareció en `0.2.2-alpha.3`; y desde `0.2.1-alpha.4` el `engines.dsh` declarado decide solo el corredor de versiones (ver [docs/levels.md](docs/levels.md)).
|
|
205
|
+
- **El marcador `dsh.standards` no es una nota.** En `package.json`, entry/flow = `not-run`, boost = `not-measured`, `evidence: null`: solo un marcador.
|
|
206
|
+
- **0.3.x se queda con la forma antigua.** 0.3.x es una línea obsoleta; la capacidad de construcción/andamiaje está ahora en `dsh-primer` y este paquete no incluye CLI.
|
|
207
|
+
|
|
208
|
+
## Interoperabilidad con otros plugins DSH
|
|
209
|
+
|
|
210
|
+
Este plugin **no interfiere** con otros plugins:
|
|
211
|
+
|
|
212
|
+
- **Sin colisión de herramientas, comandos ni claves de servicio.** No registra herramientas, comandos ni claves de servicio, así que no ocupa nombres desnudos y no puede colisionar en una clave de servicio.
|
|
213
|
+
- **Sin colisión de slots ni de rutas HTTP.** No registra claves de slot de cliente ni prefijo `webServer`.
|
|
214
|
+
- **La única dependencia es el servicio `skills`.** `export const inject = ['skills']`, que aporta el host; no importa la implementación del host, solo consume ese servicio.
|
|
215
|
+
- **Sin listeners de eventos compartidos.** No escucha eventos sensibles al orden como `agent/pre-step` o `tools/post-execute`, así que no hay cadena waterfall que cortocircuitar.
|
|
216
|
+
- **Sin colisión de capas de patch.** El patch del bundle solo `insert`a su propia fila; nunca sobrescribe el `config` de una fila integrada.
|
|
217
|
+
- **Sin mutación global.** No parchea prototipos, no reescribe `process.env` y no sustituye el dispatcher fetch global.
|
|
218
|
+
- **El registro es un efecto.** `ctx.effect(() => ctx.skills.register(...))`: parar o recargar en caliente retira la contribución.
|
|
219
|
+
|
|
220
|
+
Línea base: DSH `0.2.2-alpha.3` / Cordis `4.0.6-alpha.2` (según [docs/levels.md](docs/levels.md), 2026-11-04).
|
|
221
|
+
|
|
222
|
+
## Compatibilidad
|
|
223
|
+
|
|
224
|
+
| Superficie | Estado |
|
|
225
|
+
|---|---|
|
|
226
|
+
| Harness | `engines.dsh` = `>=0.2.2-0 <0.3.0` (desde `0.2.1-alpha.4`, `engines.dsh` decide solo; el semver por defecto de npm necesita un brazo de unión explícito `^0.2.2-alpha.3`). Línea base DSH `0.2.2-alpha.3` (npm `alpha`), Cordis `4.0.6-alpha.2`. |
|
|
227
|
+
| Node | `>=24.9.0` (requisito de la línea 0.2.2, desde `0.2.2-alpha.2`) |
|
|
228
|
+
| Plataformas | Donde corra DSH (skill de texto plano; sin mitad de navegador, sin extensión nativa) |
|
|
229
|
+
| Modelo | Sin llamadas al modelo: el host inyecta el texto de la skill en el contexto, así que no hace falta capacidad de modelo adicional |
|
|
230
|
+
|
|
231
|
+
## Ecosistema y calidad
|
|
232
|
+
|
|
233
|
+
- [Página del paquete en npm](https://www.npmjs.com/package/dsh-plugin-guide) (versiones publicadas, `0.4.3`)
|
|
234
|
+
- [Espejo en Gitee](https://gitee.com/perrylink/dsh-plugin-guide) (instantánea de solo lectura; GitHub es la fuente canónica)
|
|
235
|
+
- [dsh-standards](https://www.npmjs.com/package/dsh-standards) (el comprobador y la auditoría de tres capas `dsh-levels`)
|
|
236
|
+
- [dsh-plugin-spec](https://github.com/PerryLink/dsh-plugin-spec) (el texto de reglas de bajo nivel y la fuente de las cláusulas)
|
|
237
|
+
- [dsh-primer](https://github.com/PerryLink/dsh-primer) (la skill y CLI heredadas de construcción/andamiaje)
|
|
238
|
+
- Documentos del repositorio: [las tres capas](docs/levels.md) · [ENTRY](docs/entry.md) · [FLOW](docs/flow.md) · [BOOST](docs/boost.md)
|
|
239
|
+
- Gobernanza del repositorio: [CHANGELOG](CHANGELOG.md) · [STANDARDS.md](STANDARDS.md) · [CONTRIBUTING](CONTRIBUTING.md)
|
|
240
|
+
|
|
241
|
+
## Desarrollo
|
|
242
|
+
|
|
243
|
+
```sh
|
|
244
|
+
npm test # node --test tests/*.test.mjs
|
|
245
|
+
npm run test:pack # npm pack --dry-run
|
|
246
|
+
python scripts/gen-readme-assets.py # regenera los SVG hero claro/oscuro de docs/assets (Python + Pillow)
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Sin paso de compilación: `index.js` es el artefacto publicado. La CI es [.github/workflows/verify.yml](.github/workflows/verify.yml) (matriz de Node 22 y 24 que ejecuta las pruebas unitarias y `npm pack --dry-run`). Las imágenes del README se generan de forma programática con [scripts/gen-readme-assets.py](scripts/gen-readme-assets.py); volver a ejecutarlo es idempotente y sobrescribe en el sitio.
|
|
250
|
+
|
|
251
|
+
| Ruta | Función |
|
|
252
|
+
|---|---|
|
|
253
|
+
| `index.js` | La única cara de host: lee `SKILL.md`, quita el frontmatter y registra la skill con `ctx.effect` |
|
|
254
|
+
| `SKILL.md` | El cuerpo de la skill y su `description` (frontmatter YAML) |
|
|
255
|
+
| `docs/` | El mapa de tres capas y las guías ENTRY/FLOW/BOOST que referencia el cuerpo |
|
|
256
|
+
| `locale/` | Metadatos de presentación zh/en de la skill (`meta.title`, `meta.description`) |
|
|
257
|
+
| `cordis.patch.yml` | La capa de patch del bundle; solo `insert`a su propia fila |
|
|
258
|
+
| `tests/` | `node --test`: análisis del frontmatter y registro de la skill |
|
|
259
|
+
| `scripts/gen-readme-assets.py` | Generación programática de imágenes (Python + Pillow) |
|
|
260
|
+
| `STANDARDS.md` · `NOTICE.md` · `PRIVACY.md` | Estado de estándares, NOTICE y declaración de privacidad |
|
|
261
|
+
|
|
262
|
+
## Familia y agradecimientos
|
|
263
|
+
|
|
264
|
+
Este proyecto forma parte de la familia de plugins de DeepSeek Harness de [PerryLink](https://github.com/PerryLink) (todos Apache-2.0). Si esta guía te resulta útil, **una estrella ayuda a que la siguiente persona la encuentre**: no hay nada bloqueado tras ella.
|
|
265
|
+
|
|
266
|
+
- [@PerryLink](https://github.com/PerryLink) — creador y mantenedor: el mapa de tres capas y el texto de las guías ENTRY/FLOW/BOOST, la skill `SKILL.md`, la capa de patch del bundle y la documentación en cinco idiomas.
|
|
267
|
+
|
|
268
|
+
<details>
|
|
269
|
+
<summary>Expandir todos los plugins</summary>
|
|
270
|
+
|
|
271
|
+
| Plugin | Estado |
|
|
272
|
+
|---|---|
|
|
273
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
|
|
274
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
|
|
275
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
|
|
276
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | 🧊 CONGELADO — ver el README del repo |
|
|
277
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
|
|
278
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
|
|
279
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | 🧊 CONGELADO — ver el README del repo |
|
|
280
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
|
|
281
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
|
|
282
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
|
|
283
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
|
|
284
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
|
|
285
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | 🧊 CONGELADO — ver el README del repo |
|
|
286
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
|
|
287
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
|
|
288
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
|
|
289
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
|
|
290
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
|
|
291
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
|
|
292
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
|
|
293
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
|
|
294
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
|
|
295
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
|
|
296
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
|
|
297
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
|
|
298
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
|
|
299
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
|
|
300
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
|
|
301
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
|
|
302
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
|
|
303
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
|
|
304
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
|
|
305
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
|
|
306
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
|
|
307
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
|
|
308
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
|
|
309
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
|
|
310
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
|
|
311
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
|
|
312
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
|
|
313
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
|
|
314
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
|
|
315
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
|
|
316
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
|
|
317
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
|
|
318
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | 🧊 CONGELADO — ver el README del repo |
|
|
319
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
|
|
320
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
|
|
321
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
|
|
322
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
|
|
323
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
|
|
324
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
|
|
325
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
|
|
326
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
|
|
327
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
|
|
328
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
|
|
329
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
|
|
330
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | 🚫 RETIRADO (repo archivado) |
|
|
331
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
|
|
332
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | 🚫 RETIRADO (repo archivado) |
|
|
333
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | 🚫 RETIRADO (repo archivado) |
|
|
334
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
|
|
335
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
|
|
336
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
|
|
337
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
|
|
338
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
|
|
339
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
|
|
340
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
|
|
341
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
|
|
342
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
|
|
343
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
|
|
344
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
|
|
345
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | 🧊 CONGELADO — ver el README del repo |
|
|
346
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
|
|
347
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
|
|
348
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
|
|
349
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
|
|
350
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
|
|
351
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
|
|
352
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
|
|
353
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
|
|
354
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
|
|
355
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
|
|
356
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
|
|
357
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | 🚫 RETIRADO (repo archivado) |
|
|
358
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
|
|
359
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
|
|
360
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 CONGELADO — ver el README del repo |
|
|
361
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 CONGELADO — ver el README del repo |
|
|
362
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 CONGELADO — ver el README del repo |
|
|
363
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 CONGELADO — ver el README del repo |
|
|
364
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 CONGELADO — ver el README del repo |
|
|
365
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRADO (repo archivado) |
|
|
366
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO (repo archivado) |
|
|
367
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO (repo archivado) |
|
|
368
|
+
|
|
369
|
+
</details>
|
|
370
|
+
|
|
371
|
+
## Licencia
|
|
372
|
+
|
|
373
|
+
[LICENSE](LICENSE) (Apache License 2.0) © 2026 dsh-plugin-guide contributors
|
|
374
|
+
|
|
375
|
+
<p align="center"><sub>Apache-2.0 · Guía de la comunidad, no afiliada a DeepSeek.</sub></p>
|