Dashboard

The view the app opens onto: a read-only overview of every registered workspace, and an honest reading of what shipped today. Everything on it is measured — mined from git and an activity log — and none of it can be edited from here.

Today’s progress

The top band shows four counts, aggregated across every workspace: changes shipped today, changes in flight right now, commits landed today, and tasks completed today. The three today counts each carry a comparison against your recent daily average, so the numbers answer “is today a good day?” without you having to remember what a normal one looks like.

Below it: your streak — consecutive days with at least one recorded achievement — and a contribution heatmap over recent weeks, with today’s cell marked.

These personal counts attribute work to you as resolved from your git identity. If your commits span several emails or machine-specific names, fold them into one identity in Settings ▸ Identity — the numbers are only as honest as the attribution.

Today’s ships

Every change archived today, across every workspace, newest first — with a relative archive time when git can recover it. Clicking a ship opens the change in the archive browser, so “what was that one?” is one click, not a directory listing.

While the Dashboard is open, shipping a change plays a brief celebration and completing a task a quieter one. Both respect your reduced-motion preference, and neither blocks anything.

The commit garden

At the bottom, one panel per repository draws a faithful git graph of today’s commits — real lanes, merges and refs, not a sparkline. Each commit is coloured by its author: you in the accent colour, everyone else — teammates, agents committing under their own identity — in a stable hue of their own. It fills in live as commits land, and at local midnight it starts again.

Authors are resolved through the people roster, so a person with three git identities gets one colour, not three.

The cross-workspace overview

The rest of the Dashboard aggregates state: active and archived totals, a per-repository breakdown, a commits-per-day activity chart mined from git history, and change-lifecycle figures — how many changes ship, and how long they take to get there.

When history holds more than one author, a per-author leaderboard ranks everyone by shipped changes, completed tasks and commits. Solo history shows no leaderboard — a list of one is not a ranking.

Where the numbers come from

An append-only activity log records achievements — a task ticked, an artifact added, a change created or archived — as the watcher observes them, and is backfilled from git history, so the Dashboard is not empty on first run. The log lives in SpecForge’s own application data, never inside a workspace.

There are no points, badges, or levels. The Dashboard measures what already happened and invents nothing — which is also why there is no setting to turn it off: it is a reading, not a game.