NataCoach / product & system design Wiki Brain Personas Coach Console ↗

NataCoach — Product & System Design

Scaling one great coach — Nata — to many clients through Telegram, with a personal LLM Wiki Brain per client, without losing the feeling of being coached by a human.

Pilot bar10 clients≥80% adherence≥70% meal coverage≤30 min Nata / client / week<$2 LLM / user / day

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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, with index.md + log.md) that compounds into a durable model of that person — instead of re-deriving context from chat logs every time.
  5. 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" --> ORCH

The 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.