Communitygithub.com

generador-de-diagramas

Genera, refina, valida y renderiza diagramas a partir de lenguaje natural, notas, fragmentos de código, esquemas, tablas o código fuente de diagramas existentes.

¿Qué es generador-de-diagramas?

El generador de diagramas es una habilidad de IA diseñada para crear diagramas editables y claros a partir de entradas desordenadas o estructuradas. Soporta múltiples lenguajes de diagramas, incluyendo Mermaid (por defecto), Graphviz DOT para gráficos densos, PlantUML para notación UML formal y SVG para diseños personalizados. La habilidad es útil para desarrolladores, ingenieros de software y especialistas en documentación que necesitan visualizar flujos de trabajo, arquitecturas, modelos de datos, cronogramas, mapas mentales y más. El flujo de trabajo predeterminado implica identificar la intención del usuario, elegir el tipo de diagrama adecuado mediante una tabla de decisión, normalizar entidades y relaciones, generar el código fuente del diagrama, validar la sintaxis y renderizar el archivo solo si el usuario lo solicita. La habilidad se ejecuta en plataformas como Claude Code, Cursor y Codex, y utiliza scripts integrados para la renderización. También incluye una lista de verificación de validación para garantizar la precisión y legibilidad del resultado final.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/diagram-generator

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Generador de Diagramas

ACCIÓN REQUERIDA (leer y ejecutar inmediatamente)

  1. AHORA: Confirma si la tarea actual está dentro del alcance de esta habilidad.
  2. AHORA: Lee ../tool-index.md para verificar la disponibilidad de herramientas y rutas reales.
  3. SIGUIENTE: Si faltan herramientas, llama al bootstrap; no adivines rutas.
  4. ACTÚA: Entra en el primer paso del "flujo de trabajo" y ejecútalo, no te quedes en estado de confirmación.

Propósito

Crear diagramas claros y editables a partir de entradas desordenadas o estructuradas. Prefiere primero el código fuente del diagrama basado en texto para que el resultado pueda ser revisado, versionado y refinado. Renderiza a archivos solo cuando el usuario solicita una imagen/PDF o cuando un artefacto descargable sería de ayuda material.

Flujo de trabajo predeterminado

  1. Identifica la intención del usuario, la audiencia y el material de origen.
  2. Elige la familia de diagramas y el lenguaje usando la tabla de decisiones a continuación.
  3. Normaliza entidades, relaciones, etiquetas, estados, ramas e información de tiempo/orden antes de escribir el código del diagrama.
  4. Genera código fuente de diagrama conciso y legible.
  5. Valida la sintaxis mentalmente y, al crear archivos, ejecuta scripts/render_diagram.py.
  6. Devuelve el código fuente del diagrama más una nota breve sobre las suposiciones. Cuando se generan archivos, incluye enlaces a los archivos de salida.

No pidas demasiadas aclaraciones. Si la solicitud está poco especificada, haz suposiciones razonables y etiquétalas brevemente.

Tabla de decisiones del lenguaje de diagramas

Usa Mermaid a menos que otro lenguaje sea claramente mejor.

El usuario quierePreferirPor qué
flujo de proceso, árbol de decisión, swimlane simplediagrama de flujo Mermaidlegible y fácil de pegar en Markdown
secuencia de interacciones sistema/usuariosequenceDiagram de Mermaid o sequence de PlantUMLMermaid para documentación; PlantUML para formalidad UML
ciclo de vida, máquina de estados, transicionesstateDiagram-v2 de Mermaid o state de PlantUMLsintaxis compacta de transiciones
esquema de base de datos, entidades, relacioneserDiagram de Mermaidnotación ER portátil
modelo de clases/interfaz/objetoclassDiagram de Mermaid o class de PlantUMLMermaid para documentación; PlantUML para UML detallado
cronograma de proyectogantt de Mermaidsintaxis concisa de línea de tiempo
jerarquía, ideas, notasmindmap de Mermaidbuen valor predeterminado para mapas de ideas
viaje del cliente/productojourney de Mermaidnotación de viaje incorporada
historial de gitgitGraph de Mermaidnotación git incorporada
gráfico de dependencias, gráfico de paquetes, red grandeGraphviz DOTmejores motores de diseño para gráficos densos
arquitectura con capas, clústeres, límitesdiagrama de flujo Mermaid con subgráficos, clústeres Graphviz o estilo C4 de PlantUMLelegir según la fidelidad solicitada
flujo ponderado/relación tipo Sankeysankey-beta de Mermaid cuando sea compatible, de lo contrario SVG o Graphvizel soporte de Mermaid puede variar según el renderizador
visualización personalizada donde los lenguajes fuente no encajan bienSVGcontrol preciso sobre el diseño y el estilo

Política de salida

  • Siempre proporciona el código fuente editable a menos que el usuario solicite explícitamente solo una imagen.
  • Por defecto, un único diagrama óptimo. Ofrece alternativas solo cuando sean genuinamente útiles.
  • Prefiere sintaxis estable y simple sobre características sofisticadas que podrían no renderizarse en versiones antiguas de Mermaid/PlantUML.
  • Usa etiquetas cortas. Divide el texto largo en notas fuera del diagrama cuando sea necesario.
  • Evita ID de nodo ambiguos. Usa ID ASCII y etiquetas legibles.
  • Conserva la terminología del usuario, pero estandariza las mayúsculas dentro de un diagrama.
  • Para diagramas técnicos, incluye límites como cliente, servicio, base de datos, cola, API externa y operador/usuario cuando estén implícitos.
  • Para diagramas de procesos de negocio, distingue el camino feliz, los puntos de decisión, fallos, reintentos y pasos manuales cuando estén presentes.
  • Para diagramas creados a partir de texto incierto, incluye una sección de Suposiciones después del código.

Reglas de generación Mermaid

Consulta references/diagram-patterns.md para plantillas compactas.

Reglas generales de Mermaid:

  • Comienza con la directiva de diagrama correcta, por ejemplo flowchart TD, sequenceDiagram, erDiagram, gantt, mindmap o journey.
  • Para diagramas de flujo, usa flowchart TD a menos que el usuario solicite de izquierda a derecha; usa flowchart LR para arquitectura y pipelines.
  • Usa subgráficos para swimlanes o capas de arquitectura. Nombra los subgráficos con etiquetas legibles.
  • Mantén los ID de nodo estables y solo ASCII, por ejemplo ingest_service[Servicio de Ingesta].
  • Pon entre comillas las etiquetas que contengan puntuación que pueda confundir al analizador.
  • Usa diamantes de decisión para ramificaciones: decisión{¿Condición?}.
  • Usa etiquetas de borde consistentes: -- sí -->, -- no -->, -. asíncrono .-> o == crítico ==> solo cuando tengan significado.
  • En diagramas de secuencia, declara los participantes antes de los mensajes. Usa actor para humanos y participant para sistemas.
  • Usa bloques alt/else/end, opt/end, loop/end y par/and/end para flujos condicionales, opcionales, repetidos y paralelos.

Reglas de generación Graphviz DOT

Usa Graphviz para diagramas de relaciones grandes, densos o sensibles al diseño.

  • Prefiere digraph G para relaciones dirigidas y graph G para redes no dirigidas.
  • Establece atributos de gráfico favorables al diseño al principio: rankdir=LR, nodesep, ranksep y splines=true cuando sea útil.
  • Usa subgraph cluster_name para límites y subsistemas.
  • Usa etiquetas simples y estilo contenido.
  • Usa etiquetas de borde solo cuando añadan significado.
  • Para muchos nodos, agrupa por dominio con clústeres y evita bordes de todos contra todos con muchos cruces.

Reglas de generación PlantUML

Usa PlantUML cuando el usuario solicite UML o necesite notación UML formal.

  • Envuelve los diagramas con @startuml y @enduml.
  • Usa los estereotipos actor, participant, database, queue, collections o component cuando sea útil.
  • Usa package, rectangle o node para límites de arquitectura.
  • Para diagramas de clases, incluye solo campos/métodos importantes a menos que el usuario solicite detalle exhaustivo.
  • Para diagramas de actividad, usa marcadores claros de inicio/fin y etiquetas de rama explícitas.

Reglas de generación SVG

Usa SVG solo cuando los lenguajes de diagramas de texto no puedan expresar la visualización solicitada de manera confiable.

  • Mantén el SVG simple, accesible y editable.
  • Incluye <title> y etiquetas de texto significativas.
  • Prefiere rectángulos, líneas, flechas y grupos sobre trazados complejos.
  • No incrustes fuentes externas ni imágenes remotas.

Renderización de archivos

Cuando el usuario solicite PNG/SVG/PDF, crea un archivo fuente y ejecuta:

python "<SKILL_ROOT>/diagram-generator/scripts/render_diagram.py" input.mmd --format svg --out output.svg
python "<SKILL_ROOT>/diagram-generator/scripts/render_diagram.py" input.dot --format png --out output.png
python "<SKILL_ROOT>/diagram-generator/scripts/render_diagram.py" input.puml --format svg --out output.svg

<SKILL_ROOT> es la ruta real del directorio skills/ de este paquete; la IA debe detectarla automáticamente.

El renderizador es intencionalmente tolerante a dependencias. Intenta usar herramientas locales comunes e informa sugerencias de instalación procesables si un renderizador no está disponible. No afirmes que se renderizó una imagen a menos que el script se haya completado correctamente y el archivo de salida exista.

Lista de verificación de validación

Antes de finalizar:

  • El tipo de diagrama coincide con la tarea del usuario.
  • El código fuente es sintácticamente plausible para el lenguaje elegido.
  • Las etiquetas son lo suficientemente cortas para caber.
  • Los bordes y el orden de los mensajes reflejan la entrada con precisión.
  • Las suposiciones se mencionan cuando la entrada estaba incompleta.
  • Para archivos generados, la salida existe y se abre o tiene un tamaño distinto de cero.

Plantilla de respuesta común

Usa esta estructura para la mayoría de las respuestas de diagramas:

Aquí está la versión editable en [language]:

```[language]
[código fuente]

Suposiciones:

  • [solo si es necesario]

Archivo renderizado: [enlace] [solo si se generó]


Para solicitudes de usuarios en inglés, responde en inglés. Para solicitudes de usuarios en chino, responde en chino a menos que pidan lo contrario.

---

## Bootstrap bajo demanda

### Límites de capacidad de automatización

| Herramienta | Instalable automáticamente | Método de instalación | Descripción |
|---|---|---|---|
| Mermaid CLI (mmdc) | ✓ | npm install -g @mermaid-js/mermaid-cli | Renderiza Mermaid a PNG/SVG |
| Graphviz (dot) | ✗ | Instalación manual | https://graphviz.org/download/ |
| PlantUML | ✗ | Requiere Java + plantuml.jar | https://plantuml.com/download |
| Python (script de renderizado) | ✓ | Ya en bootstrap | `scripts/render_diagram.py` dependencias |

### Descripción

Esta habilidad produce principalmente código fuente de diagramas en formato de texto (Mermaid/DOT/PlantUML) y no necesariamente requiere herramientas de renderizado locales. Solo se necesita el renderizador correspondiente cuando el usuario solicita explícitamente generar archivos PNG/SVG/PDF.

Si el renderizador no está disponible, `scripts/render_diagram.py` mostrará sugerencias de instalación en lugar de errores.

---

## Contexto de enrutamiento

**Entrada ascendente**: `skills/SKILL.md` (controlador principal), `routing.md`
**Condiciones de activación**: El usuario dice "dibujar", "diagrama de flujo", "diagrama de arquitectura", "diagrama de ruta de ataque", "diagrama de secuencia", "Mermaid", "Graphviz", "PlantUML"
**Salida descendente**:
- Los diagramas generados se pueden incrustar en informes de `docs-generator/`
- Los diagramas de ruta de ataque se pueden usar junto con informes de penetración de `pentest-tools/`

**Módulos relacionados del mismo nivel**: `docs-generator/` (incrustar diagramas en informes)

## Autocomprobación de finalización (DEBE pasar antes de afirmar que está completo)

- [ ] ¿Ejecuté cada paso del flujo de trabajo (no solo lo leí)?
- [ ] ¿Usé rutas de herramientas reales basadas en `tool-index`?
- [ ] ¿Produje evidencia reproducible (comandos/scripts/capturas de pantalla/informes)?
- [ ] ¿Completé y volví a escribir los elementos de la lista de verificación requeridos por RULES?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

go-rust-reverse

Use for reverse engineering stripped Go and Rust binaries including runtime recognition, pclntab/moduel data recovery, panic strings, and idiomatic decompilation recovery.

Skills relacionados