Skip to content

feat(web,server): a room shows what the crew did together — consistency tiles, then a ladder #995

Description

@janlauber

Part of #992. Blocked on #994 — the social-stats research pass. The shape below is decided; the metrics are not, and picking them by taste is exactly what #994 exists to prevent.

A room's page shows four tiles: riders, streak, this month, medals. For a crew that rides together every week, that says almost nothing about the crew.

Mockups: https://claude.ai/code/artifact/880fdc31-6238-4547-9d3a-b291cda3f50d — right column.

Decided: consistency tiles lead, the ladder sits below

TOGETHER      STREAK        THIS MONTH      SHOWED UP
84 h          6 wk          21 sessions     ●●●●○●●●●●○●
ridden as a   a session     up from 17      last 12 sessions
crew          every week

── the ladder ──────────────────────────────────────
[this month] sessions  sprints
 1  Jan Lauber          4,210 kJ   12 sessions   ← you
 2  David Kneubühler    3,880 kJ   11 sessions
 3  Mike Frei           2,140 kJ    8 sessions
 4  Captain-SVXN        1,905 kJ    9 sessions

The order is the finding, not a layout preference. RESEARCH.md §13.3 puts consistency and time-in-saddle above every performance metric for this audience — "wins rider surveys by 5–8×" — so what everyone sees without scrolling is how often the crew shows up, and the ranked board is for whoever wants it.

A room-scoped ladder is explicitly permitted, and only this kind is:

Leaderboards, rankings, duels live inside a room — your crew's ladder, not the internet's. No public leaderboards.

What #994 has to settle before this is built

  • Which metrics the tiles carry. "Hours together" and "showed up" are drawn as plausible, not chosen.
  • Which boards exist and how they rank. kJ favours the heavy and the long; w/kg favours the light; execution favours whoever picked the easy workout — and §13.4 already warns execution must not double as a difficulty metric. The honest answer may be several boards and no single rank.
  • The small-N and harm question. A four-person room where the same person is always first is a different object from a twelve-person room. Suppression thresholds, decay windows, and whether a rider can be off the board at all.
  • Whether "showed up" is a stat or surveillance. It overlaps feat(server,web): a session leaves a recap — who was here, when they came, how long they stayed #985's argument and should be settled once, there or here, not twice.

What is already available

The privacy question is the live one: a board naming another rider's kJ is durable disclosure of a ride that is private by default. Everyone in the room watched it happen live, which is the same argument #985 had to make for presence — and the same reason it needed an ADR. Expect one here too, or a metric set that avoids the problem.

Acceptance criteria

Deliberately not in scope

Cross-room comparison, global anything, a rider's private ride detail reachable from a board, and home (which should adopt whatever vocabulary this settles, not invent its own).

Related

#992 (epic), #994 (blocking research), #993 (the per-rider counts and their vocabulary), #985 (the presence-privacy argument), WATTROOM.md (room-scoped competition).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

designDesign related stuffenhancementNew feature or requestroomsroom hub & realtime

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions