Communitygithub.com

David-Li0406/meta-skill-evloving

Crea diagramas técnicos usando sintaxis Mermaid para arquitectura, secuencias, ERDs, diagramas de flujo y máquinas de estado. Ideal para visualizar diseño de sistemas, flujos de datos y procesos. Disparadores: diagrama, mermaid, diagrama de arquitectura, diagrama de secuencia, diagrama de flujo, ERD, relación de entidad, diagrama de estado, modelo C4, diagrama de componentes, visualizar, dibujar.

¿Qué es meta-skill-evloving?

Esta habilidad permite a agentes de IA como Claude Code, Cursor o Codex generar diagramas técnicos y visualizaciones de sistemas utilizando la sintaxis Mermaid. Cubre los tipos de diagrama más comunes en ingeniería de software: diagramas de arquitectura (modelo C4: contexto, contenedor, componente), diagramas de secuencia (incluyendo manejo de errores y procesamiento asíncrono), diagramas entidad-relación (ERD) con notación estándar, diagramas de flujo (con lógica de decisión y procesos) y diagramas de estado (máquinas de estado). La habilidad no solo genera código Mermaid, sino que también integra buenas prácticas: simplicidad (un diagrama por concepto), nomenclatura consistente, etiquetado adecuado de relaciones y flujos de izquierda a derecha o de arriba a abajo. Incluye ejemplos completos y funcionales para cada tipo de diagrama, como el modelo C4 de una plataforma de e-commerce, secuencias de autenticación y API, ERDs de un sistema de pedidos con relaciones 1:N y N:N, flujos de CI/CD, y máquinas de estado para órdenes y conexiones. Es útil para documentar diseños de sistemas, comunicar arquitecturas, modelar datos y visualizar procesos en equipos de desarrollo y DevOps.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/David-Li0406/meta-skill-evloving/tree/HEAD/AgentSkillOS/data/skill_seeds/diagramming

Preguntar en tu IA favorita

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

Documentación

Diagramación

Resumen

Crea diagramas técnicos claros y mantenibles usando sintaxis Mermaid. Esta habilidad cubre diagramas de arquitectura, diagramas de secuencia, diagramas entidad-relación, diagramas de flujo y diagramas de estado para documentar sistemas de software.

Instrucciones

1. Elige el tipo de diagrama adecuado

Tipo de DiagramaÚsalo cuando
Arquitectura/C4Se muestra la estructura y componentes del sistema
SecuenciaSe muestran interacciones a lo largo del tiempo
ERDSe muestran modelos de datos y relaciones
Diagrama de flujoSe muestra lógica de decisión y procesos
EstadoSe muestran transiciones de estado

2. Principios generales de Mermaid

  • Mantén los diagramas enfocados en un solo concepto
  • Usa convenciones de nomenclatura consistentes
  • Agrega etiquetas descriptivas a las relaciones
  • Limita la complejidad (divide diagramas grandes)
  • Usa comentarios para documentación

Mejores prácticas

  • Simplicidad: Un diagrama, un concepto
  • Consistencia: Misma nomenclatura en diagramas relacionados
  • Legibilidad: Flujo de izquierda a derecha o de arriba a abajo
  • Etiquetas: Siempre etiqueta relaciones y transiciones
  • Contexto: Incluye un título y una breve descripción

Ejemplos

Diagramas de arquitectura (Modelo C4)

Diagrama de contexto (Nivel 1)

C4Context
    title Diagrama de Contexto del Sistema para Plataforma de Comercio Electrónico

    Person(cliente, "Cliente", "Un usuario que compra productos")
    Person(admin, "Administrador", "Gestiona productos y pedidos")

    System(ecommerce, "Plataforma de Comercio Electrónico", "Permite a los clientes navegar y comprar productos")

    System_Ext(pago, "Pasarela de Pago", "Procesa los pagos")
    System_Ext(envios, "Proveedor de Envíos", "Gestiona la logística de pedidos")
    System_Ext(email, "Servicio de Correo", "Envía notificaciones")

    Rel(cliente, ecommerce, "Navega, compra")
    Rel(admin, ecommerce, "Gestiona")
    Rel(ecommerce, pago, "Procesa pagos")
    Rel(ecommerce, envios, "Crea envíos")
    Rel(ecommerce, email, "Envía correos")

Diagrama de contenedores (Nivel 2)

C4Container
    title Diagrama de Contenedores para Plataforma de Comercio Electrónico

    Person(cliente, "Cliente")

    Container_Boundary(ecommerce, "Plataforma de Comercio Electrónico") {
        Container(web, "Aplicación Web", "React", "Interfaz de usuario orientada al cliente")
        Container(api, "API Gateway", "Node.js", "API REST")
        Container(carrito, "Servicio de Carrito", "Node.js", "Gestión del carrito de compras")
        Container(catalogo, "Servicio de Catálogo", "Python", "Catálogo de productos")
        Container(pedido, "Servicio de Pedidos", "Java", "Procesamiento de pedidos")
        ContainerDb(db, "Base de Datos", "PostgreSQL", "Almacena todos los datos")
        ContainerQueue(cola, "Cola de Mensajes", "RabbitMQ", "Mensajería asíncrona")
    }

    Rel(cliente, web, "Usa", "HTTPS")
    Rel(web, api, "Llama", "JSON/HTTPS")
    Rel(api, carrito, "Enruta a")
    Rel(api, catalogo, "Enruta a")
    Rel(api, pedido, "Enruta a")
    Rel(carrito, db, "Lee/escribe")
    Rel(catalogo, db, "Lee")
    Rel(pedido, db, "Lee/escribe")
    Rel(pedido, cola, "Publica eventos")

Diagrama de componentes (Nivel 3)

flowchart TB
    subgraph "Servicio de Pedidos"
        controller[Controlador de Pedidos]
        service[Servicio de Pedidos]
        repo[Repositorio de Pedidos]
        validator[Validador de Pedidos]
        publisher[Publicador de Eventos]
    end

    subgraph "Externo"
        db[(PostgreSQL)]
        cola[RabbitMQ]
    end

    controller --> service
    service --> validator
    service --> repo
    service --> publisher
    repo --> db
    publisher --> cola

Diagramas de secuencia

Flujo básico de solicitud

sequenceDiagram
    autonumber
    participant C as Cliente
    participant G as API Gateway
    participant A as Servicio de Autenticación
    participant S as Servicio
    participant D as Base de Datos

    C->>G: POST /api/recurso
    G->>A: Validar token
    A-->>G: Token válido

    G->>S: Reenviar solicitud
    S->>D: Consultar datos
    D-->>S: Devolver resultados

    S-->>G: Respuesta (200 OK)
    G-->>C: Respuesta con datos

Flujo de manejo de errores

sequenceDiagram
    participant C as Cliente
    participant S as Servicio
    participant D as Base de Datos

    C->>S: POST /api/usuarios
    S->>S: Validar entrada

    alt Validación falla
        S-->>C: 400 Solicitud Incorrecta
    else Validación pasa
        S->>D: INSERT usuario
        alt Error de base de datos
            D-->>S: Violación de restricción
            S-->>C: 409 Conflicto
        else Éxito
            D-->>S: Usuario creado
            S-->>C: 201 Creado
        end
    end

Procesamiento asíncrono

sequenceDiagram
    participant C as Cliente
    participant API as API
    participant Q as Cola
    participant W as Trabajador
    participant N as Notificación

    C->>API: Enviar trabajo
    API->>Q: Poner en cola trabajo
    API-->>C: 202 Aceptado (ID de trabajo)

    Note over Q,W: Procesamiento asíncrono

    Q->>W: Sacar de cola trabajo
    W->>W: Procesar trabajo
    W->>N: Enviar notificación
    N-->>C: Notificación de trabajo completado

Diagramas entidad-relación

ERD básico

erDiagram
    USUARIO ||--o{ PEDIDO : realiza
    USUARIO {
        uuid id PK
        string email UK
        string nombre
        timestamp creado_en
    }

    PEDIDO ||--|{ LINEA_PEDIDO : contiene
    PEDIDO {
        uuid id PK
        uuid usuario_id FK
        decimal total
        string estado
        timestamp creado_en
    }

    LINEA_PEDIDO }|--|| PRODUCTO : referencia
    LINEA_PEDIDO {
        uuid id PK
        uuid pedido_id FK
        uuid producto_id FK
        int cantidad
        decimal precio
    }

    PRODUCTO ||--o{ PRODUCTO_CATEGORIA : "pertenece a"
    PRODUCTO {
        uuid id PK
        string nombre
        text descripcion
        decimal precio
        int stock
    }

    CATEGORIA ||--o{ PRODUCTO_CATEGORIA : contiene
    CATEGORIA {
        uuid id PK
        string nombre
        uuid padre_id FK
    }

    PRODUCTO_CATEGORIA {
        uuid producto_id PK,FK
        uuid categoria_id PK,FK
    }

ERD con relaciones explicadas

erDiagram
    CLIENTE ||--o{ PEDIDO : "realiza (1:N)"
    PEDIDO ||--|{ LINEA_PEDIDO : "contiene (1:N, obligatorio)"
    PRODUCTO ||--o{ LINEA_PEDIDO : "aparece en (1:N)"
    CLIENTE }|--|| DIRECCION : "tiene facturación (N:1, obligatorio)"
    CLIENTE }o--o{ DIRECCION : "tiene envío (N:N)"

Notación de relaciones:

  • || exactamente uno
  • o| cero o uno
  • }| uno o más
  • }o cero o más

Diagramas de flujo

Lógica de decisión

flowchart TD
    A[Inicio: Inicio de sesión de usuario] --> B{¿Credenciales válidas?}
    B -->|Sí| C{¿2FA habilitado?}
    B -->|No| D[Mostrar mensaje de error]
    D --> A

    C -->|Sí| E[Enviar código 2FA]
    E --> F{¿Código válido?}
    F -->|Sí| G[Crear sesión]
    F -->|No| H{¿Intentos < 3?}
    H -->|Sí| E
    H -->|No| I[Bloquear cuenta]

    C -->|No| G
    G --> J[Redirigir al panel]
    J --> K[Fin]
    I --> K

Flujo de proceso

flowchart LR
    subgraph "Pipeline de CI"
        A[Enviar Código] --> B[Ejecutar Pruebas]
        B --> C{¿Pruebas pasan?}
        C -->|Sí| D[Construir Imagen]
        C -->|No| E[Notificar al Desarrollador]
        D --> F[Enviar al Registro]
    end

    subgraph "Pipeline de CD"
        F --> G[Desplegar en Staging]
        G --> H[Ejecutar Pruebas E2E]
        H --> I{¿Pruebas pasan?}
        I -->|Sí| J[Desplegar en Producción]
        I -->|No| K[Rollback]
    end

Diagramas de estado

Máquina de estado de pedido

stateDiagram-v2
    [*] --> Borrador: Crear pedido

    Borrador --> Pendiente: Enviar
    Borrador --> Cancelado: Cancelar

    Pendiente --> Confirmado: Pago recibido
    Pendiente --> Cancelado: Pago fallido
    Pendiente --> Cancelado: Tiempo agotado (24h)

    Confirmado --> Procesando: Iniciar cumplimiento
    Confirmado --> Cancelado: Cancelación por cliente

    Procesando --> Enviado: Enviar pedido
    Procesando --> Cancelado: Sin stock

    Enviado --> Entregado: Entrega confirmada
    Enviado --> Devuelto: Devolución iniciada

    Entregado --> Devuelto: Devolución solicitada
    Entregado --> [*]: Completado

    Devuelto --> Reembolsado: Procesar reembolso
    Reembolsado --> [*]: Completado

    Cancelado --> [*]: Completado

Máquina de estado de conexión

stateDiagram-v2
    [*] --> Desconectado

    Desconectado --> Conectando: connect()
    Conectando --> Conectado: éxito
    Conectando --> Desconectado: fallo

    Conectado --> Desconectado: disconnect()
    Conectado --> Reconectando: conexión perdida

    Reconectando --> Conectado: éxito
    Reconectando --> Desconectado: máximo de reintentos

    note right of Reconectando
        Retroceso exponencial
        Máximo 5 reintentos
    end note

Diagramas de clase

classDiagram
    class Repositorio~T~ {
        <<interfaz>>
        +findById(id: string) T
        +findAll() Lista~T~
        +save(entity: T) T
        +delete(id: string) void
    }

    class RepositorioUsuario {
        -db: BaseDeDatos
        +findById(id: string) Usuario
        +findAll() Lista~Usuario~
        +save(entity: Usuario) Usuario
        +delete(id: string) void
        +findByEmail(email: string) Usuario
    }

    class Usuario {
        +id: string
        +email: string
        +nombre: string
        +creadoEn: Fecha
        +validar() booleano
    }

    Repositorio~T~ <|.. RepositorioUsuario
    RepositorioUsuario --> Usuario

Individual skills in this repo

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

David-Li0406/meta-skill-evloving

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.

David-Li0406/meta-skill-evloving

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

David-Li0406/meta-skill-evloving

Complete color manipulation and green screen effects system. PROACTIVELY activate for: (1) Green screen/chromakey removal, (2) Color grading with LUTs, (3) Color correction (levels, curves, white balance), (4) Colorkey/color removal effects, (5) Hue/saturation manipulation, (6) Color space conversions (BT.709, BT.2020, HDR), (7) Color isolation effects, (8) Teal and orange look, (9) Vintage/film looks, (10) Color keying for transparency. Provides: chromakey and colorkey filters, LUT application (lut3d), curves and levels adjustment, color balance, selective color manipulation, color space handling, HDR tone mapping, professional color grading chains.

David-Li0406/meta-skill-evloving

Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.

David-Li0406/meta-skill-evloving

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

David-Li0406/meta-skill-evloving

Build with OpenAI's stateless APIs - Chat Completions (GPT-5, GPT-4o), Embeddings, Images (DALL-E 3), Audio (Whisper + TTS), and Moderation. Includes Node.js SDK and fetch-based approaches for Cloudflare Workers. Use when: implementing chat completions with GPT-5/GPT-4o, streaming responses with SSE, using function calling/tools, creating structured outputs with JSON schemas, generating embeddings for RAG (text-embedding-3-small/large), generating images with DALL-E 3, editing images with GPT-Image-1, transcribing audio with Whisper, synthesizing speech with TTS (11 voices), moderating content (11 safety categories), or troubleshooting rate limits (429), invalid API keys (401), function calling failures, streaming parse errors, embeddings dimension mismatches, or token limit exceeded.

David-Li0406/meta-skill-evloving

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

David-Li0406/meta-skill-evloving

Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks

David-Li0406/meta-skill-evloving

Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas

David-Li0406/meta-skill-evloving

Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.

David-Li0406/meta-skill-evloving

Best practices for Remotion - Video creation in React

David-Li0406/meta-skill-evloving

Provides bidirectional translation (Chinese/English), grammar checking, and sentence polishing. Supports specific tense constraints, context-aware tone adjustment, and natural expression optimization. Outputs direct text without formatting.

David-Li0406/meta-skill-evloving

指导如何通过自定义注解(如@Unicom)标识Dubbo接口,利用BeanDefinitionRegistryPostProcessor在启动时扫描并动态注册ReferenceBean,实现RPC调用的封装。

David-Li0406/meta-skill-evloving

生成Python脚本,利用FFmpeg将图片序列按3x3布局合并,或将合并图拆分。要求使用subprocess模块执行命令,并支持用户交互式输入路径。

David-Li0406/meta-skill-evloving

SOP for extracting and analyzing promotional activity details, handling time formatting, location mapping, payment logic, and step-by-step process validation.

David-Li0406/meta-skill-evloving

Specializes in creating TikTok short video scripts using an anthropomorphic 'Chef' perspective to explain wildlife food chains and survival environments, utilizing real field footage.

David-Li0406/meta-skill-evloving

针对TikTok平台,以拟人化视角(如动物作为厨师)创作系列短视频脚本。重点介绍野生动物、食物链及生态环境,要求使用野外实拍素材,风格幽默且具有教育意义。

David-Li0406/meta-skill-evloving

Generates KWL (Know, Want to know, Learned) charts for educational videos, specifically BrainPOP, using simple 7th-grade language and short, concise bullet points.

David-Li0406/meta-skill-evloving

Develops DAX measures to calculate promo and regular volumes and generates a calculated table of dates excluding continuous promo date ranges, handling multiple periods and nulls.

David-Li0406/meta-skill-evloving

Tracks complex, multi-session work using the Beads issue tracker and dependency graphs, and provides persistent memory that survives conversation compaction. Use when work spans multiple sessions, has complex dependencies, or needs persistent context across compaction cycles. Trigger with phrases like "create task for", "what's ready to work on", "show task", "track this work", "what's blocking", or "update status".

Skills relacionados