Case file CF-001

pace

active

A calm break reminder that knows when you're on a call. 20-20-20 for your eyes, plus movement. Menu bar only.

Opened
July 2026
Language
Swift
Built with
Claude, as my pair

The idea

A calm macOS menu-bar break reminder. It nudges you to rest your eyes (the 20-20-20 rule) and move your body, and it gets out of the way when you’re on a call or away from the keyboard.

A one-second feedback loop

  1. Two counters advance each tick, one per break type. A counter measures seconds of screen work since that break last actually rested you. That one sentence decides everything else.
  2. Guards run first. If the microphone is in use (Zoom, Teams, Meet, FaceTime, Slack huddles, even muted), the loop holds, and a due break fires the moment the call ends.
  3. Away means away. The screen locked, no input past a threshold, or the machine asleep (the work clock and the wall clock diverge by exactly the time asleep). A break is never shown to an empty chair.
  4. Only three things reset a counter: sitting the break out, saying you already took one, or a long enough spell away.

Tested like a control loop

The loop is the product, and every bug in it is a bug about time: a counter that resets when it shouldn’t, a deferral that comes back too soon. Waiting twenty real minutes to see one is no way to check anything, so both clocks, the mic and the idle sensor are injected, and --sim runs a whole scenario in milliseconds against the real scheduler.

--selftest asserts the handful of things the design would quietly break if a constant were nudged, and exits non-zero, so it works as a gate.

← All case files