docviz-builder 0.1.0

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.
Files changed (233) hide show
  1. package/AGENTS.md +371 -0
  2. package/LICENSE +21 -0
  3. package/README.md +837 -0
  4. package/bin/docviz-mcp.mjs +10 -0
  5. package/bin/docviz.mjs +11 -0
  6. package/dist/build/builder.d.ts +62 -0
  7. package/dist/build/builder.d.ts.map +1 -0
  8. package/dist/build/builder.js +337 -0
  9. package/dist/build/builder.js.map +1 -0
  10. package/dist/build/diff.d.ts +64 -0
  11. package/dist/build/diff.d.ts.map +1 -0
  12. package/dist/build/diff.js +156 -0
  13. package/dist/build/diff.js.map +1 -0
  14. package/dist/build/doctor.d.ts +39 -0
  15. package/dist/build/doctor.d.ts.map +1 -0
  16. package/dist/build/doctor.js +190 -0
  17. package/dist/build/doctor.js.map +1 -0
  18. package/dist/build/init.d.ts +28 -0
  19. package/dist/build/init.d.ts.map +1 -0
  20. package/dist/build/init.js +274 -0
  21. package/dist/build/init.js.map +1 -0
  22. package/dist/build/preview.d.ts +13 -0
  23. package/dist/build/preview.d.ts.map +1 -0
  24. package/dist/build/preview.js +277 -0
  25. package/dist/build/preview.js.map +1 -0
  26. package/dist/build/skill.d.ts +41 -0
  27. package/dist/build/skill.d.ts.map +1 -0
  28. package/dist/build/skill.js +63 -0
  29. package/dist/build/skill.js.map +1 -0
  30. package/dist/build/verify.d.ts +26 -0
  31. package/dist/build/verify.d.ts.map +1 -0
  32. package/dist/build/verify.js +99 -0
  33. package/dist/build/verify.js.map +1 -0
  34. package/dist/cli.d.ts +20 -0
  35. package/dist/cli.d.ts.map +1 -0
  36. package/dist/cli.js +427 -0
  37. package/dist/cli.js.map +1 -0
  38. package/dist/config/load.d.ts +32 -0
  39. package/dist/config/load.d.ts.map +1 -0
  40. package/dist/config/load.js +279 -0
  41. package/dist/config/load.js.map +1 -0
  42. package/dist/config/types.d.ts +89 -0
  43. package/dist/config/types.d.ts.map +1 -0
  44. package/dist/config/types.js +5 -0
  45. package/dist/config/types.js.map +1 -0
  46. package/dist/core/cache.d.ts +32 -0
  47. package/dist/core/cache.d.ts.map +1 -0
  48. package/dist/core/cache.js +69 -0
  49. package/dist/core/cache.js.map +1 -0
  50. package/dist/core/errors.d.ts +115 -0
  51. package/dist/core/errors.d.ts.map +1 -0
  52. package/dist/core/errors.js +164 -0
  53. package/dist/core/errors.js.map +1 -0
  54. package/dist/core/hash.d.ts +57 -0
  55. package/dist/core/hash.d.ts.map +1 -0
  56. package/dist/core/hash.js +0 -0
  57. package/dist/core/hash.js.map +1 -0
  58. package/dist/core/package-version.d.ts +9 -0
  59. package/dist/core/package-version.d.ts.map +1 -0
  60. package/dist/core/package-version.js +44 -0
  61. package/dist/core/package-version.js.map +1 -0
  62. package/dist/core/paths.d.ts +46 -0
  63. package/dist/core/paths.d.ts.map +1 -0
  64. package/dist/core/paths.js +105 -0
  65. package/dist/core/paths.js.map +1 -0
  66. package/dist/core/registry.d.ts +24 -0
  67. package/dist/core/registry.d.ts.map +1 -0
  68. package/dist/core/registry.js +72 -0
  69. package/dist/core/registry.js.map +1 -0
  70. package/dist/core/types.d.ts +78 -0
  71. package/dist/core/types.d.ts.map +1 -0
  72. package/dist/core/types.js +11 -0
  73. package/dist/core/types.js.map +1 -0
  74. package/dist/dsl/architecture.d.ts +15 -0
  75. package/dist/dsl/architecture.d.ts.map +1 -0
  76. package/dist/dsl/architecture.js +242 -0
  77. package/dist/dsl/architecture.js.map +1 -0
  78. package/dist/dsl/catalog.d.ts +62 -0
  79. package/dist/dsl/catalog.d.ts.map +1 -0
  80. package/dist/dsl/catalog.en.d.ts +18 -0
  81. package/dist/dsl/catalog.en.d.ts.map +1 -0
  82. package/dist/dsl/catalog.en.js +299 -0
  83. package/dist/dsl/catalog.en.js.map +1 -0
  84. package/dist/dsl/catalog.js +1082 -0
  85. package/dist/dsl/catalog.js.map +1 -0
  86. package/dist/dsl/chart.d.ts +14 -0
  87. package/dist/dsl/chart.d.ts.map +1 -0
  88. package/dist/dsl/chart.js +435 -0
  89. package/dist/dsl/chart.js.map +1 -0
  90. package/dist/dsl/compile.d.ts +31 -0
  91. package/dist/dsl/compile.d.ts.map +1 -0
  92. package/dist/dsl/compile.js +120 -0
  93. package/dist/dsl/compile.js.map +1 -0
  94. package/dist/dsl/diagram-bpmn.d.ts +13 -0
  95. package/dist/dsl/diagram-bpmn.d.ts.map +1 -0
  96. package/dist/dsl/diagram-bpmn.js +215 -0
  97. package/dist/dsl/diagram-bpmn.js.map +1 -0
  98. package/dist/dsl/diagram-product.d.ts +15 -0
  99. package/dist/dsl/diagram-product.d.ts.map +1 -0
  100. package/dist/dsl/diagram-product.js +291 -0
  101. package/dist/dsl/diagram-product.js.map +1 -0
  102. package/dist/dsl/diagram-technical.d.ts +28 -0
  103. package/dist/dsl/diagram-technical.d.ts.map +1 -0
  104. package/dist/dsl/diagram-technical.js +365 -0
  105. package/dist/dsl/diagram-technical.js.map +1 -0
  106. package/dist/dsl/diagram.d.ts +22 -0
  107. package/dist/dsl/diagram.d.ts.map +1 -0
  108. package/dist/dsl/diagram.js +542 -0
  109. package/dist/dsl/diagram.js.map +1 -0
  110. package/dist/dsl/fallbacks-d2.d.ts +27 -0
  111. package/dist/dsl/fallbacks-d2.d.ts.map +1 -0
  112. package/dist/dsl/fallbacks-d2.js +265 -0
  113. package/dist/dsl/fallbacks-d2.js.map +1 -0
  114. package/dist/dsl/fallbacks.d.ts +25 -0
  115. package/dist/dsl/fallbacks.d.ts.map +1 -0
  116. package/dist/dsl/fallbacks.js +264 -0
  117. package/dist/dsl/fallbacks.js.map +1 -0
  118. package/dist/dsl/fields.d.ts +93 -0
  119. package/dist/dsl/fields.d.ts.map +1 -0
  120. package/dist/dsl/fields.js +233 -0
  121. package/dist/dsl/fields.js.map +1 -0
  122. package/dist/dsl/index.d.ts +50 -0
  123. package/dist/dsl/index.d.ts.map +1 -0
  124. package/dist/dsl/index.js +114 -0
  125. package/dist/dsl/index.js.map +1 -0
  126. package/dist/dsl/util.d.ts +105 -0
  127. package/dist/dsl/util.d.ts.map +1 -0
  128. package/dist/dsl/util.js +261 -0
  129. package/dist/dsl/util.js.map +1 -0
  130. package/dist/index.d.ts +27 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +21 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/markdown/scan.d.ts +73 -0
  135. package/dist/markdown/scan.d.ts.map +1 -0
  136. package/dist/markdown/scan.js +150 -0
  137. package/dist/markdown/scan.js.map +1 -0
  138. package/dist/markdown/transform.d.ts +28 -0
  139. package/dist/markdown/transform.d.ts.map +1 -0
  140. package/dist/markdown/transform.js +38 -0
  141. package/dist/markdown/transform.js.map +1 -0
  142. package/dist/mcp/server.d.ts +18 -0
  143. package/dist/mcp/server.d.ts.map +1 -0
  144. package/dist/mcp/server.js +118 -0
  145. package/dist/mcp/server.js.map +1 -0
  146. package/dist/mcp/tools.d.ts +118 -0
  147. package/dist/mcp/tools.d.ts.map +1 -0
  148. package/dist/mcp/tools.js +573 -0
  149. package/dist/mcp/tools.js.map +1 -0
  150. package/dist/renderers/base.d.ts +18 -0
  151. package/dist/renderers/base.d.ts.map +1 -0
  152. package/dist/renderers/base.js +59 -0
  153. package/dist/renderers/base.js.map +1 -0
  154. package/dist/renderers/bpmn.d.ts +68 -0
  155. package/dist/renderers/bpmn.d.ts.map +1 -0
  156. package/dist/renderers/bpmn.js +158 -0
  157. package/dist/renderers/bpmn.js.map +1 -0
  158. package/dist/renderers/browser.d.ts +30 -0
  159. package/dist/renderers/browser.d.ts.map +1 -0
  160. package/dist/renderers/browser.js +143 -0
  161. package/dist/renderers/browser.js.map +1 -0
  162. package/dist/renderers/color-scheme.d.ts +40 -0
  163. package/dist/renderers/color-scheme.d.ts.map +1 -0
  164. package/dist/renderers/color-scheme.js +122 -0
  165. package/dist/renderers/color-scheme.js.map +1 -0
  166. package/dist/renderers/d2.d.ts +37 -0
  167. package/dist/renderers/d2.d.ts.map +1 -0
  168. package/dist/renderers/d2.js +108 -0
  169. package/dist/renderers/d2.js.map +1 -0
  170. package/dist/renderers/graphviz.d.ts +33 -0
  171. package/dist/renderers/graphviz.d.ts.map +1 -0
  172. package/dist/renderers/graphviz.js +88 -0
  173. package/dist/renderers/graphviz.js.map +1 -0
  174. package/dist/renderers/in-page.d.ts +33 -0
  175. package/dist/renderers/in-page.d.ts.map +1 -0
  176. package/dist/renderers/in-page.js +76 -0
  177. package/dist/renderers/in-page.js.map +1 -0
  178. package/dist/renderers/index.d.ts +20 -0
  179. package/dist/renderers/index.d.ts.map +1 -0
  180. package/dist/renderers/index.js +94 -0
  181. package/dist/renderers/index.js.map +1 -0
  182. package/dist/renderers/kroki.d.ts +38 -0
  183. package/dist/renderers/kroki.d.ts.map +1 -0
  184. package/dist/renderers/kroki.js +151 -0
  185. package/dist/renderers/kroki.js.map +1 -0
  186. package/dist/renderers/likec4-svg.d.ts +82 -0
  187. package/dist/renderers/likec4-svg.d.ts.map +1 -0
  188. package/dist/renderers/likec4-svg.js +435 -0
  189. package/dist/renderers/likec4-svg.js.map +1 -0
  190. package/dist/renderers/likec4.d.ts +22 -0
  191. package/dist/renderers/likec4.d.ts.map +1 -0
  192. package/dist/renderers/likec4.js +77 -0
  193. package/dist/renderers/likec4.js.map +1 -0
  194. package/dist/renderers/mermaid.d.ts +64 -0
  195. package/dist/renderers/mermaid.d.ts.map +1 -0
  196. package/dist/renderers/mermaid.js +196 -0
  197. package/dist/renderers/mermaid.js.map +1 -0
  198. package/dist/renderers/plantuml.d.ts +56 -0
  199. package/dist/renderers/plantuml.d.ts.map +1 -0
  200. package/dist/renderers/plantuml.js +195 -0
  201. package/dist/renderers/plantuml.js.map +1 -0
  202. package/dist/renderers/svg-utils.d.ts +46 -0
  203. package/dist/renderers/svg-utils.d.ts.map +1 -0
  204. package/dist/renderers/svg-utils.js +439 -0
  205. package/dist/renderers/svg-utils.js.map +1 -0
  206. package/dist/renderers/svgbob.d.ts +26 -0
  207. package/dist/renderers/svgbob.d.ts.map +1 -0
  208. package/dist/renderers/svgbob.js +70 -0
  209. package/dist/renderers/svgbob.js.map +1 -0
  210. package/dist/renderers/vega-lite.d.ts +18 -0
  211. package/dist/renderers/vega-lite.d.ts.map +1 -0
  212. package/dist/renderers/vega-lite.js +94 -0
  213. package/dist/renderers/vega-lite.js.map +1 -0
  214. package/dist/themes/index.d.ts +17 -0
  215. package/dist/themes/index.d.ts.map +1 -0
  216. package/dist/themes/index.js +419 -0
  217. package/dist/themes/index.js.map +1 -0
  218. package/dist/themes/types.d.ts +99 -0
  219. package/dist/themes/types.d.ts.map +1 -0
  220. package/dist/themes/types.js +9 -0
  221. package/dist/themes/types.js.map +1 -0
  222. package/eval/casos.json +513 -0
  223. package/package.json +114 -0
  224. package/scripts/capture-preview.mjs +101 -0
  225. package/scripts/check-github.mjs +128 -0
  226. package/scripts/eval.d.mts +8 -0
  227. package/scripts/eval.mjs +284 -0
  228. package/scripts/fetch-plantuml.mjs +122 -0
  229. package/scripts/generate-catalog-doc.mjs +106 -0
  230. package/scripts/rasterize.mjs +68 -0
  231. package/scripts/sync-docs.mjs +158 -0
  232. package/skills/docviz/SKILL.md +111 -0
  233. package/vendor/.gitkeep +0 -0
package/AGENTS.md ADDED
@@ -0,0 +1,371 @@
1
+ # Instrucciones para agentes — Documentación visual
2
+
3
+ Este proyecto usa **DocViz Builder** para generar diagramas, gráficos y
4
+ visualizaciones dentro de documentos Markdown.
5
+
6
+ ## Regla principal
7
+
8
+ Modifica exclusivamente los documentos fuente de:
9
+
10
+ ```
11
+ docs-src/
12
+ ```
13
+
14
+ No edites nunca a mano:
15
+
16
+ ```
17
+ docs/
18
+ docs/assets/generated/
19
+ ```
20
+
21
+ Son directorios generados. Cualquier cambio manual se pierde en la siguiente
22
+ compilación.
23
+
24
+ ---
25
+
26
+ ## Describe la intención, no la tecnología
27
+
28
+ DocViz sabe qué motor usar. Tú solo declaras qué quieres explicar, con una de
29
+ estas tres vallas:
30
+
31
+ | Valla | Cuándo |
32
+ |---|---|
33
+ | `diagram` | Interacción, flujo, estados, dependencias, análisis estratégico |
34
+ | `chart` | Comparación cuantitativa, tendencia, distribución |
35
+ | `architecture` | Modelo C4 |
36
+
37
+ ### Qué tipo elegir
38
+
39
+ Busca por **lo que quieres explicar**, no por la tecnología.
40
+
41
+ <!-- docviz:tipos-tablas-4 -->
42
+ #### Diagramas — bloque `diagram`
43
+
44
+ | Necesidad | `type` | Motor |
45
+ |---|---|---|
46
+ | Quien habla con quien y en que orden | `sequence` | plantuml (o d2) |
47
+ | Estructura de clases o entidades y sus relaciones | `class` | plantuml (o d2) |
48
+ | Estados de una entidad y las transiciones entre ellos | `state` | plantuml (o d2) |
49
+ | Proceso con decisiones y ramas paralelas | `activity` | plantuml |
50
+ | Entidades de datos, sus campos y su cardinalidad | `erd` | plantuml (o mermaid) |
51
+ | Que puede hacer cada actor con el sistema | `use-case` | plantuml (o d2) |
52
+ | Componentes de software agrupados y como se conectan | `component` | plantuml (o d2) |
53
+ | Donde se ejecuta cada pieza y sobre que infraestructura | `deployment` | plantuml (o d2) |
54
+ | Boceto de una pantalla: campos, botones y disposicion | `wireframe` | plantuml |
55
+ | Estructura de un JSON dibujada como arbol | `json` | plantuml |
56
+ | Estructura de un YAML dibujada como arbol | `yaml` | plantuml |
57
+ | Descomposicion jerarquica del trabajo de un proyecto | `wbs` | plantuml (o d2) |
58
+ | Flujo sencillo de extremo a extremo | `flow` | mermaid (o d2) |
59
+ | Tareas situadas en el calendario | `gantt` | mermaid (o plantuml) |
60
+ | Recorrido de una persona por un proceso, con su nivel de satisfaccion | `journey` | mermaid |
61
+ | Historia de ramas, commits y fusiones | `git-graph` | mermaid |
62
+ | Tarjetas repartidas por columna de estado | `kanban` | mermaid |
63
+ | Elementos situados en dos ejes continuos | `quadrant` | mermaid |
64
+ | Como se reparte una cantidad al pasar de un estado a otro | `sankey` | mermaid |
65
+ | Composicion de un total por area proporcional | `treemap` | mermaid |
66
+ | Perfil de varias dimensiones a la vez | `radar` | mermaid |
67
+ | Exploracion de un tema en ramas libres | `mindmap` | mermaid (o plantuml) |
68
+ | Bloques dispuestos en rejilla, sin semantica de flujo | `block` | mermaid |
69
+ | Descomposicion de un objetivo en lineas de accion | `strategy-tree` | d2 |
70
+ | Descomposicion de un problema en sus causas | `issue-tree` | d2 |
71
+ | Alternativas de una decision y sus ramas | `decision-tree` | d2 |
72
+ | Pilares que sostienen un objetivo, con su contenido | `strategy-pillars` | d2 |
73
+ | Capacidades agrupadas por dominio | `capability-map` | d2 |
74
+ | Capas de un modelo operativo, de negocio a infraestructura | `operating-model` | d2 |
75
+ | Etapas encadenadas que generan valor | `value-chain` | d2 |
76
+ | Comparacion de dos escenarios | `before-after` | d2 |
77
+ | Cuatro cuadrantes con su contenido, sin coordenadas | `matrix-2x2` | d2 |
78
+ | Hitos en orden cronologico | `timeline` | d2 (o mermaid) |
79
+ | Fases futuras con su contenido | `roadmap` | d2 |
80
+ | Quien depende de quien | `dependency-map` | graphviz |
81
+ | Proceso de negocio en notacion BPMN estandar | `bpmn` | bpmn |
82
+ | Dibujo hecho con caracteres, convertido a SVG limpio | `ascii` | svgbob |
83
+
84
+ #### Gráficos — bloque `chart`
85
+
86
+ | Necesidad | `type` | Motor |
87
+ |---|---|---|
88
+ | Comparacion entre categorias | `bar` | vega-lite |
89
+ | Comparacion entre categorias con etiquetas largas | `horizontal-bar` | vega-lite |
90
+ | Composicion de un total por categoria | `stacked-bar` | vega-lite |
91
+ | Comparacion de varias series por categoria | `grouped-bar` | vega-lite |
92
+ | Evolucion de una magnitud en el tiempo | `line` | vega-lite |
93
+ | Evolucion con enfasis en el volumen acumulado | `area` | vega-lite |
94
+ | Evolucion de la composicion de un total | `stacked-area` | vega-lite |
95
+ | Relacion entre dos magnitudes | `scatter` | vega-lite |
96
+ | Densidad de una magnitud en dos dimensiones categoricas | `heatmap` | vega-lite |
97
+ | Distribucion de una variable continua | `histogram` | vega-lite |
98
+ | Mediana, dispersion y valores atipicos por grupo | `box-plot` | vega-lite |
99
+ | Valor real frente a su objetivo | `bullet` | vega-lite |
100
+ | Cambio entre dos momentos, elemento a elemento | `slope` | vega-lite |
101
+ | Caida de volumen a lo largo de etapas sucesivas | `funnel` | vega-lite |
102
+ | Reparto de un total entre pocas partes | `pie` | vega-lite |
103
+ | Reparto de un total, con el centro libre para un dato o un titulo | `donut` | vega-lite |
104
+ | Como se llega de un valor inicial a uno final, paso a paso | `waterfall` | vega-lite |
105
+
106
+ #### Arquitectura — bloque `architecture`
107
+
108
+ | Necesidad | `type` | Motor |
109
+ |---|---|---|
110
+ | El sistema, sus usuarios y los sistemas con los que habla | `c4-context` | likec4 (o plantuml-c4) |
111
+ | Las piezas desplegables del sistema y su tecnologia | `c4-container` | likec4 (o plantuml-c4) |
112
+ | Componentes internos de un contenedor | `c4-component` | likec4 (o plantuml-c4) |
113
+ <!-- /docviz:tipos-tablas-4 -->
114
+
115
+ No hace falta memorizar la tabla. Si dudas, describe en una frase lo que quieres
116
+ explicar y llama a `docviz_suggest`: devuelve el tipo recomendado y el bloque
117
+ listo para rellenar. `docviz types` lista el catálogo completo con el propósito
118
+ y un ejemplo de cada tipo.
119
+
120
+ ---
121
+
122
+ ## Ejemplos
123
+
124
+ ### Interacción
125
+
126
+ ````md
127
+ ```diagram
128
+ type: sequence
129
+ title: Autenticación de usuario
130
+
131
+ participants:
132
+ - Usuario
133
+ - Frontend
134
+ - Entra ID
135
+ - API
136
+
137
+ flow:
138
+ - Usuario -> Frontend: Login
139
+ - Frontend -> Entra ID: Authenticate
140
+ - Entra ID --> Frontend: Token
141
+ - Frontend -> API: Request + Token
142
+ ```
143
+ ````
144
+
145
+ `->` es un mensaje; `-->` una respuesta.
146
+
147
+ ### Análisis estratégico
148
+
149
+ ````md
150
+ ```diagram
151
+ type: strategy-tree
152
+ title: Estrategia de calidad
153
+
154
+ root: Mejorar calidad
155
+
156
+ branches:
157
+ - name: Automatización
158
+ children:
159
+ - Pruebas de regresión
160
+ - Pipeline de CI
161
+ - Arquitectura
162
+ - Proceso
163
+ ```
164
+ ````
165
+
166
+ ### Datos
167
+
168
+ ````md
169
+ ```chart
170
+ type: bar
171
+ title: Defectos por sprint
172
+
173
+ data:
174
+ - label: SP1
175
+ value: 42
176
+ - label: SP2
177
+ value: 28
178
+ - label: SP3
179
+ value: 15
180
+ ```
181
+ ````
182
+
183
+ ### Arquitectura
184
+
185
+ ````md
186
+ ```architecture
187
+ type: c4-context
188
+ title: Contexto de la plataforma
189
+
190
+ elements:
191
+ - id: usuario
192
+ kind: person
193
+ name: Usuario
194
+ - id: core
195
+ kind: system
196
+ name: Plataforma
197
+ description: Núcleo de negocio
198
+ - id: bd
199
+ kind: database
200
+ name: Base de datos
201
+
202
+ relations:
203
+ - from: usuario
204
+ to: core
205
+ label: Utiliza
206
+ - from: core
207
+ to: bd
208
+ label: Persiste
209
+ ```
210
+ ````
211
+
212
+ ---
213
+
214
+ ## Flujo obligatorio
215
+
216
+ Después de crear o modificar documentación:
217
+
218
+ 1. Guarda los cambios en `docs-src/`.
219
+ 2. Ejecuta:
220
+
221
+ ```bash
222
+ npm run docs:check
223
+ ```
224
+
225
+ 3. Corrige cualquier error reportado. Los mensajes indican **código**, archivo,
226
+ línea, motor y motivo; no adivines. Un documento con tres bloques rotos los
227
+ reporta los tres a la vez: arréglalos en una sola pasada.
228
+ 4. Ejecuta:
229
+
230
+ ```bash
231
+ npm run docs:build
232
+ ```
233
+
234
+ 5. Verifica que se hayan generado los Markdown finales y sus imágenes:
235
+
236
+ ```bash
237
+ npm run docs:test
238
+ ```
239
+
240
+ 6. Revisa visualmente el resultado:
241
+
242
+ ```bash
243
+ npm run docs:preview
244
+ ```
245
+
246
+ No reportes la tarea como terminada mientras existan errores de renderizado o
247
+ imágenes rotas.
248
+
249
+ ### Qué hacer con cada código
250
+
251
+ | Código | Qué hacer |
252
+ |---|---|
253
+ | `DV101` | Falta un campo obligatorio. El detalle dice cuál; `docviz types <tipo>` muestra el esqueleto completo |
254
+ | `DV102` | El campo está pero con la forma equivocada (una lista donde iba un mapa, o al revés) |
255
+ | `DV103` | El valor no es uno de los admitidos; el detalle los enumera |
256
+ | `DV104` | Escribiste un campo que ese tipo no usa. Si el mensaje propone otro nombre, es una errata: corrígela |
257
+ | `DV105` | El bloque no es YAML válido. Suele ser indentación o dos puntos sin escapar |
258
+ | `DV106` | El `type` no existe o pertenece a otra valla. `docviz suggest "..."` propone el correcto |
259
+ | `DV005` | El motor no está en esta máquina. No cambies el diagrama: avisa de que falta Java o Chromium |
260
+
261
+ ### Los avisos también hay que leerlos
262
+
263
+ Un `AVISO ... [DV104]` significa que el bloque compiló pero una parte de lo que
264
+ escribiste no llegó al dibujo. No falla el build, y por eso es fácil publicarlo
265
+ sin darse cuenta. Trátalo como un error: o el campo sobra y se borra, o estaba
266
+ mal escrito y se corrige.
267
+
268
+ ### Antes de publicar un cambio grande
269
+
270
+ ```bash
271
+ docviz diff <docs-src de la versión anterior> docs-src
272
+ ```
273
+
274
+ Enumera qué diagramas cambiaron, cuáles son nuevos y cuáles desaparecieron. Es
275
+ la forma de comprobar que no tocaste de más: si aparecen modificados diagramas
276
+ que no tenías intención de cambiar, revísalos antes de dar la tarea por hecha.
277
+
278
+ ---
279
+
280
+ ## Reglas
281
+
282
+ - No generes manualmente archivos SVG o PNG cuando DocViz pueda generarlos.
283
+ - No modifiques a mano hashes ni nombres de imagen.
284
+ - No introduzcas rutas absolutas.
285
+ - No referencies imágenes temporales.
286
+ - No envíes documentación confidencial a servicios externos.
287
+ - No sustituyas diagramas declarativos por capturas de pantalla.
288
+ - No edites nada dentro de `docs/assets/generated`.
289
+ - Los diagramas viven como código dentro de `docs-src`.
290
+ - No ignores un aviso de campo no reconocido: o sobra el campo, o está mal escrito.
291
+
292
+ ---
293
+
294
+ ## Cuándo crear una visualización
295
+
296
+ Antes de dibujar, pregúntate si realmente mejora la comprensión. Usa
297
+ visualizaciones sobre todo para:
298
+
299
+ - arquitectura;
300
+ - interacción entre componentes;
301
+ - flujos complejos;
302
+ - estados;
303
+ - dependencias;
304
+ - análisis estratégicos;
305
+ - comparaciones cuantitativas;
306
+ - tendencias;
307
+ - hojas de ruta;
308
+ - modelos operativos.
309
+
310
+ Para información sencilla, usa texto o una tabla Markdown. Una tabla de tres
311
+ filas no necesita un diagrama.
312
+
313
+ ---
314
+
315
+ ## Calidad visual
316
+
317
+ Una visualización debe:
318
+
319
+ - tener un objetivo claro;
320
+ - tener un título descriptivo (`title:`);
321
+ - evitar cruces innecesarios;
322
+ - evitar exceso de nodos;
323
+ - mantener los textos cortos;
324
+ - ser legible al renderizarse;
325
+ - usar el tema definido por el proyecto (no fijes colores a mano).
326
+
327
+ Los colores del tema traen su equivalente en modo oscuro, así que la misma
328
+ imagen se lee bien en un visor claro y en uno oscuro. Un color escrito a mano
329
+ pierde esa propiedad: quedará igual en ambos modos y probablemente ilegible en
330
+ uno de ellos.
331
+
332
+ Cuando un diagrama crezca demasiado, divídelo en varios con objetivos
333
+ diferentes. Un diagrama con veinte cajas no explica nada.
334
+
335
+ ---
336
+
337
+ ## Herramientas MCP
338
+
339
+ Si tu cliente tiene el servidor MCP de DocViz configurado, prefiérelo a ejecutar
340
+ comandos:
341
+
342
+ | Herramienta | Uso |
343
+ |---|---|
344
+ | `docviz_suggest` | Describir en una frase qué quieres explicar y recibir el tipo y el bloque |
345
+ | `docviz_types` | Consultar el catálogo completo con propósito y ejemplos |
346
+ | `docviz_validate_document` | Validar lo que acabas de escribir, antes de guardarlo |
347
+ | `docviz_render_diagram` | Probar un diagrama suelto |
348
+ | `docviz_build_document` | Compilar la documentación |
349
+ | `docviz_diff` | Comprobar qué diagramas cambiaron respecto a la versión anterior |
350
+ | `docviz_fix` | Antes de reescribir a mano un bloque que falló, pídele el corregido |
351
+
352
+ Si trabajas en un proyecto nuevo que aún no tiene DocViz, `npx docviz skill`
353
+ instala este contrato en tu directorio de skills y `npx docviz init` deja el
354
+ `AGENTS.md` completo.
355
+ | `docviz_preview` | Revisar el resultado y detectar imágenes rotas |
356
+
357
+ ---
358
+
359
+ ## Al terminar
360
+
361
+ Reporta:
362
+
363
+ - documentos modificados;
364
+ - visualizaciones agregadas y su tipo;
365
+ - resultado de `docs:check`;
366
+ - resultado de `docs:build`;
367
+ - resultado de `docs:test`;
368
+ - resultado de la validación visual.
369
+
370
+ La documentación solo se considera terminada cuando el build y las validaciones
371
+ son satisfactorios.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Tilson Fernandez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.