> Generate branded infographic specifications from any content or data. Outputs structured layout, copy, data visualization, and color scheme — ready to render as HTML/CSS, Satori, Canva, or any design tool. Use this skill when the user wants an infographic, data visual, social media image, comparison chart, stat card, or says "create an infographic for [content]", "make a visual for my LinkedIn post", "design an image for [topic]", "stat graphic for [data]", "comparison infographic", "branded image", "social media graphic", "infographic for [blog post]", "data visualization", "visual content", "image for my post", "LinkedIn carousel image", "feature comparison chart", "pricing table image".
npx skills add https://github.com/Affitor/affiliate-skills --skill infographic-generator
Generate complete infographic specifications from any content, data, or topic.
Outputs structured layout + all copy + data points + color scheme — ready to render
as HTML/CSS, with Satori (server-side), in Canva,
Figma, or any design tool.
LinkedIn posts with images get 2-3x more engagement. This skill turns your content
into visual assets without design skills.
Inspired by content-pipeline's Satori
rendering: AI writes the content → structured spec → rendered as a branded image.
This skill belongs to Stage S2: Content
viral-post-writer creates a LinkedIn post — add a visualcontent-research-brief collects stats — visualize themcontent: string # (required) Content to visualize — post text, data, or article
infographic_type: string # (optional, default: auto-detected)
# "stat_highlight" — 1-3 key numbers, large and bold
# "comparison" — side-by-side product/feature comparison
# "process_flow" — step-by-step workflow or how-to
# "checklist" — list of items with checkmarks
# "timeline" — chronological events
# "data_chart" — bar/pie chart representation
# "quote_card" — featured quote with attribution
# "feature_grid" — grid of features/benefits with icons
platform: string # (optional, default: "linkedin")
# "linkedin" — 1080×1350 (portrait, optimal engagement)
# "instagram" — 1080×1080 (square)
# "twitter" — 1200×675 (landscape)
# "facebook" — 1200×630
# "blog" — 1200×800 (featured image)
brand: object # (optional) Brand customization
name: string # Company/personal brand name
primary_color: string # Hex — "#0066FF"
secondary_color: string # Hex — "#1A1A2E"
accent_color: string # Hex — "#FF6B35"
font_style: string # "modern" | "classic" | "bold" | "minimal"
logo_text: string # Text-based logo — "Affitor" | "@yourhandle"
output_format: string # (optional, default: "spec")
# "spec" — structured JSON spec (for any renderer)
# "html" — renderable HTML/CSS (self-contained)
# "both" — spec + HTML
Read the input content and detect the best infographic type:
| Content Pattern | Auto-detected Type |
|----------------|-------------------|
| Contains 1-3 prominent numbers/stats | stat_highlight |
| Contains "vs", comparison data | comparison |
| Contains numbered steps or a process | process_flow |
| Contains a list of items (3-10) | checklist or feature_grid |
| Contains dates or chronological events | timeline |
| Contains a notable quote | quote_card |
| Contains percentages or proportions | data_chart |
If infographic_type is provided, use that. Otherwise auto-detect.
From the content, extract exactly what needs to appear in the infographic:
For stat_highlight:
stats:
- number: "30%" # The big number
label: "commission" # What it measures
context: "recurring" # Additional context
- number: "60"
label: "cookie days"
context: "industry avg: 30"
For comparison:
items:
- name: "HeyGen"
features:
- label: "Commission"
value: "30% recurring"
highlight: true # winner for this row
- label: "Cookie"
value: "60 days"
highlight: true
- name: "Synthesia"
features:
- label: "Commission"
value: "25% one-time"
highlight: false
- label: "Cookie"
value: "30 days"
highlight: false
For process_flow:
steps:
- number: 1
title: "Research"
description: "Find winning programs"
icon: "🔍"
- number: 2
title: "Create"
description: "Write content that converts"
icon: "✍️"
For checklist:
items:
- text: "Recurring commission"
checked: true
- text: "60+ day cookie"
checked: true
- text: "Free trial available"
checked: true
- text: "Dedicated affiliate manager"
checked: false
Based on type + platform, define the layout:
Platform dimensions:
| Platform | Width | Height | Aspect |
|----------|-------|--------|--------|
| LinkedIn | 1080 | 1350 | 4:5 (portrait) |
| Instagram | 1080 | 1080 | 1:1 (square) |
| Twitter | 1200 | 675 | 16:9 (landscape) |
| Facebook | 1200 | 630 | ~2:1 |
| Blog | 1200 | 800 | 3:2 |
Layout structure (all types):
┌─────────────────────────────┐
│ HEADER │ 10-15% height
│ Headline / Title │
├─────────────────────────────┤
│ │
│ BODY │ 70-80% height
│ Data / Content │
│ (type-specific layout) │
│ │
├─────────────────────────────┤
│ FOOTER │ 10% height
│ Brand / CTA / Source │
└─────────────────────────────┘
If brand colors provided: Use them directly.
If no brand colors: Generate a professional palette:
# Default professional palette options
palettes:
dark_modern: # Dark background, light text
bg: "#1A1A2E"
text: "#FFFFFF"
accent: "#0066FF"
secondary: "#16213E"
light_clean: # Light background, dark text
bg: "#FFFFFF"
text: "#1A1A2E"
accent: "#0066FF"
secondary: "#F0F4F8"
warm_bold: # Warm tones
bg: "#FFF8F0"
text: "#2D2D2D"
accent: "#FF6B35"
secondary: "#FFE8D6"
dark_gradient: # Gradient dark
bg: "linear-gradient(135deg, #1A1A2E, #16213E)"
text: "#FFFFFF"
accent: "#00D4AA"
secondary: "#2A2A4A"
Auto-select based on platform:
dark_modern or light_clean (professional)dark_gradient or warm_bold (attention-grabbing)Write every piece of text that appears in the infographic:
copy:
headline: string # Main title — bold, short (max 8 words)
subheadline: string # Optional supporting line
body_items: string[] # Data labels, descriptions, etc.
cta: string # Call-to-action text — "Link in bio" | "See comments for link"
footer: string # Brand name or @handle
source: string # "Data: openaffiliate.dev" or source attribution
Copy rules:
Spec output (default):
Complete structured spec that any renderer can consume:
infographic_spec:
type: string
platform: string
dimensions:
width: number
height: number
colors:
background: string
text: string
accent: string
secondary: string
layout:
header: object
body: object
footer: object
data: object # Type-specific data (stats, comparison items, steps, etc.)
copy:
headline: string
subheadline: string
body_items: string[]
cta: string
footer: string
source: string
HTML output (if output_format is "html" or "both"):
Generate a self-contained HTML file with inline CSS that renders the infographic
at exact dimensions. This can be:
<!-- Self-contained, no external dependencies -->
<div style="width: 1080px; height: 1350px; ...">
<!-- Header -->
<!-- Body (type-specific) -->
<!-- Footer -->
</div>
Before presenting output, verify:
If any check fails, fix before delivering.
## Infographic: [Headline]
### Spec
- **Type:** [stat_highlight]
- **Platform:** [LinkedIn] — 1080×1350
- **Colors:** [dark_modern] — bg: #1A1A2E, accent: #0066FF
### Preview (text representation)
┌─────────────────────────────────┐
│ │
│ HeyGen vs Synthesia │
│ The Real Comparison │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ HeyGen │ │Synthesia │ │
│ │ │ │ │ │
│ │ 30% rec. │ │ 25% once │ │
│ │ 60 days │ │ 30 days │ │
│ │ ★ 127 │ │ ★ 84 │ │
│ └──────────┘ └──────────┘ │
│ │
│ 🏆 Winner: HeyGen │
│ │
│ ─────────────────────────── │
│ @yourhandle · openaffiliate.dev │
└─────────────────────────────────┘
### Data
[Structured spec as YAML or JSON]
### HTML (if requested)
[Self-contained HTML/CSS code block]
### Next Steps
- Post to [platform] with your viral post from `viral-post-writer`
- Create variations for other platforms: `--platform instagram`
- Generate more infographics from different data in your `content-research-brief`
quote_card or checklist type instead. Note: *"No numerical data found. Created a [type] infographic instead."*Example 1:
User: "Make an infographic comparing HeyGen vs Synthesia for LinkedIn"
→ type: comparison, platform: linkedin (1080×1350)
→ Extract: commission, cookie, rating, price for each
→ Output: side-by-side comparison card with winner highlighted
→ Dark modern palette, bold numbers
Example 2:
User: "Create a stat card from my research brief showing HeyGen's key numbers"
→ type: stat_highlight, platform: linkedin
→ Extract: "$60M raised", "40K businesses", "30% commission"
→ Output: 3 large numbers with labels and context
Example 3:
User: "Visualize the affiliate funnel steps as an infographic"
→ type: process_flow, platform: blog (1200×800)
→ Steps: Research → Content → Landing → Deploy → Track → Optimize
→ Output: horizontal flow with icons and brief descriptions
When this skill produces unexpected, incomplete, or incorrect output, generate a
skill_feedback block (see shared/references/feedback-protocol.md for full schema).
Skill-specific failure modes:
data_quality.wrong_output with the HTML.wrong_output.Auto-detect triggers:
infographic_spec.data has <2 data pointsReport issues: GitHub Issues | Discussions
shared/references/social-data-providers.md — data sources for infographic contentshared/references/platform-rules.md — platform-specific image requirementsshared/references/flywheel-connections.md — master flywheel connection mapshared/references/feedback-protocol.md — issue detection and reporting standardsocial-media-scheduler (S5) — infographic ready to schedule with postlanding-page-creator (S4) — infographic as hero image or section visualemail-drip-sequence (S5) — infographic as email visual contentbio-link-deployer (S5) — infographic in link hubcontent-research-brief (S2) — key stats and data for visualizationviral-post-writer (S2) — post content to create accompanying visualaffiliate-blog-builder (S3) — blog data for featured image infographictrending-content-scout (S1) — engagement data for benchmark visualstraffic-analyzer (S1) — traffic data for comparison infographicscomparison-post-writer (S3) — comparison data for visual formatcommission-calculator (S1) — commission data for stat highlightsperformance-report shows engagement lift → prioritize infographic creation for high-value contentBefore delivering output, verify:
Any NO → redesign before delivering.
chain_metadata:
skill_slug: "infographic-generator"
stage: "content"
timestamp: string
suggested_next:
- "social-media-scheduler"
- "viral-post-writer"
- "landing-page-creator"
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Generate memes using the memegen.link API. Use when users request memes, want to add humor to content, or need visual aids for social media. Supports 100+ popular templates with custom text and styling.
Fix PageSpeed Insights/Lighthouse accessibility "!" errors caused by contrast audit failures (CSS filters, OKLCH/OKLAB, low opacity, gradient text, image backgrounds). Use for accessibility-driven SEO/performance debugging and remediation.
> Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.
Audit paid-ad landing pages for message match, mobile experience, performance, accessibility, trust, forms, consent, tracking, security, and conversion friction. Use for landing-page audit, post-click experience, LP audit, conversion-rate optimization, form optimization, ad-to-page message match, redirects, blocked navigation, or requests involving private, loopback, link-local, or metadata IP destinations.
Marketing landing page and conversion-focused product page reference. Use this skill when building hero sections, feature grids, pricing pages, testimonials, CTAs, footers, navigation bars, or any public-facing marketing surface. Covers a warm, professional, developer-friendly design language (cream backgrounds, generous whitespace, pill CTAs, corner-bracket card decorations) and a complete token set, animation system, and copy-paste component snippets. NOT for product/dashboard UIs — use frontend-design-saas for those.
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices". Focuses on visual design and interaction patterns. Do NOT use for performance audits (use core-web-vitals), SEO (use seo), or comprehensive site audits (use web-quality-audit).
Comprehensive web quality audit covering performance, accessibility, SEO, and best practices. Use when asked to "audit my site", "review web quality", "run lighthouse audit", "check page quality", or "optimize my website".
Take affitor/infographic-generator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.