Open evelyn opened 3 months ago
@evelyn Holy cow this is such a well thought out proposal! I am so grateful for the time you put into this. I think this would be a great addition to Traindown especially for the "density" use case--i.e., weight over time, etc. I want to digest a bit more and then figure out what an implementation may look like.
This proposal introduces a new
TIME
notation for recording the duration of a performance in Traindown, along with additional metadata keys for capturing overall session duration and other time-based training details. TheTIME
token and related metadata keys are designed to be compact, clear, and consistent with existing Traindown conventions, enhancing the language's expressiveness and utility while keeping notes succinct and portable.Rationale
The current Traindown specification provides a flexible method for recording training sessions but lacks standardized ways to succinctly record performance durations and overall session timing. This proposal introduces the
TIME
token for individual performance durations and additional metadata keys likeDuration
,Rest
,Warmup
,Cooldown
,Interval
,Pace
,Recovery
, andPause
to capture important details relevant to time-based training. The focus remains on keeping the notes portable and concise, aligning with Traindown’s core philosophy.TIME
Notation SpecificationSyntax
bw
for body weight).TIME
Token Format@Hh:Mm:Ss
: A compact format for recording time.05
for 5 seconds).@Hh:Mm:Ss
token itself.Compact and Context-Aware Notation
Mm:Ss
if time is under 1 hour (e.g.,8:00
for 8 minutes).Ss
if time is under 1 minute (e.g.,45
for 45 seconds).Hh:Mm:Ss
if hours are included (e.g.,1:15:00
for 1 hour and 15 minutes).Contextual Use of
@
SymbolExisting Usage:
@
Symbol:@
symbol is currently used at the session level to mark the start of a session with the date and/or time when the training session occurred. For example:Proposed Usage:
@
Symbol:@
symbol is proposed to be used within theTIME
token at the performance level, followingSETS
and beforeFAILS
, to indicate the duration of that specific performance. For example:@
.How TIME is Interpreted
In the example:
This structure keeps the core components of the workout (load, reps, sets) together before introducing the performance-specific details like duration, making the overall entry more readable and logically consistent.
Ensuring Clarity and Avoiding Conflicts
Contextual Clarity:
@
symbol at the session level is always used at the start of a session, whereas theTIME
token using@
appears within performance entries. The contextual difference ensures that the two usages are not confused.No Overlap:
@
symbol is placed at the top of the session, while theTIME
token with@
is embedded within performance entries. There should be no scenario where these two uses conflict.Documentation and Specification:
@
symbol:TIME
token to record the duration of a specific performance.Additional Metadata for Time-Based Training
Duration
Metadata KeyDuration
@Hh:Mm:Ss
format.Rest
Metadata KeyRest
@Hh:Mm:Ss
format.Warmup
Metadata KeyWarmup
@Hh:Mm:Ss
format.Cooldown
Metadata KeyCooldown
@Hh:Mm:Ss
format.Interval
Metadata KeyInterval
@Hh:Mm:Ss
format.Pace
Metadata KeyPace
@Hh:Mm:Ss
format with a unit of distance.Usage Examples:
Running Pace (per mile):
Cycling Pace:
Swimming Pace (per 100 meters):
Recovery
Metadata KeyRecovery
@Hh:Mm:Ss
format.Pause
Metadata KeyPause
@Hh:Mm:Ss
format.Expanded Usage Examples
Example 1: Strength Training with Exercise-Specific Metadata
@
notation for clarity.Example 2: Running Session with Sparse Session Metadata
Example 3: Swimming Session with Interval Training
Example 4: Circuit Training with Varied Exercises and Time Notations
Example 5: Military Fitness Test
Benefits of the
Duration
,Rest
,Pace
,Pause
, and Other Time-Based Metadata Keys:Comprehensive Tracking:
Flexibility:
Consistency and Succinctness:
@Hh:Mm:Ss
format across different time-related keys ensures clarity, while the correct application of time entries supports portability and succinctness.Conclusion
The introduction of the
TIME
token and related metadata keys likeDuration
,Rest
,Warmup
,Cooldown
,Interval
,Pace
,Recovery
, andPause
enhances the Traindown language by providing a clear, concise, and consistent method for recording various time-related aspects of training sessions. This proposal maintains the minimalist ethos of Traindown while offering users additional flexibility and precision in documenting their training sessions.