hive.chart-creation-foundations
Required reading whenever any chart_* tool is available. Teaches the one-tool embedding contract (call chart_render → live chart appears in chat AND a downloadable PNG lands in the queen session dir), the ECharts (data viz) vs Mermaid (structural diagrams) decision, the BI/financial-grade aesthetic…
Install / Use
npx skills add aden-hive/hive --skill chart-creation-foundationsInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of hive.chart-creation-foundations
hive.chart-creation-foundations scores 94/100 on our quality scale, 93rd of 688 AI & Machine Learning skills we index (top 14%).
Its SKILL.md is 9.1 KB long, well organised into 15 sections with 3 code examples: a thorough specification that gives an agent plenty to work with.
With 11,072 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 12 days ago, so hive.chart-creation-foundations is actively maintained.
- It is released under the Apache-2.0 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.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
hive.chart-creation-foundations compared with similar skills
All 4 of these similar skills score higher than hive.chart-creation-foundations; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| hive.chart-creation-foundations (this skill)by aden-hive | 94 | 11.1k | 12d ago | SKILL.md |
| claude-memby thedotmack | 100 | 94.7k | today | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 84.2k | 14d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.8k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install hive.chart-creation-foundations?
- Run
npx skills add aden-hive/hive --skill hive.chart-creation-foundations. The install tabs above show the steps for each supported agent. - Which AI agents does hive.chart-creation-foundations 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 hive.chart-creation-foundations safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is Apache-2.0-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 hive.chart-creation-foundations still maintained?
- The repository was last updated 12 days ago, so hive.chart-creation-foundations is actively maintained.
Skill content
View source on GitHubname: hive.chart-creation-foundations description: Required reading whenever any chart_* tool is available. Teaches the one-tool embedding contract (call chart_render → live chart appears in chat AND a downloadable PNG lands in the queen session dir), the ECharts (data viz) vs Mermaid (structural diagrams) decision, the BI/financial-grade aesthetic baseline (no chartjunk, restrained palette, proper typography, single message per chart), and the canonical spec patterns for the 12 most-common chart types. Skipping this leads to 1990s-Excel charts, missing downloads, and the agent writing markdown image links by hand instead of letting chart_render drive the UI. metadata: author: hive type: preset-skill version: "1.0"
Chart creation foundations
These tools render BI/financial-analyst-grade charts and diagrams that show up live in the chat AND save as high-DPI PNGs in the user's queen session dir.
The embedding contract — one rule
To put a chart in chat, call
chart_render. The chat readsresult.specand renders the chart live in the message bubble. The download link isresult.file_url. Do not writeimage markdown by hand — the tool's result drives the UI.
That's it. One tool call, one chart in chat, one file on disk. No two-step "remember to also save it" pattern. The chat's chart-rendering UI is fed by the tool result envelope automatically.
When to chart at all
Chart when the data is visual at heart: trends over time, distributions, comparisons across categories, hierarchies, flows, geo. Skip the chart when:
- The point is one number → just say it. ("Revenue was $4.2M, up 12% YoY.")
- The point is a ranking of 5 things → use a markdown table with bold and emoji indicators.
- The data is so noisy a chart would mislead → describe the takeaway in prose.
A chart costs the user attention. It must repay that cost with a takeaway they couldn't get from prose.
ECharts vs Mermaid — the picking rule
| Use ECharts (kind: "echarts") when... | Use Mermaid (kind: "mermaid") when... |
|---|---|
| You're plotting numbers over categories or time | You're showing structure, not data |
| Bar / line / area / scatter / candlestick / heatmap / treemap / sankey / parallel coordinates / calendar / gauge / pie / sunburst / geo map | Flowchart / sequence / gantt / ERD / state diagram / mindmap / class diagram / C4 architecture |
| The viewer's question is "how much / how many / what's the trend" | The viewer's question is "what calls what / what depends on what / what happens after what" |
If both fit (rare), prefer ECharts — its rasterized output is a proper data chart for slides; Mermaid's diagrams are for technical docs.
The aesthetic baseline (non-negotiable)
These are the rules that turn an Excel-default chart into a Tableau-grade one. Every chart you produce must follow them.
1. Theme & background
chart_renderhas nothemeparameter. The renderer reads the user's UI theme from the desktop env (HIVE_DESKTOP_THEME) so the saved PNG matches what the user is actually looking at. You don't pick; the system does.- Title goes in
option.title.text, NOT in the message body. The chart is self-contained.
2. Palette discipline — DO NOT set color on series
The OpenHive ECharts theme is auto-applied to every chart_render call. It defines:
- An 8-hue categorical palette for multi-series charts (honey orange, slate blue, sage, terracotta, bronze, indigo, olive, rust)
- Cozy spacing (
grid.top: 90,grid.bottom: 56, etc.) - Brand typography (Inter Tight)
- Tasteful axis lines + dashed gridlines
Do not set option.color, option.title.textStyle, option.grid, or option.itemStyle.color on series. The theme covers it. If you do override, you'll fight the brand palette and the chart will look generic.
When you need data-encoded color (NOT category color):
- Sequential (magnitude): use
visualMapwithinRange.color: ['#fff7e0', '#db6f02'](light-to-honey) - Diverging (positive/negative): use
visualMapwithinRange.color: ['#a8453d', '#f5f5f5', '#3d7a4a'](terracotta/neutral/sage) - Semantic up/down (candlestick is auto-themed): for explicit gain/loss bars use
#3d7a4a(gain) and#a8453d(loss), NOT#27ae60/#e74c3c.
3. Typography
The default font (-apple-system, "Inter Tight", system-ui) is already wired in the renderer — don't override unless the user asked. Set option.textStyle.fontSize: 13 for body labels, 16 for axis names, 18 bold for the title.
4. No chartjunk
- No 3D. Ever. 3D pie charts and 3D bar charts are visual lies.
- No drop shadows on bars or lines. The default flat ECharts look is correct.
- No gradient fills unless the gradient encodes data (e.g. heatmap fill).
- No neon colors. Saturation belongs on highlighted bars, not on every series.
- No more than 5 stacked colors in a stacked bar — past that the eye can't separate them.
5. Axis hygiene
- X-axis labels rotate 45° only when they overflow. Otherwise horizontal.
- Y-axis starts at 0 for bar/area charts (truncating misleads). Line charts can start at min - 5%.
- Use
option.yAxis.axisLabel.formatter: '{value} M'to add units, NOT a separate "USD millions" subtitle. - Date axes: pass ISO strings (
"2024-01-15") and ECharts handles the layout. UsexAxis.type: "time".
6. One message per chart
Every chart goes in its own assistant message (or its own chart_render call). Do not pile 4 charts into one wall of tool calls — the user can't focus and the chat gets noisy.
Calling chart_render — the canonical pattern
chart_render(
kind="echarts",
spec={
"title": {"text": "Q4 revenue by region", "left": "center"},
"tooltip": {"trigger": "axis"},
"xAxis": {"type": "category", "data": ["NA", "EU", "APAC", "LATAM"]},
"yAxis": {"type": "value", "axisLabel": {"formatter": "${value}M"}},
"series": [{"type": "bar", "data": [12.4, 8.7, 5.3, 2.1], "itemStyle": {"color": "#db6f02"}}]
},
title="q4-revenue-by-region",
width=1600, height=900, dpi=300
)
Returns:
{
"kind": "echarts",
"spec": {...echoed...},
"file_path": "/.../charts/2026-04-30T...q4-revenue-by-region.png",
"file_url": "file:///.../q4-revenue-by-region.png",
"width": 1600, "height": 900, "dpi": 300, "bytes": 142318,
"title": "q4-revenue-by-region", "runtime_ms": 287
}
The chat panel reads result.spec and mounts ECharts in the message bubble. The user sees the chart immediately. The PNG is on disk and the chat shows a download link from result.file_url. You don't write that link — it appears automatically.
The 12 chart types you'll use 95% of the time
| When | ECharts type | Notes |
|---|---|---|
| Trend over time | series.type: "line" | Smooth = smooth: true only when data is noisy |
| Multi-metric trend | Two line series with yAxis: [{}, {}] | Separate scales when units differ |
| Category comparison | series.type: "bar" | Sort by value descending, not alphabetically |
| Stacked composition | bar with stack: "total" | Cap at 5 categories |
| Distribution | series.type: "boxplot" or bar of bins | Boxplot for ≥3 groups; histogram for one |
| Two-variable correlation | series.type: "scatter" | Add regression markline if relevant |
| Candlestick / OHLC | series.type: "candlestick" | Date axis + dataZoom range slider |
| Geo distribution | series.type: "map" | Bundled world and country GeoJSONs |
| Hierarchy / share | series.type: "treemap" or sunburst | Use treemap for >12 leaves; pie only for 2-5 |
| Flow | series.type: "sankey" | Names matter — keep them short |
| Calendar density | series.type: "heatmap" + calendar | Daily metrics over a year |
| KPI scorecard | series.type: "gauge" | Set min, max, threshold band |
Worked specs for each are in references/ — paste, modify, render.
Mermaid quick rules
chart_render(
kind="mermaid",
spec="""
flowchart LR
A[Customer signs up] --> B{Onboarded?}
B -- yes --> C[Activate trial]
B -- no --> D[Email reminder]
""",
title="signup-flow"
)
- One diagram per chart_render call.
- Keep node labels short (≤20 chars).
- Use
flowchart LRfor left-to-right;TDfor top-down. LR reads better in a chat bubble. - For sequence diagrams, indicate async with
->>(open arrow) and sync return with-->>(dashed). - Don't try to encode data in mermaid (no widths, no quantities) — that's an ECharts job.
Common mistakes the agent makes
- Writing
markdown by hand. Don't. The chat renders from the tool result automatically. Manual image markdown will display nothing (file:// is blocked from arbitrary chat content). - Calling chart_render twice for the same chart "to embed and to save". Only one call. The single call does both.
- Overriding fonts to fancy display faces. Stay with the default; the agent's job is data, not typography.
- Pie charts with 12 slices. Use a horizontal bar chart sorted by value. Pie is only for 2-5 mutually-exclusive shares.
- Forgetting
axisLabel.formatterfor currency / percentage. A y-axis showing "12000000" is unreadable; "12M" is correct. - Putting a chart's title in the message body. Set
option.title.textinstead so the title is part of the saved PNG.
Related Skills
claude-mem
94.7kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Understand-Anything
84.2kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
73.8kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
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.
