Skip to content

Dashboard-UX-Politur (Bündel, priorisiert) #243

Description

@TillQuandel

Kontext

Sammel-Issue aus der 3-Runden-UX-Review (2026-07-13). Bündelt Polish-Funde, die NICHT bereits durch eigene Issues abgedeckt sind (Filter-Badges, 0-Eval-Lauf, Token-Totals siehe separate Issues; Mojibake siehe #27; Duplikat-Basen/Test-Fixtures/-Werte siehe #228/#229/#231/#232/#233; Profil siehe #235).

Checkliste

  • ch4-0%-Einbrüche zerstören den Trend. „Akzeptanzrate über Versionen" (ch4): Median-Linie stürzt an vielen sample-armen Versionen wiederholt auf 0 % ab (visuell drastisch bei v0.3.38/68/103, light-tradeoff.png/b2-tradeoff-section-light.png). Vorschlag: nur Versionen mit n≥Schwelle plotten oder gleitender Median; Quick-Win: 0-Werte bei Klein-N ausgrauen/interpolieren.
  • ch5/ch6-Überladung bei 50 Versionen (E8-Bezug). Balken auf x-Achse unlesbar klein, 2–3 dominieren, Achsenlabels gedrängt/rotiert, Cache-Segment kaum sichtbar (light-cost.png). Vorschlag: letzte ~15–20 Versionen defaulten (wie Trade-off-Scatter „letzte 10"), Rest per Toggle; oder Log-Skala. Teilweise bekannt (E8-Aggregation).
  • N-Guard-Inkonsistenz der Insight-Headlines. ins-overview caveatet Klein-N korrekt („n=18 — zu klein für Zielvergleich"), ins-quality/ins-compare haben KEINEN N-Guard auf den Endpunkten. Live: „Niedrigste Akzeptanz: Hrastinski 33,3 % (1 evaluierte Notes)" — beruht auf 1 Note, als saubere Headline präsentiert (Apophenie-Risiko). Vorschlag: Endpunkte mit n<Schwelle ausschließen oder „(n=X, unsicher)" annotieren wie in ins-overview.
  • IA: Sektion „Trade-off" fehlbenannt + „Lauf debuggen" ohne Heimat. Sektion „Trade-off" enthält ch3 (Skalierungs-Scatter) + ch4 (Akzeptanz-Trend) — keins von beiden ist ein Trade-off. Der spec-vorgesehene Pareto-Scatter Coverage×Halluzination (ch2) sitzt stattdessen unter „Qualität"; die vorgesehene Inbox-Rate-Bar fehlt ganz. Zusätzlich: keine Sektion erzählt die Lauf-Story (Funnel, Refine-Loop, Drop-Gründe) — deckt sich mit Diagnose-Bündel-Issue (d). Vorschlag: Sektion umbenennen („Skalierung & Verlauf") oder Charts sektionsgerecht sortieren; optional neue „Lauf"-Sektion bei aktivem Run-Filter.
  • Filter-Persistenz/URL-Sync fehlt (E7-Bezug) + einseitige Dropdown-Scopes. Reload (F5) setzt alle 5 Filter still auf „Alle" zurück (Theme/Sidebar persistieren via localStorage, Filter nicht); kein URL-Sync (_globalFilters wird nie in die URL geschrieben, Client liest URL-Query-Params auf / gar nicht — nur /data.json wertet sie serverseitig aus). Zusätzlich: PDF-Dropdown zeigt immer alle 42 PDFs unabhängig von gewählter Version/Lauf (eval_dashboard_server.py:595, _all_pdfs_opts nicht gefiltert) → wählbare 0-Treffer-Sackgassen (z. B. „Afzal" bei pver=v0.3.143, existiert nur ≤v0.3.60). Vorschlag: Filter analog theme-mode in localStorage oder URLSearchParams spiegeln; PDF-Optionen symmetrisch auf aktive Version/Lauf einschränken (wie _pver_rows bereits umgekehrt tut).
  • Escape schließt den Note-Drawer nicht. Kein keydown/Escape-Handler im HTML; Drawer nur per „schließen"-Button schließbar (sonst robust: übersteht Mehrfachklick + Filter-Wechsel mit Stale-Banner). Vorschlag: document.addEventListener('keydown', e=>{ if(e.key==='Escape') _closeNoteDrawer(); }).
  • Toter Tab-Stop „Automatisch akzeptiert". Kachel wird als <button type="button"> ohne onclick/disabled gerendert (Klasse no-spark) — fokussierbar mit Fokus-Ring, aber Enter/Space lösen nichts aus (anders als die 6 anderen KPI-Kacheln, die die Versions-Sparkline öffnen). Für Tastatur-Nutzer nicht von „reagiert nicht" unterscheidbar. Vorschlag: als <div> rendern oder tabindex="-1"/aria-disabled setzen.
  • Erstnutzer-Jargon. „Akzeptanz" meint Routing (automatisch in den Vault übernommen), nicht „Eval bestanden" — der M3-Fall (100 % Akzeptanz, 0 % Qualität bekannt, siehe 0-Eval-Issue) entlarvt die Fehldeutungsgefahr. Zusätzlich unerklärter Jargon: Agent-Rollen Cross-Ref/Critic/Verifier/Planner/Extractor ohne Tooltip, zwei Versionsschemata v4.1 (Eval) vs. v0.3.143 (Pipeline) nebeneinander ohne Erklärung. Vorschlag: Kachel-Untertitel „= automatisch in den Vault übernommen (nicht: Eval-Ergebnis)"; kurze Rollen-Tooltips an Agent-Namen.
  • Einheiten-Spacing inkonsistent. Totals-Strip: 10,07M, 48,0h (ohne Leerzeichen) vs. KPI-Kacheln: 1,51 M, 4,4 h (mit Leerzeichen). Vorschlag: einheitliches Spacing in _fmtDE/Anzeige.
  • Plural-Bug „1 evaluierte Notes". ins-compare bei n=1: „1 evaluierte Notes" statt „1 evaluierte Note". Vorschlag: ${n===1?'Note':'Notes'}.

Nicht mit ausgearbeitet (Referenz)

Truncierte ch1-PDF-Labels, fehlendes Lade-Feedback bei Filter-Wechsel, Tooltip-Reihenfolge Totals-Strip/Quality-KPIs, KPI-Tooltips nur hover-fokussierbar, ins-cost-Versions-Ären-Mischung (v0.3.56 neben Aktuell-Daten), ins-overview-Caveat-Platzierung missverständlich, Spec-Drift Compare-/Kosten-Sektion (Duration/Cache-Hit/Inbox-Rate laut Spec vs. Ist) — Details siehe R1–R3-Reports, niedrige Priorität / teils bewusst zurückgestellt (Issue #36).


Quelle: Dashboard-Untersuchung 2026-07-13, 3 Runden Opus-Review (UX + Messlauf-Diagnose), Funde adversarial verifiziert.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions