# Vibe Tracks · track overview dashboard

Vibe Tracks' home as one dashboard: every real track with its headline KPI and history, the check runs rolled up
through child tracks, and the newest runs. Three linked datasets in one `.base` file; one rail for all of them; a click
on a card, a bar or a track narrows every panel.

- **App:** Vibe Tracks
- **Replaces:** the home's track rows and KPI tiles (`vibetracks~/views.js`, `cards.js`, `kpi-panel.js`)
  and the hand-written roll-up in `vt state` (`rollup`), for reading; Vibe Tracks keeps computing its own state.
- **Shows:** `layout:` placing a text block, a KPI strip, a tree table, a bar chart and a tabbed runs panel; `datasets:`
  and `links:` (tracks ↔ KPI points ↔ check runs) so one rail (area, health, state; run kind and date) filters all of
  them; `select:` cross-filtering from the KPI cards, the tracks and the bars; a `rollup:` of each track's newest run
  per suite through its children (Passing, Checks, Pass rate, drawn as derived); the drill-down peek on a run.
- **Data:** `tracks.json` (18 tracks), `kpis.json` (473 KPI points, newest 30 per L0/L1 KPI) and `runs.json` (86 check
  runs: tests, checks, goldens, gates), written by `source/build.py` from Zach's Vibe Tracks owner bundle
  (`~/.vibetracks/bundle`, vt-state/1) and its producer folders, read 2026-10-26. Real. Grasping keeps its row, but its
  figures are left out (data-ui SPEC §13): its headline is "—" with the reason.
- **Skin:** `skin.css`, Vibe Tracks' tokens (Claude Desktop's) mapped onto `--data-*`.
