Communitygithub.com

szcharlesji/tikz-explorer-book

Construa um "livro explorador” web centrado em figuras para um curso, programa de leitura ou campo de pesquisa. A página inicial é um mapa conceitual interativo no estilo Obsidian com uma visita guiada; os capítulos são construídos em torno de 2–3 figuras TikZ computadas com legendas-guia de leitura, onde o mecanismo-chave de um capítulo pode ser uma figura viva que o leitor arrasta, desliza ou passa o mouse (tikz-live) enquanto as figuras estáticas vêm do tikz-dl-visualizer. O resultado é publicado como uma única página web.

O que é tikz-explorer-book?

Esta skill orquestra a criação de um "livro explorador" web, uma única página cujo ponto de partida é um mapa conceitual interativo que oferece uma visão geral de um campo (como um curso, uma lista de leituras ou uma área de pesquisa) e, em seguida, guia o leitor para capítulos aprofundados. Cada capítulo é centrado em 2 a 3 figuras TikZ computadas, cuidadosamente projetadas para tornar uma ideia visível. A skill gerencia todo o fluxo de trabalho: desde a compreensão do material fonte e do perfil do leitor, passando pelo planejamento de capítulos e figuras, até a delegação da criação das figuras para skills irmãs especializadas (tikz-dl-visualizer para figuras estáticas e tikz-live para figuras interativas). O resultado final é um artefato de aprendizado visual rico, onde o leitor pode primeiro ver o panorama geral, conectar os pontos e depois se aprofundar nos tópicos de seu interesse, interagindo com mecanismos complexos por meio de simulações visuais. A skill é particularmente útil para transformar programas de cursos, listas de leitura ou campos de pesquisa complexos em guias de estudo ilustrados e intuitivos, ideais para quem quer uma "visão macro" conectando ideias e artigos fundamentais antes de mergulhar nos detalhes.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/szcharlesji/tikz-skills/tree/HEAD/skills/tikz-explorer-book

Perguntar na sua IA favorita

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

Documentação

Livro explorador TikZ

Você está fazendo um livro que alguém irá explorar: uma única página web cuja página inicial é um mapa conceitual de todo o campo, e cujos capítulos tornam uma ideia visível com figuras TikZ cuidadosamente computadas. O leitor quer ver o panorama primeiro, conectar os pontos e, em seguida, se aprofundar onde escolher.

A visualização é a prioridade. Um capítulo são suas figuras. O texto leva a uma figura e extrai a conclusão dela; ele nunca substitui uma figura que poderia mostrar a mesma coisa. Ao equilibrar o tempo, priorize a qualidade da figura e corte a prosa.

Esta skill orquestra; a criação das figuras reside em duas skills irmãs que compartilham uma linguagem visual (dlviz.sty, cor = função). Elas vêm juntas e ficam ao lado da pasta desta skill; abaixo, <skills> significa a pasta que contém as três (a pasta pai desta skill, onde quer que esteja instalada):

  • tikz-dl-visualizer (<skills>/tikz-dl-visualizer/): figuras estáticas. Seu arquivo de estilo, arquétipos e script de renderização definem o que é uma boa figura. A maioria das figuras em um livro são estáticas.
  • tikz-live (<skills>/tikz-live/): figuras vivas. Um esqueleto TikZ compilado por pdflatex mais uma pequena especificação JS que desenha a parte móvel, para que o leitor possa arrastar um ponto de partida, deslizar uma temperatura ou passar o mouse sobre um token enquanto cada rótulo continua sendo TeX real. O livro as incorpora e elas seguem seu tema claro/escuro.

Leia ambos os arquivos SKILL.md uma vez antes de planejar, para saber o que é uma boa figura e quando a interação merece seu lugar.

O que você entrega

<book>/
├── book.json            título, partes, ids dos capítulos, funções de cor, configurações do mapa
├── SPEC.md              o contrato que todo autor de capítulo segue
├── chapters/00-front.html   hero, espaço do mapa, como ler, convenções, legenda
├── chapters/<cid>.html  uma <section class="chapter"> por capítulo
├── figs/<cid>-<slug>.tex/.png/-light.png/.pdf
├── figs/<cid>-<slug>.js     apenas figuras vivas: a especificação; fig.sh também escreve
│                            .live.html (incorporado pela build), .html (autônomo)
│                            e <slug>.<snapshot>.png (para revisão)
├── scripts/<cid>-<slug>.py  o Python por trás de cada número em uma figura
├── map/data.json        mapa conceitual: famílias, conceitos, trabalhos-chave, links, tour
├── tools/               build.py, shell.html (design da página), fig.sh, dllive.js (runtime ao vivo)
└── index.html, preview.html   página construída (publique index.html)

Requisitos: uma instalação TeX com TikZ/pgfplots (pdflatex), Ghostscript ou poppler para PNGs, ImageMagick para folhas de contato, uv (ou Python com numpy/scipy) para números das figuras, e para figuras vivas node mais PyMuPDF (uv run --with pymupdf, que fig.sh faz para você). A página carrega MathJax (jsDelivr) e d3 (cdnjs). Verifique which pdflatex gs magick uv node no início; se pacotes TeX estiverem faltando, diga ao usuário o comando tlmgr install em vez de instalar.

Fluxo de trabalho

1. Entenda a fonte e o leitor

Leia a fonte (busque o calendário do curso ou programa, liste as leituras). Em seguida, defina o leitor: o que ele já sabe (pule o básico que ele conhece, mas ainda desenhe os fundamentos bem) e aonde ele está mirando (um emprego, um exame, uma direção de pesquisa). O objetivo decide a forma do livro:

  • A Parte I segue a fonte, um capítulo por sessão ou unidade. Cada um vai fundo em uma ideia em vez de resumir tudo.
  • A Parte II é um kit de ferramentas para o objetivo do leitor, por exemplo, "o que um pesquisador de geração de vídeo deve saber": os fundamentos transversais que a fonte assume ou ignora, práticos e atuais, com números reais. Pule a Parte II se o leitor não tiver nenhum objetivo além da fonte.
  • A página inicial é um mapa conceitual: o panorama geral antes de qualquer profundidade.

Pergunte ao usuário apenas quando o objetivo estiver genuinamente obscuro; caso contrário, declare sua interpretação em uma linha e siga em frente.

2. Planeje capítulos em torno de figuras

Para cada capítulo, escreva uma breve descrição: o fio condutor profundo (uma frase), 2–3 figuras com o que cada uma deve tornar visível, qual arquétipo e o que computar. Este é o passo mais importante. Briefings que nomeiam o mecanismo geram ótimas figuras; briefings que nomeiam um tópico geram diagramas de caixa.

  • Fraco: "figura sobre orientação sem classificador".
  • Forte: "Mistura 1-D de duas classes; integre a EDO guiada com velocidades exatas para w = 0, 1, 2, 4; pequenos múltiplos das densidades resultantes contra p(x|c) e a densidade inclinada, mostrando que a orientação ultrapassa a inclinação".

Bons assuntos para figuras: um mecanismo em ação (caminhos, fluxos, atualizações), um antes/depois, uma comparação de dois métodos em entradas idênticas, formas e contagens (formas de tensores, contagens de tokens, FLOPs), um experimento numérico cujo resultado é o ponto principal. Cada uma deve ser computável: o autor produzirá cada número em Python.

Decida quais figuras são vivas. Uma figura merece interação quando o leitor aprende mudando algo e observando o mecanismo responder, de uma forma que uma imagem estática ou pequenos múltiplos não conseguem mostrar tão bem. Escreva sua frase de interação no briefing: "o leitor arrasta X / desliza Y / passa o mouse sobre Z e vê W". Orçamento: cerca de uma figura viva por capítulo, para o mecanismo principal do capítulo; todo o resto estático. Bons candidatos: caminhos de otimizadores (arraste o início, deslize β), atenção ou convolução (passe o mouse sobre uma linha ou célula), um peso de orientação ou varredura de temperatura, um mapa linear (arraste os vetores de base), etapas de amostragem (reproduzir). Ruins: pipelines, diagramas de arquitetura, qualquer coisa onde pequenos múltiplos já mostrem a tendência.

  • Briefing para figura viva: "Mistura 1-D de duas classes; o leitor desliza o peso de orientação w de 0 a 6 e vê a densidade orientada ultrapassar o alvo inclinado; um botão de reprodução integra a EDO passo a passo; números: KL em relação ao alvo, ao vivo."

Decida também, uma vez, para todo o livro: as funções de cor (qual cor significa o quê; coloque-as em book.json para que figuras, matemática da prosa e a legenda concordem), as convenções sobre as quais o campo discorda (direção do tempo, sinais, notação e símbolos que significam coisas diferentes em capítulos diferentes, como (v) para a velocidade do momentum e o segundo momento do Adam) e os ids dos capítulos (w01…, v01…; a letra se torna o prefixo do rótulo da figura, W3.2, V5.1).

3. Estrutura inicial

python3 <skill>/scripts/init_book.py <book> --title "Título do Livro" --sub "Fonte · Termo"

Edite book.json (partes, ids dos capítulos, funções) e chapters/00-front.html; leia cada um primeiro, pois as ferramentas de arquivo se recusam a sobrescrever um arquivo que você não leu. As funções do modelo são genéricas de aprendizado profundo (entrada, oculta, latente...): substitua-as pelas do próprio campo (para otimizadores: iterar, gradiente, velocidade, perda...). Escreva <book>/SPEC.md a partir de references/author-spec.md, preenchendo cada bloco «…»: leitor, partes, tabela de funções, convenções, mapa de capítulos. Os autores veem apenas SPEC.md e seu briefing, portanto SPEC.md deve ser autossuficiente. Escreva-o mesmo quando você mesmo for o autor do livro: é onde as convenções vivem para capítulos posteriores e sessões posteriores.

Antes de lançar qualquer pessoa, renderize uma figura descartável através de bash <book>/tools/fig.sh para provar que o pipeline TeX funciona e, se o plano tiver figuras vivas, também uma figura viva: copie <skills>/tikz-live/assets/examples/momentum/momentum.{tex,js} para figs/_test/, execute bash <book>/tools/fig.sh figs/_test/momentum.tex, depois rm -rf <book>/figs/_test (seus intermediários vivem em figs/_test/.dllive/, portanto nada é deixado para trás). Isso prova que node e PyMuPDF funcionam e coloca tools/dllive.js no lugar. Um pipeline quebrado descoberto por nove autores em paralelo custa nove vezes mais.

4. Delegue os capítulos

Para um curso completo (10+ capítulos), dispare subagentes de propósito geral em paralelo, cada um sendo dono de 2–4 capítulos relacionados (cerca de 5–7 figuras). Cada prompt diz: leia <book>/SPEC.md primeiro e siga-o; os ids dos capítulos dos quais é dono; por capítulo, os metadados da sessão, artigos, o fio condutor profundo e os briefings das figuras; renderize, veja, corrija e depois relate por seção SPEC 5. Agrupe capítulos relacionados sob um autor para que figuras compartilhadas permaneçam consistentes (por exemplo, OT dinâmico com acoplamentos OT).

Os limites de uso são reais: nove autores de uma vez podem esgotar um limite de sessão no meio da execução. Se os agentes pararem com um erro de limite de taxa, seus arquivos serão mantidos. Retome cada um com SendMessage ("continue de onde parou; verifique o que já fez") quando o limite for reiniciado, em vez de iniciar novos agentes. Para livros grandes, considere lançar em duas ondas.

Para um livro pequeno (um tópico, 3–5 capítulos), pule os subagentes e escreva-o você mesmo, ainda seguindo SPEC.md.

5. Enquanto os autores desenham: material inicial e o mapa

Escreva chapters/00-front.html (hero, como ler, as convenções, a legenda <!--ROLES-->, opcionalmente uma tabela espelhando a fonte, por exemplo, o calendário do curso com links para capítulos) e map/data.json. Leia references/concept-map.md para o esquema e como escolher famílias, nós, relações e o tour. O mapa é uma visão geral: o que cada ideia é, onde se encaixa, como se relaciona e qual capítulo se aprofunda. Não explique mecanismos ali.

6. Revise à medida que os relatórios chegam

Cada relatório lista as frases de uma ideia de suas figuras e suas afirmações não verificadas. Abra você mesmo as figuras mais importantes (a comparação principal, qualquer coisa que o usuário pediu pelo nome) e verifique-as com os fatos que você conhece. Envie correções concretas de volta para o autor que a desenhou.

7. Monte, verifique, leia

python3 <book>/tools/build.py
python3 <skill>/scripts/check_book.py <book> --sheet

Em seguida, siga references/qa-and-publish.md: olhada na folha de contato, verificações no navegador (erros de matemática, transbordamento em largura de telefone, mapa, modo claro, figuras vivas: todas montadas, arrastar e passar o mouse funcionam, a alternância de tema as recoloriza) e leia o texto de cada capítulo antes de publicar. Corrija deslizes de metadados (números de sessão, datas) que os autores herdaram de seus briefings.

Não pule a verificação no navegador. As verificações estáticas não conseguem executar o JavaScript da página, e as falhas mais importantes são silenciosas: um mapa que nunca renderiza, matemática que para de tipografar. Se você realmente não puder abrir um navegador, diga isso na entrega e liste as verificações do navegador como não feitas.

8. Publique

Publique <book>/index.html como um Artefato com cada PNG de figura como um arquivo de suporte (check_book.py --files-json imprime a lista; figuras vivas são incorporadas na página, portanto seus PNGs são deixados de fora), ou entregue a pasta se nenhuma ferramenta de Artefato existir. Diga ao usuário o que está em cada parte, o que não está verificado, quais figuras são ilustrações em vez de resultados computados e como reconstruir (python3 tools/build.py) ou re-renderizar uma figura.

Solicitações posteriores

Edite a mesma pasta e republicue o mesmo caminho de arquivo, para que o link permaneça o mesmo: adicione um capítulo (anexe seu id em book.json), estenda o mapa (edite map/data.json) ou mude o estilo (edite tools/shell.html). Mantenha as correções listadas em references/qa-and-publish.md §3 ao tocar no shell ou map.js.

Arquivos de referência

  • references/author-spec.md — o modelo para SPEC.md, o contrato dos autores dos capítulos (regras de figuras, formato de fragmento HTML, regras de citação).
  • references/concept-map.md — esquema de map/data.json e como escrever um mapa que conecta os pontos.
  • references/qa-and-publish.md — verificações, trechos de navegador, armadilhas conhecidas já corrigidas no modelo, publicação.
  • assets/template/ — o esqueleto do livro que init_book.py copia.

Individual skills in this repo

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

szcharlesji/tikz-dl-visualizer

Explain a deep-learning concept with a beautiful, intuition-first static TikZ/pgfplots figure (compiled to PDF and PNG) plus a short walkthrough of how to read it, aimed at intermediate deep-learning students. Made for slides and decks (PowerPoint, Keynote, Beamer), papers, theses, handouts and lecture-note PDFs. Uses a consistent visual language (colour = role, Canziani NYU-DL book style) and standard DL notation. Use this whenever someone asks to visualize, illustrate, diagram, draw, sketch or "show me" any ML/DL idea (attention, convolution, backprop, normalization, residuals, RNN/LSTM, VAEs, diffusion, GANs, contrastive learning, optimizers, loss landscapes, activations, embeddings, energy-based models...), asks for a TikZ or LaTeX figure of a neural network or architecture, wants a figure for lecture notes, slides, homework, a thesis or a paper, or says "help me understand X visually", even if they never say "TikZ". For a figure the reader should drag, slide or hover, use tikz-live; for a whole illustrat

szcharlesji/tikz-live

Build an interactive, explorable figure in the TikZ/dlviz style (Canziani NYU-DL look) where the reader drags points, moves sliders, hovers rows or plays steps, while every static part stays real LaTeX typography. The static scaffold is compiled from TikZ, a small JS spec draws the live part in the same coordinates, and the build outputs one self-contained HTML page plus PNG snapshots to check. Use this whenever someone wants an interactive, live, explorable, draggable, animated, "play with it", slider or hover version of a technical or ML/DL diagram (optimizers, attention, convolution, linear maps, loss landscapes, sampling, normalization...), wants to make an existing TikZ figure interactive, or wants interactive figures for a web book, course notes, a blog or an artifact. For a static figure (slides, papers, print), use tikz-dl-visualizer; for a whole illustrated web book with many figures, use tikz-explorer-book, which builds its live figures with this skill.

Habilidades Relacionadas