Skip to content

Roadmap

ScopeKite ships as sequential vertical slices. This is the compact record; the full per-PR detail lives in EXECUTION_PLAN and open questions in the research backlog.

PR Title Main capability User-visible impact Notable system change
01 Repository scaffold Monorepo + quality gates — pnpm/Turbo, CI, compose stack, license/secret scanning
02 Design system & shells Tokens, primitives, app shells First navigable UI stubs design-tokens, ui-web + Storybook
03 Database & API baseline Postgres, migrations, health — Drizzle + migration CI, OTel, outbox/audit tables
04 Authentication Sign-up/verify/reset/sessions Accounts work Better Auth adapter, cookie+bearer, rate limits
05 Workspaces & membership Invites, roles, permissions Teams can form Permission service, negative-auth test contract
06 Projects & contract Projects, workflow states Projects exist Zod contract registry → generated client, check:api gate
07 Work items CRUD, activity, events Tasks exist Revisions, idempotency, identifier minting, outbox atomicity
08 Web walking skeleton End-to-end web loop Sign up → create → complete Playwright E2E foundation
09 Mobile walking skeleton Expo app core loop Work from a phone Bearer sessions, mobile fixtures
10 Integration review Gate check across slices — Contract/tenancy audit before Milestone 2
11–12 Comments & inbox Conversation, mentions, notifications Discuss work, get pinged Watcher graph, notification fan-out
13 Project board Kanban columns Drag work across states Optimistic revision-checked moves
14 Cycles Timeboxes + planning Commit work to a sprint Date-only cycles, commit/release ops
15 Filters & saved views URL-persisted filtering Shareable narrowed lists One filter shape across list/board/views
16 Command palette ⌘K navigate/search/create Keyboard-first navigation Debounced workspace quick search
17–18 Email pipeline Provider adapter + outbox worker Reliable verification/invite mail Resend/Mailpit adapters, retry worker
19 Realtime-lite Polling freshness Badges/threads stay current Freshness contract per surface
20 Attachments Upload/download/delete Files on tasks MinIO/S3 via guarded routes only
20.1–22 Staging + observability + roadmap Deploy, dashboards, objectives/modules Staging URL; roadmap surface Continuous deploy runbook, OTel dashboards
23 Dashboard Workspace home See your day at a glance Composed from existing endpoints
24 UX polish wave Mention typeahead, inbox polish Smoother daily loop —
25 Rich text Constrained markdown Formatted descriptions/comments Shared grammar, sanitized rendering
26 Comment attachments Files on comments Attach in context Comment-linked uploads, confirm-gated delete
27 SSE realtime Live updates Near-instant badges SSE over outbox, polling fallback
28–30 Mobile catch-up & search Mobile inbox/detail, workspace search Phone parity for the loop Search endpoint over items+comments
31 Import/export CSV both ways Migrate data in/out Dry-run all-or-nothing import
32–33 Ops & security hardening Rate limits, headers, sessions UI Self-serve session control Per-account limits, CSRF posture pinned
34 UX audit & specs Target interaction model — ADR-027 + the PR-35…41 spec pack
35 Split-pane task detail Context-preserving pane Open tasks without losing your place Intercepting/parallel routes, one URL
36 Sub-tasks One-level children Break work down Additive parentId filter (v0.15.0)
37 Attachment gallery Thumbnails, lightbox, paste Screenshots feel native Strict image allowlist, SVG never inline
38 Unified conversation Comments + milestones, mobile markdown Task reads as one story Parser moved to domain, native renderer
39 Split-view refresh fix Context in the URL Refresh keeps the split view ?context= param + hard-load pane route
40 List/board/overview polish Grouping, bulk, quick-edit, triage Faster daily surfaces Bulk per-item PATCH + retry, keyboard model
41 Cycle planning room Two-pane planning Plan a cycle in one screen Client-side rollups, warning chips
42 Visual polish Density, icons, motion, preview Compact mode, calmer UI Density context, motion-reduce-safe animation
43 Docs site Astro Starlight foundation This site Curated layer; repo docs stay canonical
44 Docs on staging docs.scopekite.code.lease Docs reachable next to the app Static container, NPM ingress, no env access
45 In-app help Sidebar + palette + empty-state docs links Learn without leaving the app One URL registry, safe new-tab links only
46 First-run onboarding Getting-started checklist, teaching empty states Fresh workspaces explain themselves Progress derived from real data, local flags only
47 Activity in conversation Collapsed “All activity” in the task story Who-changed-what without tab switching Activity tab retired; timeline reused as renderer
48 Task-detail quick actions Copy link, assign-to-me, mark done, cycle picker Common moves are one click Reuses existing endpoints; relations stay R-47
49 Responsive QA Three-viewport smoke, loading polish Layouts hold from phone to desktop Overflow guardrail; surfaces join the sweep
50 Post-marathon QA Staging re-verification, flake fixes Marathon confirmed stable in production posture Docs-and-tests-only; no product code touched
51 Retrospective & playbook Architecture lessons, reusable checklists — Docs-only; evidence-cited
52 Workspace admin polish Identity, members, invites, vocabulary map Administration feels trustworthy Removed false deletion copy; permission logic unit-tested
53 Asana UX research Clean-room competitive dossier — Behavior-level findings only; proposed the PR-54…59 wave
54 Project overview & status Brief, health ritual, roadmap/cycle/activity panels Projects explain themselves Append-only project_status_update; health ≠ lifecycle; nothing computed
55 Project Files Every attachment in one project lens Find that screenshot again Read-only aggregate over items + comments; PR-37 allowlist reused
56 View display & quick filters Columns, grouping, density, preset chips Shape the table you work in Display document in the existing saved-view payload — no migration
57 Relations & dependencies blocks / duplicate / relates, blocked indicators Answer “what blocks this?” work_item_relation; inverses and blocked computed, never stored
58 Project dashboard Counts, breakdowns, every number drills down See a project’s shape at a glance One additive aggregate endpoint; tile and drilldown share a filter
59 Customize drawer Project configuration in context, real controls only Change settings without losing your place Drawer over the route; nothing advertised that has no endpoint
60 Post-wave acceptance Staging verification, cross-surface journey, role acceptance Badges now readable; status picker honest Contrast gate + research-id gate joined the quality path
61 Mention autocomplete Accessible member typeahead, @email tokens Mention the right person, even name twins Pure logic shared via @scopekite/domain; no contract change
62 Comment editing Author-only edits, revisions, tombstones Fix the typo without rewriting history ADR-028; deleted content scrubbed everywhere; no impersonation edits
63A Attachment scanning ClamAV worker loop, fail-closed downloads Files are checked before anyone opens them Only clean downloads; honest Scanning/Blocked states; R-12 half closed
63B Retention & restore Guarded purge, offsite backup, full drill Deleted means deleted — and backups provably restore Dry-run-first purge; same-disk honesty; R-12 awaits a real destination
64 Mobile parity Mentions, comment edits, scan states, relations, overview The daily loop genuinely works from a phone Shared domain logic; ADR-029 gates push; no new native deps
65 Observability→work ADR-030 + signed-webhook ingest prototype Alerts become tracked work instead of lost pings Standard-Webhooks auth; fingerprint dedup; routing from config only
66 Integration management UI Settings surface, once-only secret, test events, health facts Set up an inbound webhook without touching the API by hand Contract 0.24.0; deterministic test fingerprint; failure counters (0018)
67 App shell & rhythm Viewport-locked shell, one date dialect, branded 404, cached nav The chrome stays put and every date reads the same way Beautification 1/4 (UI audit); no schema or contract change
68 Planning surfaces Cycle-room relayout, guarded delete, My Work sections, feed grammar, cycle progress The sprint ritual is calm and My Work reads like a day plan Beautification 2/4; honest “completion so far” figure, not a fake burndown
69 Mobile & rows Two-line phone rows, filter sheet, board due chips, pane polish, title-first search The daily loop works one-handed and rows never hide their titles Beautification 3/4; board pane becomes an overlay, no column slivers
70 Identity & color Project colors, card signals, state-colored dashboard, auth card, parsed sessions Projects have a face and every card says how the work is going Beautification 4/4; contract 0.25.0 (additive list signals)
71 Capture & empty states New-task quick-fields, danger overdue callout, empty-state typography Capture stays one keystroke, detail is one click away Gap marathon 1/3
72 Roadmap earns its name Month-grouped targets, initiative progress from linked projects The roadmap answers “when” and “how far along” without pretending Gap marathon 2/3; contract 0.26.0 (additive itemCount)
73 Project colors Pickable identity color with automatic fallback Projects look the way the team decides Gap marathon 3/3; migration 0019; contract 0.27.0
Task Slice User impact System change
SCA-2 Mobile workspace selection Sign-in and switching make workspace context explicit Mobile-only; validated saved membership and workspace-scoped cache reset
SCA-3 Unified task story Files, comments, and meaningful activity stay visible together; delete leaves the tab bar Web-only composition of existing guarded queries and mutations
SCA-4 First-run team + project setup A founder can seat the team and shape the first project while intent is fresh, or skip safely Web orchestration over existing invitation/project APIs
SCA-5 Bulk-selection discoverability People know what selection unlocks before committing, including at phone width Web-only selection mode and tests; existing bulk mutations unchanged

In flight — Product Knowledge (PR-82 … PR-86)

Section titled “In flight — Product Knowledge (PR-82 … PR-86)”

Write the decision once. Turn it into work. Follow it through delivery.

A bounded document surface inside the tracker: structured pages in a hierarchy, tasks created from a page’s own paragraphs (keeping an excerpt that survives later edits), the page reporting live delivery state for the work it produced, and read-only page reading on a phone.

This is an explicitly recorded promotion of what SCOPE.md listed as a P0 non-goal — ADR-031 states the decision and names what stays out: realtime co-editing, comments anchored to selected text, page media, public sharing, imports, page-level permissions, and mobile editing (R-70…R-78).

PR Slice
82 Architecture, UX spec, ADR-031, editor decision (Tiptap OSS, MIT, client-only — chosen on measured bundle/license/block-id evidence)
83 Page hierarchy, persistence, permissions, API, append-only revisions
84 Web Pages tree and the structured editor, with an honest conflict contract
85 Linking pages to work; creating tasks from document blocks
86 Initiative documentation, permission-filtered work rollups, mobile reading
  • R-54…R-58 — the Asana-inspired project UX wave: all five shipped in PR-54…59. What each slice deliberately cut lives on as R-59…R-64.
  • R-47 — dependencies/work-item relations, raised in priority by PR-53’s task-detail findings.
  • R-45 — bulk undo (inverse patches); roadmap progress rollups (PR-40.1).
  • R-50 — app-component Storybook harness, spacious density, exit-motion audit.
  • R-35 remainder — velocity/burndown analytics, cycle badges on rows/cards.
  • R-44 — email bounce webhooks and preferences; R-46 — labels end to end.
  • Platform: RLS revisit (R-18), search indexing at scale (R-43), virus-scan gate (R-12).

The docs site itself (this PR-43) is infrastructure; expect these pages to trail the repo docs slightly — they are curated, not generated.