How we understood the ask
You have Nata, a real personal fitness coach, and you want to scale her expertise to ~10 clients (then more) through Telegram. Concretely:
- Each client gets an AI coaching experience in Telegram that feels like Nata: it runs their workouts interactively, reacts to their food, and knows their history.
- Data flows in with near-zero effort from the user: wearables (Whoop, Garmin) connect via an authorization link; meals are captured by photo; workout weights and difficulty are proposed by the system and merely confirmed by the user. The user does less — this is the prime directive.
- Nata stays the author and supervisor: she sets each client's training and food program; all feedback ("was this meal good for you?", "what to replace?", "next exercise, this weight") is generated relative to her programs. She sees analytics across all clients as admin.
- Every client has a personal LLM wiki brain built on Karpathy's LLM-wiki method: a persistent, LLM-maintained set of markdown pages (
raw/→wiki/→ schema, withindex.md+log.md) that compounds into a durable model of that person — instead of re-deriving context from chat logs every time. - Clients can also upload training videos for technique feedback.
We took the invitation to contradict and improve. The biggest corrections and additions (full reasoning in Product Vision):
| # | Original idea | Our design |
|---|---|---|
| 1 | "Subfolders / separate chats, add the bot per person" | Unnecessary — one bot (@NataCoachBot) natively has a private 1:1 chat with every user. Zero per-user setup. Nata's per-client view lives in the Coach Console, not in Telegram folders. |
| 2 | User uploads data, bot reacts | The bot opens conversations: a recovery-aware Morning Brief, instant meal feedback, a Weekly Review. Proactive by default, capped and quiet-hours-aware. |
| 3 | AI answers users directly | Coach-in-the-loop with a graduated autonomy dial: early on, the LLM drafts and Nata approves in <30 s per item; message types graduate to autonomous as trust builds. Pain/injury always escalates to her. Her occasional real voice notes are the moat. |
| 4 | (not specified) | Event-sourced truth: every set, meal, and sleep record is an immutable event. Analytics come from SQL over events — never from LLM output. The wiki holds judgments and patterns; Postgres holds numbers. |
| 5 | (not specified) | Telegram Mini App for rich moments (workout runner, weekly charts, Coach Console) — no app install, still inside Telegram. |
The system at a glance
flowchart TD
subgraph Clients["Telegram — each client's private chat"]
U1["Marta 🤳 meal photos, ✓ taps"]
U2["Denys 🏋️ Session Mode, videos"]
end
subgraph Core["NataCoach Core"]
GW["Bot Gateway"]
ORCH["Orchestrator — LLM pipelines"]
ML["Meal Lens"]
SM["Session Mode engine"]
FC["Form Check"]
MB["Morning Brief"]
WB[("Wiki Brain — per user
raw / wiki / index / log")]
EV[("Postgres — events, metrics, programs")]
end
subgraph Inputs["Health Sync"]
WH["Whoop"]
GA["Garmin"]
end
NATA["Nata — Coach Console
programs · approvals · analytics · takeover"]
U1 --> GW
U2 --> GW
GW --> ORCH
ORCH --> ML & SM & FC & MB
WH --> EV
GA --> EV
ML & SM & FC --> EV
EV -- "nightly distillation" --> WB
WB -- "context for every reply" --> ORCH
ORCH -- "drafts & alerts" --> NATA
NATA -- "programs · edits · voice notes" --> ORCHThe loop that makes it compound: more data → richer Wiki Brain → sharper coaching → more trust → more data. Nata's time per client falls as autonomy graduates, while quality rises because the wiki never forgets.
Reading order
| Doc | What's inside |
|---|---|
| 00 — Canonical Brief | Naming canon, locked decisions, personas — the governing doc |
| 01 — Product Vision | Thesis, principles, positioning, pilot success metrics |
| 02 — User Experience | Onboarding, daily loop, all flows, transcripts, notifications |
| 03 — System Architecture | Diagrams, data model, sequences, LLM routing & costs, privacy |
| 04 — Data Collection | Health Sync (Whoop/Garmin OAuth → webhooks), normalization, data inventory |
| 05 — Meal Lens | Photo → macros → coach feedback vs Nata's program; accuracy stance |
| 06 — Session Mode | Interactive workout runner; the weight-proposal engine |
| 07 — Form Check | Video → technique cues; escalation to Nata |
| 08 — Wiki Brain | The Karpathy-method wiki per user: schema, ingest/query/lint |
| 09 — Coach Console | Nata's admin: roster, approval queue, alerts, metric formulas |
| 10 — Personas | Marta & Denys fully visualized: wiki pages, week-in-the-life |
| 11 — Roadmap | Concierge pilot → automation → rich UX → 100+ clients |
Mockups: Telegram flows (png) · Coach Console (png)
TL;DR of the design
- One bot, chat-first, Mini App for rich moments. Photos, buttons, and voice cover 90% of the experience; the Mini App handles the workout runner, weekly charts, and Nata's Console.
- Propose-confirm everywhere. Weights come pre-filled from the progression engine + today's recovery; macros come from the photo; the user's job is one tap. Editing is the exception.
- The Wiki Brain is the product. Events are distilled nightly into a per-user wiki (Karpathy method) that any pipeline can load in 3–6k tokens — coaching quality compounds while cost stays flat.
- Nata is amplified, not replaced. She authors programs, approves drafts until each message type earns autonomy, handles every red flag, and spends her reclaimed time on the human moments only she can do.
- Pilot bar (10 clients): ≥80% session adherence, ≥70% of days with meal coverage, ≤30 min of Nata's time per client per week, LLM cost under ~$2/user/day.