From meta-skills
Generates branded infographic specifications from content or data. Outputs structured layout, copy, data visualization, and color scheme ready for HTML/CSS, Satori, Canva, or Figma.
npx claudepluginhub affitor/affiliate-skills --plugin meta-skillsThis skill uses the workspace's default tool permissions.
Generate complete infographic specifications from any content, data, or topic.
Generates professional infographics using each::sense AI: statistical charts, process flows, timelines, comparisons, lists, maps, hierarchies, resumes, reports, and social media visuals.
Generates professional infographics via Python CLI using Nano Banana Pro AI, Gemini 3 Pro quality review, and Perplexity Sonar research. Supports 10 types like list/timeline/statistical, 8 styles, colorblind palettes, quality thresholds for marketing/reports/social.
Generates professional infographics using 21 layouts and 21 visual styles. Analyzes input content, recommends combinations, and renders publication-ready images via image generation tools.
Share bugs, ideas, or general feedback.
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 |
|---|---|---|---|
| 1080 | 1350 | 4:5 (portrait) | |
| 1080 | 1080 | 1:1 (square) | |
| 1200 | 675 | 16:9 (landscape) | |
| 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: list.affitor.com" 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 · list.affitor.com │
└─────────────────────────────────┘
### 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"