Communitygithub.com

alecs5am/ralphy

Erstellt ein markantes, charaktergetriebenes Markenposter als einzelnes Standbild – eine generalisierte Layout-Vorlage für jedes Brand und jede Ästhetik.

Was ist ralphy?

Diese Skill-Funktion „alecs5am/ralphy“ ist eine generalisierte Layout-Overlay für die Erstellung von Markenpostern als Standbilder – etwa für Drop-Poster, Flyer, Key-Art oder Hype-Grafiken. Sie arbeitet komplett unabhängig von Marke, Stil oder Ästhetik und liefert eine feste Architektur (Top-Banner → massives, abgeschrägtes Wortzeichen → Brust-hoch-Heldenfoto → Stickercollage → Textblock → dünne Fußzeile) mit parametrisierten Slots (Marke, Ausrufewort, Held, Produkt, Palette, Original-Blob-Glyphe, ästhetisches Register). Der empfohlene Modell-Stack setzt auf `openai/gpt-5.4-image-2` für gestochen scharfe Typografie, mit `google/gemini-3-pro-image-preview` als Fallback für schnelle Kompositionsexperimente. Die Skill stellt sicher, dass alle Generierungen über `ralphy generate image` laufen, und erzwingt eine Qualitätskontrolle (zwei Fehlschläge von `scoreImage` → Abbruch). Für reale Marken wird vor dem Prompt ein Playwright-Sub-Agent zur Website-Recherche gestartet, um Marken-DNA und Farbschemata korrekt abzubilden. Typische Fehlerquellen werden adressiert: Parallel-Generierungen auf gpt-image sind aufgrund des Key-Limits nicht möglich, Gemini verschmiert kleine Typografie, und das Glyphen-Design muss explizit als „original, keine existierende Marke“ gekennzeichnet werden. Das Seitenverhältnis wird über `--size` gesteuert (z. B. `1080x1920` für 9:16-Hochformat). Ein validiertes Beispielprojekt (`loud-kids-poster-001`) zeigt drei Varianten mit verschiedenen Paletten und Helden.

Funktioniert mit~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/alecs5am/ralphy/tree/HEAD/.agents/skills/poster

In Ihrer bevorzugten KI fragen

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

Dokumentation

Auslöser

FEUERT bei einer allgemeinen Standbild-Poster-Anfrage: „Erstelle ein Poster für “, „Drop-Poster“, „Poster-as-Landing-Page“, „Flyer“, „Key Art“, „Hype-Grafik“, „Albumcover-ähnliches Standbild“, „Merch-Drop-Ankündigungsbild“. Jedes Motiv, jede Ästhetik – die Skill ist motiv- und stilunabhängig.

FEUERT NICHT bei:

  • Der Benutzer zeigt auf ein bestimmtes Poster, das reproduziert werden soll (@template:<slug>, „Remixe dieses hier“, nennt einen Slug) → das ist der Remix-Pfad. Siehe docs/skills-vs-templates.md.
  • Der Benutzer möchte ein bewegtes Video (das Wortzeichen animiert, der Held spricht) → das Videoformat / die Vorlage zuordnen, die passende Video-Craft-Overlay-Skill laden (ugc-*) und das Editor-Playbook verwenden, nicht diese Skill.
  • Der Benutzer hat @guideline:<slug> für ein Register eingefügt, in dem dieses Poster steht (fotorealistische Menschen, Anti-AI-Slop) → ralphy guideline show <slug> ausführen und dessen Regeln in den Heldenfoto-Slot einarbeiten.

Was diese Skill ist

Eine generalisierte Layout-Overlay, kein fertiges Poster. Sie nennt keine Marke, keinen Helden und keine Palette – sie sagt dem Art Director, WIE diese Posterklasse aufgebaut wird, damit ein starkes Poster für das entsteht, was der Benutzer bewirbt. Sie läuft über ralphy generate image; sie umgeht nicht das Referenz-Pflicht-Gate oder das Qualitäts-Gate.

Harte Invarianten

  • Alle Generierungen laufen über ralphy generate image (keine rohe API). Lies MODELS.md, bevor du eine Modell-ID nennst – der unten stehende Stack ist ein Standardwert, keine feste Kodierung.
  • Das Referenz-Pflicht-Gate feuert weiterhin für eine benannte reale Entität im Helden- oder Produkt-Slot (eine reale Person, ein erkennbares Markenprodukt, ein IP). Eine fiktive Marke + ein originales Glyphen + ein generisches Produkt läuft ohne Referenz durch. Mache das Marken-Glyphen im Prompt explizit ORIGINAL („KEINE existierende Marke“), damit das Modell nicht zu einer markenrechtlich geschützten Marke abdriftet.
  • Das Qualitäts-Gate lehnt ab, nicht nur warnend – zwei fehlgeschlagene scoreImage hintereinander → Stoppen und Optionen melden.
  • Echtmarken-Vorabprüfung: Website-Recherche vor jedem Prompt. Wenn das Poster auf eine echte Marke abzielt (eigenes Startup des Benutzers, die Website eines Kunden, eine beliebige angegebene URL), starte einen Playwright-Sub-Agenten, um Home + /docs + /pricing + /features + /examples zu durchsuchen, BEVOR die Marken-DNA oder der Prompt entworfen wird. Lies artifacts/refs/research.md (die Zusammenfassung des Sub-Agenten), nicht nur einen WebFetch der Startseite. Jeder {{palette}}-Hex-Wert muss auf artifacts/refs/tokens.json zurückgehen; jedes benannte API-Symbol in Textkörper- oder Code-Kreativ-Slots muss auf „Dokumentierte API-Oberflächen“ in research.md verweisen. Volle Disziplin + Sub-Agent-Prompt-Vorlage: .agents/skills/researcher/references/site-grounding.md. Das Überspringen kostete sotaocr-fb-001 $1,20 + 5/32 halluzinierte SDK-Kreativprojekte.

Die Nische, in einem Absatz

Ein Poster-as-Landing steht oder fällt mit einem massiven lesbaren Wortzeichen plus einer einzelnen Figur, die Blickkontakt (oder fast Blickkontakt) herstellt, zusammengehalten durch DIY-Sticker-Collage-Energie. Das Auge sollte zuerst auf das Wort fallen, dann auf das Gesicht, dann zwischen 2-3 Sticker-Akzenten umherwandern und dann den Text lesen. Gestochen scharfe Typografie ist das A und O – ein verschmiertes Wortzeichen tötet es sofort, weshalb die Modellauswahl typografisch und nicht konsistenzorientiert ist.

Die feste Architektur (nicht umstrukturieren – nur die Slots füllen)

Von oben nach unten behält jedes Poster in dieser Nische diesen Stapel:

BandFeste RolleZu füllende Slots
1. Obere Leistekleine versal gesetzte Einleitungszeile{{tagline}}, Akzentfarbe
2. WortzeichenMASSIVES, klobiges, serifenbetontes, 3D-abgeschrägtes Schatten, Chrom-Highlight pro Buchstabe, leichter spielerischer Neigungswinkel + unvollkommene Enden{{exclamation}} (kurzes, kraftvolles Wort: BOOM / DANG / YIKES / WOW / OOPS)
3. Heldenfoto (~60% Höhe)filmisches Brustporträt, Blick nach oben, leger-cool, originales Blob-Glyphen auf der Brust, ein Produkt auf Mundhöhe gehalten, weiches Randlicht, Filmkorn{{hero}}, {{product}}, {{blob_glyph}}
4. Sticker-Collage3 Vinyl-Sticker (dünner weißer Rand + weicher Schlagschatten + Klebeband-Ecke), in spielerischen Winkeln verstreutStern mit Produkt-Makro · Stern mit Blob-Gesicht · kleiner Stern mit pixeligem „NEUER DROP“-Label
5. Textblockkondensierte versale Überschrift + 4 Zeilen kursiver Serifen-Fließtext + gefüllte CTA-Pille{{headline}}, {{body_copy}}, {{cta}}
6. Fußzeilesehr dünne, vollbreite versale Zeile{{brand}} · EST. JJJJ · <Prozess-Tagline> · WWW.<domain>

Abschluss-Schicht (immer aktiv): subtiles Filmkorn + leichte Vignette + schwache CRT-Wärme + Vintage-Siebdruck-Gefühl.

Slots (die einzigen Dinge, die sich zwischen Postern ändern)

  • {{brand}} + {{tagline}} + {{domain}} – das fiktive (oder benutzereigene) Label.
  • {{exclamation}} – das Wortzeichen-Wort. Ein kurzer, ausrufbarer Token.
  • {{hero}} – Person + Kleidung + Ausdruck. Alter/Geschlecht/Styling frei variieren.
  • {{product}} – das Requisit, das auf Mundhöhe gehalten wird (Lutscher, Eis am Stiel, Getränkedose, Mikrofon, …). Halte es generisch/unmarkiert, es sei denn, der Benutzer besitzt die Marke.
  • {{palette}} – vollflächiger Hintergrundverlauf (2 Hex) + Akzentfarbe (Wortzeichen/Überschrift) + Abschattungsfarbe + cremige Körperfarbe + Strich-Holzkohle + Produktfarbe. Immer explizite Hex-Werte angeben.
  • {{blob_glyph}} – ein ORIGINALES, handgekritzeltes, freundliches Wesen (Smiley-Blob, Zyklopenwolke, schiefer Stern). Darin in Kleinbuchstaben das Markenwort geschrieben. Angeben: „KEINE existierende Marke.“
  • {{aesthetic}} – das Register (Y2K-Skate-Surf-Streetwear ist der validierte Standard; Vaporwave, Grunge-Zine, Clean-DTC, Arcade-90s funktionieren alle auf demselben Gerüst).

Modell-Stack (bei jedem Durchlauf gegen MODELS.md prüfen)

  • Standard – openai/gpt-5.4-image-2. Premium-Typografie / Label-Genauigkeit: Das abgeschrägte Wortzeichen, die dünne Fußzeile und die 4 Zeilen Fließtext sind alle gestochen scharf lesbar. Das ist der ganze Grund, warum es den konsistenzorientierten Standard für Poster schlägt. Maximal 1 gleichzeitig – Serien-Batches (--concurrency 1), niemals parallele Poster-Generierungen mit diesem Modell ausführen.
  • Fallback – google/gemini-3-pro-image-preview. ~½ der Latenz und günstiger, toleriert ≥4 gleichzeitige, aber verschmiert kleine eingebettete Typografie (Flipper-Postmortem; bei loud-kids-poster-001 erneut bestätigt – der 4-zeilige Fließtext wurde weich). Nur für schnelle Farb-/Kompositionserkundung verwenden, dann die ausgewählte Variante auf gpt-image finalisieren.

Seitenverhältnis – gelöst, --size verwenden

gpt-5.4-image-2 gab historisch unabhängig von --size 1024² zurück. Seit der loud-kids-poster-001-Sitzung leitet ralphy generate image image_config.aspect_ratio (abgeleitet von --size) an OpenRouter weiter, und gpt-image beachtet es: --size 1080x1920 → ein echtes 9:16-Porträt (720×1280 nativer Bucket). Übergib --size 1080x1920 für ein vertikales Landing-Poster, --size 1080x1080 für einen quadratischen Social-Media-Beitrag. Die Ausgabe landet im nächstgelegenen nativen Bucket des Modells, nicht pixelgenau – nachträglich polstern/skalieren, falls ein exakter Rahmen benötigt wird.

Fehlermodi

  • Parallele gpt-image-Generierungen → 403 \"Key limit exceeded\". Serialisieren (die 1-Gleichzeitig-Begrenzung). Jede Generierung dauert zudem ~2,5-4 Min.
  • Gemini verschmiert den Fließtext und die Fußzeile. Kein typografielastiges Poster auf Gemini finalisieren.
  • Glyphe driftet zu einer echten Marke (Smiley-Marken usw.), wenn nicht „original, KEINE existierende Marke“ gesagt wird – diesen Satz immer einfügen.
  • Zu viele Sticker → das Auge hat keinen Ruhepunkt. Auf 3 begrenzen, an den Rändern des Helden halten.
  • Wortzeichen + Überschrift haben dieselbe Farbe wie ein unruhiger Hintergrund → Lesbarkeit stirbt. Der Wortzeichen-Akzent muss stark mit dem Verlauf kontrastieren.

Beispiel (validiert am 27.05.2026)

.ralphy/workspaces/<ws>/projects/loud-kids-poster-001/ enthält drei Paletten-/Helden-/Produktvarianten, die auf diesem exakten Gerüst aufbauen (BOOM/königsblau+Lutscher, DANG/koralle-pflaume+Eis am Stiel, YIKES/limette-wald+Limonade) plus ein 9:16-A/B (gpt-image vs. gemini). Die drei Prompt-Dateien (prompt-v1-boom.txt …) sind die kanonische, ausgefüllte Slot-Referenz – lies eine davon, bevor du einen neuen Poster-Prompt entwirfst.

CLI-Kochbuch

# Standard-Poster, vertikal 9:16, gestochen scharfe Typografie
ralphy generate image --project <id> --slot poster-01 \
  --model openai/gpt-5.4-image-2 --size 1080x1920 --prompt "<ausgefülltes Gerüst>"

# Schnelle Paletten-/Kompositionserkundung (den Gewinner danach auf gpt-image finalisieren)
ralphy generate image --project <id> --slot poster-explore --variants 3 \
  --model google/gemini-3-pro-image-preview --size 1080x1920 --prompt "<...>"

# Quadratischer Social-Media-Ausschnitt desselben Posters
ralphy generate image --project <id> --slot poster-01-sq \
  --model openai/gpt-5.4-image-2 --size 1080x1080 --prompt "<ausgefülltes Gerüst>"

Lange Prompts: Schreibe das ausgefüllte Gerüst in eine .txt-Datei im Projektverzeichnis und übergib --prompt "$(cat datei.txt)" – Apostrophe im Fließtext brechen inline-einfache Anführungszeichen in Shell-Strings.

Individual skills in this repo

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

alecs5am/ralphy

>- Composition and render craft — assembles scenario.json plus asset-manifest.json into a HyperFrames HTML composition and renders the mp4. Owns timing, transitions, captions, audio mix and ducking, the green zone, the render pipeline, and VO sync. Generates no media of its own. USE WHEN the user asks to "compose the video", "render", "preview", "fix the captions", "mix the audio", "tighten the transitions", "final cut", or edits HyperFrames composition code. TRIGGER (EN): "render it", "compose the video", "captions", "audio mix", "transitions", "final cut", "preview the composition".

alecs5am/ralphy

HyperFrames CLI dev loop — `npx hyperframes` for scaffolding (init), validation (lint, inspect), preview, render, and environment troubleshooting (doctor, browser, info, upgrade). Use when running any of these commands or troubleshooting the HyperFrames build/render environment. For asset preprocessing commands (`tts`, `transcribe`, `remove-background`), invoke the `hyperframes-media` skill instead.

alecs5am/ralphy

Asset preprocessing for HyperFrames compositions — text-to-speech narration (Kokoro), audio/video transcription (Whisper), and background removal for transparent overlays (u2net). Use when generating voiceover from text, transcribing speech for captions, removing the background from a video or image to use as a transparent overlay, choosing a TTS voice or whisper model, or chaining these (TTS → transcribe → captions). Each command downloads its own model on first run.

alecs5am/ralphy

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, and registry discovery.

alecs5am/ralphy

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Use when asked to build any HTML-based video content, add captions or subtitles synced to audio, generate text-to-speech narration, create audio-reactive animation (beat sync, glow, pulse driven by music), add animated text highlighting (marker sweeps, hand-drawn circles, burst lines, scribble, sketchout), or add transitions between scenes (crossfades, wipes, reveals, shader transitions). Covers composition authoring, timing, media, and the full video production workflow. For dev-loop CLI commands (init, lint, inspect, preview, render) see the hyperframes-cli skill; for asset preprocessing commands (tts, transcribe, remove-background) see the hyperframes-media skill.

alecs5am/ralphy

>- Compatibility shim for the legacy `/ralphy-remotion` skill name. Use when a saved Claude Code command, old project note, or user request still mentions Ralphy Remotion; redirect the task to HyperFrames and the current Ralphy render playbooks instead of authoring new Remotion code.

alecs5am/ralphy

>- Compatibility shim for the legacy `/remotion-to-hyperframes` skill name. Use when an old project, note, or user request asks to migrate Ralphy Remotion work; translate the intent into the current HyperFrames composition model and follow the editor and HyperFrames playbooks.

alecs5am/ralphy

The full extract → classify → blueprint → de-dup → publish pipeline for a finished `.ralphy/workspaces/<ws>/projects/<id>/`. Reads its `units/*/unit.json` (#069) as the Unit source of truth, then factors the project into ALL FIVE entities — Unit + the four typed blocks Template (structure), Style (look), Recipe (effect/treatment), Asset (reusable media). Applies the recipe-vs-tag split (#082/#083): a candidate is a Recipe only if it carries an extractable artifact (ffmpeg filtergraph / HyperFram

alecs5am/ralphy

>- How to make a realistic AI UGC ad for a product — generalized niche know-how that looks real and doesn't feel AI. A domain overlay on the standard pipeline: supplies the shooting-script shape (timestamp | VO | shot | mannerism), the creator-persona build, the problem-mirror hook, the trust-through-mannerisms rule, and the 9:16 ~15s UGC format defaults. Works for ANY product the user names — their skincare line, a no-name app, a gadget. The skill supplies the know-how; the user supplies the product. USE WHEN the user asks for a UGC ad / creator-style product ad / "make an ad that looks like a real person reviewing my product" / testimonial-style or problem-solution short for TikTok / Reels / Shorts, with no specific existing video to reproduce. This is a niche SKILL (generalized), not a remix TEMPLATE. For "remix this exact ad but swap the product/person", use the remix path (docs/skills-vs-templates.md). For swapping the creator in an existing clip, see /ugc-model-swap.

alecs5am/ralphy

When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (paid-ads, social-content, email-sequence, etc.).

alecs5am/ralphy

Full end-to-end workflow for generating a realistic AI UGC ad for a product. 15-second format. Looks real. Doesn't feel AI.

Verwandte Skills