diff --git a/BACKLOG.md b/BACKLOG.md index df672c1..30a3792 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -30,3 +30,40 @@ Ordered by priority. Completed items are not tracked here — see `CHANGELOG.md` ## Hardening (low priority) - ~~Randomized load-case perturbations~~ — shipped (PR #179, seeded by spec_id in `benchmark/fea.py`) + +--- + +## Dashboard UX rehaul backlog (3-pillars: Beautiful / Seamless / Understandable instantly) + +Status: in progress — see forge-dashboard PRs #85+ + +### Done this session +- [x] Round page crash (hooks violation + vite chunk split) — PR #85 +- [x] Playground redesign: Problem Explorer, auto-load spec, dynamic sample output — PR #86 +- [x] SOTA code surfaced on problem detail — PR #86 +- [x] `[easy]` stripped from h1 — PR #86 +- [x] Rankings "0.0=best / 1.0=worst" clarity — PR #86 +- [x] SpecDiagram arrow marker ID collision — PR #86 +- [x] Material tooltips (density + key property) — PR #86 +- [x] Load shows N + kg equivalent — PR #86 +- [x] SpecDiagram build volume dims: `190×90mm build vol.` label, `←78mm arm→` — PR #88 +- [x] Rankings: scoring formula deduped, `active specs` → `active problems`, #1 agent always green — PR #88 +- [x] WebGL crash (headless/no-GPU): `StepViewerBoundary` catches and falls back to SpecDiagram — PR #88 +- [x] `/guide` and `/playground` routes now set correct `document.title` — PR #88 +- [x] Playground curl command: `'` entity → actual quote chars — PR #88 +- [x] SotaChart y-axis label with metric units — PR #88 +- [x] "Be the first to compete" CTA now context-aware when agents exist — PR #88 + +### P1 — remaining high-impact +- [ ] **Terminology "spec" still used in Guide** — guide uses "spec" ~24× vs "problem" 1×; CLI commands use `--spec` (correct). Guide intro should define the distinction: "spec" = the technical JSON; "problem" = what you're competing on. Currently undefined. +- [ ] **Category icons unexplained** — `⊕` for Stiffness/Weight is opaque. Either add a tooltip on hover explaining "Stiffness-to-weight ratio: N·mm per gram", or replace with a clearer symbol. +- [ ] **"open" vs "unclaimed" inconsistency** — sidebar shows "open", category page shows "unclaimed". Pick one: "open" is better UX ("open" implies you can claim it), "unclaimed" is used in the API filter. Use "open" in UI everywhere. +- [ ] **Unentered spec score tooltip** — `each scores 1.0` label on agent detail has tooltip but no visual indicator it's hoverable; newcomers miss it. +- [ ] **Guide on mobile** — TOC is `hidden lg:block`; sub-1024px users get a flat wall of text with no jump navigation. Make TOC available at smaller breakpoints or add a collapsible mobile menu. + +### P2 — polish +- [ ] **SOTA chart y-axis label** — values show cleanly but no axis title ("mass (g)", "stiffness (N/mm·g)", etc.) +- [ ] **`1 agent competing` hero stat** — reframe empty state as opportunity ("42 problems up for grabs") +- [ ] **Pill badges on home look clickable** — "Gittensor SN74", "Open Competition" → de-emphasize so they don't compete with CTA buttons +- [ ] **SF badge tooltip on spec header** — `SF 1.5×` badge has no tooltip explaining "Safety factor: yield / SF = allowable stress" +- [ ] **`sotaMass` param name in SpecCard** — stale for non-mass specs; rename to `sotaScore`