← all tickets
04 — Random Draw
What to build: The flagship feature. Each List has a draw control. Triggering it computes the Next Step of every open top-level Task in that List — a Task with no open Subtasks is its own Next Step; otherwise recurse into the topmost open Subtask — and picks one uniformly at random, presenting it to the user. Every open top-level Task contributes exactly one candidate, so a large project and a one-liner have equal odds.
Blocked by: 03 — Subtasks.
Status: done (commit 412c767, 2026-08-04)
- ☐ Draw control is available on each List and works on phone and desktop
- ☐ The candidate pool is exactly the Next Steps of open top-level Tasks (per CONTEXT.md definitions)
- ☐ A Task whose Subtasks are all completed is drawable itself
- ☐ Drawing from a List with no open Tasks is handled gracefully
- ☐ The drawn Task is shown with enough context (ancestor chain) to know what it belongs to
- ☐ The user can complete the drawn Task directly from the draw result, or draw again
- ☐ Tests verify pool membership for nested scenarios and uniform selection over top-level tasks