Детерминированный движок. Все числа на странице посчитал сам калькулятор — ничего не выдумано.
Ниже доказательство на твоих данных, на чужих бегунах, и отчёт о том, как я пытался это сломать.
Корень всех прошлых провалов: темп без усилия неинтерпретируем. 5:33/км — это либо
лёгкий бег сильного бегуна, либо максимум новичка. Пока не знаем усилие — не знаем форму,
и план уезжает в 7:52 или 8:00. Теперь усилие оцифровано (выбор из 4 описаний или пульс),
и из него детерминированно считается всё остальное.
01 · Полный онбординг
Как это выглядит вживую
Весь диалог: цель (точка Б) → замер формы (точка А) → честный вердикт → ввод плавающего расписания.
Каждое число в ответах бота посчитал калькулятор.
Привет! Я rAIner — твой беговой коуч. Соберу план под тебя за пару минут. Начнём с цели. 🎯
На какую дистанцию целишься?
5 км10 км21.1 км42.2 км
21.1 км
Когда забег? Введи дату в формате ДД.ММ.ГГГГ — ровно так, иначе не посчитаю срок.
в конце августа
Не понял дату. Нужен формат ДД.ММ.ГГГГ, например 29.08.2026.
29.08.2026
10 недель до старта. Теперь померяю форму — точку А. Спрошу про два бега.
Бег 1 — обычный, недавний. Сколько километров? Введи число, например 4.5.
4.5
За сколько пробежал? Формат ММ:СС, например 25:00.
25:00
Как этот бег ощущался? Это определяет всю форму — выбери точно по описанию:
🟢 Спокойно — дышал носом, болтал бы свободно, мог бы ещё столько же 🟡 Бодро — дышал глубже, говорил фразами с паузами, ещё немного бы пробежал 🟠 Тяжело — дышал ртом, только короткие фразы, хватило бы ещё на 10–15 мин 🔴 Максимум — задыхался, говорить не мог, выложился как на гонке
Бег 2 — самый длинный за последний месяц. Сколько километров?
меньше 55–10 км10–15 км15–20 кмбольше 20
10 км
Как далась эта длинная?
🟢 Спокойно🟡 Бодро🟠 Тяжело
🟡 Бодро
Отлично — 10 км в комфорте есть, с этого и растим длинную.
Сколько в среднем бегаешь в неделю сейчас?
меньше 1515–25 км25–40 км40–60 кмбольше 60
15–25 км
Сколько дней в неделю готов бегать?
3456
5
Свёл форму (VDOT 35.9) и срок (10 недель). Честные варианты цели — выбери кнопкой:
🎯 6:00 /км — амбициозно, впритык, форму подтянем ровно под это 🏁 Просто добежать — тоже амбициозно, но с запасом по уверенности
Быстрее ~5:24/км за 10 недель я обещать не стану — форму столько не нарастить. Невозможных вариантов в кнопках нет.
🎯 6:00 /км🏁 Просто добежать
🎯 6:00 /км
Готово. Вот первая неделя плана (весь план и виды тренировок — ниже под чатом):
Неделя 1 · База · объём 20 км
Лёгкий 3 км6:39 · Z2
Лёгкий 3 км6:39 · Z2
Лёгкий 3 км6:39 · Z2
Лёгкий 3 км6:39 · Z2
Длинная 8 км6:39–6:59 · Z2
Первая неделя — база: спокойный объём, строим фундамент. Качество (темпо/интервалы/горки) подключается с 5-й недели. Сессии не привязаны к дням. Берём план?
✅ Согласовать✏️ Изменить план
✅ Согласовать
Принято. Каждое утро смотрю восстановление и спрашиваю «бежим или отдых», подставляю сессию из остатка недели. Три тяжёлых подряд не дам, длинную не потеряем — структуру держу я, день выбираешь ты.
Завтра в 07:00 — первое утро. До связи. 🏃
Каждый шаг детерминирован — ошибиться негде: где можно — узкие кнопки
(дистанция, усилие, объём, длинная, дни, цель); где нужен ввод (дата, бег) — строгий формат с переспросом
(видно на дате: «в конце августа» → «нужен формат ДД.ММ.ГГГГ»). Усилие описывает бот, человек только
тапает цвет. В конце — план + «Согласовать / Изменить», а не молчаливый старт. Это бот, а не ChatGPT.
02 · Ветки диалога
Что будет, если нажать другую кнопку
Те же шаги, но другой выбор. Каждая ветка — реальный экран бота, числа из калькулятора.
ветка➕ Ввести пульс (вместо ощущений)
Как этот бег ощущался? Это определяет всю форму — выбери точно по описанию:
🟢 Спокойно — дышал носом, болтал бы свободно, мог бы ещё столько же 🟡 Бодро — дышал глубже, говорил фразами с паузами, ещё немного бы пробежал 🟠 Тяжело — дышал ртом, только короткие фразы, хватило бы ещё на 10–15 мин 🔴 Максимум — задыхался, говорить не мог, выложился как на гонке
🟢 Спокойно🟡 Бодро🟠 Тяжело🔴 Максимум➕ Ввести пульс
➕ Ввести пульс
Средний пульс за тот бег? Введи число, например 165. Это точнее ощущений. Максимум прикину по возрасту, если не подключён WHOOP.
165
165 при максимуме ~184 — это порог (Z4). Форма VDOT 35.9 — совпало с ощущениями, но пульс убирает любую двоякость.
ветка✏️ Изменить план
Что в плане поправить? Меняю один рычаг и пересчитываю целиком:
Много тренировокТемп не мойДлинная большаяОднообразноМало/много бегаю
Темп не мой
Перемеряем точку А — новый бег или пульс. Все темпы плана сдвинутся под него, структура и периодизация останутся.
Новый бегВвести пульс
Новый бег
Принял новый замер → пересчитал темпы по всему плану. Длинная теперь 6:25/км вместо 6:39. Показать обновлённый план?
✅ Согласовать✏️ Ещё правка
веткаНевозможная цель — как бот отказывает
Цель: марафон из 3:30 (4:58/км) за 8 недель. Проверяю…
Так не дам обещать — это было бы враньём. Базу под марафон за 8 недель не построить безопасно: объём можно растить лишь ~10%/нед, иначе травма. Дело не в темпе — медленнее бежать не поможет.
Что реально:
📅 Сдвинуть дату марафона🏃 Взять полумарафон сейчас🏁 Марафон позже, просто добежать
🏃 Взять полумарафон сейчас
Вот это честно. Полумарафон за 8 недель с твоей базой — реально. Пересобираю под него.
03 · План как запланировано
Полный план — 10 недель
Это не выдумка для картинки — посчитано тем самым движком (engine.build_plan): фазы, рост объёма
≤10%/нед, дилоады, подводка, ротация качества. Видно, что недели РАЗНЫЕ.
Неделя
Фаза
Объём
Длинная
Качество
Нед 1
База
20 км
8 км
— только база
Нед 2
База
22 км
8 км
— только база
Нед 3
База
24.2 км
10 км
— только база
Нед 4
База
17.7 км
7.5 км
— только база
дилоад
Нед 5
Развитие
26.6 км
11.5 км
Интервалы
Нед 6
Развитие
29.2 км
13.5 км
Горки
Нед 7
Пик
32.1 км
16.5 км
Интервалы
Нед 8
Пик
23.4 км
11.5 км
— только база
дилоад
Нед 9
Перед стартом
22.5 км
10 км
Темпо
подводка
Нед 10
Перед стартом
16.1 км
6 км
— только база
подводка
База (1–4) строит фундамент; качество подключается в Развитии (5–6) и Пике (7–8) и
ротируется (темпо/интервалы/горки/фартлек/прогрессия) — никаких «10 одинаковых». Дилоад каждую 4-ю неделю, подводка в конце.
04 · Виды тренировок
Что значит каждый тип
7 типов сессий с описанием и темпом/зоной при твоей форме (VDOT 35.9). Бот объясняет каждую по кнопке «Что за тренировка?».
Тип
Что это
Темп · зона
Лёгкий
расслабленный разговорный темп, аэробная база.
6:39 · Z2
Длинная
самый длинный бег недели, строит выносливость.
6:39–6:59 · Z2
Темпо
продолжительный отрезок в умеренно-тяжёлом темпе, поднимает порог.
5:33 · Z4
Интервалы
быстрые отрезки через восстановление (напр. 6×400 м), скорость.
5:05 · Z5
Фартлек
«игра скоростью», чередование быстро/легко по самочувствию.
5:33 · Z4
Горки
повторы в гору на усилии; сила и экономичность.
по усилию · Z4
Прогрессия
старт легко → финиш быстрее; бежать быстро на усталых ногах.
6:39→5:33 · Z3
05 · Якорь формы
Твой бег под микроскопом
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 и медленные.
Один вопрос про усилие убирает всю двоякость.
06 · Согласованность
Петля самопроверки
Бег 4.5 км / 5:33 на усилии 🟠 «тяжело» → форма VDOT 35.9. Темпо-темп из этой формы = 5:33/км. Твой бег был 5:33/км. Разница 0 с — петля замкнулась: усилие, которое ты назвал, совпадает с темпами, которые получит план. Раньше тут была дыра (7:52 против 5:33).
07 · Честный вердикт
Выполнимость твоей цели — полумарафон 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/км
Система не обещает невозможного: где не хватает срока или базы — честно говорит,
и предлагает реальную альтернативу. Сдвинешь срок или базу — пересчитается.
08 · Универсальность
Работает не только для тебя — вот планы, на которых я проверял
Без 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 недель
Система честно отказывает: не успеть нарастить базу (объём). Совет: сдвинуть дату или взять дистанцию короче.
09 · Твой ритм
Плавающее расписание — день за днём
Тренировки не привязаны к дням недели. Неделя — набор сессий; каждое утро ты сам решаешь
«бежим или отдых», система предлагает оптимальную из остатка, ты можешь свапнуть.
Утро
Твой выбор
Что система предложила
Почему
День 1
🏃 бежим
Длинная 12 км(длинная)
ценное вперёд
День 2
😴 выбрал отдых
—
восстановление
День 3
😴 выбрал отдых
—
восстановление
День 4
🏃 бежим
Темпо 6 км(качество)
ценное вперёд
День 5
🏃 бежим
Интервалы 5 км(качество)
ценное вперёд
День 6
🏃 бежим
Лёгкий 5 км(лёгкая)
после 2 жёстких — только лёгкое
День 7
😴 выбрал отдых
—
восстановление
Итог недели: сгорело: Лёгкий 5 км (лёгкие — буфер, не переносим). Длинная и качество защищены, лишнее лёгкое сгорает — без снежного кома в следующую неделю.
10 · Самоатака
Я пытался это сломать — вот что вернул калькулятор
Прежде чем защищать — атаковал сам. 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) когда блокирует объём, система советовала «беги медленнее» — обман,
базу медленным темпом не построить. Обе починены и закреплены тестами.
11 · Без зависимостей
Что НЕ требуется
Ни одна формула не требует WHOOP или Strava. Пульс — опциональный, более точный путь;
если его нет, усилие берётся из описаний. WHOOP включён только у тебя — для сверки, что ты реально
попадаешь в нужную зону. Будущий пользователь проходит онбординг на одних вопросах.
rAIner · детерминированный беговой калькулятор · 4 градации усилия · спек согласуется до релиза