Skip to content

feat(tasks): MVP loop — composite leaderboard, RaceTrack, search, instrumentation#3

Open
gianyrox wants to merge 1 commit into
mainfrom
feat/mvp-loop-search-leaderboard
Open

feat(tasks): MVP loop — composite leaderboard, RaceTrack, search, instrumentation#3
gianyrox wants to merge 1 commit into
mainfrom
feat/mvp-loop-search-leaderboard

Conversation

@gianyrox

@gianyrox gianyrox commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Builds the TaskLapp MVP cut (feature spec §4/§7) on the existing social delegation model — assigner/assignee tasks with peer grading and a competitive leaderboard. Not a generic todo app.

What's built

  • Composite leaderboard (§3.3): new shared, unit-tested lib/scoring.ts. Ranks by completed × avg-quality × on-time-rate + perfect-bonus with staleness decay. Adds a Champions board and a friends-only toggle. Populates perfectTasks / tasksOnTime / fastestCompletionTime (the detail UI already referenced these but they were never computed).
    • Bug fix: grading a task moved it to GRADED, which dropped it from the COMPLETED count — the leaderboard punished you for grading. GRADED now counts as done.
  • RaceTrack (US-8): lib/raceProgress.ts maps real tasks to checkpoints + car position; rendered on the dashboard ("Your Lap"). The demo animation now only runs for the empty state.
  • Search + filter (US-5): lib/taskFilters.ts — free-text search (title + description) and a priority filter on the tasks page, layered on the existing status tabs.
  • Instrumentation (§6): lib/analytics.ts emits assign / start / submit / grade events stamped peer-vs-self, so the north star (weekly graded peer tasks) and the peer:self ratio are queryable. Wired into createTask and updateTaskStatus.

Already present (validated, not rebuilt)

Auth, friends, task create/assign (self / friend / email invitation), the submission flow, and the 4-axis grading form on /task/[taskId] were already built and match the ACs.

Deferred

  • Projects / labels (in the old bead title) are intentionally not built — the spec reframes TaskLapp away from generic-todo features and does not include them in the §4 cut; the schema has no such tables.
  • Public Tasks marketplace is v2 per §4 — untouched.

Tests / build

  • Adds vitest + 30 unit tests for the pure scoring / filter / race-progress logic. npm test is green.
  • next build passes (type-check + compile). No deploy.

🤖 Generated with Claude Code

Fills the MVP gaps from the TaskLapp feature spec §4/§7 against the
existing assigner/assignee social model (not a generic todo app).

Leaderboard (§3.3): add a shared, unit-tested scoring module and rank
by a composite score (completed × avg-quality × on-time-rate + perfect
bonus, with staleness decay). Fixes a bug where grading a task dropped
it from the completed count (GRADED now counts as done). Populate
perfectTasks / tasksOnTime / fastestCompletionTime that the detail UI
already referenced, and add a Champions board + friends-only toggle.

RaceTrack (US-8): drive the car and checkpoints from real task data via
a pure raceProgress module; render it on the dashboard. Demo animation
stays only for the empty state.

Search + filter (US-5): free-text search over title/description plus a
priority filter on the tasks page, layered on the existing status tabs,
via a pure taskFilters module.

Instrumentation (§6): emit assign/start/submit/grade events stamped
peer-vs-self so the north star and peer:self ratio are queryable.

Testing: add vitest + 30 unit tests for the pure scoring, filter, and
race-progress logic. `npm test` runs them; production build is green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
taskl-app Ready Ready Preview, Comment Jul 7, 2026 7:52pm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant