Athletic OS · Telemetría de pista
Build complete · awaiting audit ← Solution Creator
Solution Creator · _projects/athletic-os · v0.1

Athletic
OS.

A single-user, self-hosted training instrument. Logs lifts, bouldering sessions, runs, weight, and supplements in under 30 seconds. Once a week, an AI coach analyzes the full history and adjusts the next week's plan automatically — within research-backed constraints, with every adjustment explained and overrideable.

UsuarioVirgilio
PlataformaPWA · VPS
StackReact · FastAPI · SQLite
DeployCoolify
Meta peso70.5 kg
Meta gradoAZUL V4–V5
GymMotion Boulder
Pipeline · Solution Creator stages
Concept
concept_brief.md
Process
process_map.md
Architecture
icm_spec/
Design
design_spec.md
Visual
visual_spec.md
Build Plan
architecture_spec.md
Build
src/
Audit
pending
Deploy
Coolify
Dashboard preview · what the app shows at a glance
Peso AM
73.35 kg
−1.15 kg desde baseline
14-day trend · META 70.5 kg
Racha
14
DÍAS · ● activa
Grado objetivo
VERDE AZUL
V4–V5 · Motion Boulder
Sesión de hoy
GYM
Press banca 4×6
Remo pendlay 4×8
Jalones 3×10
Sistema de grados · Motion Boulder color scale
V0 · Blanco V1–V2 · Amarillo V3–V4 · Verde V4–V5 · Azul ★ V6–V8 · Rojo V9+ · Morado
Pirámide de grado · escalada · mock data
Blanco
42 / 38
Amarillo
28 / 21
Verde
18 / 11
Azul ★
8 / 2
Rojo
2 / 0
Morado
0 / 0
intentos / encadenados · ★ = meta grade
Reporte semanal · AI coach output (ejemplo)
REPORTE LISTO · SEMANA 23
Press banca: 4×6 4×8
3 sesiones consecutivas completando las 6 reps objetivo con RPE ≤7. Incremento conservador dentro del rango C4 (máx 5% carga/semana).
C4 — Incremento máximo de carga
Proyectos azul · attempts-to-send
intentos por sesión · tendencia azul
Feature scope · v1
Quick Log
Gym session, climbing (6-grade tile grid + proyecto azul section), run, weight AM/PM, supplements. Every form opens pre-filled from the committed plan. Confirm-and-correct, never compose-from-blank. Under 30 seconds per entry.
Dashboard
Today's session, peso AM with 14-day sparkline, racha counter (amber dot, no fire emoji), semana mini-grid (7 cells, 32×32px, today bordered amber). All glanceable in under 5 seconds. REPORTE LISTO chip when the weekly analysis is ready.
Progression
Bodyweight trend at 30/60/90d with goal line, per-exercise PR charts, grade pyramid (sends vs attempts by color), azul attempts-to-send chart, benchmark tests (7s max-hang load/BW, weighted pull-up load/BW) logged monthly.
Weekly AI
Sunday: coach compiles week context, runs Claude analysis within encoded constraints (deload cadence, finger-pain modifiers, hangboard progression rules), produces adjustment proposals. Each proposal shows the change, the reasoning, and the constraint ID it satisfies. Accept or override individually.
Ask Coach
On-demand multi-turn conversation. Full data context passed automatically (last 30 days of logs, current plan, active modifiers). Responses cite data inline as instrument readings: [Dato: 73.35 kg · Ratio: 1.38×]. Loading state: amber scan line — not a shimmer, not typing dots.
Travel Mode
Activates hotel/room routine substitutions. Streak preserved as long as 20-min walk logged. Modifier propagates automatically into that week's plan adjustments.
Notificaciones
PWA Web Push: AM weigh-in reminder, session start nudge, 6pm no-activity prompt. No external posts. All configured in Settings. Sunday exemption: streak dot turns neutral, streak doesn't break.
Ownership
All sessions stored as structured JSON in SQLite on the owner's VPS. Full-dataset JSON export at any time. Historical import of athletic-data.json on first launch. No subscription. No cloud lock-in.
AI layer · 3 agents · ICM architecture
Weekly Coach
trigger: Sunday evening · APScheduler
Compiles 7-day context (all sessions, weight readings, energy logs, finger pain flags). Generates adjustment proposals for the next week within the constraint catalog. Every change shows the rule that authorizes it. User accepts or overrides. Auto-commits Monday 7am if not reviewed.
Case Advisor
trigger: on-demand · Ask Coach view
Multi-turn conversation agent with full data context. Handles specific situations: plateau analysis, finger pain protocol, travel week planning, low energy sessions, benchmark interpretation. Cites data as instrument readings inline.
Log Parser
trigger: free-text quick-log input
Parses unstructured text ("hice 4 series de 8 con 80kg, me quedé en 7 en la última") into structured session JSON. Confirmation step before saving. Fallback if the structured form is too slow mid-workout.
Constraint catalog: coaching_constraints.md · modifier_rules.md · phase_definitions.md · coach_profile.md
Built by · Solution Creator · Virgilio Robinson
Concept Developer
→ concept_brief.md
Two-batch interview (essence + texture). Researched Hevy, Fitbod, Whoop, Crimpd, Lattice. Identified the verde→azul transition as the literal product goal. Positioned as integration play: Fitbod's loop + Crimpd's domain + wger's ownership.
Process Codifier
→ process_map.md
Mapped 4 cycles: daily logging, weekly AI re-plan, on-demand advice, travel exception. Identified the 30-second constraint as the critical design limiter. Logging friction = abandonment.
ICM Builder
→ icm_spec/ (3 agents + catalog)
Designed the AI layer: 3 agents (Weekly Coach, Case Advisor, Log Parser), 4 SOPs, constraint catalog with coaching rules, handoff data contracts. Orchestrator routes, specialists execute.
Designer
→ design_spec.md (15 views)
15 views, 5 user flows, 5-tab navigation. D0-1: confirm-and-correct forms. D0-2: grade color semantic lock. D0-3: AI invisible in daily cycle. D0-4: Spanish-first. D0-6: dark, dense, numbers-first.
Visual Designer
→ visual_spec.md
Direction: Telemetría de pista. Dark cockpit, Barlow Condensed / DIN, amber-only accent, 0px radius default, no shadows, no gradients, 10-item banned list. 6/6 design groups deviate from AI defaults.
Software Creator
→ architecture_spec.md · src/
React 18 + Vite PWA, FastAPI, SQLite + Alembic, APScheduler, 3 AI agents, 8 route modules, event bus, Web Push. Targets Coolify on VPS. No localhost. No staging.
Build artifacts · what exists on disk
concept_brief.md process_map.md design_spec.md visual_spec.md architecture_spec.md deployment_config.md icm_spec/ (AI_README · orchestrator · 3 agents · catalog · SOPs · schema) src/backend/main.py src/backend/models/ (9 models) src/backend/routers/ (8 routes) src/backend/services/ (7 services) src/backend/ai_layer/ (orchestrator · prompt_assembler · validator) src/backend/scheduler.py · event_bus.py · auth.py src/backend/migrations/ (Alembic)
amber = src/ · white = specs · awaiting audit_report.md before deploy to Coolify
Visual direction · design system
Telemetría de pista
Aviation and motorsport telemetry displays — the most solved example of dark, dense, numbers-first design for a single operator under physical stress. Every pixel encodes data. Color is entirely semantic. The verde→azul grade progression is the only color story in the interface.

Typeface anchor: Barlow Condensed (DIN substitute) — the face on BMW instrument clusters and Porsche rev counters. Not a design decision: a domain decision.
void
surface
raised
ink
amber
verde
azul
Banned list · build-blocking
✗ No gradients, anywhere
✗ No box-shadow (except bottom sheet)
✗ No border-radius above 4px
✗ No green or blue outside grade chips
✗ No Inter font (use DM Sans / Barlow Condensed)
✗ No emoji in any UI string
✗ No skeleton shimmer loaders (use loading-sweep)
✗ No celebration animations
✗ No Tailwind default palette verbatim
✗ Grade colors only on grade elements

FONTS — Barlow Condensed · DM Sans · JetBrains Mono
RADIUS — 0px default · 2px interactive · 4px chips
DEPTH — no shadows · background scale + 1px borders
MOTION — instant tabs · 220ms sheets · odometer tick on streak only
SIGNATURE — mechanical counter animation on racha increment