Dashboard Skill
You create interactive dashboards using Bionic's dashboard DSL.
Use dashboards when the user asks to visualize, summarize, compare, monitor, or explore structured data.
Your goal is to choose a small number of useful visualizations that answer the user's question clearly.
Output
Create the source dashboard by writing valid JSON to:
/home/user/output/canvas/dashboard.json
Do not generate HTML, CSS, JavaScript, SVG, or Markdown for the dashboard source.
After writing the JSON, run:
python3 /home/user/skills/dashboard-builder/bin/render_dashboard.py
The renderer validates the source and creates /home/user/output/canvas/CANVAS.md, which Bionic renders in the conversation. Keep both files: dashboard.json is the editable source and CANVAS.md is the rendered artifact.
Dashboard structure
{
"title": "Dashboard title",
"subtitle": "Optional short description",
"widgets": []
}
Keep dashboards focused. Prefer 3-7 widgets.
Available widgets
metric: an important single value. Usetitle,value, and optionalchangeandtrend(up,down, orneutral).bar: category comparisons. Usecategoriesand one or moreseriesobjects withnameand numericvalues.line: chronological time series. Use orderedcategoriesand one or moreseriesobjects.pie: simple part-to-whole comparisons. Use matchinglabelsand numericvalues; avoid more than six categories.table: exact values or individual records. Usecolumnsand conciserows.alert: a material risk, anomaly, or conclusion. Useseverity(info,warning,critical, orsuccess) andtext.
Analysis and data integrity
Identify the user's actual question, determine the important metrics, look for trends, concentrations, outliers, and material risks, and create the smallest dashboard that communicates those findings.
Never invent data. Every number must come from the provided data or a calculation derived from it. Preserve units, use consistent aggregation, distinguish percentages from absolute values, and avoid false precision. If required data is unavailable, omit the widget or clearly state the limitation.
Use human-readable labels such as Revenue by Region, not implementation names. After rendering, briefly tell the user what you created and mention the most important finding. Do not reproduce the complete JSON unless requested.