aibi-dashboards: theme/color guidance, audit fixes, runnable example#561
Open
QuentinAmbard wants to merge 3 commits into
Open
aibi-dashboards: theme/color guidance, audit fixes, runnable example#561QuentinAmbard wants to merge 3 commits into
QuentinAmbard wants to merge 3 commits into
Conversation
added 3 commits
June 10, 2026 16:12
A larger polish pass on the dashboard skill, validated by deploying the worked example end-to-end against synthetic data on field-eng. Theme & color (SKILL.md): - Rename theme section "Theme & Color (always set this — it makes or breaks the dashboard)" - Palette-design rules: one coherent family, semantic colors pinned as literal hex, non-categorical widget coloring, pastel-tweak guidance - Adjacent-stop contrast rule: viewer must distinguish neighboring categories - "Single-color faded toward white" is a quantitative ramp, not a categorical palette - 8 starter palettes (bare hex, no names) - Fix: positions are 0-indexed (was incorrectly documented as 1-indexed everywhere) - Default theme matches the live Customer Support warm-sunset palette Widget docs (audit findings from 4 real dashboards): - frame.description / showDescription documented - Value formatting: number-plain, currencyCode, suffix, formatTemplate; MEASURE() + plain "number" format warning - Pie: label.show - Symbol-map: bubble-map encouragement, colorRamp modes (scheme enum + custom-sequential as preferred), mark.opacity - Heatmap: axis.hideTitle - Forecast-line: 3-CTE (actuals / bridge / forecast) pattern explained, with the explicit column-list UNION ALL that avoids NUM_COLUMNS_MISMATCH Worked example (4-examples.md): - Full incident narrative in the header: "Product release 4.1" spike story - Forecast chart vertical-line annotation at the release date - Reopen rate measure outputs 0-1 (was 0-100) so number-percent format renders correctly - queryLines lines use explicit \n (was relying on trailing whitespace) - Theme matches the live customer-support dashboard - Symbol-map colorRamp uses family-aligned gradient (coral → mint) - Semantic colors (SLA breach, critical cells) pinned as literal hex Runnable verification harness (.tests/): - generate_test_data.py: databricks-connect script that seeds main.dashboard_skill_test.support_cases with 5000 rows of synthetic data including a 700-row post-release spike around 2026-02-16, biased toward Critical/High priorities + slower resolution + higher reopen — so the dashboard's incident story is grounded in actual data - dashboard.lvdash.json: portable dashboard JSON (bare FROM support_cases) - create_dashboard.py: pushes the JSON via Lakeview SDK with sidecar .dashboard_id for idempotent redeploys (avoids slow lakeview.list() on large workspaces) - README + .gitignore Co-authored-by: Isaac
…idgets - Palette-design rules in SKILL.md compressed from 8 bullets to 4 punchier ones; same content, less prose - Move Symbol Map from 2-advanced-widget-specifications.md to 1-widget-specifications.md — it's the most-recommended widget when geo data is present, so it belongs alongside counter/table/bar/pie, not in the "advanced" file - Update widget-index links in SKILL.md and version table in file 1 Co-authored-by: Isaac
13 of 20 entries pointed at wrong lines (drift from earlier section
additions + symbol-map move). Recomputed against current files and
reordered the table so widgets within each file appear in document
order:
file 1: text → counter → table → bar/line → pie → symbol-map
file 2: area → scatter → combo → choropleth → forecast → pivot
→ histogram → sankey → heatmap → funnel → box → waterfall
file 3: filter-* → range-slider
Also fills in the missing line number for symbol-map (L451).
Co-authored-by: Isaac
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A larger polish pass on the dashboard skill, validated end-to-end by deploying the worked example against synthetic data on
e2-demo-field-engand visually inspecting the result.Live test dashboard: https://e2-demo-field-eng.cloud.databricks.com/dashboardsv3/01f164c9a2fb1700a60fb84c447a262e
What changed
Theme & color (SKILL.md)
Widget docs (audit findings from 4 real dashboards)
frame.description/showDescriptiondocumentednumber-plain,currencyCode,suffix,formatTemplate; MEASURE() + plain"number"format warninglabel.showcolorRampmodes (scheme enum +custom-sequentialas preferred),mark.opacityaxis.hideTitleactuals/bridge/forecast) pattern explained, with the explicit column-listUNION ALLthat avoidsNUM_COLUMNS_MISMATCHWorked example (4-examples.md)
vertical-lineannotation at the release date (coral)number-percentrenders correctlyqueryLineslines use explicit\n(was relying on trailing whitespace)colorRampuses family-aligned gradient (coral → mint)Runnable verification harness (
.tests/)generate_test_data.py: databricks-connect script that seedsmain.dashboard_skill_test.support_caseswith 5000 rows of synthetic data including a 700-row post-release spike around 2026-02-16, biased toward Critical/High priorities + slower resolution + higher reopen — so the dashboard's incident story is grounded in actual datadashboard.lvdash.json: portable dashboard JSON (bareFROM support_cases)create_dashboard.py: pushes the JSON via Lakeview SDK with sidecar.dashboard_idfor idempotent redeploys (avoids slowlakeview.list()on large workspaces).gitignoreTest plan
python .tests/generate_test_data.py→ 5000 rows written, sanity-check KPIs non-degeneratepython .tests/create_dashboard.py→ dashboard renders all widgetsUNIONcolumn-mismatch errors that surfaced during the first deploy are fixed in this PR)This pull request and its description were written by Isaac.