-
generate: p key pushes workout PDF to a Supernote
-
generate: dispatch on effort_kind via compute_prescription_any
-
effort: consolidate reps into effort/reps.rs and migrate callsites
-
templates: Exercise.load_unit is a LoadUnit enum, not a raw string
-
progression: Prescription carries Load and Reps newtypes
-
sets: SessionSet fields are Load, Reps, Rpe
-
values, heuristics: name the primitives and gather the magic numbers
-
pdf: redesign as a technical session sheet
-
pdf export via typst subprocess
-
generate screen: scorer, picker, reroll UX