| name | bi-validation |
| description | 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 |
| tags | ["bi","dashboard","publish","validation","metrics"] |
| version | 2.0.0 |
| user_invocable | false |
| disable_model_invocation | false |
| allowed_agents | ["gen_dashboard"] |
| kind | validator |
| severity | blocking |
| mode | llm |
| targets | [] |
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 via get_dashboard / list_charts
chart → inspect config via get_chart; if supported, run get_chart_data
dataset → verify fields via get_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_dashboard returns the dashboard
- the expected chart ids / names are present in
get_dashboard or list_charts
- every chart can be inspected with
get_chart
- supported
get_chart_data calls 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_data is 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.