kilaslab/kilas-content

Plane und erstelle Social-Media-Content für jede Marke – von der monatlichen Content-Strategie mit Säulen, Serien und Kalender bis hin zu recherchierten Beiträgen mit starkem Hook, Instagram-Karussells und Einzelposts (in Figma oder als HTML-zu-PNG gerendert), Reels/TikTok-Drehbüchern, X-Posts und Threads, LinkedIn-Beiträgen und Langform-Artikeln.

Was ist kilas-content?

Diese Fähigkeit (Skill) für KI-Agenten (wie Claude Code, Cursor, Codex) ermöglicht die vollständige Content-Erstellung für Social Media von der Planung bis zur Veröffentlichung. Sie unterstützt sämtliche Formate: Instagram-Karussells und Einzelposts (gerendert in Figma oder aus HTML), Reels-/TikTok-Skripte, X-Posts und Threads, LinkedIn-Beiträge und -Dokumente, Threads und Langform-Artikel, die alle Formate speisen. Jede Marke wird in einem Brand Pack (Stimme, Säulen, Serien, Design-Tokens) definiert. Beim ersten Einsatz in einem Projekt führt der Skill automatisch den Setup-Content-Skill aus (Marke, Assets, Renderer). Der Arbeitsablauf ist streng strukturiert: Nach der Überprüfung des Setups und der Auswahl des Modus (Planen, Erstellen, Umbauen, Überprüfen) folgt eine detaillierte Schritt-für-Schritt-Anleitung – von der Recherche über das Schreiben (mit Regeln für Hooks, Headlines und Metaphern) bis zum Bau der Frames und der Erstellung eines Veröffentlichungsblatts. Der Skill legt großen Wert auf Qualitätssicherung durch Checks wie `lint_copy.py` für Copy, `check_plan.py` für Pläne und `layoutCheck()` für Designs.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor✓Antigravity✓Gemini CLI
npx skills add https://github.com/kilaslab/kilas-content/tree/main/skills/kilas-content

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Inhalt: planen und erstellen

Plane den Content einer Marke und produziere ihn durchgängig: eine recherchierte Geschichte, einen Hook, der Aufmerksamkeit verdient, einen Text ohne KI-Klischees, einen Aufbau im Design der Marke und ein Veröffentlichungsblatt pro Kanal. Alles Markenspezifische lebt in einem Brand Pack; die Methode hier funktioniert für jede Marke. Frames werden in Figma gebaut oder als HTML geschrieben und zu PNG gerendert – je nachdem, was die Marke beim Setup gewählt hat.

Die Wörter entscheiden, ob jemand anhält. Die meiste Arbeit steckt in Recherche und Schreiben, bevor Figma oder eine Kamera zum Einsatz kommen. Lies references/writing-craft.md und die beiden ausgearbeiteten Beispiele, bevor du etwas schreibst: references/examples/linux-7.4-carousel.md (eine Nachrichten-Meldung) und references/examples/ai-cost-js-carousel.md (ein fremdes Experiment). Jedes listet die Entwürfe auf, die verloren haben, und warum; imitiere die Bewegungen, nicht die Sätze.

Starte hier bei jedem Durchlauf

Pfade zu scripts/, references/, templates/ und brands/ befinden sich innerhalb des Skill-Ordners; content/ befindet sich in dem Projekt, in dem du arbeitest. Führe Befehle vom Projekt-Root aus mit dem Pfad des Skills aus, z.B. python3 <skill>/scripts/new_item.py content ... (<skill> ist der Ordner, in dem diese Datei liegt). Skripte, die Pillow verwenden (contact_sheet.py, slides_to_pdf.py, artefact_marks.py, ref_sheets.py), laufen ohne python3 -I.

  1. Setup-Check. Lies content/setup.md im Projekt. Wenn es nicht existiert, ist dies der erste Durchlauf: Führe zuerst den setup-content-Skill aus (wurde mitinstalliert; in diesem Repository unter ../setup-content/SKILL.md; rufe ihn auf oder folge ihm manuell). Er fragt, welche Marke, sammelt die eigenen Assets der Marke von ihrer Website und ihren Profilen mit Genehmigung, wählt den Renderer (Figma oder HTML → PNG) und schreibt das Brand Pack.
  2. Finde das Brand Pack (brands/README.md): content/brand/ im Projekt, sonst brands/<name>/ in diesem Skill. Lies brand.md, design.md und content/brand/assets/README.md, falls vorhanden (die eigenen Fotos und Logos der Marke haben Vorrang vor Stock). Alles, was mit (vorgeschlagen) markiert ist, ist nicht endgültig; frage nach, bevor ein Plan darauf basiert.
  3. Verschaffe dir einen Überblick über die Werkzeuge und nutze jedes, das hilft (references/research-tools.md): Websuche, Seitenabruf, einen echten Browser (ego-browser), MCPs für soziale Medien oder integrierten X-Zugriff, Figma MCP und Bildgenerierung: dein eigenes Bildwerkzeug, falls vorhanden (Grok Bot's Grok Imagine, Codex, ChatGPT, Antigravity), dann python3 <skill>/scripts/gen_image.py detect (agy, OpenAI, Gemini, xAI-Keys). Notiere, was fehlt.
  4. Finde den Arbeitsbereich (templates/workspace.md): content/ mit plan/, items/, reviews/, ideas.md, design-log.md. Erstelle ihn beim ersten Mal.
  5. Wähle den Modus unten.
Der Benutzer möchteModus
einen Plan, einen Kalender, "rencana konten bulan ini"Planen
ein Stück: Karussell, Einzelpost, Thread, Reels-Skript, LinkedIn-Beitrag, ArtikelErstellen
mehrere Stücke aus einer QuelleUmbauen
wissen, was funktioniert hat und was geändert werden sollÜberprüfen
eine neue Marke einrichten, den Renderer wechseln oder Assets aktualisierenSetup (der setup-content-Skill)

Planen

  1. Lies die Eingaben (references/planning.md Abschnitt 1): Brand Pack, letzte Überprüfung, ideas.md, die Momente des Monats (Daten überprüfen), Kapazität, das Ziel des Eigentümers.
  2. Schreibe content/plan/YYYY-MM.md aus templates/plan-month.md: Säulen mit ihren Anteilen, Serien mit ihrem Rhythmus, etwa ein Viertel der Slots reaktiv, jedes starke Stück in 3–5 Formate auf verschiedene Tage aufgeteilt.
  3. python3 <skill>/scripts/check_plan.py content/plan/YYYY-MM.md --brand <pack>/brand.md bis kein FAIL; erkläre jede Warnung, die du in den Anmerkungen des Plans behältst.
  4. Bericht: der Monat in drei Zeilen, was vorgeschlagen ist und ein Ja braucht, die Lücken.

Erstellen

  1. Item-Ordner: python3 <skill>/scripts/new_item.py content <Datum> <Slug> <Format>.
  2. Recherche (research-tools.md): Primärquelle, einen Link tief, Korrekturen seit Veröffentlichung, die eigenen Worte namentlich genannter Personen, der lokale Blickwinkel, eine zweite Quelle pro Zahl.
  3. Geschichte in brief.md (writing-craft.md Abschnitte 1–4): fünf Fragen, die Wendung, die Leiter (berita, uji coba, daftar referensi oder eine Rubrik aus copy-playbook.md), die Folie oder der Post, die es wert sind, gespeichert zu werden, fünf Hooks in mindestens drei Formen, durch die Tore und die Duelle gegangen, eine Metaphernfamilie mit ihrer Verbs:-Zeile.
  4. Text in copy.md für das Format (references/formats/: carousel.md, single-post.md, x.md, threads.md, linkedin.md, reels-tiktok.md, long-form.md), eine > Quellenangabe unter jeder Zahl, jedem Namen und jedem Zitat. Jede Überschrift besteht den "lalu kenapa?"-Test und die Metapher steckt in mindestens drei davon; Einschränkungen kommen dorthin, wo writing-craft.md 7b sie platziert; die Aktion besteht den Test "wer, mit was, wann". Dann python3 <skill>/scripts/lint_copy.py <item>/copy.md --format <format> --brand <pack>/brand.md muss mit Exit-Code 0 enden (new_item.py gibt das richtige --format aus: thread lintet als x, document als linkedin). Lies seine Warnungen und seine reine-Überschriften-Lesung; schreibe diese Lesung in brief.md und lies den Text einmal laut vor.
  5. Bilder (image-sourcing.md): echte Artefakte auf Beweisrahmen; für Metaphernrahmen die eigenen Fotos der Marke, dann ein automatisch generiertes Bild, wenn nichts passt (zuerst dein eigenes Bildwerkzeug, dann agy, dann eine kostenpflichtige API nur wenn content/setup.md es erlaubt), dann Unsplash; ein visueller Faden, Credits ab Manifest. Der Eigentümer kann das Bildwerkzeug jederzeit wechseln oder die Generierung stoppen.
  6. Wähle das Schema und die Layouts (design-variety.md): das Farbschema der Serie, oder bei einem Einzelstück eines, das die vorherigen Stücke nicht verwendet haben; dann eine Variante pro Folie, abhängig von der Aufgabe der Folie und davon, was laut content/design-log.md zuletzt verwendet wurde, sodass keine zwei Stücke gleich aussehen. Schreibe sie in die Tabelle "Design" von brief.md, mit einem Markierungsstil für Überschriften und einer Folie, die das Muster durchbricht. Die Galerieseiten des Brand Packs (Figma) oder content/setup-gallery/*.jpg (HTML) und refs/ falls das Pack welche hat, zeigen die Optionen.
  7. Baue mit dem Renderer in content/setup.md (design-system.md); wenn dort beide stehen, folge seiner Regel, welche Stücke wohin gehen, sonst frage:
    • Figma (figma-mechanics.md): die Layoutfunktionen in scripts/figma-helpers.js, gebündelt mit dem BRAND-Block des Packs durch scripts/figma_bundle.py --brand <pack>/design.md --page "<Name>" --scheme <Schema> --n <Frames> (das Tool nimmt 50.000 Zeichen), auf einer neuen Seite der Figma-Datei der Marke; niemals andere Seiten berühren. Lade Bilder hoch, tone sie dann in einem zweiten Aufruf mit den Paaren des Schemas (duotone(id, 'light' | 'dark')).
    • HTML → PNG (html-render.md): scripts/new_html.py richtet den html/-Ordner des Items mit dem Kit und dem CSS der Marke ein; schreibe slides.html mit den Layouts des Kits, mit den ausgewählten Fotos und generierten Bildern, die in html/img/ kopiert wurden; scripts/render_slides.py rendert ein PNG pro Folie. Reels: storyboard.md + ein 1080×1920 Cover-Frame (Figma, oder eine separate HTML-Seite wie in html-render.md Abschnitt 4 beschrieben).
  8. Überprüfe günstig: zuerst den Layout-Check (layoutCheck() in Figma, die Probleme, die render_slides.py in HTML ausgibt) und behebe, was gemeldet wird; dann schau dir das Cover, den Datenrahmen und das an, was sich geändert hat (Screenshots einzeln in Figma; die PNGs in HTML). Wenn der Benutzer Screenshots stoppt, stoppe und sage, welche Frames ungeprüft blieben.
  9. Veröffentlichungsblatt: publish.md mit dem Text pro Kanal, Hashtags innerhalb der Limits, Alt-Text, Zeit, Links, Credits; füge eine Zeile zu content/design-log.md hinzu. Das Veröffentlichen ist der Schritt des Eigentümers, es sei denn, er bittet ausdrücklich darum, ein bestimmtes Stück über ein verbundenes Tool zu posten; bestätige zuerst.
  10. Bericht: wo es ist, die Richtung in zwei Zeilen, die gewählten Layouts, was überprüft wurde und was nicht, welche Recherche-Tools du hattest und welche fehlten, und die Bildunterschrift.

Umbauen

Plane die Schnitte gemeinsam (planning.md Abschnitt 6), ein Item-Ordner, eine Zeile pro Schnitt im Plan. Jeder Schnitt wird für sein Format neu geschrieben (references/formats/), sagt etwas Ganzes für sich aus und verlinkt zurück. Die Karussell-Frames dienen auch als LinkedIn-Dokument (scripts/slides_to_pdf.py) und als Foto-Post für Threads/TikTok.

Überprüfen

Schreibe content/reviews/YYYY-MM.md aus templates/review-month.md: nur Zahlen von der Plattform oder dem Eigentümer, datiert; vergleiche jedes Stück mit dem eigenen Median der Marke für sein Format; entscheide behalten, reparieren oder stoppen pro Serie; trage die Entscheidungen in den Plan des nächsten Monats ein. Keine Zahlen geteilt: liste auf, was zu sammeln ist, und stoppe.

Schreibregeln, die das meiste Gewicht haben

Volle Methode in writing-craft.md, Regeln in copy-playbook.md, Sprache in language/<lang>.md.

  • Hook = genaue Zahl + Szene + Einsatz, oder eine der sechs Formen aus writing-craft.md Abschnitt 3b. Schreibe fünf in drei Formen, gate sie (≤30 Wörter, klar, keine Einschränkung, ehrlich, die Antwort zurückgehalten, Spannung), duelliere die Überlebenden und schreibe, warum jeder Verlierer verloren hat. Bewerte sie nicht: Selbstbewertungen enden unentschieden.
  • Überschriften sind Behauptungen mit einer Konsequenz: jede besteht "lalu kenapa?"-Test. Themenwörter kommen in die Augenbraue. Markiere das eine oder die zwei Wörter, die die Behauptung tragen.
  • Eine Metaphernfamilie, einmal genannt, dann in den Verben von mindestens drei Überschriften weitergeführt.
  • Eine Wendung spät in der Geschichte; ein Frame oder Post, der es wert ist, gespeichert zu werden.
  • Bring es nach Hause: der eigene Preis des Publikums, Datum, Ort, Unternehmen oder Handlung.
  • Zahlen vergleichen fair, Diagramme beginnen bei Null, Absicherungen werden aus der Quelle kopiert, erste Person nur für das, was die Marke getan hat.
  • Absicherungen bleiben im Satz; Einschränkungen haben ein Budget: keine auf dem Cover oder in einer Überschrift, eine auf der Datenfolie, eine auf der Meinungsfolie, der Rest in der Bildunterschrift.
  • Meinung ist gekennzeichnet und endet mit einer Aktion, die "wer, mit was, wann" besteht.
  • Ein CTA aus dem Brand Pack; das Versprechen beschreibt, was das Stück gerade getan hat.
  • Sprache aus dem Brand Pack; eine andere Sprache nur, wenn der Benutzer ausdrücklich danach für dieses Stück fragt.
  • Keine Standard-Einstiege, keine KI-Klischees; der Lint fängt die meisten.

Qualitätssicherung

  • Brand Pack gelesen; nichts (vorgeschlagen) ohne Nachfrage als endgültig verwendet.
  • Jedes verfügbare Recherche-Tool wurde dort eingesetzt, wo es hilft; Lücken gemeldet.
  • Fünf Story-Fragen mit dem lokalen Blickwinkel beantwortet; die Wendung platziert.
  • Hook-Workshop mit Toren und Duellen durchgeführt; das Cover ist ≤30 Wörter ohne Einschränkung und funktioniert allein.
  • Reine-Überschriften-Lesung in brief.md geschrieben und erzählt die Geschichte; die Metapher ist in mindestens drei Überschriften; ein Stück, das es wert ist, gespeichert zu werden, benannt.
  • Die Aktion besteht "wer, mit was, wann".
  • lint_copy.py endet mit Exit-Code 0 für das Format; jede Zahl, jeder Name und jedes Zitat hat eine Anmerkung.
  • Plattform-Limits eingehalten (formats/specs.md): Hashtags, Zeichen, sichere Zonen.
  • Layouts pro Folie in brief.md ausgewählt; Cover und Überschriftenmarkierung unterscheiden sich vom vorherigen Stück in content/design-log.md; eine Folie bricht das Muster.
  • Ein Schema angewendet; die eigenen Fotos der Marke verwendet, wo sie passen; Fotos getont; Screenshots in Farbe, unverändert, mit Quellenangabe, mit Marker-Markierungen versehen.
  • Layout-Check sauber (layoutCheck() in Figma, render_slides.py in HTML) oder jede Notiz erklärt; Cover und Datenrahmen gesehen (oder die Lücke gemeldet).
  • Abschluss: ein CTA, alle Quellen und Credits; generierte Bilder als Illustrationen gekennzeichnet.
  • publish.md vollständig und eine Zeile zu content/design-log.md hinzugefügt; nichts ohne ausdrückliche Zustimmung gepostet, geliked oder gefolgt.
  • Pläne bestehen check_plan.py.

Dateizuordnung

DateiLesen, wenn
brands/README.md, brands/<brand>/brand.md, design.mdjeder Durchlauf
../setup-content/SKILL.md, references/brand-onboarding.mderster Durchlauf (kein content/setup.md), eine neue Marke, ein neuer Renderer
references/planning.mdPlanen, Umbauen, Überprüfen
references/writing-craft.md, references/examples/*.md (zwei ausgearbeitete Karussells mit abgelehnten Entwürfen)vor dem Schreiben von irgendetwas
references/copy-playbook.mdFrameworks, copy.md-Format, CTA, Bildunterschrift
references/language/id.md, en.mddie Sprache der Marke
references/formats/*.mddas Format, das erstellt wird; specs.md für Limits
references/design-system.md, design-variety.md, design-references.mdvor dem Bauen von Frames: Rollen, Layoutvarianten und wie man sie auswählt, Muster von anderen Konten
references/figma-mechanics.mdvor dem ersten use_figma; Hochladen, Duotone, Screenshots
references/html-render.md, templates/html/der HTML → PNG-Renderer: Setup, Klassenreferenz, Rendern, Überprüfen
references/image-sourcing.md, research-tools.mdRecherche und Bilder
references/patterns-from-data.mdwarum die Regeln sind, wie sie sind
references/prerequisites.mdInstallieren von Begleitprogrammen und optionalen Tools
templates/Arbeitsbereich, Setup, Plan, Brief, Veröffentlichung, Überprüfung, Ideen, Design-Log; html/ (Folien-Kit und Beispiel)
scripts/lint_copy.py, check_plan.py, new_item.py, figma-helpers.js (Layouts, Schemata), figma_bundle.py, figma-gallery.js + figma-gallery-2.js, figma-gallery-schemes.js, brand_css.py, new_html.py, render_slides.py, crawl_site.py, capture_profile.sh, artefact_marks.py, ref_sheets.py, slides_to_pdf.py, capture_artefact.sh, x_post.py, scan_site_tokens.sh, unsplash_search.py, gen_image.py, agy_image.sh, contact_sheet.py, export_oss.sh

Wann dies nicht verwendet werden soll

Nicht für eine Folienpräsentation (verwende einen Folien-Skill), nicht zum Erstellen einer Website und nicht für eine Ein-Wort-Korrektur in einem bestehenden Post (bearbeite ihn direkt).

Verwandte Skills