TechIreland National AI Challenge 2026 · Team Lead
One explainable training decision from your recovery, your training log and your nutrition, with the evidence and the uncertainty kept visible.
2 weeks
1 Sep → 14 Sep
5 → 3 people
Across four Irish hubs
5 actions
The only outputs allowed
17 prompts
Staged overnight build
Anyone who trains seriously ends up doing the joining-up themselves. Recovery lives in WHOOP or Oura, the training log lives in Hevy, Strong or a notes file, and food lives somewhere else again. Hevy knows what you lifted. WHOOP knows how you slept. Neither one tells you what to do in the next hour, and neither explains why.
Brio is where those facts meet. It reads consented recovery signals, the structure of a training block (block → split → movement → set → load × reps × RPE) and daily nutrition. From these it proposes exactly one bounded action for today's session: Progress, Maintain, Repeat, Reduce or Escalate. Every recommendation shows the evidence it used, what it left out, how confident it is, and where its specialist agents disagreed. The athlete can accept it or change it.
I led a team of five, finishing as three, in the TechIreland National AI Challenge 2026. My roles were product owner, project manager and front-end/UX owner, and I built the pitch. This page follows the project from the first business-validation conversations with Manus AI, through brand and agent design, to the implementation and the regional presentation on 14 September, where we pitched Brio as a working proof of concept with a plan to take it to an MVP.


The Today workspace in the guest demo. Nine signals are each compared with the athlete's own recent baseline instead of a universal threshold. There is no recovery percentage anywhere in the product. Every synthetic input and every scripted decision is labelled as such, so the demo is never mistaken for real health data.
How a personal fitness dashboard turned into an agentic decision product: validated with Manus AI in August, then built in two weeks (1–14 Sep).
20 Aug · Before the sprint
I started with my own problem: a body-composition dashboard that brought together WHOOP, Apple Health and my lifting notes. I used Manus AI to test it as a business, and it produced six founding documents under the working name Adaptive Fitness Intelligence. They covered idea validation, the value proposition, the unique selling point, recommendations, an elevator pitch, and a methodology with a ranked list of concepts.
The validation gave it 39/60 and a clear verdict: build a tightly scoped MVP, not a platform. The ranked list was more pointed. Scored as a challenge entry, my original dashboard came 10th of 11 because it was "a dashboard rather than an agent". The winning reframe, a consent-first agent that proposes one approval-gated session change, scored 88.5/100 and became the entry.
The documents also set the rules that the rest of the project kept: compare each athlete with their own baseline, make no performance claim (a 2022 meta-analysis found no significant strength advantage for autoregulation), and stay non-clinical.
1 Sep · Positioning
I compared Brio with Hevy, Strong, WHOOP, Oura, Fitbod, SensAI and Garmin Coach, looking at whether each one knows your training, knows your recovery, decides today's session and explains why. That changed the build. Ghost sets and fast logging only matched what Hevy already does, so they weren't the headline. The real difference was recovery, training and nutrition meeting in one decision the athlete can question.
3 Sep · Brand
Brí is Irish for strength and vigour, and also for meaning or significance. That covers both halves of what the product does. I drew the original logo myself: a serif "Bri" on sage green with a Celtic triquetra as the "o". The brand work kept the sage and the triquetra and refined the rest. The three loops became the three signals (training, recovery, nutrition) and the ring became the connect → log → compare → decide → learn loop. The brand archetype is Sage 70 / Ruler 30: show the working, bound the claim, let the lifter decide. The palette has nine colours, and all seventeen text pairings pass WCAG 2.2 AA.
Early Sep · Team & plan
The team was spread across PorterShed, Innovate Limerick, Dogpatch Labs and Irish Manufacturing Research. I picked Jira as our single tool from planning through execution to testing, because its Timeline gave us a real Gantt chart with dependencies. I then turned a ten-day sprint plan into a delivery plan: one vertical slice (signals in, session logged, one explainable recommendation out) and a feature freeze before the regionals.
On 8 September the team went from five to four. I re-planned the same day, took over the guardrails and escalation-language work, and replaced a manual QA pass with an automated set of adversarial test scenarios.
On 10 September it went from four to three. I took over the front end and the demo on top of what I already owned, and held the feature freeze rather than moving it.
8 Sep · Agent design
The first architecture had nine agents, and most of them used no model at all. So the question "how do we train them?" became three concrete deliverables. The first is a Rule Register, where every rule has a trigger, a bound, an evidence tier and a citation. The second is a set of strict prompt contracts for the agents that do use a model. The third is an evaluation set to test them against. The plan also set an offline-first PWA architecture that allows for iOS storage limits, a hybrid food database built from Open Food Facts and USDA data, and a list of things we would deliberately not build, including the widely criticised acute:chronic workload ratio.
8–11 Sep · Foundations
The web app started on Next.js with Better Auth and PostgreSQL, using Drizzle for migrations. It had a Dokploy Docker Compose pipeline from its first day. An Expo iOS helper read HealthKit data (steps, active energy, heart rate and sleep) and pushed it to the backend. By 11 September the first version (v1) had three agents, an orchestrator and a chat interface that streamed tool activity as it ran.
12 Sep · Design
I wrote the screen-by-screen build notes: no email wall before the first recommendation, only two sign-up fields, every consent toggle off by default, and stale data labelled rather than hidden. I also set up Penpot on Docker so the whole team could inspect layouts without anyone paying for seats. The 21-screen board is stored in the repo and exports to SVG.
12–13 Sep · Build
For the final push I prepared a playbook of seventeen staged prompts (P01–P17) and ran them with Manus against our existing codebase, from 21:27 until a noon cutoff. Each stage had to leave evidence behind: test output, a decision record and a list of known gaps.
Stage one audited the baseline and found a real defect. Because an ID was globally unique, one account could overwrite another account's health data. The fix scoped the ID to each user. The later stages added durable consent, check-ins, a training set ledger, the five-action decision contract with an immutable audit trail, an installable PWA that never caches private data, and five synthetic early-customer profiles for judging. Finished build: contract tests 6/6, demo tests 5/5, and Lighthouse accessibility and best-practice scores of 1.0.
Mid-Sep · Deployment
I set up my own instance on a Google Cloud VM with Dokploy, a Let's Encrypt certificate and a custom domain. Along the way I found and fixed a packaging bug: the background worker image didn't include the shared library folder, so it crashed on start. I also prepared a seeding script that doubles as a smoke test, and took a full set of screenshots of the demo for the pitch.
14 Sep · Pitch
The first pitch draft opened with "Your readiness score doesn't know yesterday's deadlifts." By the regionals there was a working product to show: one decision, the evidence behind it, and the moment where the specialist agents disagree. We presented Brio as a proof of concept, with a plan to develop it into an MVP. The demo had a guest path that needs no login, no real data and no live model call, so an outside service couldn't break it on stage. The go-to-market plan from the founding documents is deliberately narrow: problem interviews, a small design-partner group and a 12-week pilot before any paid tier.
Orchestration
In the final architecture, separate Training, Nutrition, Sleep and Recovery agents run as tools under a single orchestrator, built with the OpenAI Agents SDK. The orchestrator has no database access. Each specialist only gets tools scoped to the signed-in user, and the interface shows which tools ran, not the model's private reasoning.
Bounded output
Every decision is one of Progress, Maintain, Repeat, Reduce or Escalate, and is checked against a strict schema. The default path is a deterministic policy that needs no model. The live agent path is a separate option, and if it fails, Brio never substitutes a scripted answer.
Governance
Every signal has its own consent setting, and all of them start switched off. The model only sees metrics that are both allowed and usable. Turning a signal off removes it from the next decision straight away. Export, deletion, source attribution and an audit trail are built into the product.
Honesty
Where the input data came from and how the decision was made are tracked separately. A live agent reviewing synthetic data is labelled as exactly that. Nothing in the demo is ever presented as an Apple Health import or as a real specialist result.




Four of the demo scenarios. From left: Progress when the evidence agrees. Repeat when the readiness agent and the policy disagree, with the disagreement shown. Maintain when sleep drops out of the evidence the moment its consent is withdrawn. Escalate, which refuses to produce a session and suggests a human review instead of a diagnosis.


Brio is a PWA first, and the iPhone helper sends HealthKit data to the backend. The Recovery screen shows evidence in plain bands, with no recovery percentage. The Data screen has one consent control per signal, each with a stated purpose. Those two choices come straight from the founding documents.
From my original artwork to the production lockup. The three loops stand for training, recovery and nutrition, woven together because the product's claim is that they can't be separated.


What I owned
Built with
AI in the workflow
Manus AI for the founding business documents and the staged overnight build. Claude for positioning, brand, planning, the agent specification, wireframes, deployment and code review. All of it went through Git and pull requests, with evidence kept in the repo.
What still has to be proven stays on the list. We haven't yet tested HealthKit on a physical iPhone. Food search, a coach view and background sync were deliberately left out. The next steps are the cited Rule Register, a physiotherapist's review of the escalation criteria, a barcode-coverage test in Irish supermarkets, and a legal review of the Open Food Facts licence before anything reaches real users.
The market case is still a hypothesis. The Brio recommendations report puts the relevant Irish ceiling at 176,700 weekly weightlifters, and a core-user proxy at 21,900 once national wearable and workout-planning usage are applied. It assumes a price between Hevy Pro and WHOOP, and it will stay a hypothesis until a design-partner group shows people keep using Brio.
Show the working.