Versión en inglés:
SKILL.en.md
diagram — diagramas y gráficos
Skill ligero, con 2 scripts: scripts/mmd2png.py (Mermaid → PNG, local-only por defecto mediante mmdc; remoto solo si se elige explícitamente) y scripts/chart.py (gráficos de datos → PNG, matplotlib mediante uv o Python existente). La fuente se ubica junto a la salida, sin sobrescribir archivos existentes.
Tabla de ruta según necesidad
| Necesidad | Cómo hacerlo |
|---|---|
| Flowchart / sequence / class / state / ER / gantt / arquitectura de sistema | Mermaid → scripts/mmd2png.py (por defecto solo usa mmdc local) |
| Gráficos de barras / torta / línea a partir de datos reales | scripts/chart.py (matplotlib; uv puede necesitar red si el paquete aún no está en caché) |
Diagrama incrustado en informe .report.docx | PNG +  en .report.md, exportar a docx siguiendo el skill paper y la receta doc |
| Diagramas fuera de capacidad de Mermaid/matplotlib (3D, gráficos altamente personalizados) | [N/A] — informar al usuario claramente la limitación, no inventar formas |
Reglas
- Salida junto a la fuente:
<nombre_original>.diagram.png(imagen) +<nombre_original>.diagram.mmd(fuente Mermaid, editable). No sobrescribir archivos fuente. - Mermaid: escribir en
.mmd, renderizar conpython3 scripts/mmd2png.py '<f>.mmd' '<f>.diagram.png'; etiquetas del diagrama en el idioma que hable el usuario. - Los datos para los gráficos deben ser medidas/términos de la fuente (etiqueta
[fact]/[observed]); no dibujar datos inventados. - Local-first, no enviar fuente sigilosamente: por defecto
mmd2png.pysolo usammdc; si falta CLI/browser o hay error, detenerse e informar la razón, sin llamar a la red. Instalarnpm i -g @mermaid-js/mermaid-cliy Chrome/Chromium. Solo cuando el usuario/agente elija explícitamente, establecerMMD2PNG_BACKEND=remote(Kroki luego mermaid.ink),krokioink.chart.pyprocesa localmente;uv run --with matplotlibpuede necesitar red para obtener el paquete si no está instalado/en caché, por lo que sin conexión usar Python con matplotlib instalado o caché preparada. - Verificar antes de entregar:
mmd2png.pyauto-verifica la firma mágica PNG y tamaño ≥ 1 KB; las imágenes JPEG de remoto se convierten a PNG real mediante ImageMagick (si falta convert → guardar<f>.jpg+ advertencia, no fingir que es.png); al incrustar en informe → verificar nuevamente conpdfinfo+pdftotextdespués de convertir DOCX→PDF (imagen visible, sin romper página). - Tamaño: cada diagrama una idea, fuente legible; diagrama demasiado ancho → dividir en partes más pequeñas en lugar de dejar que el editor lo comprima.
- Recordar idioma de entrada — responder en el mismo idioma que hable el usuario.
scripts
scripts/mmd2png.py— Mermaid → PNG (local-only por defecto; remoto opt-in medianteMMD2PNG_BACKEND):python3 scripts/mmd2png.py '<f>.mmd' '<f>.diagram.png' [--scale 2] [--size 1600] [--theme forest]scripts/chart.py— datos CSV (2 columnas: etiqueta,valor) → PNG:uv run --with matplotlib python3 scripts/chart.py '<f>.csv' '<f>.diagram.png' <bar|pie|line>
