CommunityImagemgithub.com

birchloveye/desenhar-fluxograma

Desenha fluxogramas e diagramas de estado como pôsteres em estilo papel (papel creme, letra de máquina de escrever, sombras hachuradas, conectores de ângulo reto, problemas circulados em vermelho) e exporta para HTML, PNG e SVG. Use quando o usuário pedir um fluxograma, diagrama de processo ou fluxo de trabalho, diagrama de estado, plano de pipeline ou figura de experimento, ou quiser converter Mermaid em uma imagem refinada.

O que é desenhar-fluxograma?

Este skill transforma descrições de processos e fluxos de trabalho em pôsteres de diagrama visualmente atraentes, no estilo de papel creme com tipografia de máquina de escrever. Ele primeiro modela o processo em Mermaid (opcionalmente com verificação formal via TLA+ usando o pstack) e depois gera um pôster a partir de um script Python, produzindo arquivos HTML, PNG e SVG autocontidos. É ideal para desenvolvedores e engenheiros que precisam comunicar fluxos complexos, identificar gargalos ou documentar processos de forma clara e profissional. O skill suporta destaque automático de problemas (nós circulados em vermelho) e legendas correspondentes, e funciona em macOS, Windows e Linux, com fallbacks de fonte apropriados.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/birchloveye/draw-flowchart/tree/HEAD/skills/draw-flowchart

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

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

Documentação

Desenhe um pôster de fluxograma

O trabalho tem duas metades:

  1. Você transforma o processo em Mermaid. Esta é a parte que requer julgamento: quais são os estados, quais ramificações estão faltando, onde o processo pode travar ou quebrar uma regra.
  2. scripts/make_poster.py renderiza. Nenhum modelo está envolvido, então a mesma entrada sempre produz o mesmo pôster.

<skill> abaixo é a pasta que contém este arquivo.

Fluxo de trabalho

  1. Entenda o processo. Reformule o objetivo do usuário em uma frase. Liste ambiguidades, ramificações ausentes ("o que acontece quando esta etapa falha?") e etapas arriscadas. Pergunte ao usuário apenas sobre as decisões que você não consegue resolver sozinho.

  2. Modele-o. Crie uma pasta para o diagrama (uma pasta por pôster).

    • Com pstack (preferido). Se o skill statechart do pstack estiver disponível (Claude Code: /pstack:statechart; Cursor: /statechart; ou seu SKILL.md no disco), use-o: escreva uma especificação TLA+ com as regras do usuário como INVARIANTs, execute-a, leia o report.md. Escreva o módulo de visão conforme descrito em references/pstack-statechart.md para que o diagrama converta limpo. Em seguida, converta:
      python3 <skill>/scripts/make_poster.py <pasta> --from-statechart <saida-statechart>/chart.mmd
      
      Ele escreve <pasta>/flow.mmd e imprime os números dos problemas em ordem, com a regra que cada um quebra. Se o usuário pediu para manter o pstack desligado, não o ligue; use o próximo caminho e diga isso.
    • Sem pstack. Escreva <pasta>/flow.mmd manualmente seguindo references/mermaid-rules.md. Marque cada problema que você encontrou (uma regra quebrada, um beco sem saída, uma ramificação ausente) com a classe breaks.
    • make_poster.py <pasta> --init [--lang zh] escreve um flow.mmd inicial e poster.json para editar.
  3. Escreva <pasta>/poster.json (references/poster-json.md): título, subtítulo, legenda no idioma do usuário e um cartão com uma linha por nó breaks, na mesma ordem dos números.

  4. Renderize.

    python3 <skill>/scripts/make_poster.py <pasta>
    

    Ele verifica primeiro e não desenha nada enquanto houver erros. Corrija todos os erros; leia todos os avisos. Saída: poster.html (autocontido, funciona offline), poster.png (2x) e poster.svg.

  5. Veja poster.png. Se você não puder ver imagens, ou para economizar custo, passe isso para um modelo mais barato ou subagente. Verifique:

    • cada nó circulado em vermelho tem uma linha no cartão, e os números coincidem;
    • nenhuma linha atravessa o texto ou parece ligada à caixa errada;
    • os rótulos estão no idioma do usuário e são curtos o suficiente para ler;
    • nada importante está apertado. Correções: encurte rótulos, coloque um espaço onde uma linha deve quebrar, divida um diagrama grande em dois pôsteres, ou sobrescreva o espaçamento em poster.json style. Em seguida, renderize novamente.
  6. Relate ao usuário: primeiro o caminho do PNG, depois uma linha por problema (a regra e como o processo a atinge), depois o que o modelo deixa de fora. Mencione que poster.html tem botões Exportar PNG/SVG.

Requisitos

  • Python 3.8+ (biblioteca padrão; Pillow é usado para reduzir fotos se instalado).
  • Chrome, Edge ou Chromium para exportação PNG/SVG. Se nenhum for encontrado, poster.html ainda é escrito; defina CHROME para o binário do navegador para habilitar a exportação.
  • Opcional: pstack (https://github.com/cursor/plugins/tree/main/pstack) para a verificação TLA+, que precisa de Java 11+ e as ferramentas TLA+ (veja references/pstack-statechart.md).
  • Fontes são fontes do sistema (macOS: American Typewriter, Baskerville, Songti, Kaiti; Windows e Linux usam fallback para Courier New / Georgia / SimSun / Noto Serif CJK). No Linux instale uma fonte CJK como Noto Serif CJK para Chinês.

Limites

  • Apenas layout de cima para baixo.
  • Sem estados compostos, regiões paralelas, notas ou subgrafos. Para saída de statechart, use uma visão plana (state() retorna uma string).
  • Melhor com 15 a 25 caixas; acima de 30 o verificador avisa. Divida processos maiores em vários pôsteres.
  • O layout automático ocasionalmente coloca uma linha perto de uma caixa não relacionada. É por isso que existe o passo 5.

Exemplo

examples/paper-submission/ no repositório: um modelo TLA+ de uma submissão de periódico (statechart/), o flow.mmd convertido, poster.json e o pôster renderizado. examples/paper-submission-zh/ é o mesmo modelo com uma visão em Chinês.

Habilidades Relacionadas