Was macht explainloop?
Erstelle originelle, lesbare Animationen, die eine Behauptung, einen Ablauf, einen Vergleich oder eine Änderung im gelieferten Text erklären. Bewahre den faktischen Status der Quelle und den vom Benutzer gewählten Abschnitt, die Anzahl, den Stil, die Größe und das Ziel. Die visuelle Referenz ist ein Designvokabular, keine Vorlage, die Szene für Szene kopiert wird.
Eingaben und Auswahl
- Lies den vollständigen gelieferten Text. Verwende für eine URL verfügbare Browsing-Tools; falls der Textkörper nicht abgerufen werden kann, fordere den Text an. Für lokales Markdown/TXT lies die Datei und angrenzende Bildunterschriften;
scripts/outline.mjs --input /absoluter/pfad/artikel.md [--section "Überschrift"]meldet Überschriftenbereiche, Zeichenanzahl und ob eine erweiterte interne Gliederung nützlich ist. Leite den Artikelinhalt nicht aus seinem Titel ab. - Wenn der Benutzer eine Überschrift, einen Absatz, ein Zitat oder einen Bereich nennt, wähle nur diese Passage für GIF-Themen aus; verwende den umgebenden Text nur zur Auflösung des Kontexts. Andernfalls identifiziere bis zu drei unterschiedliche Beziehungen, die eine Animation wert sind. Bevorzuge ein beobachtbares Ereignis, Vorher/Nachher, Ursache/Wirkung, Vergleich oder eine numerische Änderung gegenüber einem Slogan. Erzeuge 1–3 GIFs; fülle die Anzahl niemals mit schwachen Themen auf.
- Erstelle eine kompakte Beweiskarte für jedes GIF: genaue Quellpassage oder Absatzposition, Status der Behauptung (Fakt, Messung, berichtetes Ergebnis, Vorschlag oder Meinung), fokussiertes Objekt, was sich sichtbar ändert, und eine einprägsame Schlussfolgerung. Behalte Einheiten und Qualifikationen bei. Wähle ein GIF nur dann, wenn diese Änderung etwas lehrt, das ein Standbild unklar lassen würde. Erfinde keine Daten, Produkt-UI, Zitate oder Ergebnisse. Mehrere Seitenverhältnis-Versionen eines Themas müssen diese Karte beibehalten.
- Wenn der ausgewählte Textkörper nach Entfernung der Formatierung 6000 Zeichen überschreitet oder mehr als fünf Abschnitte der obersten Ebene hat, erstelle eine erweiterte interne Themengliederung, bevor du die stärksten 1–3 GIFs auswählst. Fahre automatisch fort; frage nur, wenn die angeforderte Passage oder eine wesentliche Behauptung nach dem Lesen der Quelle unklar bleibt. Ein bestimmter ausgewählter Abschnitt wird für sich allein gemessen.
Lies content-planning.md bei der Themenauswahl oder bei Unsicherheit. Diese Fähigkeit erfordert kein vollständiges Voiceover-Skript oder eine Genehmigung für einen Sprachkommentar.
Visuelle Entscheidungen
- Lies scene-recipes.md und visual-quality.md, bevor du eine Szene komponierst. Lege die unterstützte Beziehung, das fokussierte Objekt, die Lesereihenfolge, die Typenhierarchie, die Widget-Zustände und die Bewegungsabläufe fest. Entwerfe zuerst den vollständigen Endframe, dann lass die frühere Bewegung darauf hinführen. Vergleiche für eine neue Szene intern zwei materiell unterschiedliche Thumbnail-Kompositionen und wähle dann diejenige, die die Quelle mit weniger konkurrierenden Details erklärt. Lies design-directions.md bei der Auswahl einer fachspezifischen visuellen Familie und backgrounds.md bei der Auswahl der Leinwandbehandlung. Eine Stilvorgabe liefert Token; die Szene benötigt dennoch ein originelles Layout. Setze nicht jedes Subjekt in dieselbe
kit.page-Kopf-/Textkörper-/Fußzeilenanordnung. - Beginne mit den visuellen Anweisungen des Benutzers. Wähle für eine Anforderung, die mehrere GIFs oder Seitenverhältnisse erzeugt, einen Stil für den gesamten Batch, bevor du Szenen schreibst: eine einzelne Vorgabe aus styles.md und gemeinsamen Hintergrund, Palette, Schriftrollen, Linien-/Radiusbehandlung und Bewegungscharakter. Jede Szene in diesem Batch verwendet dasselbe
meta.styleund die gemeinsamen KernstyleOverrides; variiere Komposition und semantische Objekte, um jedes Thema zu erklären. Wähle keine neue Vorgabe für jedes GIF. Verwende gemischte Stile nur, wenn der Benutzer sie explizit anfordert. - Wenn die Typografie die Szene trägt, lies font-catalog.md. Vergleiche zwei installierte Schriftartkombinationen mit der Passage und notiere die gewählten Rollen in der Szene. Überprüfe die tatsächliche aufgelöste CJK-Schriftart und Glyphen vor dem Rendern; ersetze eine fehlende Anzeigeschriftart nicht stillschweigend. Der Katalog listet auch optionale, unabhängig installierte Open-Schriftarten auf. Die Fähigkeit lädt keine Schriftarten herunter oder bündelt sie.
- Komponiere konkrete Objekte mit components.md: Personen, Nachrichten, Dokumente, Aufgaben, Zeitlinien, Messungen und ihre Beziehungen. Verwende die umfangreicheren E-Mail-, Kalender- oder Nachrichten-Widgets, wenn die Erklärung UI-Details benötigt; erfinde keine Schnittstelle eines echten Produkts. Verwende die integrierte Lucide-Teilmenge für vertraute kleine Symbole. Konsultiere sources-and-licenses.md, bevor du externe Grafiken hinzufügst.
- Verwende standardmäßig originelle Vektorobjekte. Verwende gelieferte Bilder, eine entsprechend lizenzierte Illustration oder generierte Bitmap-Grafiken nur, wenn ein konkretes Subjekt nicht klar mit Vektorkomponenten erklärt werden kann. Halte die Bilder konsistent mit dem gewählten Stil und notiere ihre Quelle. Ersetze ein bestimmtes reales Subjekt nicht stillschweigend durch ein generisches Symbol.
- Jede sichtbare Aktion sollte beantworten, was sich geändert hat, wohin ein Objekt gegangen ist oder wie das Ergebnis folgt. Zeige verwandte Teile aus einem Bewegungsfortschritt, wenn sie sich als Einheit bewegen; lass wichtige Informationen in einer bewussten Reihenfolge landen und kehre diese Reihenfolge beim Verlassen um. Wähle eine der zehn Leinwandbehandlungen in backgrounds.md erst, nachdem du einen klaren Bereich für das fokussierte Objekt und den Text reserviert hast; passe seine Geometrie an die Beziehung des Artikels an und verwende die Ablehnungsbedingungen des Katalogs. Halte Text bei Artikelbreite lesbar. Zeige keine Diagrammwerte ohne Quelldaten. Vermeide lange statische Halte und einen abrupten Sprung zwischen erstem und letztem Frame, wenn sie die Schleife kaputt wirken lassen. Konsultiere failure-cases.md bei der Überprüfung eines ähnlichen Defekts.
Szenenquelle und Rendern
Das Standardergebnis ist ein 1600×900, 16:9, 30 fps, 4–7 Sekunden langes, stummes GIF. Benutzereinstellungen überschreiben diese Standardeinstellungen. Andere integrierte Ausgabeprofile sind 4:3 bei 1200×900, 1:1 bei 1200×1200 und 9:16 bei 900×1600; akzeptiere auch eine benutzerdefinierte Pixelgröße. Gib nur die angeforderten Seitenverhältnisse aus; wenn keins angegeben ist, verwende 16:9. Senke nicht stillschweigend Auflösung oder fps, um die Dateigröße zu reduzieren.
Schreibe eine .scene.mjs-Datei, die meta und draw(t, kit) exportiert; meta.width/height sind die logische Designleinwand, während --output-size Rasterpixel festlegt. draw erhält verstrichene Sekunden und gibt ein vollständiges SVG von kit.page(...) oder kit.svg(...) zurück. Platziere die Beweiskarte in meta.sourceRefs. Die Quelle muss deterministisch sein: gleiche Szene und Zeit, gleiches SVG. Siehe scene-format.md, assets/examples/message-filter.scene.mjs und assets/examples/multi-ratio/.
Erstelle für mehrere Seitenverhältnisse in einer Anforderung eine separate editierbare Szene für jedes Seitenverhältnis und rendere jede angeforderte Version. Gestalte das Layout für quadratischen oder hochformatigen Raum neu; strecke, beschneide oder letterboxe niemals eine Querformat-Szene als Endergebnis. Der Bildschirmtext kann für den schmaleren Rahmen gekürzt werden, während dieselben Beweise, Zahlen, Behauptungsstatus und Erkenntnisse erhalten bleiben. Behalte die kausale Abfolge der Animation über alle Versionen hinweg konsistent.
Sofern der Benutzer kein anderes Ziel wählt, speichere <artikel-slug>-01.gif und <artikel-slug>-01.scene.mjs (und fortlaufende Themennummern) im Verzeichnis generate/images/ unter dem aktuellen Arbeitsverzeichnis für eine einzelne 16:9-Ausgabe. Für eine Anfrage mit mehreren Seitenverhältnissen hänge -16x9, -4x3, -1x1 oder -9x16 vor beide Erweiterungen an; verwende -BREITExHÖHE für ein benutzerdefiniertes Seitenverhältnis. Behalte Arbeitsframes in einem temporären Verzeichnis. Die Szenenquelle ist das editierbare Ergebnis; hinterlasse keine generierten PNG-Frames daneben.
Löse das Verzeichnis dieser Fähigkeit als SKILL_ROOT aus dem geladenen Fähigkeitspfad auf.
Führe für einen Batch von zwei oder mehr Szenen zuerst node "$SKILL_ROOT/scripts/check-batch.mjs" --scene /absoluter/erste.scene.mjs --scene /absoluter/zweite.scene.mjs aus (wiederhole --scene für jede Szene). Behebe jegliche Vorgaben- oder gemeinsame Token-Inkonsistenzen vor dem Rendern. Dies prüft die Szenenmetadaten. Wenn Bildwahrnehmung verfügbar ist, führe scripts/preview-batch.mjs mit denselben --scene-Argumenten aus und vergleiche die tatsächlichen Ergebnis-Frames auf szenenlokale Farben, Schriftarten, Widget-Details und Hintergrundbehandlung. Überspringe die Batch-Stilprüfung nur, wenn der Benutzer explizit gemischte Stile angefordert hat.
Rendere und überprüfe jedes angeforderte GIF:
node "$SKILL_ROOT/scripts/render.mjs" --scene /absoluter/pfad/zu/name.scene.mjs --out /absoluter/pfad/zu/name.gif --output-size 1600x900
node "$SKILL_ROOT/scripts/inspect.mjs" /absoluter/pfad/zu/name.gif
render.mjs benötigt Node, rsvg-convert, ffmpeg und ffprobe; es prüft die Verfügbarkeit und meldet ein fehlendes Tool, anstatt es zu installieren. Die angeforderte Ausgabegröße muss dasselbe Seitenverhältnis wie die logische Leinwand der Szene haben, wobei jede Pixeldimension maximal 4096 beträgt. Verwende --poster /absoluter/pfad/zu/preview.png, wenn eine Standbildvorschau nützlich ist.
Befolge für eine qualitätsorientierte Generierung den bedingten Vorschau- und Revisionsworkflow in scene-recipes.md. Wenn dieser Agent tatsächlich Bildpixel sehen kann, führe node "$SKILL_ROOT/scripts/preview.mjs" --scene /absoluter/pfad/zu/name.scene.mjs --temporal-strip [--display-width 720] aus, überprüfe die vier Schlüsselframes und acht abgetasteten Frames und korrigiere konkrete visuelle Defekte vor dem endgültigen Rendern. Führe nicht mehr als zwei visuelle Revisionsrunden durch. Wenn der Agent keine Bildpixel sehen kann, überspringe visuelle Überprüfung und Vorschau; rendere und führe inspect.mjs nur für technische Prüfungen aus. Playwright wird nicht benötigt. inspect.mjs prüft Abmessungen, Frame-Anzahl, Dauer, vollständige Dekodierung, wiederholte Frames und den längsten exakten statischen Lauf; es kann keine visuelle Qualität beurteilen.
Ausliefern
Verlinke jedes GIF und seine Szenenquelle. Gib an, welche Quellpassage es illustriert, alle wichtigen Schlussfolgerungen, den gewählten Stil und die tatsächlichen Abmessungen/fps/Dauer/Dateigröße. Wenn ein Eingabeabschnitt angegeben wurde, bestätige, dass jede Szene daraus stammt. Behaupte keine gerenderten Ausgaben oder visuelle Überprüfungen, es sei denn, sie wurden tatsächlich durchgeführt; wenn visuelle Überprüfung nicht verfügbar war, sage dies explizit.
Diese Fähigkeit ist für kurze, stumme GIFs gedacht. Verwende einen statischen Diagramm-Workflow für ein einzelnes unbewegliches Architekturbild und einen Video-Workflow für MP4 mit Sprachkommentar.