data-dashboard
Plan, review, and then assemble a stakeholder-ready dashboard package from the current analysis run, with a native interactive canvas experience.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Plan, review, and then assemble a stakeholder-ready dashboard package from the current analysis run, with a native interactive canvas experience.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Data analysis skill hub. Routes to the right specialist subskill depending on the request — exploration, query writing, end-to-end analysis, visualization, validation, dashboard planning plus assembly, or recurring snapshot refresh.
End-to-end data analysis — from a quick metric lookup to a formal stakeholder report. Combines schema discovery, SQL execution, optional visualization, and an evidence-based summary. Use for general "analyze / what's happening with…" requests.
Create, edit, redline, comment on, and visually verify `.docx`, Word, and Google Docs-targeted document artifacts. Use for Word documents, `.docx` files, document creation, document edits, tracked changes, comments, render QA, and Google Docs-ready local DOCX generation.
Create stunning, animation-rich browser-native HTML presentations. Use only when the user explicitly wants an HTML/web presentation or animated interactive browser deck. Do not use for `.ppt`, `.pptx`, PowerPoint, Google Slides, native deck creation, native deck editing, deck templates, or PPTX conversion/export requests; use the `pptx` skill for those.
Work with PDF documents safely, including querying existing PDFs and creating simple image-based PDFs from workspace images.
Research a company or person and get actionable sales intel. Start with internal context, then expand to current external research. Prefer tagged workspace files, Drive docs, Gmail history, and Sheets context before broader web research.
| name | data/dashboard |
| description | Plan, review, and then assemble a stakeholder-ready dashboard package from the current analysis run, with a native interactive canvas experience. |
| plugin | data-analytics |
| inherits_plugin_defaults | true |
| requires_hitl_plan | true |
| requires_workspace_artifacts | true |
| required_artifacts_mode | strict |
| required_artifacts | ["pattern:dashboards/*/dashboard.meta.json","pattern:dashboards/*/dashboard.spec.json","pattern:dashboards/*/data/dashboard.rows.json"] |
| tools | ["request_plan_approval","request_clarification"] |
This skill is review-first and low-variance. Before any dashboard package is generated, you must:
request_plan_approvalrun_skill_python_script with script_name="build_native_dashboard_package"Produce one workspace-native dashboard package that can power:
This skill is not a generic file bundler. Treat it as a presentation step:
Use data/dashboard after completing a data/analyze or data/visualize run when
the user asks for a shareable dashboard, interactive report, or wants to bundle all
charts into a single file.
dashboard_dataset_path, filter_schema, and chart_bindings.data/dashboard.rows.json is written.build_native_dashboard_package should only be called once per approved dashboard plan.The dashboard script renders from workspace-local data or an inline approved row set. For BigQuery or other connected sources, first query a scoped, read-only slice through MCP and create or use a canonical workspace dataset. The generated dashboard itself does not make live warehouse connections.
If the user is asking for a genuinely filterable dashboard, do not guess past missing inputs that would change the implementation.
This skill should behave like frontend-slides: when key dashboard inputs are missing, call request_clarification and pause instead of silently continuing.
Call request_clarification when one or more of these are missing or ambiguous:
Do not interrupt for routine dashboard generation when a static/shareable dashboard is sufficient.
Use clarification especially in cases like:
Ask all material dashboard questions in a single request_clarification call so the user can answer in one step, similar to the frontend-slides discovery flow.
Preferred questions:
Mode
Question: Which reusable dataset should back the native dashboard, or should I materialize one first?
Options:
Use tagged datasetMaterialize dataset firstDataset
Question: Which dataset should power shared filters? If you already tagged one, confirm that path; otherwise provide the canonical dataset path.Time field
Question: Which date/time field should drive timeframe filtering?Filters
Question: Which fields should users filter by? Name the main categorical and numeric filters you want exposed.Preferred clarification framing:
Example clarification description:
I can build the native dashboard once we have a canonical dataset and the fields to filter on.When the user tags a report HTML for story guidance, do not read the full raw HTML into context unless absolutely necessary.
Use these rules:
.html report files as reference artifacts, not primary context dumpsknowledge_search for published knowledge; otherwise use compact outline extractionIf the report is large, extract only the minimum needed story elements:
For tagged local parquet/csv dashboards, prefer a deterministic prep path over open-ended exploration.
Do not rediscover upstream tables or rerun exploratory profiling when the tagged local dataset is already sufficient.
Pass structured chart bindings directly to build_native_dashboard_package.
Source handling:
data_workspace for schema inspection and bounded
preview queries before package generation.99999 to 99.99
or replacing a future date). If a value appears invalid, report it as a data-quality issue.data_quality_notes; otherwise keep the original value and its provenance.Before generating the dashboard, review the current run and be selective.
Use these chart-quality rules:
Decide and write down:
Your plan must also include:
The final dashboard should feel like:
Before calling build_native_dashboard_package, call request_plan_approval.
Use:
plan_title: the proposed dashboard titleplan_summary or plan_summary_markdown: concise dashboard brief with:
execution_checklist: the concrete build steps you will take after approvalplan_file_path: dashboard_plan.mdstatus_label: Review Dashboard Planrisky_actions: mention any risk of weak proxy metrics, static-only charts, or missing fieldsIf the reviewer chooses:
approve: continue to generationedit: revise the dashboard plan and call request_plan_approval againreject: stop and do not generate the dashboardDo not call build_native_dashboard_package before approval.
Good section titles:
Weak section titles to avoid:
Call run_skill_python_script with script_name="build_native_dashboard_package" and a JSON request containing:
title: the dashboard heading.description: the context paragraph.audience: the primary audience for the dashboard.business_question: the core business question.decision_questions: 1-3 concrete questions/decisions the dashboard supports.layout_template: the approved executive layout template.headline_takeaway: optional hero takeaway.insights: 2-4 concise executive takeaways.known_risks: key caveats or proxy-metric risks.data_quality_notes: normalization and data quality notes.section_titles: ordered list of polished section headings, one per chart. Do not pass
raw file names or generic placeholders.metric_cards (optional): 2-3 explicit KPI cards for the hero area.dashboard_dataset_path or rows: a canonical Parquet/CSV/JSON dataset materialized
for this run, or an approved inline row set.filter_schema: structured filter definitions describing field, label, type,
options, presets, and applicability.chart_bindings: per-chart bindings that map charts to dataset fields and
aggregations so the native canvas can render from the same spec and row file.
Include question_answered, why_it_matters, and layout metadata on the main path.sections (optional): named chart groups with chart_indexes to control narrative flow.chart_tags (optional): tags aligned to chart order so controls can filter charts by theme
or audience.Invoke the builder exactly once. Pass the complete request JSON directly in that invocation
using --request-json; do not first call the builder with a workspace request-file path and
then retry with inline JSON.
The script will:
dashboards/<slug>/.dashboard.meta.jsondashboard.spec.jsondata/dashboard.rows.jsonruntimeKind: "native" and version: 2.dataset.previewPath to dashboards/<slug>/data/dashboard.rows.json.{ "rows": [...] }.dashboard_artifact event so the frontend can surface the dashboard folder.dashboard.snapshot.html.After the script returns:
The resulting dashboard package:
data/dashboard.rows.json; do not generate or depend on a snapshot HTML file.Filtering is required for dashboards.
filter_schema and chart_bindingsbuild_native_dashboard_package yetdata/dashboard.rows.jsonwrite_file to create canonical dashboard datasets. Use data scripts or approved exports instead.data/dashboard.rows.json.dashboards/ directory is separate from charts/ and reports/.