rides.md

← All posts

Build log ·

What the file doesn't know

A power file can show the work. It cannot know what the workout asked for, what you ate, or that you cramped.

The activity file knows power, heart rate, speed, elevation. It may know weather or sleep if another service adds them. It still does not know intent. It does not know that you were riding the easy half of a planned workout, that you missed a bottle, or that your calf cramped on the last climb. Those things change how a ride should be read.

So I added a notes field. One short line before feedback. Optional. Stored on your device. Sent with the feedback request only when you ask, as part of the markdown that goes to api.rides.md and OpenAI. The raw FIT file and GPS coordinates stay out.

The second missing thing is intent. If a ride is paired to a planned Intervals.icu workout, rides.md uses the written structure. An easy second half that the workout asked for stops getting called a fade.

Take a long day in Mallorca: Esporles to Deià, over Puig Major, down Sa Calobra. 181 km, 10h27, 2,731 m. I added my notes: carbs, sodium, and the cramp on Sa Calobra.

AI feedback card for the Esporles to Sa Calobra ride, with athlete notes and the feedback read
Power held all day. The cramp is the part only I could tell it.

Now the feedback can read the file with context instead of inventing it. The lab curve puts the day at about 740 g of carbohydrate burned. My gut target is around 90 g an hour. On terrain like this you usually cannot eat as fast as you burn. That does not prove why the calf cramped on the last climb, but it puts the cramp in the right neighborhood: late fatigue, intake, sodium, heat, and ten hours of work instead of a mysterious line in the file.

And it keeps oxidation as cost, not a meal plan. Burning about 740 g of carbs does not mean you should eat about 740 g. Most of it was already in the tank when I clipped in.

The numbers tell you what happened. The plan and notes say what the file could not know. They do not prove cause. They keep the read closer to how the ride actually went.