Hive.Chart Creation Foundations logo

Hive.Chart Creation Foundations

OrganizationPopular
aden-hive
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 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.

Overview

Publisheraden-hive
Repositoryhive
Skill namehive.chart-creation-foundations
Stars
11.1K
Forks
5.7K
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by aden-hive on GitHub. Read the source before you install it.

Installation

Install the Hive.Chart Creation Foundations AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/aden-hive/hive.git /tmp/hive
mkdir -p .claude/skills
cp -r /tmp/hive/core/framework/skills/_preset_skills/chart-creation-foundations .claude/skills/hive.chart-creation-foundations
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Hive.Chart Creation Foundations in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Hive.Chart Creation Foundations on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Hive.Chart Creation Foundations is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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 reads result.spec and renders the chart live in the message bubble. The download link is result.file_url. Do not write ![chart](...) image 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 timeYou're showing structure, not data
Bar / line / area / scatter / candlestick / heatmap / treemap / sankey / parallel coordinates / calendar / gauge / pie / sunburst / geo mapFlowchart / 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_render has no theme parameter. 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 visualMap with inRange.color: ['#fff7e0', '#db6f02'] (light-to-honey)
  • Diverging (positive/negative): use visualMap with inRange.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. Use xAxis.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

WhenECharts typeNotes
Trend over timeseries.type: "line"Smooth = smooth: true only when data is noisy
Multi-metric trendTwo line series with yAxis: [{}, {}]Separate scales when units differ
Category comparisonseries.type: "bar"Sort by value descending, not alphabetically
Stacked compositionbar with stack: "total"Cap at 5 categories
Distributionseries.type: "boxplot" or bar of binsBoxplot for ≥3 groups; histogram for one
Two-variable correlationseries.type: "scatter"Add regression markline if relevant
Candlestick / OHLCseries.type: "candlestick"Date axis + dataZoom range slider
Geo distributionseries.type: "map"Bundled world and country GeoJSONs
Hierarchy / shareseries.type: "treemap" or sunburstUse treemap for >12 leaves; pie only for 2-5
Flowseries.type: "sankey"Names matter — keep them short
Calendar densityseries.type: "heatmap" + calendarDaily metrics over a year
KPI scorecardseries.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 LR for left-to-right; TD for 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

  1. Writing ![chart](file://...) 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).
  2. Calling chart_render twice for the same chart "to embed and to save". Only one call. The single call does both.
  3. Overriding fonts to fancy display faces. Stay with the default; the agent's job is data, not typography.
  4. Pie charts with 12 slices. Use a horizontal bar chart sorted by value. Pie is only for 2-5 mutually-exclusive shares.
  5. Forgetting axisLabel.formatter for currency / percentage. A y-axis showing "12000000" is unreadable; "12M" is correct.
  6. Putting a chart's title in the message body. Set option.title.text instead so the title is part of the saved PNG.

Frequently asked questions

What does the Hive.Chart Creation Foundations AI skill do?

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

Why use Hive.Chart Creation Foundations on TypingMind?

Because you install it once and use it with any model. Hive.Chart Creation Foundations is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Hive.Chart Creation Foundations in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/aden-hive/hive/tree/main/core/framework/skills/_preset_skills/chart-creation-foundations. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Hive.Chart Creation Foundations?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Hive.Chart Creation Foundations?

As many as you like. As long as a model supports skills, you can use Hive.Chart Creation Foundations with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Hive.Chart Creation Foundations AI skill free?

Yes. It is published on GitHub by aden-hive under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇