Communitygithub.com

David-Li0406/meta-skill-evloving

Crie diagramas técnicos usando sintaxe Mermaid para arquitetura, sequências, DERs, fluxogramas e máquinas de estado. Ideal para visualizar design de sistemas, fluxos de dados e processos.

O que é meta-skill-evloving?

Esta skill capacita agentes de IA a gerar diagramas técnicos claros e de fácil manutenção utilizando a sintaxe Mermaid, diretamente no contexto do desenvolvimento de software. Ela cobre uma ampla gama de tipos de diagramas, incluindo diagramas de arquitetura (C4), diagramas de sequência, diagramas entidade-relacionamento (ERD), fluxogramas, diagramas de estado e diagramas de classes. A skill é projetada para ser utilizada em plataformas de agentes de codificação como Claude Code, Cursor e Codex, oferecendo um conjunto de instruções e práticas recomendadas para garantir que os diagramas sejam focados, consistentes e legíveis. Ao invés de apenas descrever conceitos, ela fornece exemplos práticos e detalhados para cada tipo de diagrama, permitindo que o agente os utilize como modelo para visualizar a estrutura do sistema, fluxos de dados, processos de negócio e transições de estado. A habilidade é acionada por palavras-chave como 'diagrama', 'mermaid', 'diagrama de arquitetura' e 'fluxograma', tornando-a uma ferramenta versátil para documentação técnica e comunicação visual no desenvolvimento de software.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Diagramação

Visão Geral

Crie diagramas técnicos claros e de fácil manutenção usando sintaxe Mermaid. Esta skill abrange diagramas de arquitetura, diagramas de sequência, diagramas entidade-relacionamento, fluxogramas e diagramas de estado para documentar sistemas de software.

Instruções

1. Escolha o Tipo de Diagrama Correto

Tipo de DiagramaUse Quando
Arquitetura/C4Mostrando estrutura e componentes do sistema
SequênciaMostrando interações ao longo do tempo
DERMostrando modelos de dados e relacionamentos
FluxogramaMostrando lógica de decisão e processos
EstadoMostrando transições de estado

2. Princípios Gerais do Mermaid

  • Mantenha os diagramas focados em um conceito
  • Use convenções de nomenclatura consistentes
  • Adicione rótulos descritivos aos relacionamentos
  • Limite a complexidade (divida diagramas grandes)
  • Use comentários para documentação

Melhores Práticas

  • Simplicidade: Um diagrama, um conceito
  • Consistência: Mesma nomenclatura em diagramas relacionados
  • Legibilidade: Fluxo da esquerda para a direita ou de cima para baixo
  • Rótulos: Sempre rotule relacionamentos e transições
  • Contexto: Inclua um título e uma breve descrição

Exemplos

Diagramas de Arquitetura (Modelo C4)

Diagrama de Contexto (Nível 1)

C4Context
    title Diagrama de Contexto do Sistema para Plataforma de E-Commerce

    Person(cliente, "Cliente", "Um usuário que compra produtos")
    Person(admin, "Admin", "Gerencia produtos e pedidos")

    System(ecommerce, "Plataforma de E-Commerce", "Permite que clientes naveguem e comprem produtos")

    System_Ext(pagamento, "Gateway de Pagamento", "Processa pagamentos")
    System_Ext(entrega, "Provedor de Entrega", "Gerencia o envio de pedidos")
    System_Ext(email, "Serviço de Email", "Envia notificações")

    Rel(cliente, ecommerce, "Navega, compra")
    Rel(admin, ecommerce, "Gerencia")
    Rel(ecommerce, pagamento, "Processa pagamentos")
    Rel(ecommerce, entrega, "Cria remessas")
    Rel(ecommerce, email, "Envia emails")

Diagrama de Container (Nível 2)

C4Container
    title Diagrama de Container para Plataforma de E-Commerce

    Person(cliente, "Cliente")

    Container_Boundary(ecommerce, "Plataforma de E-Commerce") {
        Container(web, "Aplicação Web", "React", "Interface do cliente")
        Container(api, "Gateway de API", "Node.js", "API REST")
        Container(carrinho, "Serviço de Carrinho", "Node.js", "Gerenciamento do carrinho de compras")
        Container(catalogo, "Serviço de Catálogo", "Python", "Catálogo de produtos")
        Container(pedido, "Serviço de Pedido", "Java", "Processamento de pedidos")
        ContainerDb(db, "Banco de Dados", "PostgreSQL", "Armazena todos os dados")
        ContainerQueue(fila, "Fila de Mensagens", "RabbitMQ", "Mensageria assíncrona")
    }

    Rel(cliente, web, "Usa", "HTTPS")
    Rel(web, api, "Chama", "JSON/HTTPS")
    Rel(api, carrinho, "Roteia para")
    Rel(api, catalogo, "Roteia para")
    Rel(api, pedido, "Roteia para")
    Rel(carrinho, db, "Lê/escreve")
    Rel(catalogo, db, "Lê")
    Rel(pedido, db, "Lê/escreve")
    Rel(pedido, fila, "Publica eventos")

Diagrama de Componente (Nível 3)

flowchart TB
    subgraph "Serviço de Pedido"
        controller[Controlador de Pedido]
        service[Serviço de Pedido]
        repo[Repositório de Pedido]
        validator[Validador de Pedido]
        publisher[Publicador de Eventos]
    end

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

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

Diagramas de Sequência

Fluxo Básico de Requisição

sequenceDiagram
    autonumber
    participant C as Cliente
    participant G as Gateway de API
    participant A as Serviço de Autenticação
    participant S as Serviço
    participant D as Banco de Dados

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

    G->>S: Encaminhar requisição
    S->>D: Consultar dados
    D-->>S: Retornar resultados

    S-->>G: Resposta (200 OK)
    G-->>C: Resposta com dados

Fluxo de Tratamento de Erros

sequenceDiagram
    participant C as Cliente
    participant S as Serviço
    participant D as Banco de Dados

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

    alt Validação falha
        S-->>C: 400 Requisição Inválida
    else Validação passa
        S->>D: INSERT usuário
        alt Erro de banco de dados
            D-->>S: Violação de restrição
            S-->>C: 409 Conflito
        else Sucesso
            D-->>S: Usuário criado
            S-->>C: 201 Criado
        end
    end

Processamento Assíncrono

sequenceDiagram
    participant C as Cliente
    participant API as API
    participant Q as Fila
    participant T as Trabalhador
    participant N as Notificação

    C->>API: Enviar job
    API->>Q: Enfileirar job
    API-->>C: 202 Aceito (ID do job)

    Note over Q,T: Processamento assíncrono

    Q->>T: Desenfileirar job
    T->>T: Processar job
    T->>N: Enviar notificação
    N-->>C: Notificação de conclusão do job

Diagramas Entidade-Relacionamento

DER Básico

erDiagram
    USUARIO ||--o{ PEDIDO : faz
    USUARIO {
        uuid id PK
        string email UK
        string nome
        timestamp criado_em
    }

    PEDIDO ||--|{ ITEM_PEDIDO : contém
    PEDIDO {
        uuid id PK
        uuid usuario_id FK
        decimal total
        string status
        timestamp criado_em
    }

    ITEM_PEDIDO }|--|| PRODUTO : referencia
    ITEM_PEDIDO {
        uuid id PK
        uuid pedido_id FK
        uuid produto_id FK
        int quantidade
        decimal preco
    }

    PRODUTO ||--o{ PRODUTO_CATEGORIA : "pertence a"
    PRODUTO {
        uuid id PK
        string nome
        text descricao
        decimal preco
        int estoque
    }

    CATEGORIA ||--o{ PRODUTO_CATEGORIA : contém
    CATEGORIA {
        uuid id PK
        string nome
        uuid categoria_pai_id FK
    }

    PRODUTO_CATEGORIA {
        uuid produto_id PK,FK
        uuid categoria_id PK,FK
    }

DER com Relacionamentos Explicados

erDiagram
    CLIENTE ||--o{ PEDIDO : "faz (1:N)"
    PEDIDO ||--|{ ITEM_LINHA : "contém (1:N, obrigatório)"
    PRODUTO ||--o{ ITEM_LINHA : "aparece em (1:N)"
    CLIENTE }|--|| ENDERECO : "tem cobrança (N:1, obrigatório)"
    CLIENTE }o--o{ ENDERECO : "tem entrega (N:N)"

Notação de relacionamentos:

  • || exatamente um
  • o| zero ou um
  • }| um ou mais
  • }o zero ou mais

Fluxogramas

Lógica de Decisão

flowchart TD
    A[Início: Login do Usuário] --> B{Credenciais válidas?}
    B -->|Sim| C{2FA habilitado?}
    B -->|Não| D[Mostrar mensagem de erro]
    D --> A

    C -->|Sim| E[Enviar código 2FA]
    E --> F{Código válido?}
    F -->|Sim| G[Criar sessão]
    F -->|Não| H{Tentativas < 3?}
    H -->|Sim| E
    H -->|Não| I[Bloquear conta]

    C -->|Não| G
    G --> J[Redirecionar para dashboard]
    J --> K[Fim]
    I --> K

Fluxo de Processo

flowchart LR
    subgraph "Pipeline CI"
        A[Enviar Código] --> B[Executar Testes]
        B --> C{Testes Passam?}
        C -->|Sim| D[Construir Imagem]
        C -->|Não| E[Notificar Desenvolvedor]
        D --> F[Enviar para Registro]
    end

    subgraph "Pipeline CD"
        F --> G[Implantar em Staging]
        G --> H[Executar Testes E2E]
        H --> I{Testes Passam?}
        I -->|Sim| J[Implantar em Produção]
        I -->|Não| K[Rollback]
    end

Diagramas de Estado

Máquina de Estado de Pedido

stateDiagram-v2
    [*] --> Rascunho: Criar pedido

    Rascunho --> Pendente: Enviar
    Rascunho --> Cancelado: Cancelar

    Pendente --> Confirmado: Pagamento recebido
    Pendente --> Cancelado: Pagamento falhou
    Pendente --> Cancelado: Timeout (24h)

    Confirmado --> Em Processamento: Iniciar atendimento
    Confirmado --> Cancelado: Cancelamento pelo cliente

    Em Processamento --> Enviado: Enviar pedido
    Em Processamento --> Cancelado: Fora de estoque

    Enviado --> Entregue: Entrega confirmada
    Enviado --> Devolvido: Devolução iniciada

    Entregue --> Devolvido: Devolução solicitada
    Entregue --> [*]: Completo

    Devolvido --> Reembolsado: Processar reembolso
    Reembolsado --> [*]: Completo

    Cancelado --> [*]: Completo

Máquina de Estado de Conexão

stateDiagram-v2
    [*] --> Desconectado

    Desconectado --> Conectando: connect()
    Conectando --> Conectado: sucesso
    Conectando --> Desconectado: falha

    Conectado --> Desconectado: disconnect()
    Conectado --> Reconectando: conexão perdida

    Reconectando --> Conectado: sucesso
    Reconectando --> Desconectado: máx. tentativas

    note right of Reconectando
        Backoff exponencial
        Máx. 5 tentativas
    end note

Diagramas de Classes

classDiagram
    class Repositorio~T~ {
        <<interface>>
        +buscarPorId(id: string) T
        +buscarTodos() Lista~T~
        +salvar(entidade: T) T
        +deletar(id: string) void
    }

    class RepositorioUsuario {
        -db: BancoDeDados
        +buscarPorId(id: string) Usuario
        +buscarTodos() Lista~Usuario~
        +salvar(entidade: Usuario) Usuario
        +deletar(id: string) void
        +buscarPorEmail(email: string) Usuario
    }

    class Usuario {
        +id: string
        +email: string
        +nome: string
        +criadoEm: Data
        +validar() boolean
    }

    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".

Habilidades Relacionadas