Skip to content

Roadmap

Delivery roadmap for Tasuku, generated from the SDD artifacts (specs, ADRs) under spec 022. Each slice maps to a spec directory; the stats below are counted directly from that spec’s spec.md, tasks.md, and contracts/.

  • 30 roadmap slices across 9 phases — 25 merged, 0 verified on staging, 4 implemented, 1 planned.
  • 30 specs realized: 101 user stories, 908/1094 tasks complete, 536 functional requirements, 34 API contracts.
  • 19 Architecture Decision Records accepted.

Slices are coloured by status: merged (green), verified on staging (blue), implemented (teal), planned (grey). ⏭ marks what comes next.

flowchart TB
  classDef merged fill:#1f7a3d,stroke:#0d3d1f,color:#fff;
  classDef verified fill:#2563eb,stroke:#13316b,color:#fff;
  classDef implemented fill:#0d9488,stroke:#064e45,color:#fff;
  classDef inProgress fill:#d97706,stroke:#7a4304,color:#fff;
  classDef planned fill:#6b7280,stroke:#374151,color:#fff;
  subgraph P0["Phase 0 — Foundation"]
    direction TB
    S1["S1 — Identity & access<br/>spec 001 · 3S · 38/50T · 19 FR · 1C<br/>ADR 001, 002, 003, 008, 010"]:::merged
  end
  subgraph P1["Phase 1 — Core task management (single user)"]
    direction TB
    S2["S2 — Lists CRUD + offline-sync foundation<br/>spec 002 · 4S · 42/51T · 19 FR · 1C<br/>ADR 009"]:::merged
    S3["S3 — Tasks in a List<br/>spec 003 · 5S · 4/62T · 21 FR · 1C"]:::merged
    S4["S4 — Steps (child of Task)<br/>spec 004 · 5S · 57/57T · 21 FR · 1C"]:::merged
    S5["S5 — Task attributes I: notes, starred, due date<br/>spec 005 · 4S · 49/49T · 21 FR · 1C"]:::merged
  end
  subgraph P2["Phase 2 — Organization & retrieval"]
    direction TB
    S6["S6 — Sorting + drag-and-drop ordering<br/>spec 007 · 4S · 60/70T · 14 FR · 1C"]:::merged
    S7["S7 — Groups (organize Lists)<br/>spec 008 · 4S · 58/58T · 18 FR · 1C"]:::merged
    S8["S8 — Views: My Day, Important, Planned, Tasks<br/>spec 009 · 4S · 49/53T · 22 FR · 1C"]:::merged
    S9["S9 — Search (tasks / steps / notes)<br/>spec 010 · 3S · 39/40T · 17 FR · 1C"]:::merged
  end
  subgraph P3["Phase 3 — Collaboration"]
    direction TB
    S10["S10 — List sharing & Members<br/>spec 011 · 3S · 35/36T · 20 FR · 1C"]:::merged
    S11["S11 — Task assignment / delegation<br/>spec 012 · 3S · 37/37T · 15 FR · 1C"]:::merged
    S12["S12 — Near-real-time updates (polling)<br/>spec 013 · 4S · 25/25T · 18 FR · 1C<br/>ADR 006"]:::merged
    CI["CI — Full GitLab CI pipeline<br/>spec 006 · 4S · 2/78T · 15 FR · 1C<br/>ADR 007"]:::merged
  end
  subgraph P4["Phase 4 — Reminders, power features, lifecycle"]
    direction TB
    S13["S13 — Reminders (in-app) + recurrence<br/>spec 026 · 2S · 28/28T · 19 FR · 1C"]:::merged
    S14["S14 — CLI (first-class API client)<br/>spec 028 · 3S · 40/40T · 27 FR · 2C<br/>ADR 004, 005, 014"]:::merged
    S15["S15 — Account lifecycle: menu, data export & deletion<br/>spec 027 · 4S · 41/41T · 35 FR · 2C<br/>ADR 013"]:::merged
  end
  subgraph P5["Phase 5 — Mobile readiness"]
    direction TB
    S16A["S16-A — Mobile shell & stacked navigation<br/>spec 014 · 3S · 29/30T · 19 FR · 1C"]:::merged
    S16B["S16-B — Mobile Lists screen — count badges + shared indicator<br/>spec 015 · 3S · 22/23T · 14 FR · 1C"]:::merged
    S16C["S16-C — Mobile Task-list screen — iOS task cards<br/>spec 016 · 3S · 15/15T · 11 FR"]:::merged
    S16D["S16-D — Mobile Task-detail / Subtasks screen<br/>spec 017 · 3S · 0/0T · 11 FR"]:::merged
    S16E["S16-E — Mobile Empty states — ruled canvas + create-then-rename<br/>spec 018 · 2S · 0/0T · 9 FR"]:::merged
    S16F["S16-F — Mobile Search sheet<br/>spec 019 · 3S · 0/0T · 7 FR"]:::merged
  end
  subgraph P6["Phase 6 — Verification & release enablement"]
    direction TB
    S17["S17 — Cloudflare staging environment<br/>spec 020 · 3S · 11/19T · 15 FR"]:::merged
    S18["S18 — Event-based sync push<br/>spec 021 · 4S · 40/40T · 19 FR · 3C<br/>ADR 011"]:::merged
    Docs["Docs — Graphify docs system<br/>spec 022 · 4S · 30/30T · 20 FR · 5C<br/>ADR 012"]:::merged
  end
  subgraph P7["Phase 7 — Notifications"]
    direction TB
    S19["S19 ⏭ — Web Push / OS notifications<br/>spec 029 · 3S · 39/44T · 20 FR · 1C<br/>ADR 015, 016"]:::planned
  end
  subgraph P["Pending triage"]
    direction TB
    031["031 — Support Section (Contact the Tasuku Team)<br/>spec 031 · 3S · 28/28T · 15 FR · 1C<br/>ADR 017"]:::implemented
    032["032 — General Preferences (Behavior & Views)<br/>spec 032 · 2S · 30/30T · 15 FR · 1C"]:::implemented
    033["033 — Microsoft To Do Import Wizard<br/>spec 033 · 3S · 36/36T · 25 FR · 2C"]:::implemented
    038["038 — Auto-delete old completed tasks<br/>spec 038 · 3S · 24/24T · 15 FR · 1C"]:::implemented
  end
  P0 --> P1 --> P2 --> P3 --> P4 --> P5 --> P6 --> P7 --> P;

When each Architecture Decision Record was introduced, grouped by the phase that drove it.

timeline
  title ADRs introduced across the roadmap
  Phase 0 — Foundation : ADR-001 API Versioning Strategy : ADR-002 API Error Envelope Format : ADR-003 OpenAPI Contract Tooling : ADR-008 Internationalization & Localization : ADR-010 Auth UI via Clerk Prebuilt Components + Vendor Localization
  Phase 1 — Core task management (single user) : ADR-009 PWA Tooling — `vite-plugin-pwa` Directly (Interim)
  Phase 3 — Collaboration : ADR-006 Real-Time Update Transport : ADR-007 Supply-Chain Security Tooling
  Phase 4 — Reminders, power features, lifecycle : ADR-004 CLI Authentication Mechanism : ADR-005 CLI Language and Distribution : ADR-013 Account Deletion Orchestration (hard delete across D1 + Clerk) : ADR-014 CLI Token Format, Verification Reuse & Logout Revocation
  Phase 6 — Verification & release enablement : ADR-011 Event Push via a Per-User Inbox Durable Object : ADR-012 Documentation Site Toolchain (Astro Starlight)
  Phase 7 — Notifications : ADR-015 Server-Side Scheduled Reminder Evaluation via Cloudflare Cron Triggers : ADR-016 Web Push Transport — VAPID + aes128gcm on WebCrypto
  Pending triage : ADR-017 Outbound Transactional Email — Cloudflare Email Routing `send_email` to a Verified Destination (free tier)

Spec links open the spec directory; task counts are completed/total checkboxes in tasks.md. A shipped slice can show fewer than all boxes ticked — some early specs were delivered without ticking every task — so the Status column is the authoritative signal of what is done.

SliceSpecTitleStatusStoriesFRTasksContractsADRs
S1001Identity & accessMerged to main31938/501001, 002, 003, 008, 010

Phase 1 — Core task management (single user)

Section titled “Phase 1 — Core task management (single user)”
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S2002Lists CRUD + offline-sync foundationMerged to main41942/511009
S3003Tasks in a ListMerged to main5214/621
S4004Steps (child of Task)Merged to main52157/571
S5005Task attributes I: notes, starred, due dateMerged to main42149/491
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S6007Sorting + drag-and-drop orderingMerged to main41460/701
S7008Groups (organize Lists)Merged to main41858/581
S8009Views: My Day, Important, Planned, TasksMerged to main42249/531
S9010Search (tasks / steps / notes)Merged to main31739/401
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S10011List sharing & MembersMerged to main32035/361
S11012Task assignment / delegationMerged to main31537/371
S12013Near-real-time updates (polling)Merged to main41825/251006
CI006Full GitLab CI pipelineMerged to main4152/781007

Phase 4 — Reminders, power features, lifecycle

Section titled “Phase 4 — Reminders, power features, lifecycle”
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S13026Reminders (in-app) + recurrenceMerged to main21928/281
S14028CLI (first-class API client)Merged to main32740/402004, 005, 014
S15027Account lifecycle: menu, data export & deletionMerged to main43541/412013
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S16-A014Mobile shell & stacked navigationMerged to main31929/301
S16-B015Mobile Lists screen — count badges + shared indicatorMerged to main31422/231
S16-C016Mobile Task-list screen — iOS task cardsMerged to main31115/150
S16-D017Mobile Task-detail / Subtasks screenMerged to main3110
S16-E018Mobile Empty states — ruled canvas + create-then-renameMerged to main290
S16-F019Mobile Search sheetMerged to main370

Phase 6 — Verification & release enablement

Section titled “Phase 6 — Verification & release enablement”
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S17020Cloudflare staging environmentMerged to main31511/190
S18021Event-based sync pushMerged to main41940/403011
Docs022Graphify docs systemMerged to main42030/305012
SliceSpecTitleStatusStoriesFRTasksContractsADRs
S19029Web Push / OS notificationsPlanned32039/441015, 016
SliceSpecTitleStatusStoriesFRTasksContractsADRs
031031Support Section (Contact the Tasuku Team)Implemented31528/281017
032032General Preferences (Behavior & Views)Implemented21530/301
033033Microsoft To Do Import WizardImplemented32536/362
038038Auto-delete old completed tasksImplemented31524/241