Детерминированный движок. Все числа на странице посчитал сам калькулятор — ничего не выдумано.
Ниже доказательство на твоих данных, на чужих бегунах, и отчёт о том, как я пытался это сломать.
Корень всех прошлых провалов: темп без усилия неинтерпретируем. 5:33/км — это либо
лёгкий бег сильного бегуна, либо максимум новичка. Пока не знаем усилие — не знаем форму,
и план уезжает в 7:52 или 8:00. Теперь усилие оцифровано (выбор из 4 описаний или пульс),
и из него детерминированно считается всё остальное.
01 · Полный онбординг
Как это выглядит вживую
Весь диалог: цель (точка Б) → замер формы (точка А) → честный вердикт → ввод плавающего расписания.
Каждое число в ответах бота посчитал калькулятор.
Привет! Я rAIner — твой беговой коуч. Соберу план под тебя за пару минут. Начнём с цели. 🎯
На какую дистанцию целишься?
5 км10 км21.1 км42.2 км
21.1 км
Когда забег? Введи дату в формате ДД.ММ.ГГГГ — ровно так, иначе не посчитаю срок.
в конце августа
Не понял дату. Нужен формат ДД.ММ.ГГГГ, например 29.08.2026.
29.08.2026
10 недель до старта. Теперь померяю твою форму — точку А. Сколько километров был твой последний бег? Введи число, например 4.5.
4.5
За сколько пробежал? Формат ММ:СС, например 25:00.
25:00
Как этот бег ощущался? Это определяет всю форму — выбери точно по описанию:
🟢 Спокойно — дышал носом, болтал бы свободно, мог бы ещё столько же 🟡 Бодро — дышал глубже, говорил фразами с паузами, ещё немного бы пробежал 🟠 Тяжело — дышал ртом, только короткие фразы, хватило бы ещё на 10–15 мин 🔴 Максимум — задыхался, говорить не мог, выложился как на гонке
Свёл форму (VDOT 35.9) и срок (10 недель). Вот честные варианты цели — выбери кнопкой:
🎯 6:00 /км — амбициозно, впритык, форму подтянем ровно под это 🏁 Просто добежать — тоже амбициозно, но с запасом по уверенности
Быстрее ~5:24/км за 10 недель я обещать не стану — форму столько не нарастить. Невозможных вариантов в кнопках нет.
🎯 6:00 /км🏁 Просто добежать
🎯 6:00 /км
Готово. Вот твой план — посмотри первую неделю:
10 недель: база → развитие → пик → подводка · длинная дорастёт до ~18 км · старт 20 км/нед
Длинная 7 км6:39/км · Z2
Темпо 4 км5:33/км · Z4
Интервалы 3 км5:05/км · Z5
Лёгкий 3 км6:39/км · Z2
Лёгкий 3 км6:39/км · Z2
Сессии не привязаны к дням: каждое утро я смотрю восстановление и спрашиваю «бежим или отдых», подставляю нужную из остатка недели. Берём?
✅ Согласовать✏️ Изменить план
✅ Согласовать
Принято. Три тяжёлых подряд не дам, длинную не потеряем — структуру держу я, день выбираешь ты.
Завтра в 07:00 — первое утро. До связи. 🏃
Каждый шаг детерминирован — ошибиться негде: где можно — узкие кнопки
(дистанция, усилие, объём, длинная, дни, цель); где нужен ввод (дата, бег) — строгий формат с переспросом
(видно на дате: «в конце августа» → «нужен формат ДД.ММ.ГГГГ»). Усилие описывает бот, человек только
тапает цвет. В конце — план + «Согласовать / Изменить», а не молчаливый старт. Это бот, а не ChatGPT.
02 · Якорь формы
Твой бег под микроскопом
4.5 км / 5:33 — один и тот же бег, 4 разных усилия. Видно, почему мы спрашиваем усилие.
Как ощущался
Признак
Форма (VDOT)
Лёгкий
Темпо
Интервал
🟢 Спокойно
болтал бы свободно, мог бы ещё столько же
45.2
5:33
4:37
4:14
🟡 Бодро, комфортно
целыми фразами с паузами, ещё немного бы пробежал
37.6
6:25
5:21
4:54
🟠 Тяжело
короткие фразы, хватило бы ещё на 10–15 мин
35.9
6:39
5:33
5:05
🔴 Максимум
говорить не мог, как на гонке
33.6
7:00
5:51
5:22
Тот же бег как 🟢 даёт VDOT 45 и быстрые темпы, как 🔴 — VDOT 34 и медленные.
Один вопрос про усилие убирает всю двоякость.
03 · Согласованность
Петля самопроверки
Бег 4.5 км / 5:33 на усилии 🟠 «тяжело» → форма VDOT 35.9. Темпо-темп из этой формы = 5:33/км. Твой бег был 5:33/км. Разница 0 с — петля замкнулась: усилие, которое ты назвал, совпадает с темпами, которые получит план. Раньше тут была дыра (7:52 против 5:33).
04 · Честный вердикт
Выполнимость твоей цели — полумарафон Floripa
Форма VDOT 35.9 · база ~20 км/нед · длинная 10 км. Вердикт по двум замкам: форма + объём.
Цель темпа
8 нед
10 нед
14 нед
20 нед
просто добежать
⛔ Нереалистичноне хватит базы — сдвинь дату
⚠️ Амбициозно
✅ Достижимо
✅ Достижимо
6:00/км
⛔ Нереалистичноне хватит базы — сдвинь дату
⚠️ Амбициозно
✅ Достижимо
✅ Достижимо
5:45/км
⛔ Нереалистичноне хватит базы — сдвинь дату
⚠️ Амбициозно
✅ Достижимо
✅ Достижимо
5:30/км
⛔ Нереалистичноне хватит базы — сдвинь дату
⚠️ Амбициозно
✅ Достижимо
✅ Достижимо
5:00/км
⛔ Нереалистичноне хватит базы — сдвинь дату
⛔ Нереалистичнореально ~5:24/км
⛔ Нереалистичнореально ~5:15/км
⚠️ Амбициозно
4:30/км
⛔ Нереалистичноне хватит базы — сдвинь дату
⛔ Нереалистичнореально ~5:24/км
⛔ Нереалистичнореально ~5:15/км
⛔ Нереалистичнореально ~5:01/км
Система не обещает невозможного: где не хватает срока или базы — честно говорит,
и предлагает реальную альтернативу. Сдвинешь срок или базу — пересчитается.
05 · Универсальность
Работает не только для тебя — вот планы, на которых я проверял
Без WHOOP и без Strava, на одних ответах. У каждого — своя точка А и точка Б, и свой честный вердикт.
Новичок✅ Достижимо
точка А С нуля: 3 км тяжело по 9:00 → VDOT 20.0 · E 10:20 (Z2) · T 8:45 (Z4) · I 8:04 (Z5)
точка Б полумарафон «просто добежать», 24 недели
Средний⚠️ Амбициозно
точка А 5 км комфортно по 6:00 → VDOT 34.1 · E 6:55 (Z2) · T 5:47 (Z4) · I 5:18 (Z5)
точка Б полумарафон из 5:30/км, 16 недель
Быстрый✅ Достижимо
точка А 10 км на пороге по 4:30 → VDOT 46.6 · E 5:25 (Z2) · T 4:30 (Z4) · I 4:07 (Z5)
точка Б марафон из 4:40/км (~3:17), 18 недель
Завышенная цель⛔ Нереалистично
точка А тот же средний бегун (VDOT 34.1)
точка Б марафон из 3:30 (4:58/км) за 8 недель
Система честно отказывает: не успеть нарастить базу (объём). Совет: сдвинуть дату или взять дистанцию короче.
06 · Твой ритм
Плавающее расписание — день за днём
Тренировки не привязаны к дням недели. Неделя — набор сессий; каждое утро ты сам решаешь
«бежим или отдых», система предлагает оптимальную из остатка, ты можешь свапнуть.
Утро
Твой выбор
Что система предложила
Почему
День 1
🏃 бежим
Длинная 12 км(длинная)
ценное вперёд
День 2
😴 выбрал отдых
—
восстановление
День 3
😴 выбрал отдых
—
восстановление
День 4
🏃 бежим
Темпо 6 км(качество)
ценное вперёд
День 5
🏃 бежим
Интервалы 5 км(качество)
ценное вперёд
День 6
🏃 бежим
Лёгкий 5 км(лёгкая)
после 2 жёстких — только лёгкое
День 7
😴 выбрал отдых
—
восстановление
Итог недели: сгорело: Лёгкий 5 км (лёгкие — буфер, не переносим). Длинная и качество защищены, лишнее лёгкое сгорает — без снежного кома в следующую неделю.
07 · Самоатака
Я пытался это сломать — вот что вернул калькулятор
Прежде чем защищать — атаковал сам. 132 проверки · все зелёные · ниже каждый кейс прогнан вживую.
Атака
Вход
Что вернул калькулятор
Мусор на входе
0 км / −время / «blazing»
✓ ValueError — план не строится
Абсурдный бег
3 км за 6:00 как «спокойно»
✓ VDOT зажат потолком = 85 (макс 85)
Противоречие усилия
один бег 4.5/5:33 как 🟢→🔴
✓ VDOT 45 → 38 → 36 → 34 (строго вниз)
Невозможная цель (темп)
10 км из 35:00, база ок
✓ нереалистично → совет ~5:10/км
Невозможная цель (объём)
марафон за 5 нед с 10 км/нед
✓ нереалистично → двигай дату (не «беги медленнее»)
«Просто добежать»
цель без темпа
✓ не падает → судит по объёму: достижимо
3 жёстких подряд?
после 2 жёстких просим бег
✓ предложит «easy» (лёгкое), жёсткое блокирует
В этом проходе нашёл и закрыл две дыры: (1) «просто добежать» без целевого темпа
роняло проверку; (2) когда блокирует объём, система советовала «беги медленнее» — обман,
базу медленным темпом не построить. Обе починены и закреплены тестами.
08 · Без зависимостей
Что НЕ требуется
Ни одна формула не требует WHOOP или Strava. Пульс — опциональный, более точный путь;
если его нет, усилие берётся из описаний. WHOOP включён только у тебя — для сверки, что ты реально
попадаешь в нужную зону. Будущий пользователь проходит онбординг на одних вопросах.
rAIner · детерминированный беговой калькулятор · 4 градации усилия · спек согласуется до релиза