Source profileQuality 83/100

aden-hive/hive/core/framework/skills/_preset_skills/chart-creation-foundations/SKILL.md

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,

Source repository stars
10,849
Declared platforms
0
Static risk flags
0
Last source update
2026-05-29
Source checked
2026-08-04

Decision brief

What it does—and where it fits

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.

Best for

    Not for

    • Writing chart 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 chartrender twice for the same chart "to embed and to save". Only one call. The single call does both.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/aden-hive/hive --skill "core/framework/skills/_preset_skills/chart-creation-foundations"
    Safe inspection promptEditorial

    Inspect the Agent Skill "hive.chart-creation-foundations" from https://github.com/aden-hive/hive/blob/3c390c9e6ca3a2b141567bea986079fedbcd7db1/core/framework/skills/_preset_skills/chart-creation-foundations/SKILL.md at commit 3c390c9e6ca3a2b141567bea986079fedbcd7db1. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      The embedding contract — one rule

      To put a chart in chat, call chartrender. The chat reads result.spec and renders the chart live in the message bubble. The download link is result.fileurl. Do not write chart image markdown by hand — the tool's result drives the UI.

      To put a chart in chat, call chartrender. The chat reads result.spec and renders the chart live in the message bubble. The download link is result.fileurl. Do not write chart image markdown by hand — the tool's result d…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.
    2. 02

      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.
    3. 03

      ECharts vs Mermaid — the picking rule

      If both fit (rare), prefer ECharts — its rasterized output is a proper data chart for slides; Mermaid's diagrams are for technical docs.

      If both fit (rare), prefer ECharts — its rasterized output is a proper data chart for slides; Mermaid's diagrams are for technical docs.
    4. 04

      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.

      chartrender has no theme parameter. The renderer reads the user's UI theme from the desktop env (HIVEDESKTOPTHEME) 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.An 8-hue categorical palette for multi-series charts (honey orange, slate blue, sage, terracotta, bronze, indigo, olive, rust)
    5. 05

      1. Theme & background

      chartrender has no theme parameter. The renderer reads the user's UI theme from the desktop env (HIVEDESKTOPTHEME) so the saved PNG matches what the user is actually looking at. You don't pick; the system does.

      chartrender has no theme parameter. The renderer reads the user's UI theme from the desktop env (HIVEDESKTOPTHEME) 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.- chartrender has no theme parameter. The renderer reads the user's UI theme from the desktop env (HIVEDESKTOPTHEME) so the saved PNG matches what the user is actually looking at. You don't pick; the system does. - Titl…

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score83/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars10,849SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    aden-hive/hive
    Skill path
    core/framework/skills/_preset_skills/chart-creation-foundations/SKILL.md
    Commit
    3c390c9e6ca3a2b141567bea986079fedbcd7db1
    License
    Apache-2.0
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    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.

    Alternatives

    Compare before choosing

    Computed 10042,968

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10042,968

    coreyhaines31/marketingskills

    churn-prevention

    When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

    Computed 100165

    JasonColapietro/suede-creator-skills

    suede-ab-testing

    Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).

    Computed 1007

    narrative-io/narrative-skills-marketplace

    design-analysis

    Translate a fuzzy analytical question into a rigorous investigation plan. Interrogates the ask, grounds the plan in the available data dictionary, applies analytical best practices, and produces a structured brief of query specifications for a downstream query-writing skill. Plans, does not write SQL. Use when: "why did X drop", "is there a relationship between A and B", "who are our highest-value customers", "what's driving the change in Y", "investigate this trend", "design an analysis for", "