Caroselli Canva (ehemals carosello-aurum)
Ab 13. Okt. 2026 bevorzugt Davide den Stil der Folien aus Lektion 1 und möchte diesen für alle Karussells replizieren; diese werden mit der Skill
caroselli-claudeerstellt (kein Canva). Diese Skill bleibt für Karussells in Canva bestehen.
Ersetzt die alte Methode (manuell kopierte Canva-Vorlage, Schriftart Anton auf Foto + dunkler Balken). Diese bleibt als Referenzstil für Reel-Cover (siehe [[copertine-reel]]) gut, nicht mehr für Karussells. Ersetzt auch die globale Skill ig-carousel (Higgsfield/Nano Banana): Diese generiert KI-Bilder und eingezeichneten Text – nicht mehr unser Workflow.
Bevor du diese Skill öffnest, wird der Inhalt (Texte, Studien, Ton) wie in [[caroselli]] (Memory/Wiki) beschrieben vorbereitet: 5-6 Fragen an Davide, überprüfte echte Studien, Anrede „Du“ mit Davide, immer unpersönlich (niemals „ich“). Diese Skill startet von dort und kümmert sich nur um die grafische Produktion.
Warum diese Methode und nicht die alte?
edit-design (das Tool für Reel-Cover) ist chirurgisch: Es bearbeitet ein bereits vorhandenes Element und kann niemals eine Schriftart oder ein Layout für etwas Neues auswählen. create-design ist anders: Man sendet einen schriftlichen Brief und die KI-Engine von Canva selbst (dieselbe wie bei „Magic Design“) entscheidet über Schriftarten, Layout, Icons, Hierarchie – nicht ich von Hand. Das Ergebnis ist ein echtes Design mit einer anderen Grafik für jede Folie (Visier, riesige Zahlen, Checklisten, nummerierte Kreise), kein Collage. Der Preis: es kommt immer mit Fehlern, die überprüft werden müssen – deshalb ist Phase 4 hier unten nicht optional.
Phase 1 – Der Brief
Ein einziger textueller Brief (keine strukturierte Gliederung – diese gilt nur für design_type: presentation, das wir hier nicht verwenden) mit:
- Format:
"Instagram Post"(ergibt 4:5, 1080×1350 – bestätigt in diesem Projekt). - Ton: moderater ritterlicher/römischer Register, festgelegt mit Davide am 25. Sept. 2026 nach einer Recherche – Gladiator/Spartaner ist das abgedroschenste Klischee im Fitness-/Kampfsportbereich (Gladiator Gym Gear, Spartan Race...), der Ritter ist weniger ausgelutscht und konsistent mit dem, was in [[cammino-guerriero]] geschrieben steht (Musashi/Bushido = individueller Kodex, keine Massendisziplin einer Legion). Noch nicht zu 100 % festgelegt – Davide sagte, ihm gefallen beide Register und er möchte mit der Zeit „die richtige Mischung“ finden: Bitte um Bestätigung, wenn seit dem letzten Mal nicht viel Zeit vergangen ist, sonst schlage dieselbe Mischung vor (Anton/Roboto/OpenSauce, Gold auf Schwarz, kein expliziter Helm/Schild/Gladio, nur dezente Details wie römische Ziffern).
- Farben: schwarzer/anthrazitfarbener Hintergrund, weißer Text, nur ein heller Goldakzent (Bereich
#c29342–#d8af54, leicht variierend von Folie zu Folie, da von der KI generiert – kein Fehler, muss nicht vereinheitlicht werden). - Foto: NUR das Cover hat ein Foto (entschieden von Davide am 24. Sept.: Die anderen Folien bleiben grafisch/typografisch, keine Fotos – so muss man nicht viele verschiedene Bilder verwalten). Im Brief schreibe: „NUR das Cover hat ein Foto... die anderen 7 Seiten sind grafisch/typografisch, ohne Foto“.
- Struktur: Liste jede Folie als
SEITE N: ...mit Bezeichnung, Titel, Textkörper und kursiven Notizen, wo eine Studie zitiert wird. Die letzte Seite ist der Abschluss mit dem CTA „Speichern“ (Icon + zwei Zeilen, siehe Phase 4). - Scroll-Indikator: Fordere einen Seitenindikator „1/8“…„8/8“ + Pfeil auf allen Seiten außer der letzten (die KI liefert das bereits so, später in Phase 4 wird in römische Ziffern umgewandelt).
- Logo/Handle: „AURUM MILES“ klein, dezent, auf jeder Seite.
Rufe create-design mit diesem Brief auf, kurzer user_intent, keine outline (wir sind auf Instagram Post, nicht Presentation).
Phase 2 – Auf die Generierung warten
create-design ist asynchron: Es gibt eine job_id + continuation_token und einen status: pending zurück.
- Warte
polling_policy.wait_seconds(normalerweise 10–15 s) vor dem ersten Poll. - Rufe
get-create-design-async-jobmitjob_id+ dem letztencontinuation_tokenauf. - Wiederhole, bis
status: completed– normalerweise 4–6 Runden, verkürze die Wartezeit nicht (dieselbe Antwort wird identisch zurückgegeben, beschleunigt nichts). VerwendeBashmitsleepzum Warten, keine zu schnellen Aufrufe. - Das Ergebnis liefert
design.idunddesign.url– das ist das zu prüfende und zu korrigierende Karussell.
Phase 3 – Qualitätskontrolle (immer, ohne Ausnahme)
Bevor du Davide etwas zeigst, lies alle Seiten (read-design, design_content ohne page_indices, um den gesamten Text auf einmal zu sehen) und prüfe:
a) Die physische Reihenfolge der Seiten
Der Generator erstellt die Seiten manchmal in einer anderen Reihenfolge als oben auf jeder Folie („N/8“). Vergleiche den Text jeder Seite mit der Bezeichnung, die sie trägt; wenn eine Folie falsch platziert ist, ordne sie neu:
merge-designs, type: modify_existing_design, operations: [{type: move_pages, from_page_numbers: [N], to_after_page_number: M}]
Ein Vorgang pro Aufruf – das Tool lehnt mehrere Batches ab.
b) Fehlende Folien
Der Generator überspringt manchmal eine Seite des Briefs (bereits passiert: 7 Seiten statt 8, der Abschluss fehlte). Wenn eine fehlt:
copy-designder strukturell ähnlichsten Seite (z. B. die letzte „Korrektur“ für einen Abschluss, nicht eine Seite mit einer Phantomnummer wie „01“ themenspezifisch).- Schreibe die Texte mit
replace_textauf den vorhandenen Locators neu (niemalsadd_textfür Titel – verliert die vom Generator gewählte Schriftart, siehe technische Anmerkung unten). - Lösche die nicht mehr benötigten dekorativen Elemente (z. B. die Reihe der Checklisten-Icons, wenn es ein CTA wird) mit
delete_element. - Füge den finalen CTA ein (Icon + zwei Zeilen, siehe unten).
- Setze die Seite mit
merge-designs→insert_pageswieder an die richtige Stelle.
c) „Geister“-Text im Hintergrund
Wiederkehrender Fehler dieses Generators: Der ursprüngliche Text (vor jeglichem replace_text) bleibt manchmal in das Hintergrundbild der Seite „eingebrannt“, nicht nur im bearbeitbaren Textelement – das Ersetzen des Textes lässt ihn nicht aus dem Render verschwinden. Man sieht eine blasse Schrift hinter dem Titel oder Textkörper.
Fix: insert_shape mit einem vollständigen Rechteck (Pfad M0,0 H<w> V<h> H0 Z), Farbe nahe dem Schwarz der Seite (#0e0e0e oder #131110 sind in Ordnung), positioniert über dem gesamten verschmutzten Bereich – danach immer layer_element mit position: "back" auf demselben Locator, damit der Flicken über dem Rasterhintergrund liegt, aber unter Titel/Textkörper/Badge (die separate, sichtbare Elemente bleiben). Wenn der Geist weiter unten sichtbar bleibt (z. B. nahe einer Liste), vergrößere den Flicken mit resize_element, bis keine Spur mehr bleibt – überprüfe es immer mit dem Render, bevor du es als erledigt betrachtest.
d) Überlagerungsreihenfolge (z-Order) allgemein
Jedes neue Element (insert_shape, add_text) wird immer oben (vor allem) eingefügt. Wenn du etwas hinzufügst, das hinter dem vorhandenen Text liegen soll (wie die Flicken oben), ist immer layer_element: back danach erforderlich. Wenn stattdessen ein vorhandenes Element (Logo, Titel, Seitenzahl) hinter etwas geraten ist, das du hinzugefügt hast, verwende layer_element: front darauf.
e) Seitenzahlen in römischen Ziffern
Der Generator erzeugt „1/8“, „2/8“… Ersetze durch „I / VIII“, „II / VIII“… bis „VIII / VIII“ auf der letzten. Der römische Text ist länger: Fast immer muss der Kasten vergrößert werden (resize_element, +100/150 px Breite) und links neu positioniert werden (position_element), damit er nicht in das daneben liegende Pfeilchen hineinragt – überprüfe immer das left des Pfeil-Icons auf derselben Seite und lasse den Zahlenkasten bündig davor enden. Die letzte Folie hat keinen Pfeil (es gibt nichts mehr zu scrollen): Lasse nur „VIII / VIII“ stehen, ohne etwas weiteres anzutasten.
f) Konsistente Schriftart
Der Generator weist verschiedenen Elementen unterschiedliche Schriftarten zu. Ich kann keine Schriftart für ein neues oder vorhandenes Element wählen – keine Operation erlaubt das (format_text ändert nur Größe/Gewicht/Farbe/Kursiv, niemals die Familie). Der einzige Weg: Davide wählt den Text in Canva aus (Link des edit_url) und wählt die Schriftart manuell, einmal pro Element; von dort recycele ich sie auf anderen Elementen mit replace_text, das immer die Schriftart des Zielelements beibehält. Wenn ein neues Karussell mit inkonsistenten Schriftarten zwischen den Folien herauskommt, ist das normal – bitte Davide, den gleichen schnellen Durchlauf zu machen, den er bereits gemacht hat (Titel in einer Schriftart, Textkörper in einer anderen, kleine Bezeichnungen in einer dritten), dann korrigiere du Größen/Abstände.
g) Cover-Foto
Wenn Davide ein eigenes Foto schickt: create-upload-url (nicht upload-asset-from-url, das erwartet eine öffentliche URL) → ein direkter POST der Datei an die erhaltene Einmal-URL → mediaId → update_fill auf das Foto-Rechteck des Covers. Der automatische Zuschnitt von Canva ist bei vertikalen oder quadratischen Fotos normalerweise bereits gut; überprüfe ihn mit dem Render, bevor du manuell mit crop_media nachjustierst. Die anderen Folien bleiben ohne Fotos (siehe Phase 1).
Phase 4 – Der finale CTA (Abschlussfolie)
Standard, festgelegt mit Davide (22.–25. Sept. 2026), jedes Mal gleich zu reproduzieren:
- Lesezeichen-Icon (
insert_shape, PfadM0,0 H34 V44 L17,30 L0,44 Z, goldene Farbe) in derselben Zeile wie die erste CTA-Zeile, nicht darüber. - Zeile 1 (die Aktion, z. B. "SPEICHERE ES VOR DEM NÄCHSTEN SPARRING."): Großbuchstaben, fett, NICHT kursiv, goldene Farbe.
- Zeile 2 (das Extra, z. B. "Schick es an denjenigen, der das nächste Mal aufsteigen soll."): Kleinbuchstaben außer dem ersten Buchstaben, kursiv, gleiches Gold – eine Nuance heller. Achtung beim Text: Schränke das Ziel nicht zu sehr ein (z. B. nicht "der zum ersten Mal aufsteigt", wenn die Nachricht für jeden gelten soll, der wieder in den Ring steigt, nicht nur für Anfänger – hängt vom spezifischen Inhalt ab, frage Davide, wenn der erste Entwurf zu eng erscheint).
- Block mit echtem vertikalen Abstand vom obigen Absatz getrennt (~150 px), nicht eng anliegend – sonst sieht es aus wie die Fortsetzung desselben Satzes.
- Zwei Zeilen = zwei separate Textelemente (kein
\ninnerhalb eines), da jedes eine andere Formatierung trägt.
Phase 5 – Auslieferung
export-design, Formatpng,width: 1080, height: 1350, ohnepages(alle zusammen), sobald Phase 3 abgeschlossen ist.- Lade jedes PNG herunter und speichere es in
Caroselli elaborati/AAMMGG_Titolo/1.png … 8.png(gleicher Ordner wie der Text,slide_,caption_,note_– siehe [[caroselli]] und [[produzione-contenuti]]). - Sende ein Kontaktblatt oder die 8 Bilder an Davide, bevor du es als endgültig betrachtest – es ist immer eine Runde Korrekturen, betrachte es nicht beim ersten Export als genehmigt.
- Pre-Publishing-Check: Zähle die exportierten PNGs (N) und erinnere Davide in der Liefernachricht explizit daran, zu überprüfen, ob alle N Folien auf Instagram in der Warteschlange sind, bevor er auf Veröffentlichen drückt (z. B. "Es sind N Folien, 1.png...N.png – überprüfe, ob alle da sind, bevor du veröffentlichst"). Es ist bereits vorgekommen (Karussell #8), dass eine Folie beim Hochladen vergessen wurde und niemand es vor der Veröffentlichung bemerkt hat – die Auswirkung war damals minimal, aber es ist eine kostenlose Prüfung.
- Erst nach seinem OK: Protokolliere in
memoria/wiki/log.md, aktualisiere den Status in [[caroselli]].
Layout-Standards – festgelegt von Davide am 2. Okt. 2026 bei #12 (gilt ab sofort für jedes Karussell)
Nach dem Klon-von-#8 (siehe unten) hat Davide von Hand in Canva eine Reihe von Details korrigiert, die auf jeder Folie mit „Header“ (Bezeichnung + römische Nummerierung + Pfeil oben, z. B. "Technik N") identisch sind. Dies sind die festen Maße/Kriterien, die sofort anzuwenden sind, nicht von Folie zu Folie neu zu entdecken:
- Römische Nummerierung an der Bezeichnung ausgerichtet: Das
topder römischen Zahl muss (oder fast) mit demtopder daneben liegenden Bezeichnung übereinstimmen ("Technik 2", "Warum", usw.), nicht höher oder tiefer für sich allein. Dieselbe Zeile, dieselbe visuelle Höhe. - Pfeil: Schriftart/Größe ~32–36 px, Farbe immer
#c29342(Standardgold, siehe unten). Der Pfeil steht unmittelbar nach der römischen Zahl mit einem kleinen sauberen Abstand (~15–20 px), niemals direkt anliegend. - Horizontaler Trenner unter dem Header: Wenn vorhanden (Folie mit Linie unter der Bezeichnung), fast über die gesamte Breite (Größenordnung
560–930 px), kein kurzer Strich – sauberer Schnitt unter dem gesamten Block aus Bezeichnung+Nummerierung, nicht nur unter der Bezeichnung. - Textkörper in Fett: Der Textkörper (nicht der Titel, nicht die Zitate) sollte in
font_weight: boldsein, nichtnormal/medium– vollere und besser lesbare Darstellung auf schwarzem Hintergrund. Kurze aufeinanderfolgende Absätze (z. B. "Satz 1:" + "Satz 2.") können in einem einzigen Textelement zusammengefasst werden, anstatt sie getrennt zu halten, wenn sie logisch ein einziger Satz sind, der in zwei Zeilen aufgeteilt ist. - Weiß nie rein:
#ffffffsollte bei weißem Text und dem Logo "Aurum Miles" durch#f1f1f1ersetzt werden – etwas weniger hart gegen Schwarz. - Finaler CTA (Icon+2 Zeilen): Das Speicher-Icon und die erste Textzeile ("SPEICHERE...") teilen sich dasselbe
top(dieselbe Zeile, nicht Icon höher-Text tiefer), mit ~25–30 px horizontalem Abstand zwischen der rechten Kante des Icons und dem Textanfang.
Bestätigter Fehler: resize_element auf Icons mit Bildfüllung
Nicht von unserer Seite lösbar: Das Skalieren eines Icons mit Bildfüllung (Pfeile, Badges) über die API schneidet es zu, anstatt es zu skalieren (siehe Anmerkung in [[caroselli]]). Wenn ein kleinerer Pfeil/Icon benötigt wird, verwende nicht resize_element: Entweder lasse es bei der nativen Größe und arbeite mit der Position, oder – wenn Davide es von Hand in Canva anpasst – stelle fest, dass dort die Skalierung gut funktioniert (der echte Editor skaliert den Inhalt korrekt, nur die API-Operation hat den Fehler). Ein konkretes Zeichen, dass etwas so kaputt ist: Ein Element nahe einem Text mit textAlign: end, das „umgedreht“ aussieht – wahrscheinlich ein Fragment eines zerbrochenen Icons überlagert, kein Fehler im Text.
Verstreute technische Hinweise (nicht jedes Mal neu zu entdecken)
merge-designs: Ein Vorgang pro Aufruf, immer.resize-design(die alte Methode mit Canva-Vorlage) ist limitiert/Trial – nicht mehr nützlich mit diesem Workflow,create-designgeneriert bereits im richtigen Format.- Wenn eine Version erhalten werden muss, bevor etwas Gefährliches getan wird:
copy-designund dann auf der Kopie arbeiten – das Original bleibt unberührt. Erstelle den Link des klonierten Designs für Davide, damit er mit einer Vorschau von dort aus korrigieren kann, ohne die API-Kopie ständig neu exportieren zu müssen. - Der API-Poll hat kein Timeout von sich aus: Bei
get-create-design-async-jobhängtpolling_policyvom spezifischen Tool ab, aber wenn dascompletion_webhooknicht registriert ist, kann der Poll ewig hängen bleiben. Nach 5 Minuten ohne Abschluss ist es wahrscheinlicher, dass der Job auf Canva-Seite fehlgeschlagen ist („Ungültige Anfrage“/Overload) – brich ab und starte neu, wiederhole nicht blind die gleichecreate-design-Anfrage. - Lange
sleepinBashmit&/waitstattasyncin der Tool-Kette zu implementieren, erzeugt keine Race Conditions (jeder Aufruf voncreate-designerzeugt ein neues Design, unabhängig vom vorherigen). delete_elementauf dem Locator eines Teils, der nicht im Render, aber in der Baumstruktur des Designs vorhanden ist, wirft keinen Fehler – tut einfach nichts. Kein Grund zur Sorge.- Die CTA-Formel (Icon + zwei Zeilen) steht am Ende des Briefes; die Anzahl der darauffolgenden Seiten (nur die CTA, die als einzige der 8 Seiten kein "N/8" hat (die letzte), erzeugt manchmal Verwirrung beim Generator, der 8 Seiten braucht. Füge vor dem Abschluss einen Platzhalter ein (z. B. einen zweiten Punkt der Liste, der nach dem Ersetzen gelöscht wird) – normalerweise erzeugt der Generator bereits 8 Seiten, wenn man 8 Punkte angibt.
- In der Testphase (vor dem 2. Okt. 2026) verwendeten wir
copy-designausgehend von einem vorherigen Design; dieser Workflow wird jetzt nicht mehr verwendet, außer Davide fordert ausdrücklich "mach es wie #8". Von diesem Klon aus der Generator eine positive Sache tut: Er kopiertinput_textdes Originals, das der Generator als Hinweis interpretiert – im Ergebnis ähnelt die Schriftartenverteilung der von #8, was eine erste visuelle Konsistenz ergibt. Wenn ducopy-designverwendest, aktualisiere den Brief mitreplace_input_textauf dem Klon.
Workflow-Optimierung für wiederverwendbare Karussells (ab 2. Okt. 2026)
Nach #12 (Klon-von-#8) hat Davide die Layout-Fehler, die die API nicht reparieren kann, von Hand korrigiert. Wenn ein neues Karussell derselben Kategorie (z. B. Technik, Vorteile) ähnlich ist, ist der schnellste Weg:
copy-designvon #12 → neues Design (#12 hat bereits die richtigen Abstände und Layout-Korrekturen).replace_input_textmit aktualisiertem Brief.- Generiere neu mit
create-designausgehend von diesem neuen Design (behält die Vorlage der korrigierten Layouts). - Der Generator respektiert nie perfekt die Abstände – die Unterschiede zwischen #12 und dem neuen Karussell werden minimal, aber vorhanden sein. Wende die Layout-Korrekturen (siehe oben) per API an, wo möglich, sonst melde an Davide, dass die üblichen manuellen Korrekturen nötig sind.
Diese Methode garantiert, dass das neue Karussell von Anfang an das richtige #12-Layout hat, ohne jedes Mal von einem rohen, unberührten create-design auszugehen.