with one click
gen-infographic
Generate cover and per-type infographics for MorningAI
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate cover and per-type infographics for MorningAI
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Daily-scheduled AI news tracker. Collects updates from 80+ AI entities across 6 sources every 24 hours (default 08:00 UTC+8). Generates scored, deduplicated Markdown reports. Supports unattended cron/scheduled execution with date-stamped idempotent output.
Unified AI News Tracking Specification - covers Product/Model/Benchmark/Funding types with tracking scope, source standards, timeliness checks, scoring criteria, and record format
Generate platform-specific social media copy and images for content distribution
Send the daily MorningAI digest as HTML email via SMTP to a configured recipient list.
Generate concise message digest with image for sharing on messaging platforms (WeChat, Telegram, Slack, etc.)
Track AI model leaderboard rankings over time and detect rank/score changes between snapshots
| name | gen-infographic |
| version | 1.3.0 |
| description | Generate cover and per-type infographics for MorningAI |
Generate multiple infographics for the daily report:
| Image | Filename | When to generate | Aspect |
|---|---|---|---|
| Cover | news_infographic_YYYY-MM-DD.png | Always (if image gen is enabled) | 9:16 |
| Model | news_infographic_YYYY-MM-DD_model.png | Type has 7+ score items | 9:16 |
| Product | news_infographic_YYYY-MM-DD_product.png | Type has 7+ score items | 9:16 |
| Benchmark | news_infographic_YYYY-MM-DD_benchmark.png | Type has 7+ score items | 9:16 |
| Funding | news_infographic_YYYY-MM-DD_funding.png | Type has 7+ score items | 9:16 |
| KOL | news_infographic_YYYY-MM-DD_kol.png | ≥1 item with is_kol_voice: true (NO 7+ score gate — KOL voices are scored 4-7 by design) | 9:16 |
| Combined | news_infographic_YYYY-MM-DD_combined.png | Always (for report embed) | long |
When posting to social platforms, use the individual images (not the combined long image):
| Platform | Max Images | Strategy |
|---|---|---|
| X (Twitter) | 4 per tweet | Cover + top 3 section images (by item count) |
| Xiaohongshu | 9 per post (carousel) | Cover + all section images |
IMAGE_GEN_TYPESconfig: Controls which per-type images to generate. Default:auto(only types with 7+ items). Options:all(all types with any items),none(cover only), or comma-separated types likemodel,product.
Each news title must include three elements:
| Element | Description | Example |
|---|---|---|
| Entity name | Company/product/organization name | NVIDIA, Cursor, Midjourney |
| Event subject | Specific model/product/event name | Alpamayo, Agent mode, V7 |
| Core event | Verb phrase describing the event | releases, open-sources, tops leaderboard, closes funding |
✅ Correct Examples:
❌ Incorrect Examples:
Determine number of points based on score, but do NOT use [MAJOR]/[MINOR] tags in Prompt or image:
| Score | Number of Points | Card Size |
|---|---|---|
| >= 7 | 3-5 detailed points | Large card (priority display) |
| < 7 | 2-3 concise points | Small card |
⚠️ Score classification is only for guiding content detail level. Do NOT use
[MAJOR]/[MINOR]or similar labels in Prompt!
Select a visual style via IMAGE_STYLE config (default: classic). Insert the matching style block into {STYLE_BLOCK} in all prompt templates below.
classic — Clean Editorial MagazineStyle: Clean editorial magazine layout. Off-white (#F5F5F0) background with subtle warm gray grid lines. Bold sans-serif header "MorningAI" in black with a vivid accent color underline. Each card is a white rectangle with soft drop shadow (4px blur, 10% black), separated by generous whitespace. Use a refined accent palette: deep navy (#1A2744) for card titles, muted teal (#2A9D8F) for bullet icons, slate gray (#4A5568) for body text. NO gradients, NO textures, NO background patterns — pure flat white space.
Layout: Cards arranged in a balanced grid with equal gutters (24px). Maximize space for card content (titles and bullet points). Do NOT display score numbers or score badges — let card size and content density convey importance.
Card design: Card title in 18pt bold navy sans-serif, subtitle in 12pt gray italic. Bullet points with small teal dot markers, 14pt regular weight. Thin 1px light gray top-border on each card for subtle separation. NO icons, NO illustrations, NO decorative elements inside cards — text only with strong typographic hierarchy. Prioritize readable text and generous line spacing.
dark — Dark ModeStyle: Dark mode editorial layout. Deep charcoal (#1A1A2E) background. Bold sans-serif header "MorningAI" in white (#FAFAFA) with electric blue (#00D4FF) accent underline. Each card is a dark slate (#16213E) rectangle with subtle 1px border in muted blue (#0F3460), separated by generous spacing. Accent palette: white (#FAFAFA) for card titles, soft violet (#7B68EE) for bullet icons, light gray (#B0BEC5) for body text. NO gradients, NO glow effects — clean flat dark surfaces.
Layout: Cards arranged in a balanced grid with equal gutters (24px). Maximize space for card content (titles and bullet points). Do NOT display score numbers or score badges — let card size and content density convey importance.
Card design: Card title in 18pt bold white sans-serif, subtitle in 12pt light gray italic. Bullet points with small violet dot markers, 14pt regular weight. Thin 1px muted blue top-border on each card. NO icons, NO illustrations — text only with strong typographic hierarchy on dark background. Prioritize readable text and generous line spacing.
glassmorphism — Frosted GlassStyle: Glassmorphism editorial layout. Soft gradient background blending from lavender (#E8EAF6) top-left to pale rose (#FCE4EC) bottom-right. Bold sans-serif header "MorningAI" in dark charcoal (#212121) with warm coral (#FF6B6B) accent underline. Each card is a semi-transparent frosted white panel (rgba(255,255,255,0.65)) with backdrop blur effect, rounded corners (16px), and subtle white border (1px, 30% opacity). Accent palette: charcoal (#212121) for card titles, soft indigo (#5C6BC0) for bullet icons, medium gray (#546E7A) for body text. Soft diffused shadows (8px blur, 5% black) behind each card.
Layout: Cards arranged in a balanced grid with generous gutters (28px). Maximize space for card content (titles and bullet points). Do NOT display score numbers or score badges — let card size and content density convey importance.
Card design: Card title in 18pt bold charcoal sans-serif, subtitle in 12pt gray italic. Bullet points with small indigo dot markers, 14pt regular weight. NO hard borders — rely on frosted glass contrast for separation. Clean, airy, modern feel. Prioritize readable text and generous line spacing.
newspaper — Classic NewsprintStyle: Classic newspaper editorial layout. Warm cream (#FFF8E7) background with very faint paper texture grain. Bold serif header "MorningAI" in deep black (#1A1A1A) with crimson red (#B71C1C) thin rule line below. Each card is separated by thin black hairline rules (1px) — NO card backgrounds, NO shadows, NO boxes. Content flows in a column-based newspaper grid. Accent palette: deep black (#1A1A1A) for card titles in bold serif, dark gray (#333333) for bullet text in serif, medium gray (#666666) for subtitles in italic serif.
Layout: Multi-column newspaper grid (2-3 columns). Large stories span full width at top, smaller stories in side-by-side columns below. Separated by horizontal and vertical hairline rules. NO cards, NO boxes — pure typographic layout. Do NOT display score numbers or score indicators — let column placement and headline size convey importance.
Card design: Card title in 18pt bold black serif, subtitle in 12pt gray italic serif. Bullet points with small em-dash markers, 14pt regular serif weight. Feels like the front page of a prestigious broadsheet. Prioritize readable text and generous line spacing.
tech — Terminal / HackerStyle: Tech terminal aesthetic layout. Near-black background (#0D1117) with very faint dot grid pattern (8px spacing, 5% white). Bold monospace header "MorningAI" in bright cyan (#00FFCC) with a blinking cursor underscore effect. Each card is a dark panel (#161B22) with 1px border in dim cyan (#1A3A3A), rounded corners (4px). Accent palette: bright green (#39FF14) for card titles in monospace bold, amber (#FFB000) for bullet markers as `>` symbols, light gray (#C9D1D9) for body text in monospace. Each card has a subtle top-left label like `// MODEL` or `// PRODUCT` in dim green (#1A4A1A).
Layout: Cards arranged in a balanced grid with equal gutters (16px). Compact spacing, information-dense. Maximize space for card content (titles and bullet points). Do NOT display score numbers or score badges — let card size and content density convey importance.
Card design: Card title in 16pt bold green monospace, subtitle in 11pt gray monospace. Bullet points with amber `>` markers, 13pt regular monospace. Thin 1px dim cyan border. Feels like a developer dashboard or terminal readout. Prioritize readable text and generous line spacing.
9:16 portrait infographic, MorningAI {YYYY-MM-DD}, {LANG} text content.
Total news items for today: {N}
News cards (display EXACTLY {N} cards):
Card 1: {Entity name} {Event subject} {Core event verb phrase}
- {Point 1}
- {Point 2}
- {Point 3}
- {Point 4}
- {Point 5}
Card 2: {Entity name} {Event subject} {Core event verb phrase}
- {Point 1}
- {Point 2}
- {Point 3}
(... list according to actual item count ...)
CRITICAL RULES:
- Each card title MUST include: Entity name + Event subject + Event description
- Display complete titles, do NOT truncate
- Do NOT display any labels like [MAJOR], [MINOR], or importance markers
- Do NOT display score numbers, score badges, or any numerical ratings on the image
- Do NOT invent items not listed
- Display ALL bullet points for each card
- Cards arranged in a grid layout (landscape orientation)
- Maximize content area — card titles and bullet points are the primary focus
- If fewer than 4 items, use more whitespace and decorative elements
- Cover header MUST include the date: "MorningAI {YYYY-MM-DD}"
{STYLE_BLOCK}
{STYLE_BLOCK} — insert the matching style block from the Style Presets section above, based on IMAGE_STYLE config (default: classic).
From the report, identify:
is_kol_voice: true, generate a KOL section image (_kol.png). NO 7+ score gate — KOL voices are scored conservatively (4-7) by design, so applying the standard gate would suppress the section image even when the report's ## KOL Voices block is populated.Cover prompt: Use the Cover Prompt Template above.
Per-type prompt: Use the Per-Type Prompt Template below.
9:16 portrait infographic, MorningAI — {Type} Updates, {LANG} text content.
Total news items: {N}
News cards (display EXACTLY {N} cards):
Card 1: {Entity name} {Event subject} {Core event verb phrase}
- {Point 1}
- {Point 2}
- {Point 3}
Card 2: {Entity name} {Event subject} {Core event verb phrase}
- {Point 1}
- {Point 2}
(... list according to actual item count ...)
CRITICAL RULES:
- Each card title MUST include: Entity name + Event subject + Event description
- Display complete titles, do NOT truncate
- Do NOT display any labels like [MAJOR], [MINOR], or importance markers
- Do NOT display score numbers, score badges, or any numerical ratings on the image
- Do NOT invent items not listed
- Display ALL bullet points for each card
- Cards arranged vertically (portrait layout), one below another
- Maximize content area — card titles and bullet points are the primary focus
- If fewer than 3 items, use more whitespace and decorative elements
- Do NOT display dates in the header or title — per-type images use "MorningAI — {Type} Updates" only, without any date
{STYLE_BLOCK}
Adjust the style header text to "MorningAI — {Type} Updates" when using the preset.
Removed. All reports now use Cover (9:16) + Per-Type Sections (9:16) + stitch for the combined report image. Social platforms use the individual images directly.
Image generation produces individual images + a combined long image:
Important: The cover image must always exist as a separate file (
news_infographic_YYYY-MM-DD.png). Do NOT skip cover generation even when producing a combined image.
Social posting uses the individual images directly (cover + sections), NOT the combined long image. See Output Specs > Social Posting for platform limits.
If only 1-2 qualifying items exist, the cover still generates with extra whitespace. Per-type sections are skipped for types with no 7+ items.
Manifest example:
[
{"prompt": "<cover prompt>", "output": "news_infographic_YYYY-MM-DD.png"},
{"prompt": "<model section>", "output": "news_infographic_YYYY-MM-DD_model.png"},
{"prompt": "<product section>", "output": "news_infographic_YYYY-MM-DD_product.png"}
]
Follow the Image Strategy section above — generate cover + per-type sections + stitch combined.
Option A — Native tool (if supported): Generate each image using your tool's built-in capability, then stitch.
Option B — Python script (default, recommended):
Build a manifest JSON and run with --stitch:
cd {SKILL_DIR} && python3 skills/gen-infographic/scripts/gen_infographic.py --batch {CWD}/manifest.json --stitch
All images are 9:16 portrait. Requires
pip install Pillow. Produces individual images +news_infographic_YYYY-MM-DD_combined.png.
For each generated image:
[MAJOR], [MINOR] or similar labels displayedWhen valid news items < 4, do NOT pad with fake content:
| Item Count | Layout Strategy |
|---|---|
| 1 item | Centered large card + "Today's Highlight" label + whitespace and decorative elements |
| 2 items | Left-right symmetric or top-bottom stacked |
| 3 items | Three-column even or pyramid layout |
| 4-5 items | Standard grid layout |
Core principle: prefer whitespace over fabrication.
--lang parameter)MorningAI YYYY-MM-DD). Per-type section images must NOT include any date — use MorningAI — {Type} Updates only.{LANG} — substitute with the full language name: "English" (default), "Chinese", "Japanese", etc., based on the --lang parameter[MAJOR]/[MINOR] labels in Prompt