compass icon indicating copy to clipboard operation
compass copied to clipboard

Document and future-proof initial `task` collection schema

Open tyler-dane opened this issue 3 months ago • 1 comments

Feature Description

Draft a schema documentation file for the task collection to shape the foundation for task management within Compass. The document should include both current schema needs and a strategy for gradual, feedback-driven evolutionary changes, so the team stays agile and avoids premature over-engineering.

The document could be a markdown file, issue comment, or a bonafide page on the doc site -- whichever format you prefer.

First Version Properties

  • _id (string/ObjectID): Unique identifier
  • title (string): Task title
  • date (Date): For associating a task to a day/time, with timezone awareness
  • status (string): Track status (IN_PROGRESS, COMPLETED, ARCHIVED, ...)
  • lastUpdated (Date): Timestamp for last update
  • priority (number/string): Level/importance of the task
  • A way to support ordering tasks (which'll allow users to reorder them from the day view and preserve their order)

Evolution Strategy

  • Prefer a flexible schema
  • Process for incremental schema changes (feature flags, versioning, clear migration notes)
  • Record rationale for each addition/removal, tied to user feedback and product needs
  • Regular review checkpoints to reassess planned/future properties

Future Feature Candidates (to add only after confirming users want this)

  • Associate a task with an event (for time tracking and management)
  • Add a due date
  • Add duration (bandwidth estimation)
  • Subtasks (nesting/relations)
  • Rich description (Markdown formatting)
  • Task↔event conversion
  • Auto-archive/backlog after inactivity
  • Sharable task links

Do NOT require properties for future features in the initial schema. Defer these until validated.

Use Case

Explain the use case for this feature, e.g., how it will benefit users and support the app's task/event productivity vision.

Additional Context

Planning this upfront will help us avoid some headaches down the line. But since we're optimizing for profit and sustainability, don't spend too much time or make this overly rigid

tyler-dane avatar Nov 16 '25 14:11 tyler-dane

@victor-enogwe, assigning this to you, as I think you'd do a better job than I would here

tyler-dane avatar Nov 16 '25 14:11 tyler-dane

Compass Task Model and Editing Requirements

Overview

In Compass, the smallest unit of focus and effort is the task. Tasks are designed to support focused, time-bound work and form the building blocks for scheduling, productivity, and event organization throughout the app.


Task Fundamentals

  • Definition:
    A task represents a unit of work with a concrete goal.
  • Time-Bound:
    All tasks are associated with a specific time interval or deadline.
  • Atomicity:
    Only one thing can be accomplished per task.
  • Status:
    Each task has a status (e.g., todo, in progress, complete).
  • Event Association:
    Tasks may optionally be linked to calendar events.
  • Description:
    Every task contains a text description.

Task Creation

Tasks can be created in two ways:

  • By the user (directly in the UI)
  • On behalf of the user (e.g., programmatically, via integrations or automation)

Tasks and App Views

Week View

  • Tasks are not directly visible or editable in the Week View.
  • Users can view and edit events in this view.
  • Task management is intentionally scoped out of the weekly planning context for clarity and focus.

Day View

  • Task Titles:
    Users see a list of task titles for the day, along with any associated events.
  • Edit & Reorder:
    Users may edit the task’s title and reorder tasks within the list for the day.
  • Meta Restrictions:
    Other task details (status, time, description, etc.) are not editable in the Day View.
  • Drill-Down:
    Each task can be selected to “drill down” into its details via the Now View.

Now View

  • Full Detail Editing:
    Users can see and edit all task metadata, including description, status, association with events, and time settings.
  • No Reordering:
    Task ordering changes are not available in the Now View.
  • Completion Flow:
    Users can mark a task as complete and perform all task-specific actions here.

Summary Table

View Task Visibility Editable Fields Reorder Extra Actions
Week None N/A N/A Only event edits
Day Title, Events Title Yes Drill into Now View
Now All Meta All except order No Mark complete, manage status

Design Principles

  • Simplicity:
    Keep focus on specific, actionable tasks — "only one thing at a time".
  • Separation of Context:
    Restrict editing and viewing of tasks by context (week/day/now) to minimize distraction and maximize productivity.
  • Progressive Disclosure:
    Details and edit options increase as the user drills down from week → day → now.

Follow Up

  • Basic Schema
  • How does event-task association surface in calendar UIs?
  • Timeing, notification or reminder flows for task states?

victor-enogwe avatar Nov 20 '25 16:11 victor-enogwe

Initial draft is listed here in the comments, but keeping this open until we start implementing

tyler-dane avatar Nov 20 '25 17:11 tyler-dane