sn-infographic
Generates professional infographics with various layout types and visual styles. Analyzes content, recommends layout and style, and generates publication-ready infographics. Use when user asks to create "infographic", "信息图", "visual summary", or "可视化".
Install / Use
npx skills add OpenSenseNova/SenseNova-Skills --skill sn-infographicInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of sn-infographic
sn-infographic scores 87/100 on our quality scale, 837th of 2,398 Development & Engineering skills we index (top 35%).
Its SKILL.md is 32 KB long, well organised into 21 sections with 15 code examples: a thorough specification that gives an agent plenty to work with.
With 5,691 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 8 days ago, so sn-infographic is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
sn-infographic compared with similar skills
All 4 of these similar skills score higher than sn-infographic; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| sn-infographic (this skill)by OpenSenseNova | 87 | 5.7k | 8d ago | SKILL.md |
| ai-job-searchby MadsLorentzen | 100 | 44.0k | 5d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install sn-infographic?
- Run
npx skills add OpenSenseNova/SenseNova-Skills --skill sn-infographic. The install tabs above show the steps for each supported agent. - Which AI agents does sn-infographic work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is sn-infographic safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is sn-infographic still maintained?
- The repository was last updated 8 days ago, so sn-infographic is actively maintained.
Skill content
View source on GitHubname: sn-infographic description: | Generates professional infographics with various layout types and visual styles. Analyzes content, recommends layout and style, and generates publication-ready infographics. Use when user asks to create "infographic", "信息图", "visual summary", or "可视化". metadata: project: SenseNova-Skills tier: 1 category: scene priority: 9 user_visible: true triggers:
- "infographic"
- "information graphic"
- "infographics generation"
- "visual summary"
- "data visualization"
- "visual explanation"
- "diagram"
- "生成信息图"
- "信息图生成"
- "生成 infographic"
- "信息图表"
- "图表生成"
- "数据可视化"
- "图解"
sn-infographic
Info graphic generation scene skill (tier 1), relying on the sn-image-generate, sn-image-recognize, and sn-text-optimize tools provided by sn-image-base (tier 0).
Features:
- Evaluation of prompt quality (auto mode)
- Prompt expansion (force/auto mode)
- Multiple rounds of image generation and VLM review
- Output the best result based on quality ranking
Input Specification
| Parameter | Type | Default Value | Description |
|-----------|------|---------------|-------------|
| user_prompt | string | Required | Original user request. UTF-8 text; may include Markdown, URLs, or structured data. Length bounded only by the underlying LLM context budget. |
| max_rounds | int | 1 | Maximum number of generation rounds. Valid range: 1–8. When max_rounds=1, the Step 3 VLM review and the early-termination check are both skipped. |
| output_mode | string | friendly | friendly: one-line content description + rank=1 single image |
| | | | verbose: full quality ranking + timing stats + all images (ordered by rank) |
| prompts_expand_mode | string | auto | auto: evaluate user_prompt quality first; enter Step 2 expansion only when it falls short |
| | | | force: skip evaluation, always execute Step 2 expansion |
| | | | disable: skip Step 2, use user_prompt directly as expanded_prompt |
| aspect_ratio | string | inferred (16:9) | Set by Main Agent when the user states an explicit supported ratio (e.g. 16:9 / 9:16, optionally via 宽高比 / 画面比例 / aspect ratio); otherwise left unset and the Worker infers it in Step 0 from user_prompt (orientation / scene cues) per references/runtime-parameters.md. |
| image_size | string | inferred (2k) | Set by Main Agent when the user states an explicit size (2k / 4k); otherwise the Worker infers it in Step 0 (currently a single option, 2k). 4k is supported when SN_IMAGE_GEN_MODEL=sensenova-u1.5-lite; other models may reject it and the skill surfaces that error. |
Who extracts what: Main Agent parameter extraction resolves
max_rounds,output_mode,prompts_expand_mode, andaspect_ratio/image_size(each only when the user gives an explicit value).aspect_ratioandimage_sizewithout an explicit value are inferred by the Worker in Step 0.
API Configuration
All API calls in this skill are executed through the sn_agent_runner.py of the sn-image-base skill, with authentication parameters using default values (CLI > environment variables > built-in defaults),无需显式传入。
| Call Type | Tool | Authentication Parameters | Description |
|-----------|------|---------------------------|-------------|
| LLM | sn-text-optimize (evaluation/expansion) | Default reads SN_TEXT_API_KEY -> SN_CHAT_API_KEY -> SN_API_KEY | Built-in default points to Sensenova internal network service |
| VLM | sn-image-recognize (image review) | Default reads SN_VISION_API_KEY -> SN_CHAT_API_KEY -> SN_API_KEY | Built-in default points to Sensenova internal network service |
| Image Generation | sn-image-generate | Default reads SN_IMAGE_GEN_API_KEY -> SN_API_KEY; SN_IMAGE_GEN_API_KEY is only needed for image-specific override | Uses image generation configuration of sn-image-base |
When encountering MissingApiKeyError or needing to specify a model: pass explicitly via CLI parameters, parameter reference $SN_IMAGE_BASE/references/api_spec.md.
$SN_IMAGE_BASE path explanation: $SN_IMAGE_BASE is the installation directory of the sn-image-base skill (SKILL.md exists).
The agent can locate this path by skill name sn-image-base in the list of installed skills.
Architecture: Main Agent + Worker Agent
This skill uses a two-tier agent architecture:
| Role | Responsibility | |------|----------------| | Main Agent | Receive user request, normalize parameters, send preflight, start Worker, collect results, send text and images to user | | Worker Agent | Execute the generation pipeline (expand → multiple rounds of generation + review → sort), return structured JSON |
Responsibility Boundaries:
- Worker Agent does not send any messages to the user directly, only returns structured JSON
- Main Agent is responsible for sending all user-visible messages
- Worker Agent's last message must be and only be the JSON string defined in the Return Contract
- Worker Agent's internal VLM calls always execute directly, without spawning subagents
Workflow
Main Agent Workflow
-
Parameter extraction from the user request, in three passes:
-
Inline KV directives — parse tokens of the form
key=valuewherekey∈ {max_rounds,output_mode,prompts_expand_mode,aspect_ratio,image_size}; strip recognized tokens from the user message, and the remainder becomesuser_prompt. Example:"生成一张信息图 max_rounds=3 output_mode=verbose"→user_prompt="生成一张信息图",max_rounds=3,output_mode=verbose. -
Keyword recognition (case-insensitive, applied to the stripped text) — fill any parameter not yet set by inline KV using the table below:
| Parameter | Trigger keywords | Resolved value | |-----------|------------------|----------------| |
output_mode|verbose,详细,详尽,完整统计|verbose| | |friendly,简洁,精简|friendly| |max_rounds|N 轮,N rounds,重试 N 次(parseN) |N, clamped to[1, 8]| |prompts_expand_mode|强制扩写,force expand,force expansion|force| | |不扩写,跳过扩写,disable expansion,no expand|disable| |aspect_ratio| an explicit supported ratio (16:99:164:33:41:12:33:24:55:421:99:21), with or without a宽高比/画面比例/比例/aspect ratiolead-in | that ratio (validated against the supported set inruntime-parameters.md; unsupported value → leave unset for Worker inference) | |image_size| an explicit supported size (2k4k), with or without animage_size/分辨率/清晰度/image sizelead-in | that size (vague quality words like高清/超清do not count); unsupported value → leave unset for Worker inference | -
Defaults — any parameter still unset falls back to
max_rounds=1,output_mode=friendly,prompts_expand_mode=auto.aspect_ratioandimage_sizehave no Main-Agent default: when no explicit value is detected they are left unset for the Worker to infer in Step 0.
Precedence: inline KV > keyword recognition > default. Values from inline KV are validated against the Input Specification (out-of-range
max_roundsclamped to[1, 8]; unrecognized enum values fall back to default and Main Agent should log the mismatch). -
-
Send uniform preflight message:
"Using sn-infographic skill to generate infographic, please wait..." -
Start Worker Agent (Sub-Agent), passing in complete parameters and working directory
-
When Worker Agent returns
status=okandneed_main_agent_send=true:- max_rounds = 1: Generate the Text Summary (see Output Format → friendly mode for length/language rules) from
expanded_promptin the returned JSON (always present forstatus=ok, see Return Contract), send it, then send the rank=1 single image - max_rounds > 1, friendly mode: Generate the Text Summary based on the rank=1 round's
resultandviolations, send it, then send the rank=1 single image - max_rounds > 1, verbose mode: Render the verbose template (see Output Format → verbose mode for substitution rules) and send it, then send all images in rank order
- max_rounds = 1: Generate the Text Summary (see Output Format → friendly mode for length/language rules) from
-
If Worker Agent returns
status=error, report the realerrorfield content to the user
Worker Agent Workflow
Worker Agent receives user_prompt, max_rounds, prompts_expand_mode, an optional aspect_ratio and image_size (each set only when the user gave an explicit value), and the working directory of this skill (SKILL_DIR). (output_mode stays on the Main Agent side — Worker has no branch that depends on it.)
Worker Environment
Variables referenced as $NAME in the bash snippets below. Worker must bind each before the step that consumes it.
| Variable | Source | Used by |
|----------|--------|---------|
| USER_PROMPT | Main Agent input — original user request | Step 1 evaluation; Step 2.0 content analysis |
| MAX_ROUNDS | Main Agent input (default 1) | Step 3 loop bound; early-termination gate |
| PROMPTS_EXPAND_MODE | Main Agent input (default auto) | branches Step 1 |
| SKILL_DIR | Agent runtime resolves the current skill's install path (e.g. ~/.openclaw/skills/sn-infographic, ~/.hermes/skills/sn-infographic) | reads references/* |
| SN_IMAGE_BASE | Agent runtime resolves by skill name sn-image-base in the installed-skill registry | runs scripts/sn_agent_runner.py |
| TASK_ID | Step 0 (date +%Y%m%d_%H%M%S) | uniqueness token |
| TEMP_DIR | Step 0 (/tmp/openclaw/sn-infographic/${TASK_ID}) | scratch dir for all intermediate artifacts |
| IMAGE_SIZE | Main Agent input when the user stated an explicit size, else Step 0 inference from USER_PROMPT (single option, 2k) | sn-image-generate --image-size |
| ASPECT_RATIO | Main Agent input when the user stated an explicit ratio, else Step 0 inference from USER_PROMPT (default 16:9) | sn-image-generate --aspect-ratio |
| EXPANDED_PROMPT | Step 1 (copy of USER_PROMPT when Step 2 is skipped) or Step 2.3 (expanded result) | sn-image-generate --prompt |
| LAYOUT, STYLE | Step 2.1 selection result (with fallback to hub-spoke / corporate-memphis) | Step 2.3 system-prompt assembly |
| ROUND | Step 3 loop counter (for ROUND in $(seq 1 "$MAX_ROUNDS")) | per-round file naming (round_${ROUND}.png) |
Naming: $SKILL_DIR for own files; $SN_<SKILL_NAME> (e.g. $SN_IMAGE_BASE) for cross-skill references.
JSON parsing: every sn_agent_runner.py ... -o json call prints a JSON envelope on stdout ({"status", "result", "model", ...}; diagnostics go to stderr). A failed call sets status to a non-ok value (e.g. failed) and omits result, so always confirm .status == ok on the envelope before reading .result — otherwise a missing .result surfaces as the literal null, which is itself valid JSON and slips past both jq -r and extract_json.py (no error raised). The LLM's own JSON (evaluation / analysis steps) lives inside the result string and may carry stray prose or ```json fences. Before any jq, pipe the runner output through $SN_IMAGE_BASE/scripts/extract_json.py (reads stdin, prints the recovered JSON, exits non-zero when none is found); for steps that parse the inner LLM/VLM JSON, pipe .result through it as well. A non-ok status or a non-zero extract_json.py exit means the response is unusable → return the Error Flow JSON.
Step 0 — Initialization
-
Generate
task_id(timestamp, formatYYYYMMDD_HHMMSS) and create the uniform temporary directory/tmp/openclaw/sn-infographic/<task_id>/asTEMP_DIR.TEMP_DIRmust exist before any subsequent step writes to it:TASK_ID=$(date +%Y%m%d_%H%M%S) TEMP_DIR="/tmp/open
Truncated for display — read the full file on GitHub.
Related Skills
ai-job-search
44.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
