Saltar al contenido
jesusprodriguez.com

excalidraw-diagrams

Diagramas Excalidraw desde una descripción

Diagramas generados desde una descripción que salen editables: flujo, arquitectura, secuencia, entidad-relación y carriles por rol.

stack:
Diagramas
versión:
v1.0.0
actualizada:
tamaño:
4.5 KB
lectura:
3 min
licencia:
CC-BY-4.0

Cuándo se activa

Al explicar un proceso o un sistema con una imagen que después haya que retocar.

description: Genera ficheros .excalidraw a partir de una descripción en lenguaje natural - diagramas de flujo, arquitectura, secuencia, entidad-relación, mapas mentales y carriles por rol. El resultado se abre en Excalidraw y se sigue editando a mano. Úsala cuando haya que explicar un proceso o un sistema con una imagen y no quieras colocar cada caja tú.

  • Elegir el tipo
  • Retícula y color
  • Iconos de marca
  • Cuándo partir el diagrama

Cómo se le pide

> Dibuja el flujo de alta de un expediente, desde el formulario hasta la cola de proceso.

Escríbeselo tal cual al agente: la skill se carga sola por la descripción, no hay que nombrarla.

Cómo se instala

/plugin marketplace add https://jesusprodriguez.com/skills/marketplace.json
/plugin install ingenieria@jprodriguez-toolkit

La vía nativa, y la única que se actualiza sola: el marketplace se añade una vez y `/plugin marketplace update` trae las versiones nuevas. Las skills quedan con espacio de nombres propio (`azure-devops:azure-pr-review`).

El fichero, entero

Esto es exactamente lo que descargas: sin resúmenes ni recortes.

Diagramas Excalidraw desde una descripción

El valor de un diagrama generado no es ahorrarse el dibujo: es que sale editable. Un PNG generado por una IA se descarta en cuanto cambia algo; un .excalidraw se abre, se arrastran dos cajas y sigue vivo.

Elegir el tipo, que es la mitad del trabajo

Lo que se quiere contarDiagrama
Pasos en orden, con decisionesFlujo
Qué se conecta con quéRelaciones
Un concepto y sus ramasMapa mental
Componentes de un sistema y sus llamadasArquitectura
Por dónde viajan los datos y dónde se guardanFlujo de datos
Quién hace qué, con traspasos entre rolesCarriles (swimlane)
Objetos hablando a lo largo del tiempoSecuencia
Tablas, claves y cardinalidadEntidad-relación

Un flujo de datos no representa el orden de los pasos, solo por dónde va el dato. Confundirlo con un diagrama de flujo es el error más habitual, y produce un diagrama que parece correcto y dice algo falso.

Cuántos elementos

TipoCómodoTecho
Pasos de un flujo3-1015
Entidades relacionadas3-812
Ramas de un mapa mental4-68

Por encima de 20 elementos, ningún diagrama se lee. Cuando la petición trae 15 componentes, la respuesta correcta no es dibujarlos todos: es proponer una vista general de seis y diagramas de detalle por subsistema.

Estructura del fichero

{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "elements": [],
  "appState": { "viewBackgroundColor": "#ffffff", "gridSize": 20 },
  "files": {}
}

Elementos: rectangle para pasos y entidades, diamond para decisiones, ellipse para énfasis, arrow para conexiones, text para etiquetas.

Todos los textos con fontFamily: 5 (Excalifont). Es el detalle que separa un diagrama que parece hecho en Excalidraw de uno que parece pegado desde otra herramienta.

Retícula y color

  • Hueco horizontal de 200-300 px, vertical de 100-150 px. Apretarlos es lo que produce esos diagramas donde las flechas cruzan por encima de las cajas.
  • Texto de 16 px para arriba. Por debajo no se lee en una captura.
  • Cuatro colores, con significado, no decorativos: #a5d8ff principal · #b2f2bb secundario · #ffd43b lo importante · #ffc9c9 errores y avisos.
  • IDs únicos por elemento. Repetirlos hace que Excalidraw se coma elementos al abrir el fichero, en silencio.

Dos disposiciones que resuelven casi todo:

// Rejilla, para diagramas de relaciones
const cols = Math.ceil(Math.sqrt(n));
const x = x0 + (i % cols) * 260;
const y = y0 + Math.floor(i / cols) * 130;

// Radial, para mapas mentales
const a = (2 * Math.PI * i) / ramas;
const x = cx + r * Math.cos(a);
const y = cy + r * Math.sin(a);

Iconos de marca

Para arquitecturas de AWS, Azure, GCP o Kubernetes, las librerías de libraries.excalidraw.com dan iconos reales en lugar de rectángulos con el nombre dentro.

El detalle práctico: cada icono son entre 200 y 1000 líneas de JSON. Pegarlos a mano en el diagrama funciona, pero se come el contexto entero y arriesga colisiones de ID. Merece la pena un script que reciba nombre de icono y coordenadas, y haga la transformación de forma determinista.

Si no hay librería instalada, el diagrama sale igual con formas simples y color: se entiende perfectamente y los iconos se pueden sustituir después.

Antes de entregar

  • IDs únicos
  • Nada se solapa
  • Texto de 16 px o más, todo con fontFamily: 5
  • Las flechas conectan lo que dicen conectar
  • Es JSON válido
  • Menos de 20 elementos

Y decir cómo abrirlo: arrastrar el fichero a excalidraw.com o abrirlo con la extensión de Excalidraw en VS Code.

Límites honestos

Las curvas complejas se simplifican, no hay detección de colisiones (de ahí las distancias de la retícula) y no se incrustan imágenes. Para un diagrama de veinte cajas con posicionamiento fino, generar la base y ajustarla a mano en Excalidraw sigue siendo más rápido que iterar sobre el JSON.