Three exports and a chat window
Every week I did the same thing. Export the watch data. Export the training log. Add what the scale said. Paste it all into a chat, explain the plan and ask what to do next. The first answers were good.
Then it drifted. By about the fifth message it would contradict something I had pasted the week before, or describe a lift I had never done. The reasoning was fine. The old material had just fallen out of the window.
A model only knows what is in front of it right now, and that space is limited. A year of lifting is thousands of sets, before you add sleep, HRV and daily weight. It does not fit. So you paste a slice, the model fills the gaps with a guess, and every new chat starts from nothing. You become the memory. The memory was the part I wanted to hand over.
Why pasting more makes it worse
My first fix was to paste more. That made it worse. The window filled with raw rows, the oldest weeks dropped off first, and the numbers I cared about were being added up by a model that is bad at adding up.
The model sees a slice and treats it as the whole story. Ask for weekly volume and it counts rows by hand, and gets a different answer each time.
Eighteen months of training fits on a page, worked out the same way every time. The full history is still there when a question needs it.
So I built the app first
Povver started as a training app. The chat came later. The boring work had to be right first. Count hard sets per muscle. Track an estimated 1RM per lift. Compare your volume with the published ranges. Decide whether you have earned a heavier weight. That is arithmetic, and it should give the same answer every time.
A language model is bad at arithmetic and good at the part after it. Reading the shape of a training block. Weighing a stalled lift against a bad week of sleep. Explaining a decision in a sentence you can argue with.
So the app does the counting, and the model reads what the app counted. Both are open over MCP, the standard way to plug data into Claude and other assistants, so any assistant can read the summary, dig into single sets when it needs to, and write the change back into your routine.
Where each part does its job
The left half gives the same numbers every time. The right half uses judgement. The app never lets the model do the counting.
Weight, reps, RIR, done or not. Thousands of rows nobody should have to read.
Volume per muscle, e1RM trends, where you sit against your landmarks, whether you are recovered. Same result every run, and you can check it.
Reads the numbers, asks for more detail where it matters, proposes one change and says why.
The template updates in the app. Nothing to copy anywhere.
Seeing the whole picture
Training is one of three inputs. A Garmin watch covers the body: HRV, sleep, resting heart rate, morning readiness, training load, and food if you log it. A Withings scale covers weight and body composition every day. Both can be read over MCP, one through a community server, so all three show up in one place.
That matters because each signal on its own will mislead you. Here is a real week:
Three problems. Getting fatter, sleeping badly, and a bench that has stalled. The obvious fixes: cut calories, take a deload, change the bench programme. All three would be wrong.
One problem. The late heavy session cost me the night's sleep, the weight is water, and I pushed the bench into a body that had not recovered. Train earlier. Change nothing else.
A good coach sees that in a glance, because they hold all of it in their head at once. That is exactly what the copy-paste loop could not do. No single window held enough to see that four events were one event.
That check runs on a schedule now, and most of the coaching work is automated.
Get in touch
If you run this loop yourself and something breaks, or the model gets a call wrong on your training, that is the most useful message I can get. Arguments about programming are welcome too.