# 02 — Feature Deep Dive

A complete catalog of every SwoleX feature, organized by user surface. This is the source feedstock for landing-page bullets, ad copy, social posts, and demo scripts.

Every feature in this document is **shipped in production** as of app version **1.0.9** (May 2026) unless explicitly noted as "Roadmap." When in doubt, cross-reference the source files listed.

---

## Table of contents

1. [Onboarding & profile](#1-onboarding--profile)
2. [Workout logging (the core)](#2-workout-logging--the-core-loop)
3. [Programs](#3-programs)
4. [The Feed (social)](#4-the-feed--social)
5. [Kevin — AI Coach](#5-kevin--ai-coach) *(see `03_kevin_ai_coach.md` for the deep brief)*
6. [Progress & analytics](#6-progress--analytics)
7. [Sharing & viral loop](#7-sharing--viral-loop)
8. [Trainer & client features](#8-trainer--client-features)
9. [Creator features](#9-creator-features)
10. [Conditioning circuits](#10-conditioning-circuits)
11. [Health, equipment & gym profiles](#11-health-equipment--gym-profiles)
12. [Imports & exports](#12-imports--exports)
13. [Settings, account, & subscriptions](#13-settings-account--subscriptions)
14. [Web app surfaces](#14-web-app-surfaces)
15. [Platform & infrastructure](#15-platform--infrastructure)
16. [Things only SwoleX has](#16-things-only-swolex-has)

---

## 1. Onboarding & profile

### Sign-up paths

- **Apple Sign In** (native, recommended on iOS)
- **Google Sign In** (OAuth)
- **Snapchat** (Snap Kit OAuth — also seeds friend discovery later)
- **Email magic link** (Supabase OTP — deep link via `swolex://auth/callback`)
- **Email + password** (fallback)
- **Reset / promo code** (REVIEWER_2026 etc.)

### Streamlined onboarding (1.0.9)

The full fitness profile used to be a 4-step required gauntlet. As of 1.0.9 it's **just three required answers** — handle, name, birthday. Everything else (training level, goal, strength baselines, capabilities, injuries, equipment) is editable later in the **Fitness Profile hub**, which lives in Profile and is broken into single-screen editors:

- Edit Training Goal (strength / hypertrophy / endurance / general wellness)
- Edit Training Level (beginner / intermediate / advanced / elite)
- Edit Strength Profile (max bench / squat / deadlift — optional, used as AI seed)
- Edit Capabilities (e.g. "can't do push-ups," "stairs make me winded")
- Edit Preferences (supersets / drop sets / straight sets — fed straight into Kevin's prompt)
- **Injuries** (structured intake, see §11)
- Gym equipment (multi-select equipment profile per gym, see §11)

**Why this matters for marketing:** the product respects the user's time. The first impression is *"Just train, fill in the rest later"* — not a 20-screen quiz.

### Avatar, handle, bio

- Avatar upload from camera or photo library (with auto-resize)
- @handle is unique; admin-mediated handle disputes
- Public bio (visible on profile)
- Trainer / Creator / PRO badges appear next to the handle when applicable

---

## 2. Workout logging — the core loop

This is the screen that needs to feel **faster than FitNotes, cleaner than Strong, smarter than Hevy**. UI rule: every tap < 300 ms, never block the weight input.

### Active Workout screen

- **Set rows** with weight, reps, RPE (optional), notes (optional)
- **Three set types**, first-class: **Normal**, **Drop Set**, **Superset**
- **Weight stepper** with 64×64 pt buttons (gym-hands proof), context-aware increments:
  - Barbell: ±5 lb / ±2.5 kg
  - Dumbbells: ±5 lb / ±2.5 kg (commercial), ±2.5 lb / ±1.25 kg (well-equipped)
  - Cable: ±5–10 lb per click
  - Machine: variable per equipment profile
- **Long-press accelerator** on stepper — ±10 after 500 ms, ±25 after 1.5 s
- **Drag-to-reorder sets** (react-native-reorderable-list)
- **Drag-to-reorder exercises** while planning
- **Inline notes** per set ("felt weak today" / "elbow tweak")
- **PR badge** (gold trophy) appears on the row the moment a personal record lands
- **"Last session ▾"** collapsible — shows the previous instance of this exercise inline; auto-expanded for AI-generated workouts so you see what Kevin proposed
- **Ghost values** — the previous best-by-rep-range pre-fills the weight stepper

### Rest timer

- **Default 2 minutes.** Configurable globally or per-workout.
- Slides down as a slim orange progress bar — **never modal**, never blocks input.
- Audio cues: tick at 3 / 2 / 1, chime on completion.
- Haptic on completion.
- Plays through silent switch on iOS (`playsInSilentModeIOS`).
- Mutable from settings; visible "mute" pill in the timer overlay.
- Tap **+30** to add 30 seconds; tap **SKIP** to dismiss.
- **Auto-resumes the workout when you tap the rest-timer notification** (1.0.7 fix — no more landing on a blank session).

### Voice and audio

- Audio cues for rest timer
- Lazy-loaded via `expo-audio` (graceful fallback if unavailable)
- Custom rest-timer sounds (Pro)

### Crash-proof session

- Active workout is persisted to AsyncStorage on every set
- Quit the app mid-set → reopen → **Resume Workout** is the primary action; **Start Fresh** is secondary (1.0.7 fix — no accidental duplicate sessions)

### Smart defaults

- **Best weight by rep range** auto-suggested on the next set
- **Plate calculator** — the stepper rounds to real, available weights (no 47.3 lb suggestions)
- **Warmup-aware** rep ranges for the first set
- **Weighted bodyweight** (chin-ups, dips) accepts an added-weight field (1.0.7)

### Quick start tiles (Log tab home)

The Log tab is a launchpad. Tap the orange **+** in the tab bar →

- **⚡ AI WORKOUT** — Kevin generates from scratch
- **NEW WORKOUT** — blank session
- **FROM HISTORY** — clone a previous session
- **MY WORKOUTS** — your saved templates
- **🕒 CONDITIONING CIRCUIT** — work/rest interval generator
- **RECENT** — last 3–5 sessions, one tap to clone

(See `marketing/screenshots/03_log_meet_kevin.png` for the live layout — same launchpad, with the first-run Kevin tour overlay.)

---

## 3. Programs

### Browse & enroll

- **Browse tab** — filter by difficulty (Beginner / Intermediate / Advanced), category, equipment, free vs paid
- **Enrolled tab** — your active programs, resume from current day
- **Created tab** — your published programs (Creator tier)
- **Trainer-assigned** badge if a program was given to you by your trainer

### Program structure

- Multi-week, multi-day-per-week
- Each day has a list of exercises with target sets / target reps ("3–5" / "8–10" / "AMRAP") and set type (normal / superset / drop)
- Supersets grouped with letter (A1/A2)
- Estimated session duration
- Per-day rationale (when AI-generated)

### Enrollment & checkout

- Free programs: one-tap enroll
- Premium programs: requires active Pro subscription
- Paid programs: Stripe checkout, one-time purchase

### Run a program day

- Tap the next day → workout loads pre-populated with target sets/reps/weights (Kevin scales weights if you don't have history yet)
- Completion is tied to the program enrollment — trainer sees it; analytics flow into adherence %

### Program Builder (Creator / Trainer)

- Manual editor: add days, add exercises, set rep schemes, mark supersets / drops, set rest seconds
- **AI generate-day** — Kevin proposes a single day's exercises with progressive overload aware of the program week
- **AI generate-full** — Kevin scaffolds an entire 4–12-week program from goal + difficulty + days/week + equipment
- **Templates** — save a day or whole program as a template, reload into a new program
- **Difficulty enforcement** — beginner programs cap at 4 exercises × 3 sets, advanced unlock 5–6 × 4–5 with supersets

---

## 4. The Feed — social

### Three feed tabs (top segmented control)

- **Following** — workouts from people you follow
- **At Your Gym** — local discovery (by gym profile)
- **New** — chronological newest first

### Workout card anatomy

Every feed card is a *runnable workout*. Live design (from `marketing/screenshots/01_feed_following.png`):

```
[Avatar] @bigchimp  May 22                  [Suggested]
BACK AND BICEPS HYPERTROPHY
7 exercises · 34.8k lbs · 1h 14m

[      CHALLENGE ACCEPTED 💪      ]    ← orange full-width CTA

[ 🔥 ] [ 🦍 ] [ 💬 ]                              ⌄ SETS
```

CTA copy varies per card / state: **CHALLENGE ACCEPTED 💪**, **LET'S GOOOOO 💪**, **I GOT THIS 💪**, and (on a creator's public profile) **TAP TO DO THIS WORKOUT ⚡**.

Key elements:

- **Avatar + @handle + date** (and "Suggested" badge when the discovery engine surfaces it)
- **Workout title** (bold, all caps)
- **Stats strip**: exercise count · total volume · duration
- **One-liner description** (creator's own words — "Ridiculous")
- **Primary CTA**:
  - **I GOT THIS** — on a workout that you haven't started yet
  - **CHALLENGE ACCEPTED** — on a workout from someone else
- **Three reactions:** 🔥 (fire), 💪 (brutal), 🦍 (gorilla)
- **Comments count** — opens a bottom sheet with nested replies
- **"13 people crushed this"** — completions chain, tap to see who
- **"⌄ SETS"** — expand the full exercise list with set/rep targets

### Interactions

- **Tap CTA** → workout loads with **Kevin-scaled weights** (Pro) or manual-adjust prompt (Free)
- **Tap @handle / avatar** → public profile
- **Tap comment** → bottom sheet
- **React** → instant haptic + count animation
- **Tap workout title on your own post** → inline rename (1.0.7 — no need to delete/repost)

### Public profile

- Avatar, display name, @handle, bio, badges
- Stats grid: workouts, followers, following, total volume, "Member since"
- Latest posts
- **Follow** / **Unfollow** button
- Trainer profiles show pricing + bio + sample programs

### Notifications

- Follows, reactions, comments, replies, completions on your workouts, trainer invites, program assignments
- Push via Expo v2 with deduplication + thread collapsing
- Deep-link routes back to the exact post / comment

### User search

- @handle search
- Snapchat contact discovery (Snap Kit OAuth → SHA-256 hashed external_id matching)
- Phone-number contact discovery (E.164 SHA-256 hashed)

### Blocks & moderation

- Block users (hides their posts, prevents follow / DM)
- AI content moderation on names, comments, and program descriptions
  - Stage 1: keyword blocklist
  - Stage 2: OpenAI `omni-moderation-latest` (free) or Claude Haiku fallback
  - Fail-open if the AI service is down — blocklist still enforced

---

## 5. Kevin — AI Coach

This section is a summary; the full brief is in [`03_kevin_ai_coach.md`](./03_kevin_ai_coach.md).

### Where Kevin shows up in the app

| Surface | What Kevin does |
|---|---|
| **AI WORKOUT** tile (Log tab) | Generates a full session from goal + duration + muscle focus + how you're feeling |
| **DO WORKOUT** / **I GOT THIS** | Scales every weight on a copied workout to your real strength |
| **SWAP EXERCISE** in active workout | Replaces an exercise (equipment missing, too hard, form concern, etc.) keeping the muscle / movement intent intact |
| **CONDITIONING CIRCUIT** | Generates work/rest interval circuits with coaching cues |
| **AI Coach** segment (Progress) | Generates a trainer-style report — letter grade, calibration verdict, muscle balance, top 3 recommendations |
| **Program Builder** | "✦ AI" button per day, or full-program scaffolder |
| **Trainer Console** | Per-client AI progress report |
| **Post-workout calibration** | "How was that?" rating ("just right" / "destroyed me" / "too easy") feeds back into Kevin's per-user adjustment factor |

### What Kevin knows about you

(see §03 for the full list — 30+ signals)

- Your training goal, level, age, sex, body metrics
- Your 5RM baselines (or self-reported maxes)
- Every set you've ever logged (volume trends, calibration)
- Your gym's available equipment
- Your training-style preferences (supersets / drops / straight)
- Your injuries — with structured directives, not free-text
- Your post-workout difficulty ratings (rolling calibration signal)
- Recent training load (don't hammer the same muscle two days in a row)

### Output discipline

Kevin returns **structured JSON** for workout generation (no markdown, no preamble). The UI parses it and renders the session deterministically. For the training-report long-form analysis, Kevin writes prose graded for a lifter, not a clinician.

---

## 6. Progress & analytics

The **Progress** tab is a 5-segment hub:

### Segment 1 — Sessions

Chronological list of every workout. Grouped by month. Each card shows: name, date, exercise count, duration, total volume, and any PR badges.

Tap → **Session Detail**:
- Every set, every weight, every rep, every RPE, every note
- Superset / drop indicators preserved
- Share button → opens Share Card flow
- Edit session (corrections)

### Segment 2 — AI Coach (Training Report)

(see §5 and `03_kevin_ai_coach.md` for the deep brief)

Free tier shows algorithmic metrics:
- Volume trend (increasing / decreasing / flat) with lbs/session slope
- Calibration % (actual weight vs. expected for goal)
- Scheme compliance (% of sessions meeting goal rep ranges)
- Muscle frequency distribution

Pro tier adds:
- Trainer-grade letter grade (A–F)
- Calibration verdict in plain English
- Muscle balance — over/under-emphasized groups
- Goal-alignment check
- NSCA-benchmarked comparison
- Top 3 actionable recommendations
- **PDF export** (iOS share sheet / Android SAF)

### Segment 3 — Stats

- Volume trend chart (period selectable)
- Tonnage over time
- Muscle frequency over time
- Strength curve per major lift (1RM estimate via Brzycki / O'Conner)

### Segment 4 — PRs

- Personal records across every exercise
- Sorted by recency or by weight
- Tap → exercise history view (every time you've performed it, every weight/rep)

### Segment 5 — Rankings (friends only)

- Per-exercise leaderboards against people you follow
- Avatar, handle, weight lifted
- Refresh to reload
- **Compare With User** view — head-to-head stats

### Streaks

- Longest streak (consecutive training days)
- Current streak shown on History header
- "This week" / "All time" counters

---

## 7. Sharing & viral loop

### Share Card (auto-generated on completion)

A portrait 9:16 card built for IG Story / TikTok / Snap. Style:

- Dark background with subtle diagonal speed lines + grain texture
- SWOLEX logo top-center
- **Workout name** in large bold white ("THE GAUNTLET")
- **Stats row in orange**: "12,450 lbs · 47 min · 21 sets"
- Optional attribution: "Completed Ryan & Alex's workout"
- Optional rating + comment (auto-censored on share, original kept in-app)
- Bottom CTA button: "Follow me on SwoleX @handle"
- Deep link / QR encoded back to the original template

### Variants

- **Completion card** — what you did, with credit to the original creator
- **Challenge card** — "I did the Gauntlet. Can you?" — for sharing the workout itself

### Share targets

- iOS / Android native share sheet
- **Snapchat Creative Kit** — one-tap to story (no OAuth required if logged in)
- IG Story (via native share)
- TikTok
- Facebook / X
- iMessage / copy link

### Deep-link behavior

- `swolex.com/s/{shortcode}` — universal short link with Open Graph metadata and Snap-friendly fallback
- Tap → if app installed, opens the workout in-app; if not, App Store / Play Store, then continues to the workout post-install
- Public sessions show in browser preview with workout details + creator handle
- Gated workouts show "follow to unlock"

### Branded edits

- The card always includes the SwoleX logo and the user's @handle
- Creator-tier users get **custom-handle styling** on the card

---

## 8. Trainer & client features

### Trainer side (in the web console + mobile)

- **Roster overview** — every client, status (pending / active / paused / terminated), last activity
- **Invite by email or @handle** with optional rate + billing cycle (monthly / one-time / free) + welcome message
- **Client detail** — profile, current program, adherence ring, PR timeline
- **Sessions tab** — read-only paginated workout log
- **Progress tab** — volume chart, PR timeline, **AI Report** button (Kevin analyzes the client)
- **Notes tab** — add/edit notes (general / goal / form / observation / progress); scoped to client, optionally to a specific program or session
- **Assign program** — picker → optional welcome note → push notification to client
- **Stripe Connect payouts** — view earnings, payout history

### Client side

- **Trainer Invites** screen — accept / decline incoming invites
- Trainer's assigned program shows a **Trainer-assigned** badge
- Trainer notes surface on the relevant session
- **Program-scoped Premium** — trainer-assigned work unlocks Pro features without a separate subscription

### Data scope

The trainer only sees data from sessions linked to **their assigned programs**. Ad-hoc "Run It Back" sessions stay private.

### Trainer directory

- `swolex.com/trainers` — public, browsable
- Trainer cards: avatar, name, specialty tags, price range, location (optional)
- Profile page: bio, credentials, sample programs, pricing, "Work with me" CTA
- Trainer invite link: `swolex.com/trainer-invite/{token}`

---

## 9. Creator features

### Publishing

- Create programs in `swolex.com/console/programs/new` (or the program builder in app)
- **AI generate-full** to scaffold a 4–12 week program in seconds
- Save as **draft** / **published**
- Set **price tier**: free, premium (Pro-only), or paid (Stripe one-time)
- Discount codes
- Cover image upload

### Discovery

- Listed in the public Programs catalog at `swolex.com/programs`
- Filter by creator → individual creator's catalog page
- "Suggested" badge in the feed when SwoleX surfaces your workouts to non-followers

### Custom exercises

- Create your own exercise variants
- Submit for inclusion in the global catalog (admin curation)
- "Created by you" badge in the picker

### Analytics

- Per-program: enrollments, completion rate, sessions logged, average rating
- "Who's doing your workouts" feed
- Revenue dashboard (Stripe Connect, weekly + monthly summaries)

### Payouts

- Stripe Connect (Express accounts)
- 15% platform take rate
- Weekly automatic payouts (configurable)

---

## 10. Conditioning circuits

A distinct mode for AMRAP / EMOM / interval training.

### CIRCUIT OVERVIEW screen

- AI-generated circuit pre-populated:
  - Exercise list (with form cues per exercise)
  - Work seconds / rest between exercises / rest between rounds
  - Round count
  - Estimated duration

### CIRCUIT PLAYER screen

- **Full-screen countdown** — GET READY → GO → REST → ROUND REST → DONE
- **Color-coded** phases: orange for GO, green for REST, blue-purple for ROUND REST
- **Auto-advance** — completely hands-free
- **Haptics** on every phase transition
- **Screen stays awake** (`expo-keep-awake`)
- Pause / resume / manual advance

### Manual setup

- Work seconds, rest between exercises, rest between rounds, rounds count
- Pick exercises from the same picker as strength workouts
- Save circuits as templates

---

## 11. Health, equipment & gym profiles

### Gym equipment profile

Per-gym multi-select of available equipment:

- Barbell, Dumbbell, Cable Stack, Selectorized Machine, Smith Machine
- Kettlebell, Bodyweight, Pull-up bar, EZ-Bar, Band
- Custom: dumbbell-pair max, plate-pair max, increment overrides

**Multiple gyms supported.** Mark one as default. The active gym profile is sent to Kevin so he never suggests an exercise you can't perform.

### Equipment-aware AI

Kevin's prompt includes the active gym's equipment list. If you're at the home gym with only dumbbells + pull-up bar, he'll generate accordingly. Switch to commercial-gym profile → full equipment unlocked.

### Injuries (structured)

Each injury captures:

- Body region (lower back, knee, shoulder, etc.)
- Type (strain, fracture, joint pain, etc.)
- Status (active / resolved — resolved injuries archive, don't delete)
- **Three qualifiers** that drive Kevin's directives:
  1. *Prevents training entirely?* (hard block)
  2. *Pain persists through warmup?* (avoid loading)
  3. *OK with light load?* (isolation over compound)
- A "What the AI will do" plain-language preview

Active injuries surface a count badge on the Fitness Profile.

### Body metrics (Roadmap)

- Body weight tracking
- Photo timeline (private)
- Apple HealthKit sync (Roadmap)

### Unit system

- Imperial (lbs) / Metric (kg) global setting
- AI rounds output to **real plate math** for the user's unit system (e.g. metric users get 77.5 kg, not 77.1 kg)

---

## 12. Imports & exports

### Imports

- **Fitbod** CSV — isWarmup + multiplier handling tightened in 0.434
- **Strong** export
- **Hevy** export
- **JEFIT** export
- **Generic CSV** — fall-through for any unrecognized exporter (per recent commit `434d146 feat(imports): generic CSV path for unrecognized exporters`)

Imports preserve set type (drop/superset), RPE if present, dates, and notes. Exercises are matched against the catalog with fuzzy logic; unmatched entries land as custom exercises tied to the user.

### Exports

- **CSV workout history export** (per `7e321c7 feat(export): minimal CSV workout-history export`) — Pro tier
- **Training Report PDF** (any tier with AI Coach access)
- **GDPR full export** — request via `/delete-account` flow or `swolex.com/account` → "Export my data"

---

## 13. Settings, account, & subscriptions

### Inside the app

- **Units** (lbs / kg)
- **Rest timer** (default duration, sound on/off, haptic on/off, custom sound for Pro)
- **Audio cues** (master mute)
- **Notifications** (follows, reactions, comments, completions on your posts, program-day reminders)
- **Privacy** (account visibility, who can see your workouts, who can follow you)
- **Subscriptions** — RevenueCat-backed; manage via App Store / Play Store account settings
- **Promo codes** — redeem
- **Feedback / bug report** — in-app form with screenshot attachment
- **Legal** — Privacy Policy, Terms of Service, Trainer Terms, Community Guidelines
- **About** — version + build number footer

### Account management

- Change email / password (Supabase)
- Account deletion (GDPR-compliant soft-delete + permanent purge queue)
- Re-create account after deletion is properly gated (per the recent commit `01645f4 fix(auth): clean delete-and-return cycle for accounts`)

---

## 14. Web app surfaces

`swolex.com` is a Next.js 15 App Router site. Key routes:

### Public
- `/` — landing page, three workspace cards (Member / Trainer / Creator)
- `/beta` — beta signup with AI features pitch
- `/programs` — browse public catalog
- `/programs/[id]` — single program detail
- `/trainers` — trainer directory
- `/trainers/[handle]` — trainer public profile
- `/s/[shortcode]` — shared workout deep link
- `/trainer-invite/[token]` — accept trainer invite landing
- `/status` — uptime & AI service status
- `/privacy-policy`, `/terms-of-service`, `/trainer-terms`, `/community-guidelines`
- `/delete-account` — GDPR request

### User
- `/login`, `/auth/callback`
- `/account` — enrollments, purchase history, redeem code, data export, delete
- `/account/report-bug`, `/account/bug-reports`

### Creator / Trainer console
- `/console/login`
- `/console/programs`, `/console/programs/new`, `/console/programs/[id]`
- `/console/exercises`, `/console/exercises/new`, `/console/exercises/[id]/edit`
- `/console/templates`
- `/console/covers`
- `/console/profile`
- `/console/discount-codes`
- `/console/payouts`
- `/console/analytics`
- `/console/trainer` — roster overview
- `/console/trainer/clients/[id]` — client detail
- `/console/trainer/invite`

### Admin (gated)
- `/admin` — dashboard
- `/admin/users`, `/admin/users/[id]` — with AI workouts metric
- `/admin/analytics`
- `/admin/ai-debug`, `/admin/ai-debug/[id]` — internal Kevin debugging
- `/admin/exercises`, `/admin/catalog`, `/admin/catalog/audit`
- `/admin/gym-equipment`
- `/admin/handle-claims`
- `/admin/creator-applications`
- `/admin/bug-reports`, `/admin/deletion-requests`, `/admin/beta-signups`
- `/admin/promo`

---

## 15. Platform & infrastructure

For technical-marketing or partner conversations:

- **Mobile:** React Native + Expo SDK. iOS + Android from one codebase. OTA updates supported.
- **Backend:** FastAPI (Python 3.12), async SQLAlchemy, arq background workers.
- **Database:** PostgreSQL, Alembic migrations.
- **AI:** Gemini 2.5 Flash Lite by default; swappable to GPT-4, Claude, Grok via config. (See `03_kevin_ai_coach.md`.)
- **Auth:** Supabase + Apple/Google/Snap OAuth.
- **Payments:** Stripe + Stripe Connect (creator payouts).
- **IAP:** RevenueCat (iOS + Android).
- **Storage:** Cloudflare R2 (exercise videos, share-card images, avatars).
- **Push:** Expo v2.
- **Web:** Next.js 15 App Router.
- **Versioning:** `X-App-Version` header on every mobile request; backwards-compatible API gating so old builds never break.
- **Three-tier deploy:** dev → lab → prod, zero-downtime rolling deploys behind a Caddy reverse proxy.
- **Observability:** Sentry + structured logs.
- **Catalog scale:** **315 movements × 437 variants × 174 equipment types** (curated, deterministically generated).

---

## 16. Things only SwoleX has

The "you can quote this in a deck" list — features no direct competitor ships today:

1. **Executable feed posts.** Every workout is a runnable template. **CHALLENGE ACCEPTED / I GOT THIS** is the magic button.
2. **AI weight scaling on copied workouts.** Tap someone else's lift, the weights are already yours.
3. **Attribution chain.** "Danny completed Ryan's Gauntlet" surfaces on Ryan's original post. Social proof compounds.
4. **Branded share cards baked into completion.** Auto-generated, story-ready, deep-linked back to the workout. Free tier always has access — sharing is the growth engine.
5. **Injury directives that the AI actually obeys.** Structured per-region rules, not free-text notes ignored by GPT.
6. **Equipment-aware AI with multiple gym profiles.** Home gym vs. commercial gym → different generations from the same Kevin.
7. **Three workspaces in one identity.** Member, Creator, Trainer — one login, one profile, switch on demand.
8. **Trainer tier with program-scoped Premium for clients.** Clients don't double-pay; trainers don't lose customers to the upsell wall.
9. **Calibration learning loop.** Post-workout "how was that?" feeds a per-exercise / per-user adjustment factor into every future Kevin generation.
10. **Goal-aware training-report grading.** Hypertrophy sessions aren't graded against strength benchmarks. (Fitbod and Hevy don't do this.)
11. **Hands-free conditioning circuits.** Full-screen player, color-coded phases, haptics, screen-awake — finally usable mid-workout.
12. **Creator economy with public directory.** Discoverable trainers + Stripe Connect payouts. Trainerize is B2B-only; SwoleX is consumer-facing.
13. **Multi-importer ingestion.** Fitbod, Strong, Hevy, JEFIT all welcome — no "start over from scratch" friction for the user we want most.
14. **PDF training reports.** Print-quality coach-style report a lifter can hand to a coach or their own doctor.
15. **Native Snapchat Creative Kit integration.** Most lifting apps stop at "Share Sheet"; SwoleX is one-tap to Snap Story.

---

## Cross-references

- Kevin / AI deep brief → [`03_kevin_ai_coach.md`](./03_kevin_ai_coach.md)
- Competitive context → [`04_competitive_analysis.md`](./04_competitive_analysis.md)
- Brand voice → [`05_messaging_and_voice.md`](./05_messaging_and_voice.md)
- Visuals → [`07_screenshot_index.md`](./07_screenshot_index.md)
