Quarter past seven in the morning, and I am syncing a watch.
Not stretching. Not lacing up. Syncing. Because in about forty-five minutes a machine I built is going to gather up everything that happened to me yesterday and write me a briefing about it, and if the watch hasn't spoken to the phone by then, he will never know I slept nine hours. No credit whatsoever for the single most impressive thing I did all week.
An automation pipeline with one manual step. The manual step is me, awake in time.
So this is the page where I open Ted up properly. The story of who he is, and how I gave him the wrong personality twice, is Split 04. The promise that a real person writes every word on this site is How This Is Made. This is the third thing: the workings, seams out, for anyone daft enough to want their own AI coach to hold them accountable.
What Ted actually is
Let's keep this simple, because underneath the character it genuinely is.
Ted is an AI coach. Not an app I downloaded. A scheduled workflow that collects everything that happened to me yesterday, the runs, the lifting, the sleep, the weather, my own excuses, hands the lot to a language model wearing a personality I wrote for it, and emails me the verdict at eight. His job isn't really the plan. It's accountability. He notices. That's the product.
The blog calls him a robot because it's the funnier word. Between us, he's a coach. The distinction matters about twice a fortnight, usually when he's right.
What he's made of
Quite a lot of ordinary things, wired together stubbornly.
The engine is n8n, in the cloud for now, standard plan, about twenty quid a month. The long-term plan is a Mac mini in the house running it for free, at which point the coach's salary drops to the electricity. There are fifteen workflows in my account and Ted proper is about eight of them.
The brain is Claude. Same model at every station: the daily briefing, the weekly plan, the monthly review. Total model cost, last time I checked: three to five pounds a month. A personal coach for the price of two coffees.
The runs come from Strava, including a second fetch for the lap data, squashed down by a bit of code so Ted sees the shape of an interval session rather than just the average. The strength comes from Hevy, straight off its API, and there's a house rule written into the prompt because I learned it the hard way: Hevy is the truth for strength, Strava for runs, and never count the same session twice. Before that rule existed he praised me for a warm-up row I'd already been praised for. Wrong direction entirely.
The sleep comes from COROS, and here's the bit even the automation crowd don't see coming: COROS ships an official MCP server. A little agent inside the workflow phones it each morning, asks for my last seven nights, sleep stages, HRV against baseline, resting heart rate, training load, and files every night into a spreadsheet so the history builds up on my side of the fence.
Then the supporting cast. OpenWeatherMap for Winsford conditions, which sounds trivial until you learn the dog has his own weather clause (we'll get there). Google Calendar, read every morning, so a funeral or a Birmingham day is a constraint Ted plans around, not a surprise he punishes. Google Sheets as the memory: my notes, the sleep archive, the training log. And Gmail for the delivery. Eight o'clock, sender name "Ted", sent from my own email address. I write back to myself and a workflow reads it an hour later. There's a sentence for the therapist.
The subscriptions are the cheap bit. The expensive bit is that I set out to spend less time on all this, and I have never spent more time on anything.
A night in the life
Here's what actually happens between me going to bed and the email arriving.
Overnight, nothing. Ted sleeps too, in the sense that nothing fires until morning. The data just sits where it lives: the watch holds the night, Strava and Hevy hold yesterday.
Between six and half seven, the one manual step. I wake, somewhere in that window, and the watch syncs to the phone, and the phone syncs to COROS. The email used to land at half seven, and I moved it to eight for exactly this reason: on the late mornings, the night's sleep hadn't made it upstream in time. The fix for a race condition in a production data pipeline was to give the operator half an hour more in bed. Somewhere an engineer is weeping. It works perfectly.
At eight, the trigger fires and everything happens at once. Strava, laps and all. Hevy. The calendar. The weather. My recent notes. The COROS agent's seven nights. All of it lands in a single briefing prompt that has quietly grown to about twenty-eight thousand characters: my profile and PBs with dates attached, the pecking order of the data sources, the sleep thresholds, the entire personality doctrine, fuelling rules, and the week's plan spelled out to the individual rep.
At about two minutes past, the email lands. An opening quote in character. Last night's recovery, read properly. Yesterday's session, analysed lap by lap. Today's session, with structure and one technique cue. What to eat and when. The weather, and with it the day's most important ruling: whether Bernard comes. And a week-so-far table with every planned session marked done, partial, or missed, which is the accountability engine in its Sunday best.
From a real one, a "Pardo" morning:
Overcast and still in Winsford this morning. 14.8°C, wind almost nothing. Comfortable running weather. Bernard comes.
No pace chasing, no tempo surges, no responding to Bernard's enthusiasm by opening up. This is a coda, not a statement.
And the diary? The diary is just replying to the email. An hourly workflow sweeps my replies, strips out the quoted thread, and files the note where tomorrow's briefing will read it. "Couldn't face it" is a valid entry. Under Ted's rules, honesty gets you a conversation and silence gets you a telling off. The entire feedback system is: answer your coach's email.
The week, and who does the maths
Monday mornings, a bigger workflow runs the week. And it contains the one design decision I'd defend in a pub at length: the maths is code, not the model.
A deterministic engine, plain JavaScript, no AI anywhere in it, replays ten weeks of sleep, HRV and training load, scores it green, amber or red, and lands the week on one of four states: Normal, Modulate, Recover, Rest. Claude never does the arithmetic. Claude gets handed the arithmetic and told to be a coach about it. Language models are for judgement and voice. Counting is a solved problem, and the solution is not a language model.
Then it writes the week into Google Calendar as colour-coded sessions, the two key ones in red, and yes, Saturday's entry is literally titled "🐕 45min Easy Run (Bernard)". Once a month it writes a longer review instead.
The personality, briefly
The full story of the character, three coaches in three gears and how I fell for the wrong one twice, is Split 04, and I won't retell it here. The short version for the builders: the personality is a written doctrine inside the prompt, not a vibe. John Wooden is the default. Brian Clough is the edge, and he only fires when a session is missed with nothing in the calendar and no word from me. Ted Lasso is the ceiling, and he is earned, never default. The founding rule is in there word for word:
Never open warm by default. Warmth that arrives before the work is worthless. He built you specifically so that he would not be congratulated merely for getting out of bed.
Bernard, as promised, has his own clause. Tuesdays and Fridays he stays home. Weekends he always comes, short of a thunderstorm. Wednesdays he comes if it's mild, and above twenty degrees he stays on the cool kitchen floor like the gentleman he is. One-line verdict in every email. The dog is a stakeholder.
And buried in the same file: a full football-terrace chant, reserved for a perfect week or the day the sub-20 falls. It has never once fired. The site is named after the sound it will make.
Keeping him honest
What the Splits undersell is how much of my life is spent quietly fixing him. Ted coaches me. I maintain Ted. Neither of us discusses the arrangement.
A few entries from the maintenance log, so you know what you'd be signing up for.
The debut. The day Ted finally got his name, his persona and his "...Ted." sign-off, his first ever morning died three nodes upstream on an expired Hevy credential. The coach built to never miss a morning missed his own first morning.
The wrong year. The sleep agent, left to work out dates for itself, once asked COROS for June of last year. Thirteen months out. And the scheduled runs, it turned out, had been getting it right by luck. The fix now opens that prompt with "TODAY IS {date}. Never guess or assume today's date," which is a sentence written for a machine that is also decent life advice.
The shared icon. Hevy and the email service silently shared one saved credential, so fixing one broke the other, three mornings running, until I spotted the cause myself. They had the same icon. The AI did not find that one. I found that one.
The double morning. One Saturday in July, Ted sent the briefing twice, 8:02 and 8:07, two different versions of the same day, something upstream retrying itself into enthusiasm. Even my coach occasionally needs telling once is enough.
And the standing truth underneath all of it: I am the best sensor in the system. The machine has caught my training lying to me. I have caught the machine celebrating a night's sleep that belonged to the day before. We check each other's work. It is, whisper it, an actual relationship.
What he can't do
Ted can analyse lap two of a deload run to the decimal. He cannot know what the light was doing over the water while I ran it. The full version of that promise, what the machines do here, what they're banned from, and why every word of the story is mine, is How This Is Made. This page is the workings. That page is the contract.
Should you build one?
Honestly? More reasons to than not. And I say that having done it the hard way.
Don't, if what you want is a training plan. A club, a book, a human coach, any app on your phone will hand you one for less money and none of the maintenance. Ted is not the cheap option once you price the evenings.
Do, if you suspect, as I did, that the tinkering is the accountability. I have stuck at this partly because I cannot bear to abandon something I built. And do it for the other thing too, the one I didn't see coming. This all started in early June. The learning curve since has been steep and incredibly rewarding, and somewhere partway up it, everything quietly started to look possible. I came for a running coach. I'm leaving with a working education in agents, APIs and prompt design. The fitness was the excuse.
If you're starting, read alongside the building. Co-Intelligence by Ethan Mollick is far and away the best first book on what these tools can actually do and, just as usefully, what they can't. Claude AI Unleashed by Joseph Green is a solid practical primer, on Kindle Unlimited if you have it. And I'm now into Chip Huyen's AI Engineering, a properly heavy book that would have felt out of reach two months ago. That's the curve doing its work. It's genuinely exciting.
Where would I start again? One data source and one morning email. A schedule trigger, the COROS agent, one Claude node, Gmail. That's a weekend. Then write the personality before you add anything else, because the doctrine is what makes it a coach rather than a summary. Data sources are plumbing. The character is the product.
What would I do differently? I've sat with this one, and honestly: nothing. Not because it went smoothly. The maintenance log above says otherwise. Because the going wrong was the education.
The point of all of it
Ted is the cleverest thing I've ever built and he has never run a single metre. The gap between 24:36 and 19:59 gets closed by the slow idiot he emails every morning. Whether that's working is a different question, and I'm answering it in public, one Split at a time.
Questions about the build, ask. If enough people turn out to be daft enough to want their own Ted, I'll write the follow-up.