For example, could be drop down list
“I want to [Drop down list]”
Once you select an action from the drop down list, it provides additional options. Example:
I want to [take a break] starting on [date] and ending on [date].
I want to [change the slope] starting [on date|as soon as possible] from slope $CUR_SLOPE/[day|week|month|year] to [enter amount] per [day|week|month|year].
(My idea for presentation of slope is you could see what your current slope is as represented in terms of per day, week, month, or year, and that would help you to choose the amount and time period for the new slope.)
I have a half-written spec outlining something just like this–I’m glad you posted it!
I would even like a “human language” version of your whole commitment, so it could say things like “Your goal is to achieve a value of 275 donuts by September 19th, 2022. You have a break from July 1st to July 6th where you are not expected to make any progress. Each day, the required total increases by ~1.37 donuts.”
I think a small set of use-cases might cover the majority of people’s change needs. I can only think of a handful. Here’s some pairs of opposite or complementary functions. These are worded from a do-more perspective:
A1. Reduce deadline by X days. Aka Ratcheting.
A2. Increase deadline by X days (aka “add relief days”). Takes effect in 7 days. This is the opposite of ratchet.
B1. Increase slope to X on DATE. Default would be 7 days, but I think a user should be able to set it to be any other date, including today. (I think many people want to start with a particular slope right away.)
B2. Reduce slope to X on DATE. Where typically, DATE must be at least 7 days ahead due to the akrasia horizon.
C1. Take a break/vacation from DATE1 to DATE2. (DATE1 >= 7 days).
C2. Change slope on DATE1 to X, then change it again on DATE2 to Y. (More generalized form of break/vacation. I’m not sure if this is a common use-case scenario.)
@coolhandlouis and @adamwolf - I second that. That’s a good use of your time!