← All writing

Couch shopping changed my workout

On a Saturday at the end of September, my wife and I had a calendar hold to go look at a new couch at a store called Harvest about ten minutes from home. That morning’s brief from Coach, my AI training agent, had replaced my regular Chest and Triceps day with a generic seven-move bodyweight circuit, the kind meant for a hotel room with no gym. I hadn’t asked for it, and the travel switch I can flip myself was off.

The calendar did it. The event was titled something like “Harvest Shopping,” with the store in its location field. The part of my morning brief that works out where I’ll be that day looked up that location and labeled it “Harvest, United States,” with no town attached, and nothing in it yet knew that a store ten minutes away is still home. Coach saw a place that wasn’t home and treated the day as a day away.

It was the wrong call even if I had been traveling. On a real trip I keep my actual session and swap out whatever equipment isn’t there; I’ve never asked for the generic circuit. I didn’t remember ever telling Coach it could change a session on its own guess about where I was. A line in my regimen notes had done exactly that, though: it allowed the circuit when the location reading said I was away from home. I don’t know where this Harvest town is, but its gym sucks.

Chest and Triceps came back that morning, after a home-today override through Dispatch (the Android app I’ve been building as a front door to my homelab) re-ran the brief. The rest of the cleanup was the kind of thing feature creep leaves behind. The same creep I avoid diligently at work became a hobby once I began building my own tools: it was trivial to ask an agent for ten more useful features, ship them, and go to bed. A location reading for the brief, a travel fallback for Coach, and a line of permission connecting them each made sense when they landed. I never thought through what they would do together.

The location system now has a notion of home, a 25-mile radius inside which a place counts as local, so a couch store down the road no longer reads as travel and doesn’t get mentioned at all. A planned stop outside that radius earns one line in the brief acknowledging it, and the brief’s instructions tell Coach to prescribe my normal session unchanged. A travel day I declare keeps the normal session too, with only the movement swaps I ask for. That is guidance Coach reads and checks its own draft against, not a lock in the code. The instruction now says to use the generic circuit only when I explicitly ask for it.