Skip to main content

ADR-001: Overtime

Status

Accepted

Context

When a user works on a task, they may not stop exactly when the estimated time ends. Interrupting the session or requiring manual input at that moment would break focus which is, the core purpose of the app.

Decision

When a task's timer reaches endAt, it automatically transitions into overtime mode without any user interaction. The timer continues running.

When the user eventually stops the task, completedMinutes is recorded as:

completedMinutes = estimatedMinutes + overtime duration

Consequences

  • Users are never interrupted mid-focus when the estimated time ends.
  • completedMinutes can exceed estimatedMinutes, which is intentional.
  • Recalculation cascades (Chapter → Arc) must handle completedMinutes > estimatedMinutes without treating it as an error.