AGENT SKILL

gen-infographic

Generate cover and per-type infographics for MorningAI

License 许可
Apache-2.0
最近更新
2026-11-11
Stars
★ 1.6k
Forks
474

01 前言 Front Matter

name
gen-infographic
version
1.3.0
description
Generate cover and per-type infographics for MorningAI

02 资源文件 3

03 SKILL.md 正文

Objective

Generate multiple infographics for the daily report:

  1. Cover infographic — top 4-5 updates across all types
  2. Per-type infographics — one for each type that has important (7+) items

Output Specs

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
  • Cover is always generated first as a standalone image — even if no per-type sections qualify. Do NOT skip or merge the cover into a combined-only flow
  • Per-type sections use 9:16 portrait format
  • Combined image: Cover + sections stitched vertically — used for embedding in the Markdown report
  • Format: PNG

Social Posting (multi-image, no combined)

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_TYPES config: 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 like model,product.


Title Format Specification

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

Title Examples

✅ Correct Examples:

  • NVIDIA Alpamayo Releases Open-Source Autonomous Driving VLA Model
  • Cursor Closes $900M Series B Funding
  • Midjourney V7 Officially Launches

❌ Incorrect Examples:

  • Alpamayo 1 (missing entity name and event)
  • NVIDIA Alpamayo (missing event description)
  • Open-source autonomous driving model released (missing entity name)

Content Detail Rules

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!


Style Presets

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 Magazine

Style: 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 Mode

Style: 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 Glass

Style: 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 Newsprint

Style: 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 / Hacker

Style: 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.

Prompt Template

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).


Usage Instructions

1. Determine Images to Generate

From the report, identify:

  • Cover: Top 4-5 items across all types by score
  • Per-type: For each type (Model/Product/Benchmark/Funding), check if it has 7+ score items. If yes, generate a per-type image.
  • KOL: If ≥1 item has 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.

2. Build Prompts

Cover prompt: Use the Cover Prompt Template above.

Per-type prompt: Use the Per-Type Prompt Template below.

Per-Type Prompt Template

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.

Combined Prompt Template — not used

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 Strategy

Image generation produces individual images + a combined long image:

  1. Cover (9:16 portrait): Top 4-5 items across all types — always generated first as a standalone file
  2. Per-type sections (9:16 portrait): One for each type with 7+ score items
  3. Combined (long vertical): Cover + sections stitched vertically — for Markdown report embedding

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"}
]

3. Generate Images

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.

4. Post-generation Verification (required)

For each generated image:

  • Check card count equals N
  • Verify each card title includes complete three elements
  • Check if titles are truncated
  • Confirm no unprovided content
  • Confirm no [MAJOR], [MINOR] or similar labels displayed
  • Confirm no score numbers or score badges are displayed
  • If issues found, regenerate or manually correct

5. Insert into Report

  • Cover image: at report beginning
  • Per-type images: at the top of each type section

Handling Few Updates

When 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.


Notes

  • Title uses "MorningAI", news content in the target language (default: English, follows --lang parameter)
  • Date display rule: Only the cover image header includes the date (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
  • Strictly generate based on actual item count, do not force 4-5 items
  • Do NOT use [MAJOR]/[MINOR] labels in Prompt
  • Use card size and point count to reflect importance differences
  • Insert image into report Markdown beginning after generation
  • Popular Model Blocklist: unless explicitly in report, do not include models/products not in the report

04 同仓库更多 Skills

hashgraph-online
hashgraph-online/awesome-codex-plugins

migrate-to-e2e

Moves an existing Playwright, Cypress, Selenium, Appium, Detox, Maestro, or TesterArmy suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for /migrate-to-e2e, "migrate our tests to e2e", "port these Maestro flows", "move our TesterArmy tests", or when a project has an e2e config and an older suite still running.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

e2e

Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has an e2e.config.ts, when asked for end-to-end, browser, mobile, or agentic UI tests, to check a change in the running app, to QA or bug bash an app or branch, or when an e2e run fails.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

create-verification-skill

Generate a project-local verify-<app> skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for /create-verification-skill, "make a verification skill for this repo", or when a project has no scripted way to prove UI behavior.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

deja-search

deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

deja-reflect

End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

revid

Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.

图像与多媒体Skill与智能体开发
★ 1.6k