Skip to main content

Contract

Temporal task copy acknowledges real dates without manufacturing urgency. The default language is factual, non-prescriptive, and visually calm. Default temporal UI must not use:
  • red badges or red urgency accents
  • all-caps urgency such as “DUE”
  • countdown pressure such as “only 2 days left”
  • blame language such as “you missed” or “failed”
  • moralized states such as “overdue” or “behind”
Opt-in urgency cues can exist only as a user-controlled preference. They are off by default, reversible in Settings, and still follow the banned-language rules in Copy System.

Deadline-window copy

Deadline-window tasks use “needs to happen by” before the due day and “due today” on the due day. They do not use countdowns as pressure.
StateDefault copyDo not use
Outside horizonNo Home copy; task remains hidden unless it fits normal capacity rules.”Upcoming deadline” as a persistent badge
Inside horizon, 3+ days”This needs to happen by Thursday - on a typical day it costs about 12 mana.""Deadline approaching”
Tomorrow”This needs to happen by tomorrow - on a typical day it costs about 12 mana.""Only 1 day left”
Due today”This is due today - on a typical day it costs about 12 mana.""DUE TODAY”
Due today, over pool”This is due today and costs more than today’s mana. It may need to be your priority.""You are over budget”
Due time passed”Carried over.""Overdue”
Cancelled or archived”No longer needed.""Failed”

Appointment copy

Appointment tasks are fixed to a real-world date or time. Before the appointment day, copy is planning context, not a to-do prompt.
StateDefault copyDo not use
Outside horizonNo Home copy.”Appointment coming soon” as a persistent badge
Inside horizon, not today”You have [task name] on Thursday - on a typical day it’ll use about 12 mana.""Prepare now”
Tomorrow”You have [task name] tomorrow - on a typical day it’ll use about 12 mana.""Don’t forget”
Today”Scheduled for today.""Must attend today”
Today, over pool”Scheduled for today - costs more than today’s mana.""Warning”
Time passed”Carried from a previous day.""You missed this appointment”
Cancelled”Cancelled.""Missed”

Deferred and partial work

Deferred and partial-completion copy treats pacing as normal.
StateDefault copyDo not use
Deferred”Moved to tomorrow.” or “Carried from Monday.""Postponed again”
Partial completion”Partly done. Remaining cost is about 6 mana.""Only half done”
Split work”Remaining work added separately.""Unfinished”

Visual rules

Default visual treatment must match the copy:
  • Use neutral or standard task chrome for temporal states.
  • Use date labels as context, not alarm.
  • Do not pair temporal copy with red, error, exclamation, or warning treatments.
  • If an opt-in urgency cue exists, keep it informational and user-controlled.

Implementation references

Current Flutter copy lives in app/lib/core/design/widgets/task_copy.dart. That file should track this contract when runtime copy changes are in scope.