Examples › Vibe Tracks › Vibe Tracks · run explorer

Vibe Tracks · run explorer

The run is the atomic record; the cards, the chart, the leaderboard, the table, the pivot and the grouped table are views over that one dataset. A ratio-of-sums KPI per run kind, every run over time, and a leaderboard that is the track tree's roll-up.

Vibe Trackskpicharttablepivota dashboard: 6 views of 2 linked datasets

The .base file and its data

Every tab above is one entry of this file; the views read these rows. ⋯ in the toolbar copies the current view as YAML.

# Vibe Tracks' run explorer: the run is the atomic record, and the table, the pivot and the leaderboard are views over
# that one dataset (Zach, Oct 11). The check runs of every track, linked to the track tree so the leaderboard is the
# tree's roll-up. Data: ../vibetracks-dashboard (real, source/build.py there). Grammar: docs/peps/0004-dashboards.md.
data: ../vibetracks-dashboard/runs.json
facets:
  - track_title
  - kind
  - channel
  - { property: t, as: date, label: Run date }
  - { property: pass_rate, as: slider-histogram, label: Pass rate of the run }
properties:
  track_title: { displayName: Track }
  t: { displayName: When }
  kind: { displayName: Kind }
  pass_rate: { displayName: Pass rate, digits: 3 }
  title: { displayName: Track }
  checks_passed: { displayName: Passing }
  checks_run: { displayName: Checks }
datasets:
  runs: ../vibetracks-dashboard/runs.json
  tracks:
    data: ../vibetracks-dashboard/tracks.json
    tree: { parent: parent }
    facets: [area]
    rollup:
      from: runs
      latest: { by: t, per: suite }
      values:
        checks_passed: { property: passed, summary: Sum }
        checks_run: { property: checks, summary: Sum }
        pass_rate: { property: passed, summary: Ratio, per: checks }
links:
  - { from: runs.track, to: tracks.id }
layout:
  panels:
    - text: |
        ## Runs in, numbers out
        Every row below is one run a producer wrote. The cards are **Σ passed / Σ checks** over the runs the rail keeps
        (a ratio of sums, never a mean of ratios); the leaderboard is each track's newest run per suite, rolled up
        through its children. Click a point or a leader to narrow everything; click a run to open it.
      w: 12
    - { view: Pass rate by kind, w: 12, h: 3 }
    - { view: Every run over time, w: 8, h: 5 }
    - { view: Leaderboard, w: 4, h: 5 }
    - { views: [Runs, Track × kind, By track], title: The runs, w: 12, h: 6, toolbar: full }
views:
  - type: kpi
    name: Pass rate by kind
    groupBy: { property: kind }
    groupOrder: [tests, checks, goldens, gates]
    sort:
      - { property: t, direction: ASC }
    kpi:
      value: { property: passed, summary: Ratio, per: checks }
      spark: { x: t, y: pass_rate }
  - type: chart
    name: Every run over time
    select: track
    chart:
      mark: { type: point, filled: true, size: 60 }
      encoding:
        x: { field: t, title: null }
        y: { field: pass_rate, title: Pass rate of the run, scale: { domain: [0, 1] } }
        color: { field: track_title, title: Track }
        shape: { field: kind, title: Kind }
    hover: { title: run, fields: [track_title, suite, passed, checks, branch] }
  - type: table
    name: Leaderboard
    from: tracks
    select: id
    filters: '!checks_run.isEmpty()'
    order: [title, pass_rate, checks_passed, checks_run]
    sort:
      - { property: pass_rate, direction: DESC }
  - type: table
    name: Runs
    order: [t, track_title, suite, kind, passed, failed, skipped, checks, pass_rate, seconds, channel, branch, sha]
    sort:
      - { property: t, direction: DESC }
  - type: pivot
    name: Track × kind
    groupBy: { property: track_title }
    splitBy: [kind]
    value: { property: checks, summary: Sum }
  - type: table
    name: By track
    order: [t, suite, kind, passed, checks, pass_rate, branch]
    groupBy: { property: track_title }
    sort:
      - { property: t, direction: DESC }
    summaries: { passed: Sum, checks: Sum, pass_rate: Median }
    fold: closed
// ../vibetracks-dashboard/runs.json: 86 rows, 44 KB; the first 3
{
 "id": "vibetracks-check-runs",
 "title": "Vibe Tracks check runs (real: tests, checks, goldens, gates)",
 "titleProperty": "run",
 "source": "Zach's Vibe Tracks owner bundle (~/.vibetracks/bundle, vt-state/1, generated 2026-10-26T21:06:09Z) and its producer folders under ~/vt/{zach,bam}/producers, read 2026-10-26; grasping's figures left out (SPEC §13)",
 "properties": {
  "run": {
   "type": "text",
   "width": 260
  },
  "track": {
   "type": "text",
   "hidden": true
  },
  "track_title": {
   "type": "text",
   "width": 170,
   "display": "badge"
  },
  "producer": {
   "type": "text",
   "width": 140
  },
  "kind": {
   "type": "text",
   "width": 70,
   "display": "badge"
  },
  "t": {
   "type": "date",
   "width": 190
  },
  "suite": {
   "type": "text",
   "width": 110
  },
  "channel": {
   "type": "text",
   "width": 80
  },
  "branch": {
   "type": "text",
   "width": 200
  },
  "sha": {
   "type": "text",
   "width": 80
  },
  "passed": {
   "type": "number",
   "width": 70
  },
  "failed": {
   "type": "number",
   "width": 70
  },
  "skipped": {
   "type": "number",
   "width": 70
  },
  "checks": {
   "type": "number",
   "width": 70
  },
  "pass_rate": {
   "type": "number",
   "width": 90,
   "display": "bar",
   "note": "passed / checks of this run"
  },
  "seconds": {
   "type": "number",
   "width": 80,
   "unit": "s"
  }
 },
 "rows": [
  {
   "id": "pyblocks:board-a4d8221-20260930T160410Z",
   "run": "board-a4d8221-20260930T160410Z",
   "track": "pyblocks",
   "track_title": "Pyblocks",
   "producer": "pyblocks",
   "kind": "goldens",
   "t": "2026-09-30T16:04:10.643447+00:00",
   "suite": "pyblocks",
   "channel": null,
   "branch": null,
   "sha": "a4d8221",
   "passed": 12,
   "failed": 11,
   "skipped": 32,
   "checks": 55,
   "pass_rate": {
    "value": 0.2182,
    "unit": "share",
    "basis": "derived",
    "n": 55,
    "source": "producers/pyblocks/runs_table.jsonl · passed / checks"
   },
   "seconds": null
  },
  {
   "id": "pyblocks:board-027bf14-20260930T190216Z",
   "run": "board-027bf14-20260930T190216Z",
   "track": "pyblocks",
   "track_title": "Pyblocks",
   "producer": "pyblocks",
   "kind": "goldens",
   "t": "2026-09-30T19:02:16.187961+00:00",
   "suite": "pyblocks",
   "channel": null,
   "branch": null,
   "sha": "027bf14",
   "passed": 12,
   "failed": 11,
   "skipped": 32,
   "checks": 55,
   "pass_rate": {
    "value": 0.2182,
    "unit": "share",
    "basis": "derived",
    "n": 55,
    "source": "producers/pyblocks/runs_table.jsonl · passed / checks"
   },
   "seconds": null
  },
  {
   "id": "pyblocks:board-005e2ed-20260930T205131Z",
   "run": "board-005e2ed-20260930T205131Z",
   "track": "pyblocks",
   "track_title": "Pyblocks",
   "producer": "pyblocks",
   "kind": "goldens",
   "t": "2026-09-30T20:51:31.068587+00:00",
   "suite": "pyblocks",
   "channel": null,
   "branch": null,
   "sha": "005e2ed",
   "passed": 14,
   "failed": 15,
   "skipped": 26,
   "checks": 55,
   "pass_rate": {
    "value": 0.2545,
    "unit": "share",
    "basis": "derived",
    "n": 55,
    "source": "producers/pyblocks/runs_table.jsonl · passed / checks"
   },
   "seconds": null
  }
 ]
}
skin.css, README.md
/* Vibe Tracks' skin: its own tokens (vibetracks~/tokens.css, Claude Desktop's, read 2026-10-25), then the
   one block that maps them onto data-ui's --data-* (docs/SPEC.md §10). good / bad are its success and danger inks,
   so a KPI delta reads green or red outside its neutral band, as Vibe Tracks' tiles do. */
.data-ui-skin {
  --surface: #ffffff; --ink: #0b0b0b; --ink-2: #52514e; --alpha-1: rgba(11, 11, 11, .05); --line: rgba(11, 11, 11, .10);
  --hover: rgba(11, 11, 11, .05); --accent: #2a78d6; --warn-ink: #734500; --success-ink: #2f7a4a; --danger-ink: #8e2626;
  --font: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace; --radius: 6px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .data-ui-skin {
    --surface: #1a1a1a; --ink: #f0efec; --ink-2: #c3c2b7; --alpha-1: rgba(255, 255, 255, .05); --line: #252525;
    --hover: rgba(255, 255, 255, .06); --accent: #2a78d6; --warn-ink: #db9300; --success-ink: #6fbf8b; --danger-ink: #ec7e7e;
  }
}
:root[data-theme="dark"] .data-ui-skin {
  --surface: #1a1a1a; --ink: #f0efec; --ink-2: #c3c2b7; --alpha-1: rgba(255, 255, 255, .05); --line: #252525;
  --hover: rgba(255, 255, 255, .06); --accent: #2a78d6; --warn-ink: #db9300; --success-ink: #6fbf8b; --danger-ink: #ec7e7e;
}
/* the mapping (SPEC §10's Vibe Tracks block, plus the KPI inks) */
.data-ui-skin {
  --data-bg: var(--surface); --data-fg: var(--ink); --data-muted: var(--ink-2); --data-subtle: var(--alpha-1);
  --data-border: var(--line); --data-rule: var(--alpha-1); --data-hover: var(--hover); --data-accent: var(--accent);
  --data-warn: var(--warn-ink); --data-font: var(--font); --data-mono: var(--mono); --data-radius: var(--radius);
  --data-good: var(--success-ink); --data-bad: var(--danger-ink);
}
# Vibe Tracks · run explorer

The run is the atomic record; the cards, the chart, the leaderboard, the table, the pivot and the grouped table are
views over that one dataset. A ratio-of-sums KPI per run kind, every run over time, and a leaderboard that is the
track tree's roll-up.

- **App:** Vibe Tracks
- **Replaces:** the Results tab's FINOS Perspective pivot over a track's runs (PEP 0006, `vibetracks~/pivot.js`)
  and the hand-built run lists; Perspective stays only as the million-row escape hatch (SPEC §8.10).
- **Shows:** `type: kpi` in summary mode (`summary: Ratio, per: checks`: Σ passed / Σ checks, never a mean of ratios);
  a chart whose point click selects a track for the whole page; a leaderboard read from the `tracks` dataset's
  `rollup:` (newest run per suite, through child tracks); a panel with three presets as tabs and the full toolbar; a
  rail over two linked datasets (run facets plus the tracks' area); a pass-rate slider with its histogram.
- **Data:** `../vibetracks-dashboard/runs.json` and `tracks.json` (real, from the owner bundle; see that case's README).
- **Skin:** `skin.css`, Vibe Tracks' tokens.

The original UI it replaces

the Results tab's FINOS Perspective pivot over a track's runs (PEP 0006, vibetracks~/pivot.js) and the hand-built run lists; Perspective stays only as the million-row escape hatch (SPEC §8.10).

What it shows

type: kpi in summary mode (summary: Ratio, per: checks: Σ passed / Σ checks, never a mean of ratios); a chart whose point click selects a track for the whole page; a leaderboard read from the tracks dataset's rollup: (newest run per suite, through child tracks); a panel with three presets as tabs and the full toolbar; a rail over two linked datasets (run facets plus the tracks' area); a pass-rate slider with its histogram.

Data

../vibetracks-dashboard/runs.json and tracks.json (real, from the owner bundle; see that case's README).

Skin

skin.css, Vibe Tracks' tokens.