Randomly ask the user specific questions for productivity data collection
Prepare initial release
Add initial implementation


browse  log 



You can also use your local clone with git send-email.


This library provides a way to randomly ask yourself a question to collect productivity data. The primary entry point is the macro define-asker. It may be called as follows:

(define-asker current-focus ("~/focus-data.csv" "On a scale of 1 (not focused) to 5 (deeply focused), what is your current level of focus?")
              :response-type (likert :range 5)
              :min-frequency 3600       ;no more often than hourly
              :max-frequency 7200       ;No less frequently than every two
              :pre-prompt (beep))

This defines an asker current-focus, and the restart and pause commands, restart-current-focus and pause-current-focus, respectively. When current-focus is run (automatically), the user's response (and a timestamp) will be written to the CSV file ~/focus-data.csv.

Timing generally is controlled by the arguments min-frequency and max-frequency. These are the minimum and maximum number of seconds between asking. The initial time to ask is controlled by initial-offset and min-initial which performs (+ initial-offset (random min-initial)).

Prompting types include (see also random-ask-generate-requester):

  • likert
  • number
  • character
  • color
  • answer
  • custom