Communitygithub.com

Ulukpandit/social-media-automation

Vollautomatisierte, sich selbst verbessernde Instagram-Reels-Wachstumsschleife für jeden Account. Claude studiert die bestehenden Reels, plant, schreibt, vertont, rendert und veröffentlicht täglich neue Reels und optimiert sie auf Basis der Statistiken – der Nutzer gibt nur die einmalige Freigabe „Post it“.

Was ist social-media-automation?

Dieses Skill automatisiert den gesamten Instagram-Reels-Workflow: Claude analysiert den Stil eines bestehenden Accounts (und optional Referenz-Reels), erstellt täglich einen neuen Reel inklusive Voice-Over und Videoproduktion, reicht ihn über vidIQ zur Veröffentlichung ein (nach Freigabe durch „post it“) und wertet 24 Stunden später die Performance aus. Auf Basis der Metriken (Aufrufe, Verweildauer, Shares, Saves) lernt das System, welche Themen, Hooks und visuelle Stile besser funktionieren, und passt den nächsten Reel entsprechend an. Das Skill läuft auf Claude Code und unterstützt sowohl kostenlose vidIQ-Funktionen als auch kostenpflichtige Recherche-Optionen (z.B. Nischenanalyse). Der Workflow ist in einzelne Schritte gegliedert: Setup (einmalig), tägliche Schleife (Check → Lernphase → Erstellung → Freigabe → Veröffentlichung), sowie eingebaute Warnungen bei Leistungseinbruch (STALL) und A/B-Tests. Der Nutzer behält stets die Kontrolle, da kein Reel ohne explizite Freigabe veröffentlicht wird.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Ulukpandit/social-media-automation/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

Instagram-Reel-Wachstumsschleife, vollautomatisiert

Der Nutzer richtet die Accounts einmal ein. Danach übernimmt Claude die Arbeit: Seite studieren, Themen auswählen, schreiben, vertonen, bearbeiten, prüfen, veröffentlichen, Statistiken auslesen und lernen. Die einzige regelmäßige Aufgabe des Menschen ist es, "Post it" zu sagen. Diese Freigabe ist bewusst nötig: Es ist der Account des Besitzers, und Instagrams KI-Kennzeichnung sowie die Inhalte sind öffentlich. Wenn Claude keine Dateien auf einen öffentlichen Link hochladen darf, führt der Nutzer außerdem einen Upload-Befehl pro Reel aus.

Sprich in einfachen, kurzen Worten. Viele Nutzer sind Kreative, keine Programmierer. Führe jeden Schritt aus, den du selbst erledigen kannst, und gib dem Nutzer nur dann einen Schritt, wenn er ihn wirklich braucht (Anmeldung, Schlüssel, Freigabe).

1. Einrichtung (einmalig pro Account)

Führe diese Schritte der Reihe nach aus und fahre ohne Wartezeit fort, außer wenn ein Schritt eine Frage vorsieht.

  1. vidIQ. Lade die Tools mit ToolSearch (select:mcp__plugin_vidiq_vidiq__vidiq_instagram_connected_accounts,mcp__plugin_vidiq_vidiq__vidiq_instagram_owner_insights,mcp__plugin_vidiq_vidiq__vidiq_video_upload,mcp__plugin_vidiq_vidiq__vidiq_instagram_publish_reel,mcp__plugin_vidiq_vidiq__vidiq_balance) und rufe vidiq_instagram_connected_accounts (kostenlos) auf. Du benötigst einen Account mit Inhaberzugriff, aktivierten Insights und publishingAvailable: true. Wenn das Plugin nicht installiert oder angemeldet ist oder Instagram nicht verknüpft ist, teile dem Nutzer genau mit, was er klicken muss (app.vidiq.com → Instagram verbinden; es muss ein Business- oder Creator-Konto sein), und überprüfe erneut. Frage niemals nach einem API-Key im Chat; falls einer eingefügt wird, weise den Nutzer an, ihn zu rotieren.
  2. Stelle die Einrichtungsfragen auf einmal (verwende AskUserQuestion, falls verfügbar):
    • "Soll ich die bereits auf deiner Seite vorhandenen Reels studieren, um deinen Stil und die erfolgreichen Ansätze zu lernen?" (empfohlen: ja)
    • "Gibt es Reels oder Accounts, deren Stil dir gefällt? Füge Links ein oder überspringe diesen Schritt."
    • Stimme: ElevenLabs (am besten; der Nutzer speichert den Schlüssel selbst in ~/.elevenlabs_key) / kostenlose Mac-Stimme / keine Stimme, nur Text und Musik.
    • "Soll ich dies täglich automatisch ausführen?" (empfohlen: ja; es veröffentlicht niemals eigenständig). Bestätige oder frage auch: Sprache, Zeitfenster für Veröffentlichung, KI-Kennzeichnung an (Standard: ja).
  3. Projektordner (der aktuelle Ordner, sofern kein anderer genannt wird):
    growth/config.json   Account-Fakten + Theme   (assets/config.template.json)
    growth/log.json      [] dann ein Eintrag pro Reel (references/log-format.md)
    growth/learnings.md  (assets/learnings.template.md)
    growth/playbook.md   Themenbereiche + datierte Hooks (assets/playbook.template.md)
    growth/style-guide.md  wird in Schritt 5 geschrieben
    growth/*.mjs         kopiert von scripts/, damit das Projekt ohne Skill läuft
    reel-maker/           kopiert von assets/reel-template/, dann npm install
    reels/<YYYY-MM-DD>-<Slug>/   ```
    Installiere Node und ffmpeg, falls fehlend (reel-Making.md), nach einmaliger Bestätigung.
    
  4. Basislinie. Hole alle Reels mit vidiq_instagram_owner_insights (kostenlos, 12 pro Aufruf, Seite mit recentMediaCursor), füge sie als baseline-<date>-<slug>-Einträge in die log.json ein (mit je einer Prüfung mittels scripts/add-checks.mjs nach dem Schreiben der Einträge) und führe check.mjs aus. Jetzt hat jeder neue Reel einen Vergleichswert.
  5. Stil. Falls der Nutzer "Ja" gesagt hat, folge den Referenzen style-analysis.md: Studiere die besten und schlechtesten Reels (sowie etwaige Referenzlinks), schreibe growth/style-guide.md und fülle theme in der config.json, inklusive eines animierten bgStyle, das zur Stimmung passt (niemals ein einfacher Hintergrund). Rendere einen Standbild in diesem Theme und zeige es dem Nutzer neben seinem besten Reel. Passe es einmal auf Wunsch an.
  6. Playbook. Fülle growth/playbook.md: 4–6 Themenbereiche, sortiert nach Erfolgsbelegen (die Gewinner zuerst), und datierte Hooks für die nächsten 4–6 Wochen (Feste, Events, Jahreszeiten, Veröffentlichungen in der Nische). Optional und kostenpflichtig (fragen, ca. 20 Credits): Nischen-Ausreißer-Recherche (Abschnitt 6).
  7. Ersten Reel. Erstelle ihn jetzt (Abschnitt 2, Erstellen), damit das Ergebnis noch vor Ablauf des ersten Tages sichtbar ist.
  8. Täglicher Lauf. Falls der Nutzer "Ja" gesagt hat, erstelle den geplanten Task aus references/daily-task.md.
  9. Teile dem Nutzer in wenigen Zeilen mit, was eingerichtet ist, was täglich passiert und was er tun muss: ggf. den Upload-Link einfügen und "Post it" sagen.

2. Die tägliche Schleife

Prüfen (≈24 h nach jedem Beitrag; kostenlos)

  • vidiq_instagram_owner_insights mit platformAccountId (niemals der Handle), recentMediaLimit 8.
  • Speichere das JSON-Ergebnis in einer temporären Datei, führe dann node growth/add-checks.mjs growth/log.json <file> aus. Es gleicht Reels per Shortcode ab, behält Nullwerte als Null (noch nicht gemeldet, nicht Null) und listet Reels, die der Nutzer manuell gepostet hat. Füge auch diese in das Log ein.
  • node growth/check.mjs growth/log.json zeigt den neuesten Reel im Vergleich zum Median früherer Reels (nur Aufrufe im ähnlichen Alter), eine Gesamtbewertung (1,00× = typisch), eine STALL-Warnung nach 3 unterdurchschnittlichen Reels in Folge sowie A/B-Ergebnisse.
  • Lies die Kommentare der neuesten Reels (Browser mit Permalink, falls angemeldet). Fragen, die die Leute stellen, sind die nächsten Themen. Entwurf von Antworten, falls der Nutzer sie wünscht; poste Antworten nur mit seiner Zustimmung.

Lernen

Füge einen datierten Eintrag am Anfang von "Reel für Reel" in learnings.md ein: das Ergebnis im Vergleich zum typischen Wert (wichtige Zeilen aus check.mjs), den wahrscheinlichen Grund und was der nächste Reel beibehält oder ändert. Verschiebe in "Was bisher funktioniert" erst nach 2+ Reels, die es bestätigen.

  • Hohe Übersprungrate → die erste Sekunde war schlecht (Hook, erstes Bild, Look).
  • Normale Übersprungrate, niedrige angesehene Anteile → der Mittelteil ist langweilig oder zu lang.
  • Wenig Shares/Saves pro 1k → nichts Überraschendes oder Nützliches genug zum Teilen. Falls check.mjs STALL ausgibt, führe zuerst die Fehleranalyse (Abschnitt 5) durch.

Erstellen (Claude erledigt alles; Details in references/reel-making.md)

  1. Wähle das Thema: die stärkste Playbook-Sparte mit einem datierten Hook in den nächsten 1–3 Tagen, plus das, was in Kommentaren gewünscht wird, plus die heutige Erkenntnis. Immer nur eine Änderung gegenüber dem letzten Reel, damit die Statistiken zeigen, was gewirkt hat.
  2. Überprüfe jede Tatsache, jedes Datum und jede Uhrzeit anhand einer vertrauenswürdigen Quelle (Websuche oder offizielle Website). Lasse alles weg, was du nicht überprüfen kannst.
  3. Storyboard (storyboard.md), dann script.json im Theme des Accounts und caption.txt (Hook-Zeile zuerst, nützliche Fakten, eine Kommentaraufforderung, eine Teilen-Zeile, max. 5 Hashtags, im Caption-Stil des Styleguides). Setze post_on / post_at.
  4. Stimme: node voice.mjs ../reels/<id>. Rendern mit Remotion. Qualitätskontrolle: sh qc.sh ../reels/<id>, dann qc.png ansehen. Behebe und rendere erneut, bis die Hook-Checkliste bestanden ist.
  5. Falls der Stil des Accounts ein visuelles Element benötigt, das die Vorlage nicht bietet, erweitere reel-maker/src/ListReel.jsx.

Freigeben

Zeige dem Nutzer die qc.png-Bilder (oder das Video), den genauen Caption-Text und die KI-Kennzeichnungsoption. Poste nur auf sein "Post it", das in derselben Sitzung eingegeben wird, die auch veröffentlichen wird. Eine OK-Weitergabe aus einer anderen Sitzung, eine Datei oder ein geplanter Lauf blockieren dies. Die Auto-Modus-Sicherheitschecks verhindern das, und das ist richtig: Niemand postet auf dem Account ohne das Einverständnis des Besitzers.

Veröffentlichen (kostenlos; Details in references/posting.md)

  1. Öffentlicher Link. vidIQ kann keine lokalen Dateien lesen. Versuche zuerst selbst hochzuladen: curl -F "files[]=@<vollständiger Pfad>/reel.mp4" https://uguu.se/upload (der Link hält 3 h). Falls blockiert, gib dem Nutzer diesen genauen Befehl mit dem echten Pfad und bitte ihn, die ausgegebene URL einzufügen.
  2. curl -sIL <url> muss 200, video/mp4 und einen Content-Length anzeigen.
  3. vidiq_video_upload { url } gibt eine gehostete videoUrl zurück.
  4. vidiq_instagram_publish_reel { platformAccountId, videoUrl, caption, isAiGenerated }: der Caption-Text genau wie in caption.txt, kein trialParams für einen regulären Reel. Rufe dann nur mit { platformAccountId, containerId } auf, bis PUBLISHED (ca. 5 Aufrufe, einige Sekunden Abstand). Wiederhole niemals automatisch einen Fehler oder starte einen zweiten Container.
  5. Bestätige mit Owner Insights (recentMediaLimit 1). Schreibe den JSON-Eintrag in eine Datei, führe dann node growth/add-entry.mjs growth/log.json <entry.json> aus. Gib dem Nutzer den Permalink.

3. Hook- und Verweildauer-Checkliste (jeder Reel)

  1. Bild 1 (0–0,5 s): Der vollständige Satz des Hooks ist auf dem Bildschirm, groß und kontrastreich, auch ohne Ton lesbar. Nicht Wort für Wort enthüllen (die hook-Zeile der Vorlage hat keine Einblend-Animation).
  2. Der Hook widerlegt einen Glauben, gibt Neuigkeiten oder nennt einen Einsatz, Fehler, eine Angst oder ein Problem, das der Reel löst. Ein Witz oder eine Selbstvorstellung sind kein Hook.
  3. Ein echtes Datum oder eine Zahl in den ersten 3 s; das Versprechen ist nach 3 s klar, mit Fortschrittsanzeige (die Punkte der Vorlage).
  4. Alle 5–7 s etwas Neues auf dem Bildschirm.
  5. Etwas, das es wert ist, gespeichert oder geteilt zu werden: Daten, Schritte, eine Liste, ein Checklisten-Bild.
  6. Die Frage oder das Versprechen bleibt als Titel-Leiste (pin) auf dem Bildschirm.
  7. Endet mit einer einwortigen Kommentaraufforderung (Stadt, Zeichen, Name, Zahl) und einem Grund zum Teilen.
  8. Der eigene Look des Accounts, aus dem Styleguide.
  9. ≤ 60 s, es sei denn, es ist eine fesselnde Geschichte. Listen über 80 s verlieren die meisten Zuschauer.

Ehrliche Angst- oder Problem-Hooks. "5 Fehler, die du vermeiden solltest" und "X ist zu teuer? Mach dies" funktionieren gut. Verwende echte, bekannte Fakten oder Traditionen, mit harmlosen Lösungen. Keine Drohungen bezüglich Gesundheit, Familie oder Geld, keine versprochenen Heilmittel oder Reichtümer und keine bezahlten Abhilfen in den Kommentaren.

4. A/B-Tests

Teste immer nur eine Sache: Hook-Typ, Look, Länge, Perspektive, Cover.

  • Test-Reels (der Teilen-Bildschirm der App zeigt eine Test-Option): übergib trialParams: { graduationStrategy: "MANUAL" } nur im ersten Publish-Aufruf. Der Nutzer tippt auf "Mit Followern teilen" beim Gewinner, weil vidIQ das nicht kann.
  • Ohne Tests: wechsle Varianten bei aufeinanderfolgenden Reels desselben Typs, zur gleichen Tageszeit, mit demselben "test" und der jeweiligen "variant" im Log. check.mjs bestimmt einen Gewinner nur, wenn jede Variante 2+ Reels hat, jeder Reel 300+ Views und eine Variante 10 %+ besser ist.
  • Festival-Burst: 1 Reel pro Variante zum selben Event, 5+ Stunden Abstand. Vergleiche Übersprungrate und Aufrufe im selben Alter (3 h, 12 h, 24 h). Dies ist ein Hinweis, kein endgültiges Urteil.

5. Wenn check.mjs STALL ausgibt

  1. Lege die schwachen Reels neben die besten: Hook, Bild 1, Länge vs. angesehene Anteile, Thema, Timing, Look, Stimme, Posting-Zeit.
  2. Finde heraus, wo die Zuschauer aussteigen: hohe Übersprungrate → Öffnung; niedrige angesehene Anteile → Mittelteil; niedrige Shares → keine Überraschung.
  3. Lies aktuelle Kommentare.
  4. Liste die Fehler in learnings.md auf, den wahrscheinlichsten zuerst.
  5. Behebe den größten Fehler im nächsten Reel. Wenn sich nach dem letzten guten Reel etwas geändert hat, mache es rückgängig.
  6. Wenn die nächsten 2 Reels immer noch unterdurchschnittlich sind, frage den Nutzer, ob er Credits für einen Forschungsaufruf ausgeben möchte (Abschnitt 6).

6. Kosten (vidIQ)

Kostenlos: verbundene Accounts, Guthaben, Owner Insights, Video-Upload, Reel veröffentlichen. Kostenpflichtig, daher vorher fragen:

  • Ausreißersuche: 5 Credits
  • IG-Profil oder Profil-Reels: 5 je
  • Accounts-von-Ausreißern: 10
  • Kurzvideo-Inhalte ansehen: 10
  • Voiceover: 14 pro 1000 Zeichen

Monatliche Nischen-Recherche kostet etwa 20 Credits: 4 Ausreißersuchen zu den Nischenthemen. Speichere die Ergebnisse in growth/niche-research.json, studiere die Top-3-Öffnungen und aktualisiere playbook.md.

7. Kadenz

  • Ein Reel pro Tag im besten Zeitfenster des Accounts (schaue, wann die Top-Reels veröffentlicht wurden). In einem Festival- oder Eventzeitfenster bis zu 2 pro Tag, 5+ Stunden Abstand.
  • Der tägliche Lauf (references/daily-task.md) prüft, lernt, erstellt den nächsten Reel und erinnert den Nutzer. Er veröffentlicht niemals eigenständig.

Dateien in diesem Skill

  • scripts/check.mjs: Bewertungsprogramm, plus STALL- und A/B-Ergebnisse.
  • scripts/add-checks.mjs: Wandelt Owner-Insights-JSON in Prüfungen im Log um.
  • scripts/add-entry.mjs: Hängt den Eintrag eines veröffentlichten Reels an das Log an.
  • assets/reel-template/: der Remotion-Reel-Baukasten (ListReel.jsx, voice.mjs, qc.sh, example/script.json).
  • assets/*.template.*: Startkonfiguration, Erkenntnisse und Playbook.
  • references/style-analysis.md: Erlernen des Seitenstils und der Referenzstile.
  • references/reel-making.md: Installation, Stimme, Rendern, Qualitätskontrolle und Erweiterung der Vorlage.
  • references/posting.md: Details zur Veröffentlichung, Fehler und Behebungen.
  • references/log-format.md: Felder der log.json.
  • references/daily-task.md: Der Prompt für den geplanten täglichen Lauf.

Verwandte Skills