Communitygithub.com

szcharlesji/tikz-explorer-book

Erstelle ein figurenfokussiertes "Explorer"-Webbuch für einen Kurs, Lehrplan, eine Leseliste oder ein Forschungsfeld. Die Startseite ist eine interaktive Concept Map im Obsidian-Stil mit einer geführten Tour; die Kapitel bauen auf 2-3 berechneten TikZ-Figuren mit Leseleitfaden-Beschriftungen auf.

Was ist tikz-explorer-book?

Dieses Skill orchestriert die Erstellung eines figurenfokussierten "Explorer"-Webbuchs, das als eine einzelne Webseite veröffentlicht wird. Die Startseite ist eine interaktive Concept Map im Obsidian-Stil mit einer geführten Tour, die in Kapitel führt, die jeweils um 2–3 berechnete TikZ-Figuren herum aufgebaut sind. Schlüsselmechanismen werden oft als Live-Figuren umgesetzt, die der Leser ziehen, schieben oder überfahren kann (tikz-live), während statische Figuren aus tikz-dl-visualizer stammen. Der Text dient der Einleitung und Schlussfolgerung, ersetzt aber niemals eine Abbildung. Dieses Skill ist ideal für alle, die eine visuelle Begleitung, illustrierte Notizen, ein "Buch", ein Concept Map oder eine Übersicht eines Fachgebiets wünschen, die die Ideen und Arbeiten verbindet, die man kennen sollte, bevor man tiefer einsteigt. Es unterstützt Plattformen wie Claude Code, Cursor und Codex. Der Workflow umfasst das Verstehen der Quelle, das Planen der Kapitel um die Figuren, das Bereitstellen von Build-Tools, die Delegation der Kapitel an Subagents und die Überprüfung/Veröffentlichung des Endprodukts. Der gesamte Build-Prozess erfordert eine TeX-Installation mit TikZ/pgfplots, Ghostscript oder poppler für PNGs, ImageMagick für Kontaktbögen, uv (oder Python mit numpy/scipy) für Figurenzahlen und für Live-Figuren node sowie PyMuPDF. Der Nutzer sollte zuerst die Abhängigkeiten prüfen (`which pdflatex gs magick uv node`).

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

TikZ-Explorer-Buch

Du erstellst ein Buch, das jemand erkundet: eine einzelne Webseite, deren Startseite eine Concept Map des gesamten Fachgebiets ist, und deren Kapitel jeweils eine Idee mit sorgfältig berechneten TikZ-Figuren sichtbar machen. Der Leser möchte zuerst die Landschaft sehen, die Punkte verbinden, und dann dort tief einsteigen, wo er möchte.

Visualisierung hat Priorität. Ein Kapitel sind seine Figuren. Text führt zu einer Figur hin und zieht Schlussfolgerungen aus ihr; er ersetzt niemals eine Figur, die dasselbe zeigen könnte. Wenn du Zeit abwägst, behalte die Figurenqualität und kürze den Text.

Dieses Skill orchestriert; die Figurenerstellung lebt in zwei verwandten Skills, die sich eine visuelle Sprache teilen (dlviz.sty, Farbe = Rolle). Sie werden zusammen ausgeliefert und befinden sich neben dem Ordner dieses Skills; unten steht <skills> für den Ordner, der alle drei enthält (der übergeordnete Ordner dieses Skills, wo auch immer er installiert ist):

  • tikz-dl-visualizer (<skills>/tikz-dl-visualizer/): statische Figuren. Seine Stil-Datei, Archetypen und das Render-Skript definieren, was eine gute Figur ausmacht. Die meisten Figuren in einem Buch sind statisch.
  • tikz-live (<skills>/tikz-live/): Live-Figuren. Ein TikZ-Gerüst, kompiliert von pdflatex, plus eine kleine JS-Spezifikation, die den beweglichen Teil zeichnet, so dass der Leser einen Startpunkt ziehen, eine Temperatur schieben oder ein Token überfahren kann, während jedes Label reines TeX bleibt. Das Buch bindet sie ein und sie folgen seinem Hell/Dunkel-Design.

Lies beide SKILL.md-Dateien einmal vor der Planung, damit du weißt, was eine gute Figur ist und wann Interaktion ihren Platz verdient.

Was du lieferst

<book>/
├── book.json            Titel, Teile, Kapitel-IDs, Farbrollen, Karten-Einstellungen
├── SPEC.md              der Vertrag, dem jeder Kapitel-Autor folgt
├── chapters/00-front.html   Hero, Karten-Slot, Leseanleitung, Konventionen, Legende
├── chapters/<cid>.html  ein <section class="chapter"> pro Kapitel
├── figs/<cid>-<slug>.tex/.png/-light.png/.pdf
├── figs/<cid>-<slug>.js     Nur Live-Figuren: die Spezifikation; fig.sh schreibt auch
│                            .live.html (vom Build eingebunden), .html (eigenständig)
│                            und <slug>.<snapshot>.png (zur Überprüfung)
├── scripts/<cid>-<slug>.py  das Python hinter jeder Zahl einer Figur
├── map/data.json        Concept Map: Familien, Konzepte, Schlüsselwerke, Links, Tour
├── tools/               build.py, shell.html (Seitendesign), fig.sh, dllive.js (Live-Laufzeit)
└── index.html, preview.html   erstellte Seite (index.html veröffentlichen)

Voraussetzungen: Eine TeX-Installation mit TikZ/pgfplots (pdflatex), Ghostscript oder poppler für PNGs, ImageMagick für Kontaktbögen, uv (oder Python mit numpy/scipy) für Figurenzahlen und für Live-Figuren node plus PyMuPDF (uv run --with pymupdf, was fig.sh für dich erledigt). Die Seite lädt MathJax (jsDelivr) und d3 (cdnjs). Überprüfe frühzeitig which pdflatex gs magick uv node; falls TeX-Pakete fehlen, sage dem Benutzer den tlmgr install-Befehl, anstatt sie zu installieren.

Arbeitsablauf

1. Verstehe die Quelle und den Leser

Lies die Quelle (rufe den Kurskalender oder Lehrplan ab, liste die Lektüre auf). Dann bestimme den Leser: was er bereits weiß (überspringe die Grundlagen, die er kennt, zeichne aber die Grundlagen trotzdem gut) und was er anstrebt (einen Job, eine Prüfung, eine Forschungsrichtung). Das Ziel bestimmt die Form des Buches:

  • Teil I folgt der Quelle, ein Kapitel pro Sitzung oder Einheit. Jedes geht tief auf eine Idee ein, anstatt alles zusammenzufassen.
  • Teil II ist ein Toolkit für das Ziel des Lesers, z.B. "Was ein Videogenerierungs-Forscher wissen muss": die übergreifenden Grundlagen, die die Quelle voraussetzt oder überspringt, praktisch und aktuell, mit echten Zahlen. Überspringe Teil II, wenn der Leser kein über die Quelle hinausgehendes Ziel hat.
  • Die Startseite ist eine Concept Map: das große Ganze vor jeder Tiefe.

Frage den Benutzer nur, wenn das Ziel wirklich unklar ist; ansonsten gib deine Einschätzung in einem Satz und lege los.

2. Plane Kapitel um Figuren herum

Schreibe für jedes Kapitel eine Kurzbeschreibung: den tiefgehenden roten Faden (ein Satz), 2–3 Figuren mit dem, was jede sichtbar machen muss, welchen Archetyp und was zu berechnen ist. Dies ist der wichtigste Schritt. Kurzbeschreibungen, die den Mechanismus benennen, ergeben großartige Figuren; Kurzbeschreibungen, die ein Thema benennen, ergeben Kasten-Diagramme.

  • Schwach: "Figur über classifier-free guidance".
  • Stark: "1-D Zwei-Klassen-Mischung; integriere die geführte ODE mit exakten Geschwindigkeiten für w = 0, 1, 2, 4; kleine Multiples der resultierenden Dichten gegen p(x|c) und die geneigte Dichte, zeige, dass Guidance über das Ziel hinausschießt."

Gute Figurenthemen: ein Mechanismus in Aktion (Pfade, Flüsse, Aktualisierungen), ein Vorher/Nachher, ein Vergleich zweier Methoden bei identischen Eingaben, Formen und Zählungen (Tensor-Formen, Token-Anzahlen, FLOPs), ein numerisches Experiment, dessen Ergebnis der Punkt ist. Jedes muss berechenbar sein: der Autor wird jede Zahl in Python produzieren.

Entscheide, welche Figuren live sind. Eine Figur verdient Interaktion, wenn der Leser lernt, indem er etwas ändert und den Mechanismus reagieren sieht, und zwar so, wie es ein statisches Bild oder kleine Multiples nicht gleich gut zeigen können. Schreibe den Interaktionssatz in die Kurzbeschreibung: "der Leser zieht X / schiebt Y / überfährt Z und sieht W". Budget: etwa eine Live-Figur pro Kapitel, für den Hauptmechanismus des Kapitels; alles andere statisch. Gute Kandidaten: Optimierer-Pfade (Start ziehen, β schieben), Attention oder Convolution (eine Zeile oder Zelle überfahren), ein Guidance-Gewicht oder Temperatur-Sweep, eine lineare Abbildung (Basisvektoren ziehen), Sampling-Schritte (abspielen). Schlechte: Pipelines, Architekturdiagramme, alles, wo kleine Multiples den Trend bereits zeigen.

  • Live-Kurzbeschreibung: "1-D Zwei-Klassen-Mischung; der Leser schiebt das Guidance-Gewicht w von 0 auf 6 und sieht, wie die geführte Dichte über das geneigte Ziel hinausschießt; ein Play-Button integriert die ODE Schritt für Schritt; Zahlen: KL zum Ziel, live."

Entscheide auch, einmal für das ganze Buch: die Farbrollen (welche Farbe bedeutet was; setze sie in book.json, damit Figuren, Prosa-Mathematik und die Legende übereinstimmen), die Konventionen, bei denen das Fachgebiet unterschiedlicher Meinung ist (Zeitrichtung, Vorzeichen, Notation und Symbole, die in verschiedenen Kapiteln unterschiedliche Dinge bedeuten, wie z.B. (v) für die Geschwindigkeit des Impulses und das zweite Moment von Adam), und die Kapitel-IDs (w01..., v01...; der Buchstabe wird das Figuren-Label-Präfix, W3.2, V5.1).

3. Gerüst aufbauen

python3 <skill>/scripts/init_book.py <book> --title "Buchtitel" --sub "Quelle · Semester"

Bearbeite book.json (Teile, Kapitel-IDs, Rollen) und chapters/00-front.html; lies jede zuerst, da die Datei-Werkzeuge sich weigern, eine Datei zu überschreiben, die du nicht gelesen hast. Die Vorlage hat generische Deep-Learning-Rollen (Eingabe, versteckt, latent...): ersetze sie durch die des Fachgebiets (für Optimierer: Iteration, Gradient, Geschwindigkeit, Verlust...). Schreibe <book>/SPEC.md aus references/author-spec.md, fülle jeden «…»-Block aus: Leser, Teile, Rollentabelle, Konventionen, Kapitelkarte. Autoren sehen nur SPEC.md und ihre Kurzbeschreibung, also muss SPEC.md für sich allein stehen können. Schreibe es auch, wenn du das Buch selbst verfasst: es ist der Ort, an dem die Konventionen für spätere Kapitel und spätere Sitzungen leben.

Bevor du jemanden startest, rendere eine Wegwerffigur mit bash <book>/tools/fig.sh, um zu beweisen, dass die TeX-Pipeline funktioniert, und, wenn der Plan Live-Figuren vorsieht, auch eine Live-Figur: kopiere <skills>/tikz-live/assets/examples/momentum/momentum.{tex,js} nach figs/_test/, führe bash <book>/tools/fig.sh figs/_test/momentum.tex aus, dann rm -rf <book>/figs/_test (seine Zwischendateien leben in figs/_test/.dllive/, also bleibt nichts zurück). Das beweist, dass node und PyMuPDF funktionieren und platziert tools/dllive.js am richtigen Ort. Eine kaputte Pipeline, die von neun parallelen Autoren entdeckt wird, kostet neunmal so viel.

4. Delegiere die Kapitel

Für einen vollständigen Kurs (10+ Kapitel) starte parallele General-Purpose-Subagents, die jeweils 2–4 zusammenhängende Kapitel besitzen (etwa 5–7 Figuren). Jeder Prompt sagt: lies zuerst <book>/SPEC.md und folge ihr; die Kapitel-IDs, die er besitzt; pro Kapitel die Sitzungsmetadaten, Papiere, den tiefgehenden roten Faden und die Figuren-Kurzbeschreibungen; rendere, schaue, korrigiere, dann berichte gemäß SPEC Abschnitt 5. Gruppe zusammenhängende Kapitel unter einem Autor, damit geteilte Figuren konsistent bleiben (z.B. dynamisches OT mit OT-Kopplungen).

Nutzungslimits sind real: neun Autoren auf einmal können ein Sitzungslimit mitten im Lauf erschöpfen. Wenn Agenten mit einem Rate-Limit-Fehler anhalten, bleiben ihre Dateien erhalten. Setze jeden mit SendMessage fort ("mache da weiter, wo du aufgehört hast; überprüfe, was du bereits gemacht hast"), sobald das Limit zurückgesetzt ist, anstatt neue Agenten zu starten. Für große Bücher erwäge das Starten in zwei Wellen.

Für ein kleines Buch (ein Thema, 3–5 Kapitel) überspringe Subagents und schreibe es selbst, befolge aber trotzdem SPEC.md.

5. Während die Autoren zeichnen: Frontmatter und die Karte

Schreibe chapters/00-front.html (Hero, Leseanleitung, die Konventionen, die <!--ROLES-->-Legende, optional eine Tabelle, die die Quelle abbildet, z.B. den Kurskalender mit Kapitel-Links) und map/data.json. Lese references/concept-map.md für das Schema und wie man Familien, Knoten, Beziehungen und die Tour auswählt. Die Karte ist ein Überblick: was jede Idee ist, wo sie sitzt, wie sie zusammenhängt und welches Kapitel tiefer geht. Erkläre dort keine Mechanismen.

6. Überprüfe, während Berichte eintreffen

Jeder Bericht listet die Ein-Ideen-Sätze seiner Figuren und seine unbelegten Behauptungen auf. Öffne selbst die wichtigsten Figuren (den Hauptvergleich, alles, was der Benutzer namentlich angefragt hat) und überprüfe sie anhand der Fakten, die du kennst. Sende konkrete Korrekturen an den Autor zurück, der sie gezeichnet hat.

7. Zusammenbauen, überprüfen, lesen

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

Dann folge references/qa-and-publish.md: Kontaktbogen-Ansicht, Browser-Prüfungen (Mathematikfehler, Handybreite-Überlauf, Karte, Hellmodus, Live-Figuren: alle eingebunden, Ziehen und Überfahren funktionieren, der Theme-Umschalter färbt sie neu), und lies den Text jedes Kapitels vor der Veröffentlichung. Korrigiere Metadaten-Fehler (Sitzungsnummern, Daten), die Autoren aus deinen Kurzbeschreibungen übernommen haben.

Überspringe die Browser-Prüfung nicht. Die statischen Checks können das JavaScript der Seite nicht ausführen, und die wichtigsten Fehler sind still: eine Karte, die nie rendert, Mathematik, die das Setzen einstellt. Wenn du wirklich keinen Browser öffnen kannst, sage dies bei der Übergabe und liste die Browser-Prüfungen als nicht erledigt auf.

8. Veröffentlichen

Veröffentliche <book>/index.html als ein Artefakt mit jedem Figuren-PNG als unterstützende Datei (check_book.py --files-json gibt die Liste aus; Live-Figuren sind in die Seite eingebunden, daher werden ihre PNGs ausgelassen), oder übergebe den Ordner, wenn kein Artefakt-Werkzeug existiert. Sage dem Benutzer, was in jedem Teil ist, was unbelegt ist, welche Figuren Illustrationen und keine berechneten Ergebnisse sind und wie man neu erstellt (python3 tools/build.py) oder eine Figur neu rendert.

Spätere Anfragen

Bearbeite denselben Ordner und veröffentliche denselben Dateipfad neu, damit der Link gleich bleibt: füge ein Kapitel hinzu (hänge seine ID in book.json an), erweitere die Karte (bearbeite map/data.json) oder ändere das Design (bearbeite tools/shell.html). Behalte die Korrekturen aus references/qa-and-publish.md §3 im Auge, wenn du die Shell oder map.js berührst.

Referenzdateien

  • references/author-spec.md — die Vorlage für SPEC.md, der Vertrag der Kapitelautoren (Figurenregeln, HTML-Fragment-Format, Zitierregeln).
  • references/concept-map.md — map/data.json-Schema und wie man eine Karte schreibt, die die Punkte verbindet.
  • references/qa-and-publish.md — Prüfungen, Browser-Snippets, bekannte Fallstricke, die bereits in der Vorlage behoben sind, Veröffentlichung.
  • assets/template/ — das Buchskelett, das init_book.py kopiert.

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.

Verwandte Skills