datus-ai/datus-agent/bi-validation
- community
Checking that the SKILL.md file is still in the repository.
BI validator driven by ValidationHook — inspects every dashboard, chart, and dataset delivered in the run, verifies config quality (chart type, metrics, dimensions, dataset wiring) and data presence via get_chart_data when supported
Install
npx vskill@latest install datus-ai/datus-agent/bi-validationSKILL.md
BI Validation
Driven by ValidationHook.on_end for gen_dashboard runs. The hook passes a SessionTarget containing every DashboardTarget / ChartTarget / DatasetTarget the run delivered. Iterate them and run the checks below.
Target shape
You receive SessionTarget.targets — loop over each entry and dispatch on type:
dashboard→ inspect chart list viaget_dashboard/list_chartschart→ inspect config viaget_chart; if supported, runget_chart_datadataset→ verify fields viaget_dataset
Layer A (the builtin hook) has already confirmed each resource exists and is reachable — skip existence checks and focus on config correctness and data presence.
Publish success criteria
A dashboard publish is complete when:
get_dashboardreturns the dashboard- the expected chart ids / names are present in
get_dashboardorlist_charts - every chart can be inspected with
get_chart - supported
get_chart_datacalls return data or a valid empty result without backend errors - known values match expected results or tolerances
When these criteria pass, return PASS and stop. Treat additional styling or structural changes as a separate request unless a concrete failing check is present.
Core workflow
For every target in the session:
- Dashboard targets: call
get_dashboard(dashboard_id)to retrieve the
chart list. For each chart on the dashboard call get_chart and inspect config (step 2). When get_chart_data is supported, validate data (step 3).
- Chart targets (standalone or from step 1): verify
chart_type,
metrics, x_axis, dimensions, dataset_id against the intended design.
- Data presence: when
get_chart_datais supported, call it on every chart
to confirm the chart returns data without backend errors. Compare numeric values against expected tolerances when expectations are available.
- Dataset targets: call
get_dataset(dataset_id)to verify schema / SQL /
column definitions.
- Remediation planning:
- only propose or perform a follow-up change for a specific failed
configuration or data check
- prefer the smallest supported update for fields the platform can modify
(title, chart_type, metrics, x_axis, description, platform SQL)
- for unsupported wiring changes, report the exact mismatch and required
follow-up action for the main agent / user
- if the publish success criteria already pass, return PASS instead of
planning follow-up changes
- Return a compact pass / fail report covering every target.
IMPORTANT: Every chart on the dashboard must pass configuration inspection with get_chart. Data validation with get_chart_data is mandatory when that tool is supported on the active platform. If get_chart_data is unavailable, mark the data check as unsupported / N/A and validate configuration plus reference SQL or known expectations instead.
Platform notes
- Superset: confirm dashboard reachability, chart count, chart type, metric expressions, group-by dimensions, and runtime query success. Use
get_chartandget_chart_datafor every chart. Compare exact numeric values where expectations are known. - Grafana: confirm dashboard reachability, panel count, panel type, datasource wiring, and panel SQL against the materialized tables. Use
get_chartwithdashboard_idfor every panel.get_chart_datais not available in Grafana yet, so configuration validation is mandatory and the data check should be reported as unsupported / N/A unless a separate reference query is available.
Configuration inspection checklist (per chart)
When calling get_chart for each chart, verify these fields:
| Field | Check | |
|---|---|---|
chart_type | Matches intended visualization (bar, pie, big_number, line, table, etc.) | |
metrics | Correct aggregation expressions (COUNT, SUM, AVG, etc.) | |
x_axis | Correct column for the horizontal axis (bar/line charts) | |
dimensions | Correct grouping columns (pie charts, grouped bar charts) | |
dataset_id | Points to the correct dataset |
If title, chart_type, metrics, x_axis, description, or platform-specific SQL is wrong, fix it with update_chart when the tool supports that change. If dimensions, dataset_id, or unsupported wiring is wrong, report the mismatch and the required follow-up action.
Publish verification checklist
After a BI publish, run this checklist:
- Call
get_dashboardto confirm the dashboard is reachable and to retrieve
the full chart list.
- For every chart on the dashboard:
- call
get_chartto inspect configuration (chart_type,metrics,
x_axis, dimensions, dataset_id)
- verify each configuration field matches the intended design
- if
get_chart_datais supported on the active platform, call it to
confirm the chart returns data without backend errors
- verify key numeric values match expected results or tolerances when
those expectations are available
- if
get_chart_datais not supported, record the data check as
unsupported / N/A and rely on configuration inspection plus reference SQL or known expectations
- If any chart fails validation:
- use
update_chartonly for fields the tool actually supports - recreate the chart or panel when the issue is
dimensions,dataset_id,
or another unsupported wiring change
- Report both absolute and relative differences when possible.
- Block rollout when any chart fails configuration or supported data
validation.
Do not skip any charts. get_chart_data is required for every chart only on platforms that actually expose it.
Output expectations
For each chart, report:
| Column | Description | |
|---|---|---|
| Chart ID | The chart identifier | |
| Chart Name | Human-readable title | |
| Config Check | PASS if get_chart fields match design, FAIL + reason otherwise | |
| Data Check | PASS if get_chart_data succeeds and expected values match when available; N/A when the platform does not support get_chart_data; FAIL + reason otherwise |
Final summary: total charts, passed, failed, overall PASS/FAIL decision.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdatus/resources/skills/bi-validation/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/datus-ai/datus-agent/bi-validation)