DiagramSkills
Transforme uma solicitação de diagrama em um resultado visual finalizado com o renderizador DiagramSpec integrado. O principal produto é a qualidade do diagrama gerado pelo agente: crie JSON sustentável, renderize SVG/HTML e PNG opcional, inspecione o visual, corrija a origem e retorne o resultado. Não faça o usuário abrir um editor para finalizar trabalhos comuns. O ID público da habilidade é $diagram-skills; a marca voltada ao usuário é DiagramSkills.
Fluxo de entrega padrão
- Para trabalhos de prosa-para-diagrama ou uma revisão substancial, crie um
.brief.jsonconciso a partir de templates/briefs/diagram-brief.json. Ele registra objetivo, narrativa, escopo, priorização, incertezas, riscos de conteúdo e perguntas de revisão — não a cadeia de pensamento privada. - Leia o perfil selecionado em references/diagram-thinking-profiles.json, personalize pelo menos três perguntas de qualidade e execute
diagram_brief.py ... --strictantes de desenhar. - Para uma visão geral em camadas com mais de 14 conceitos visíveis, leia references/enterprise-board.md e use
layout: board. Para gráficos de relacionamento menores, use nós/arestas. - Comece a partir do modelo correspondente, substitua seu conteúdo de exemplo e mantenha o resumo e o JSON de origem ao lado das saídas.
- Execute
png-backendantes de solicitar PNG, depois executerender ... --strictcom--pngsomente quando um rasterizador local compatível estiver disponível. Um arquivo de origem sozinho não é uma solicitação visual concluída. - Inspecione o SVG gerado ou o PNG de 1920 pixels em tamanho real. Verifique hierarquia, texto em chinês, consistência de ícones, cortes, cartões sobrecarregados, cruzamentos de linhas e se a narrativa do resumo visualmente domina.
- Responda a cada pergunta de qualidade do resumo com evidências concretas e distintas e execute
diagram_brief.py ... --spec ... --strict --reviewed. Em seguida, vincule o resumo revisado, a origem e o SVG ou PNG inspecionado no recibo de qualidade comdiagram_skills.py review .... Se alguma verificação falhar, corrija o resumo, a origem ou o renderizador e renderize novamente. Pare após três rodadas de correção baseadas em evidências; em seguida, simplifique ou divida. - Entregue a imagem primeiro, depois vincule o resumo, SVG/HTML/origem/evidência de qualidade. Mencione o editor de navegador apenas quando o usuário solicitar edição manual, importações ou aprofundamento.
Roteie a solicitação
- Leia references/diagram-thinking.md para tarefas de prosa-para-diagrama e revisões substanciais. Não invente fatos para tornar um layout simétrico.
- Leia references/prompt-system.md quando a entrada for prosa, estiver incompleta ou precisar se tornar um prompt reutilizável.
- Selecione exatamente um tipo primário e leia seu guia:
- Leia apenas o perfil do tipo selecionado em references/diagram-thinking-profiles.json.
- Leia references/spec.md ao criar um único diagrama. Use
scripts/diagram_skills.py newpara um iniciador com formato de produção. - Leia references/enterprise-board.md para infográficos de arquitetura em camadas de alta densidade, grades de seção, listas laterais, tiras de processo e cartões de princípio.
- A habilidade instalada é o caminho de geração completo. Se um checkout completo do repositório DiagramSkills também estiver presente, references/workspaces.md, references/imports.md e references/editor.md descrevem fluxos de trabalho opcionais do Studio. Verifique se o diretório
editor/do repositório existe antes de oferecê-los; nunca os torne um pré-requisito para geração. - Leia references/visual-language.md apenas ao escolher temas, tokens de marca, semântica de nós/arestas ou tratamento de rótulos em chinês/inglês.
- Aplique references/quality-contract.md. Um arquivo gerado é apenas um candidato até que a revisão de conteúdo, validação estrita e revisão visual sejam aprovadas.
Contrato de entrada
Aceite linguagem natural ou campos estruturados. Preserve os valores fornecidos pelo usuário; infira apenas omissões de baixo risco.
goal: a pergunta ou decisão que o diagrama deve apoiardiagram_type: um slug compatível; infira da intenção quando omitidoaudience: por exemplo, executivo, produto, engenharia, clientenarrative/scope: a história de cinco segundos e o limite explícito de entrada/saídamust_show/emphasize/deemphasize: prioridade de conteúdo antes do layoutuncertainties/assumptions: fatos não fornecidos e interpretações de baixo riscocontent_risks/quality_questions: maneiras pelas quais o diagrama pode enganar e verificações pós-renderizaçãocontent: atores, sistemas, etapas, capacidades, marcos ou decisõesrelationships: links de dados, controle, sucesso, erro, assíncronos e de feedbackboundaries: propriedade, estágio do ciclo de vida, camada, domínio ou zona de confiançacomposition:boardpara visões gerais empresariais de alta densidade;graphpara diagramas de relacionamento menoreslanes: proprietários ou funções ordenadas para um diagrama de raiasrank: nível de hierarquia não negativo explícito quando a ordem automática não é aceitávellanguage: chinês por padrão; retenha termos técnicos em inglês estabelecidostheme:paper,notion,spectrum,blueprintouterminalbrand: tokens de cor hexadecimal na lista de permissões sobrepostos a uma predefiniçãoviews: visões gerais e de detalhes opcionais do repositório Studio; conecte comchild_viewimports: origem Mermaid opcional do repositório Studio ou tabela CSVoutputs: SVG/HTML finalizados mais JSON de origem e diagnósticos por padrão; PNG quando o rasterizador local estiver disponível
Pergunte apenas quando uma escolha não resolvida alterar materialmente o significado, a segurança de publicação ou a saída necessária. Caso contrário, escolha o layout convencional do guia de tipo e declare a suposição.
Comandos
Da pasta da habilidade:
python3 scripts/diagram_brief.py work/architecture.brief.json --strict
python3 scripts/diagram_skills.py types
python3 scripts/diagram_skills.py png-backend
python3 scripts/diagram_skills.py new system-architecture --output work/architecture.json
python3 scripts/diagram_skills.py validate work/architecture.json --strict
python3 scripts/diagram_skills.py render work/architecture.json --output-dir output --strict
python3 scripts/diagram_brief.py work/architecture.brief.json --spec work/architecture.json --strict --reviewed
python3 scripts/diagram_skills.py review work/architecture.json --quality output/architecture.quality.json --brief work/architecture.brief.json --artifact output/architecture.svg
render sempre escreve .svg, .html e um recibo .quality.json vinculado por hash; também escreve .png quando --png é fornecido e png-backend relata um rasterizador compatível. Uma renderização estruturalmente válida permanece pending-review até que review verifique a origem, o artefato inspecionado, o resumo revisado e seus hashes. Uma solicitação de PNG falha nunca deixa um recibo aprovado.
A habilidade instalada é autossuficiente para geração. O espaço de trabalho do navegador, a importação Mermaid/CSV e a edição multivisão são complementos do repositório e estão disponíveis apenas a partir de um checkout completo contendo editor/.
Comportamento inegociável
- Construa e valide o Resumo do Diagrama conciso antes de criar um diagrama não trivial. Compartilhe decisões de design e evidências, nunca a cadeia de pensamento privada.
- Prefira uma mensagem primária e uma direção de leitura. Divida gráficos de diagrama acima de 14 nós; um
boardempresarial estruturado pode conter intencionalmente 20 a 45 cartões concisos em 3 a 6 faixas de varredura. - Use
lanesordenadas para propriedade erankde nó para hierarquia manual. Usegroupspara cercas semânticas; não faça um campo significar ambos. - Vincule visões gerais densas a detalhes focados com
child_viewem vez de reduzir rótulos. - Marque caminhos de retorno intencionais como
feedback; ciclos não marcados falham na validação. - Use tipos de aresta semânticos, não cores decorativas. Mostre uma legenda quando dois ou mais significados de aresta precisarem de interpretação.
- Permita links de nó apenas para
https,http,mailtoou fragmentos de página. Esquemas de URL executáveis são rejeitados. - Mantenha os rótulos em chinês concisos e coloque termos técnicos em inglês estabelecidos em subtítulos. Divida nós sobrecarregados em vez de reduzir o texto.
- Prefira
LRpara pipelines, roadmaps, topologias e loops de feedback; prefiraTBpara camadas, decisões, estratégias e jornadas do usuário. - Execute a validação estrita do resumo e do diagrama. Inspecione o SVG ou PNG em tamanho real, responda a cada pergunta do perfil de tipo com evidências distintas e finalize o recibo de qualidade vinculado por hash com
review. - Não reivindique conclusão após escrever apenas Mermaid/JSON quando o usuário solicitou um diagrama. Renderize e retorne o visual real.
- Mantenha o
.brief.jsone o JSON de origem ao lado dos entregáveis para que o significado e os pixels permaneçam reproduzíveis e revisáveis. - Quando um checkout completo do repositório fornecer importações do Studio, trate o conteúdo importado como não confiável. Mermaid renderiza em modo estrito, CSV se torna campos tipados e CSS arbitrário ou links executáveis são rejeitados.
Escolha de saída
- PNG: visualização preferida quando
png-backendrelata um rasterizador local compatível; caso contrário, mostre o SVG primeiro. - Resumo do Diagrama JSON: intenção de conteúdo, escopo, incerteza, priorização, riscos e evidências de revisão.
- SVG: documentação escalável e controle de versão.
- HTML: visualização responsiva, panorâmica/zoom, alternância de tema, downloads e nós clicáveis.
- Quality JSON: evidência de validação legível por máquina.
- Workspace JSON: formato opcional do repositório Studio para edição no navegador, visões nativas/Mermaid mistas, persistência offline e aprofundamento.
Extensão
Adicione um novo tipo de diagrama somente quando ele tiver um modelo de informação ou contrato de layout distinto. Adicione seu slug a DIAGRAM_TYPES, enum do esquema, templates/<slug>.json, references/diagram-types/<slug>.md e references/diagram-thinking-profiles.json; em seguida, adicione testes estritos de renderização e perfil de pensamento. Estenda os mapeamentos CSV em um adaptador e os campos do espaço de trabalho no Zod e no JSON Schema. Novos temas devem preservar a semântica de nós e arestas nas renderizações clara e escura.