Een agent-vaardigheid voor Claude Code, Codex en vergelijkbare coding-agent-omgevingen. Het genereert Xiaohongshu / Rednote carrouselafbeeldingen en WeChat 21:9 + 1:1 omslagparen uit artikelen, copy, screenshots, productnotities, ondertitels of foto's.
Twee visuele systemen delen één workflow:
- Editorial. Ingetogen lay-outs in de geest van Monocle / Kinfolk / Cereal. Het beste voor storytelling, lifestyle, reizen, lezen, film en persoonlijke observatie.
- Swiss International. Grid-first, enkele accentkleur, scherpe haarlijnen, extreem typecontrast. Het beste voor productrecensies, data, frameworks, tutorials en AI-tools.
Zusterproject van guizang-ppt-skill. Gedeelde visuele taal, apart onderhoud. PPT lost "horizontaal swipende gesprekken" op; deze lost "statische feedafbeeldingen" op.

30-seconden start
npx skills add https://github.com/op7418/guizang-social-card-skill --skill guizang-social-card-skill
Of plak dit naar een AI-agent met shell-toegang:
Installeer guizang-social-card-skill voor mij. Kloon https://github.com/op7418/guizang-social-card-skill naar ~/.claude/skills/guizang-social-card-skill, controleer vervolgens of SKILL.md, assets/ en references/ bestaan.
Als je het al hebt geïnstalleerd, werk dan bij met:
Werk guizang-social-card-skill voor mij bij. Ga naar ~/.claude/skills/guizang-social-card-skill, voer git pull uit en vertel me dan de laatste commit.
Vraag dan je agent:
Maak voor mij een Swiss-style Xiaohongshu carrousel van dit artikel, 5 kaarten, IKB-blauw.
Andere nuttige prompts:
Maak een 3:4 Xiaohongshu-set van deze productrecensie, met titels in editorial-stijl.
Verander dit artikel in een WeChat omslagpaar: 21:9 hero + 1:1 deelkaart, visueel consistent.
Ik heb 3 kampeerfoto's — maak een beeldgeleide Xiaohongshu carrousel.
Verander deze gamegids-copy in een Xiaohongshu-set; haal wat game-art van Wallhaven.
Wat je krijgt
- 🖋 Twee visuele systemen: Editorial voor sfeer en verhaal, Swiss voor feiten en structuur, die één workflow delen
- 📐 3 canvasformaten:
.poster.xhs1080×1440 (Xiaohongshu 3:4),.poster.wide2100×900 (WeChat 21:9),.poster.square1080×1080 (WeChat 1:1) - 🧩 28 lay-outskeletten: 16 Editorial (
M01-M16, inclusief Image-Led Cover, Pipeline, Before/After) + 12 Swiss (S01-S12, inclusief KPI Tower, H-Bar Chart, Matrix + Hero) - 🎨 10 themapresets: 6 Editorial (Ink Classic, Indigo Porcelain, Forest Ink, Kraft Paper, Dune, Midnight Ink donker) + 4 Swiss accentkleuren (IKB Klein Blue, Lemon, Lemon Green, Safety Orange)
- 🖼 Workflow voor het sourcen van afbeeldingen: eerst gebruikersafbeeldingen; anders waterval via Unsplash → Pexels → Flickr CC → Wallhaven → directe zoekopdracht, lokaal gedownload met automatisch gegenereerde
SOURCES.md - 🌫 WebGL-inktvloeiachtergrond: editorial heldenpagina's kunnen een live inktanimatie leveren; kan worden uitgeschakeld voor apparaten met laag stroomverbruik of screenshotmodus
- 🪧 Afbeeldingsoverlay + gezichtsveiligheid: volledig uitlopende afbeeldingen moeten een masker hebben; tekstzones moeten het onderwerp vermijden. Harde regels in
references/image-overlay.md - 🧰 Activa voor screenshotverfraaiiing: 9 WebP-achtergronden met echte textuur (5 Editorial / 4 Swiss), gecombineerd met
.frame-shot/.device-browser/.device-phonehulpprogramma's - 🗺 Kaartcomponent: MapLibre + OSM echte tegels, multi-pin + verbindingen, gemaakt voor reisgidsen
- ✅ Validator:
validate-social-deck.mjsdetecteert automatisch overflow, schendingen van typebeperkingen, 4-banddichtheidstekorten en voettekstbotsingen - 📄 Single-file HTML + Playwright rendering: geen frontend build-pipeline;
node render.mjsgeeft direct PNG uit
Past / Past niet
✅ Past: Xiaohongshu carrousels / WeChat omslagparen / Moments omslagen / Channels omslagen / artikelvisuals / tutorialpagina's / data-overzichten / reisgidsen / productrecensies / screenshot-uitleggers
❌ Past niet: Horizontaal swipende decks (gebruik guizang-ppt-skill) / lange videogeneratie / pure fotobewerking / platte tekstbewerking zonder lay-out
11 Xiaohongshu-categorieën
Gerangschikt volgens "cirkel van competentie" — zie references/category-cookbook.md:
End-to-end sterk (copy / structuur / afbeeldingen allemaal binnen bereik):
- Reizen, carrière, aanbevelingen (na specificatie van een subgenre)
Copy en structuur sterk, afbeeldingen afhankelijk van gebruiker of gesourcede kunst:
- Gaming, film, eten (receptgericht), make-up (tutorialgericht), fitness, wonen, mode (samengestelde keuzes)
Buiten bereik, vooraf verklaard (wordt niet geforceerd aangepast):
- OOTD live shots / dreamcore / filme-emulatie grading / echte huids test make-up — alles wat sterk afhankelijk is van fotografie of postproductie
Veelvoorkomende scenario's
| Taak | Aanbevolen flow |
|---|---|
| Lang artikel → Xiaohongshu carrousel | Haal kernpunten eruit; Editorial voor verhalend tempo, Swiss voor data-uitsplitsingen |
| Productrecensie / tool-samenvatting | Swiss + IKB blauw, geef de voorkeur aan S09 KPI Tower / S10 H-Bar Chart |
| Reizen / lifestyle | Editorial + Midnight Ink of Dune, M16 Image-Led Cover voor volledig uitlopende hero |
| WeChat omslagpaar | Render dezelfde inhoud twee keer: .poster.wide 21:9 + .poster.square 1:1, visueel consistent |
| Screenshot tutorial / tool doorloop | .frame-shot + .device-browser, geef de voorkeur aan Swiss grid-basis |
| Gamegids / filmoverzicht | Editorial + Midnight Ink, haal game-art van Wallhaven voor volledig uitlopende hero |
| Data-overzicht / jaaroverzicht | Swiss + Lemon of Safety Orange, matrix + grootboekcombinatie |
Waarom single-file HTML naar PNG
- Agentvriendelijk: HTML + CSS is tekst — agents kunnen direct schrijven, lezen, bewerken en valideren
- Lay-outprecisie: CSS Grid + strikte type / marge / grid-regels overtreffen ruimschoots Markdown's lay-outbereik
- Open afbeeldingsourcing: koppel aan Unsplash / Pexels / Wallhaven / Mapbox / OSM / elke webbron
- Controleerbare kwaliteit:
validate-social-deck.mjsgebruikt Playwright DOM-meting, geen giswerk - Simpele levering:
output/*.pngwordt direct verzonden — geen deploys, geen exporttools
Platformondersteuning
| Platform | Status | Notities |
|---|---|---|
| Claude Code | Ondersteund | Native Skill-workflow, ideaal voor het genereren + itereren van kaarten |
| Codex | Ondersteund | Goed voor het genereren van lange kaarten, sourcen van afbeeldingen, visuele QA |
| Cursor / andere lokale agents | Werkt | Vereist lezen/schrijven van bestandssysteem + shell-uitvoering |
| Gewone chatbot | Niet aanbevolen | Zonder bestandssysteem en rendering-pipeline kunnen afbeeldingen niet betrouwbaar worden verzonden |
Installeren
Optie 1: Installatie met één regel (aanbevolen)
npx skills add https://github.com/op7418/guizang-social-card-skill --skill guizang-social-card-skill
Optie 2: Plak dit naar een AI
Installeer de
guizang-social-card-skillClaude Code-vaardigheid voor mij. Stappen:
- Zorg dat
~/.claude/skills/bestaat (maak aan indien niet)- Voer
git clone https://github.com/op7418/guizang-social-card-skill.git ~/.claude/skills/guizang-social-card-skilluit- Controleer:
ls ~/.claude/skills/guizang-social-card-skill/zouSKILL.md,assets/,references/moeten tonen- Vertel me wanneer klaar. Later zal het zeggen van dingen als "maak een Xiaohongshu carrousel voor mij" deze vaardigheid activeren.
Plak het bovenstaande blok in Claude Code / Cursor / elke AI-agent met shell-toegang.
Optie 3: Handmatige CLI
git clone https://github.com/op7418/guizang-social-card-skill.git ~/.claude/skills/guizang-social-card-skill
Hoe het te activeren
Eenmaal geïnstalleerd detecteert Claude Code de vaardigheid automatisch. Activeerzinnen:
- "Maak een Xiaohongshu / Rednote carrousel voor mij"
- "Maak Rednote kaarten voor mij"
- "Maak een WeChat 21:9 hero + 1:1 deelkaart"
- "Genereer social cards / magazine-stijl social cards"
- "Verander dit artikel in een tutorial-carrousel"
- "Maak een Swiss-style Xiaohongshu review / IKB-stijl kaarten"
Workflow
De vaardigheid is een gestructureerde workflow. De agent doorloopt 7 stappen:
- Intake — leg 4 dingen vast: doelplatform / stijl / broninhoud / gebruikersafbeeldingen. Als er geen afbeeldingen beschikbaar zijn, presenteer dan eenmalig A/B/C (zelf fotograferen / AI genereren / online sourcen); niet opnieuw voorstellen
- Stijl & Thema — kies Editorial of Swiss, kies dan een van de 10 themapresets. Aangepaste hex-waarden zijn niet toegestaan
- Lay-outselectie — kies / plak / pas copy aan uit de 28 lay-outskeletten. 16 Editorial / 12 Swiss
- Asset-voorbereiding — source afbeeldingen (Unsplash / Pexels / Flickr CC / Wallhaven / directe zoekopdracht), lokaal downloaden +
SOURCES.mdschrijven; vraag of bronnen moeten worden vermeld - Samenstellen & Renderen — kopieer seed-template → vervang
<!-- POSTERS_HERE -->→node render.mjs - Leveren & Controleren — toon eerst PNG's, vraag "wil je ze zelf bekijken, of wil je dat ik de validator uitvoer?" — voert niet automatisch validatie uit
- Itereren — pas gebruikersfeedback toe, pas inline-stijlen aan of wissel lay-outs / afbeeldingen, render opnieuw
Volledige specificatie in SKILL.md. Diepgaande details in de bijbehordende references/*.md.
Validator
node validate-social-deck.mjs path/to/task-dir
6 regels, gebaseerd op Playwright real-render meting, niet op statische scanning:
- R1 Overflow — elke sectie die
.posteroverstroomt, faalt onmiddellijk - R2 Typebeperkingen —
.h-xl/.h-displaygrootte + gewichtscombinaties die de seed-definities overschrijden - R3 Voettekstbotsing — inhoud die tegen de onderste voettekst / paginanummer drukt
- R4 4-banddichtheid — 1440-hoog canvas opgesplitst in 4 horizontale banden; elke band moet inhoud bevatten of een verklaarde reden voor witruimte hebben
- R5 Frame-overflow —
.frame-img/.frame-shotkinderen die het frame overstromen - R6 Swiss-identiteit — Swiss templates met inline
font-weight >= 700waarschuwen (overtreden "groter betekent dunner")
SKILL.md Stap 7 stelt expliciet dat de validator niet automatisch wordt uitgevoerd — wacht tot de gebruiker eerst naar de afbeeldingen kijkt, wat tientallen seconden per ronde bespaart.
Themapresets
Kies uit references/theme-presets.md. Aangepaste hex-waarden zijn niet toegestaan — het beschermen van de esthetiek is belangrijker dan keuzevrijheid.
Editorial (6)
| Thema | Tonen | Het beste voor |
|---|---|---|
| 🖋 Ink Classic | #0a0a0b / #f1efea | Algemene standaard, commerciële onderwerpen, bij twijfel |
| 🌊 Indigo Porcelain | #0a1f3d / #f1f3f5 | Tech, onderzoek, AI, technisch schrijven |
| 🌿 Forest Ink | #1a2e1f / #f5f1e8 | Natuur, duurzaamheid, buitenleven, non-fictie |
| 🍂 Kraft Paper | #2a1e13 / #eedfc7 | Nostalgie, geesteswetenschappen, lezen, literatuur |
| 🌙 Dune | #1f1a14 / #f0e6d2 | Kunst, design, creatief, mode |
| ⚫ Midnight Ink | #0e0d0c / #ece2cf / #d4a04a | Game key art / nachtscènes / filmische omslagen / Black Myth · Elden Ring-achtige donkere thema's |
Swiss (4)
| Thema | Accent | Het beste voor |
|---|---|---|
| 🔵 IKB Klein Blue | #002FA7 | Algemene standaard, commerciële lanceringen, AI-producten, frameworks |
| 🟡 Lemon | #FFD500 | Jeugd, sport, detailhandel, consument, Y2K |
| 🟢 Lemon Green | #C5E803 | Eco, gezondheid, Gen Z, groene merken |
| 🟠 Safety Orange | #FF6B35 | Waarschuwingen, nieuws, industrieel, energieke thema's |
Om thema's te wisselen, vervang eenvoudig het <section class="poster" data-theme="..."> attribuut op de seed template; alle CSS wordt opgelost via var(--...).
Mappen
guizang-social-card-skill/
├── SKILL.md ← Hoofdskillbestand: 7-stappen workflow
├── README.md ← Chinese README
├── README.en.md ← Dit bestand
├── HANDOFF.md ← Overdrachtsdocument: feiten + versiegeschiedenis
├── PRODUCT.md ← Productdocument: denken + beslissingen + roadmap
├── validate-social-deck.mjs ← Playwright lay-outvalidator
├── assets/
│ ├── template-editorial-card.html ← Editorial-seed (6 thema's / 3 canvassen)
│ ├── template-swiss-card.html ← Swiss-seed (4 accenten / 3 canvassen)
│ ├── magazine-bg-webgl.js ← WebGL-inktvloeiachtergrond
│ └── screenshot-backgrounds/ ← 9 achtergronden voor screenshotpodia (WebP)
│ ├── style-a/ ← 5 Editorial
│ └── style-b/ ← 4 Swiss
└── references/
├── platform-specs.md ← Platform × resolutie × naamgeving
├── style-system.md ← Harde regels en anti-patronen voor beide stijlen
├── theme-presets.md ← Alle 10 paletten in detail
├── layout-recipes.md ← 28 lay-outskeletten (M01-M16 + S01-S12)
├── components.md ← Type / kaarten / afstand / pictogrammen
├── background-systems.md ← Inktvloeiing / raster / papierlagen
├── portrait-fill.md ← Witruimtestrategie voor het 3:4 bord
├── content-planning.md ← Hooks / pagina-splitsingen / copycompressie
├── category-cookbook.md ← 11 Xiaohongshu-categorie routeringstabel
├── image-overlay.md ← Volledig uitlopend afbeeldingsmasker + gezichtsveiligheidsregels
├── screenshot-treatment.md ← `.frame-shot` hulpprogramma's + screenshotverfraaiing
├── map-component.md ← `.map-block` MapLibre-kaart
├── title-shortener.md ← Kortetitelstrategie voor de 1:1 omslag
├── production-workflow.md ← Playwright renderpipeline
└── qa-checklist.md ← Kwaliteitschecklist
Kernontwerpprincipes
- Ingetogenheid boven luidruchtigheid — ingetogen paletten vallen op in een verzadigde feed
- Structuur boven decoratie — type / contrast / raster dragen de hiërarchie, niet schaduwen of kaarten
- Lay-outs boven vrijheid — kies eerst, pas later aan; verzin geen pagina's buiten de 28 skeletten
- Gebruikersafbeeldingen eerst — bij intake, presenteer A/B/C eenmalig; stel niet opnieuw voor om zelf te fotograferen
- Masker + vermijden — volledig uitlopende afbeeldingen hebben altijd een masker; tekstzones moeten vrij zijn van het onderwerp (gezichten / producten / tekstrijke gebieden)
- Groter betekent dunner — Swiss
.h-xlgrootte omhoog → gewicht moet omlaag. Editorial volgt dezelfde regel - Geen automatische validatie — laat de gebruiker eerst kijken, vraag dan voordat je valideert; bespaart tientallen seconden per ronde
- Een vaardigheid is een product, geen prompt — heeft PRODUCT.md, versienummers, CHANGELOG, capaciteitsgrenzen
- Lokale tests blijven buiten git — alle demo's / smoke tests leven onder
local-tests/, gitignored
Visuele referenties
- Monocle / Kinfolk / Cereal tijdschriftlay-outs en letterspatiëring
- Massimo Vignelli / Helvetica Forever / Swiss International Typographic Style gridsystemen
- Apartamento / The Gentlewoman beeld-naar-tekst verhoudingen en menselijke portretten
- Ingetogen-wint-de-feed voorbeelden van Xiaohongshu / Rednote
- Guizangs social card-praktijk
Roadmap
- Meer smoke tests voor typebeperking randgevallen onder lange Editorial-inhoud
- Meer Swiss-datalay-outs (extra diagrammskeletten)
- Na beeldgeneratie: actief vragen of lokale aanpassingen moeten worden gedaan / de hele afbeelding opnieuw genereren
- Meer categorie-specifieke aanbevolen lay-outpakketten (momenteel zijn 7 van de 11 end-to-end sterk)
- Marketplace-klare WorkBuddy-versie
Bijdragen
Bugs, lay-outproblemen, nieuwe lay-outverzoeken — Issues en PR's zijn welkom. Prioriteiten voor wijzigingen:
- Bij het bewerken van seed-templates, werk ook de correspondentietabel van
references/components.mdbij (groottes / afstanden / gewichten) - Bij het toevoegen van lay-outs, voeg het volledige recept toe aan
references/layout-recipes.md(kopieerlimieten + minimale dichtheid) - Bij het toevoegen van themakleuren, werk ook het
[data-theme="..."]-blok van de seed-template +references/theme-presets.mdbij - Bij het toevoegen van Swiss-regels, werk ook de corresponderende regel in
validate-social-deck.mjsbij - Fouten die je bent tegengekomen, gaan naar
references/qa-checklist.md - Tests en demo's leven onder
local-tests/— vervuil de skill-root niet
Licentie
AGPL-3.0 © 2026 op7418
Dit project is gelicentieerd onder GNU AGPL-3.0. Belangrijke punten:
- Naamsvermelding vereist — Behoud de copyrightkennisgeving
- Afleidingen moeten open-source zijn — Elke gewijzigde versie, fork of herdistributie moet worden vrijgegeven onder AGPL-3.0 (of een compatibele licentie), met volledige broncode beschikbaar
- Netwerkgebruik is distributie — Zelfs als je alleen een gewijzigde versie als SaaS / webservice uitvoert zonder de code te distribueren, moet je nog steeds de bron publiceren (dit is wat AGPL strenger maakt dan GPL)
- Geen closed-source, propriëtaire of betalings-alleen distributie
Volledige voorwaarden in LICENSE.


