Все записи
6 мин

JustStep за неделю: телеграм-бот на проде, 4 спеки и 411 тестов

вайбкодингtelegram-ботыmvp

За одну неделю я собрал с нуля до прода новый продукт — телеграм-бота @juststep_bot, который берёт вашу размытую цель и превращает её в один конкретный шаг на сегодня, и он уже реально работает, так что заходите и пробуйте. Весь код писала нейросеть под моим управлением, сам я руками не кодил, а оркестрировал процесс по методу STC и трекал фазы через Guardian MCP, и за неделю это вылилось в 4 спеки и 411 зелёных тестов на проде. Если вы прикидываете, можно ли вообще разработать телеграм-бота с помощью нейросети за такой срок и что для этого нужно, то вот честный разбор: что я делал, что тормозило и что в итоге понял.

Началось всё с одной фразы себе самому, я её записал так: «Все. Настал тот день когда начинаем кодить. Двигаемся по stc и гвардиану». Никакого торжественного старта, просто наступил день, когда хватит планировать и пора собирать — а до этого был целый заход с черновиками спек и консилиумом из AI-экспертов ещё до первой строчки кода.

Что за бот и зачем

Идея простая до неприличия, и в этом весь смысл. У человека есть размытая цель — «хочу подтянуть английский», «хочу запустить свой проект», «хочу начать бегать», и вот эта размытость как раз и есть то, обо что все спотыкаются, потому что цель большая, непонятно с какого конца её есть, и в итоге не делается вообще ничего. JustStep берёт эту кашу и выдаёт один конкретный шаг на сегодня, не план на год, не три пункта, а буквально что сделать прямо сейчас. И всё. Чем меньше у человека выбора и развилок, тем выше шанс, что он реально сдвинется.

Стек и почему такой

Под капотом Python 3.12, aiogram 3 для самого телеграма, SQLAlchemy 2 в async-режиме поверх Postgres, Redis для FSM-состояний с TTL на 30 дней, faster-whisper чтобы расшифровывать голосовые, а LLM-вызовы я гоняю через OpenRouter. Выбор тут не из любви к красоте, а из практики, потому что это то, на чём я уже умею быстро двигаться и что не разорит на копеечном бюджете для нейросетей, который у меня обычно и есть.

OpenRouter вместо прямого подключения к одному провайдеру — это вообще отдельная больная тема, я про неё уже писал в посте про то, как два проекта легли разом, потому что кончились деньги на OpenAI. Так что теперь я по умолчанию закладываюсь на роутер, чтобы не зависеть от одной точки отказа.

Как именно писался код

А вот тут самое интересное, потому что многие думают, что вайбкодинг — это когда ты пишешь нейросети «сделай мне бота», и она тебе его делает. Так не работает, точнее работает ровно до первого реального продукта, а дальше начинается боль. Я двигался по STC, то есть Spec-Test-Code: сначала спека, потом тесты, потом код, и каждая фаза трекается через Guardian MCP, чтобы агент не перепрыгивал куда не надо, а я всегда видел, где нахожусь. Про сам метод и почему я вообще заставил AI-агента ходить по процессу я подробно расписывал в отдельном посте про STC и Guardian, так что тут повторяться не буду, скажу только, что без этого каркаса нейросеть начинает плыть.

Phase 1, то есть само ядро MVP, это четыре спеки. Первая — Bot Foundation, фундамент и онбординг. Вторая — первая цель пользователя. Третья — subscription gate, то есть отсечка по подписке. Четвёртая — голосовой отчёт плюс матчинг. И каждый атомарный шаг внутри спеки прогонялся через полный цикл: пишем тесты, пишем код, потом четыре ревьюера параллельно — code-reviewer, security-guard, spec-verifier и codex, и только после этого коммит. Не «написал и поехали дальше», а каждый кусок отдельно проверен с четырёх сторон.

Когда я добрался до четвёртой спеки, скоуп оказался жирным, и мне предложили разбить его на пять атомарных шагов, на что я ответил коротко: «конечно. как и должно быть». Потому что разбивать большое на маленькое — это не педантизм, это единственный способ не утонуть. Если кидать нейросети целую фичу одним куском, она напишет тебе гору кода, в которой ты потом будешь неделю искать, где именно она ошиблась. А по одному маленькому шагу всё видно: тесты красные, код, тесты зелёные, ревью, коммит, и ты всегда знаешь, что именно сломалось.

Цифры по тестам

После первой спеки было 108 тестов. После второй стало 166. После того как закрыл всю Phase 1 — уже 345, и среди них четыре E2E, то есть сквозные сценарии от старта до результата. А к концу недели, когда сверху легли ещё Phase 2a с декомпозицией целей и Phase 2b с механикой «сделал» снизу вверх, набралось 411 зелёных тестов. Это не для красоты в посте, это та страховка, которая позволяет одному человеку с телефона командовать сборкой целого продукта и не бояться, что очередная правка тихо сломает то, что работало вчера. Хотя зелёные тесты — это ещё не работающий продукт, и первый живой смоук-тест бота вскрыл шесть багов, которых не увидел ни один из тех самых 345.

Сколько это реально занимает по времени

А теперь честно про то, о чём в роликах про вайбкодинг обычно молчат. Даже когда у тебя есть готовые спеки, расписанные до шагов, чтобы нейросеть просто взяла и написала по ним код, это всё равно примерно 16-24 часа работы. Она пишет медленно, и всё равно по дороге возникают ошибки, которые приходится ловить и чинить. То есть «AI написал бота за вечер» — это сказка для тех, кто не доводил продукт до прода. Реальность в том, что AI пишет код, но пишет его не мгновенно и не идеально, и без человека, который держит процесс и гоняет ревью, вы получите не продукт, а свалку.

Отдельная возня была с инфраструктурой. JustStep живёт в своём отдельном git-репозитории, и пушить туда пришлось через SSH Deploy Key с отдельным хост-алиасом, потому что у меня несколько проектов и ключи нельзя путать. Мелочь, а времени на настройку забирает, и это как раз та часть, которую в красивых демо никогда не показывают, хотя без неё код просто никуда не уедет.

Что в итоге понял

Главный вывод недели даже не про скорость, хотя собрать рабочий телеграм-бот с нейросетью за неделю — это уже само по себе показатель того, куда всё движется. Главный вывод про дисциплину. Можно ли разработать MVP телеграм-бота с помощью нейросети? Да, можно, я только что это сделал. Но не «вайбкодингом» в смысле болтовни с чатом, а через нормальный процесс: спека, тесты, код, ревью, коммит, по одному маленькому шагу за раз. Нейросеть тут исполнитель, причём очень мощный, но именно исполнитель, а не архитектор твоего продукта, и если ты не держишь руль, она увезёт тебя в кювет на полной скорости.

Я к этому пришёл не от хорошей жизни, а потому что раньше уже обжигался: нанимали разработчиков со стороны, потратили кучу денег и времени, а проект помер сразу после запуска. Так что когда мне говорят про говнокод от нейросетей, я спокоен. А что, кожаные разработчики его не пишут? не смешите меня. Разница только в том, кто исполнитель и сколько это стоит, а процесс, который ловит косяки, нужен в обоих случаях одинаково.

Сейчас бот уже готов и крутится на проде. Размытая цель на входе, один конкретный шаг на выходе. Заходите, пробуйте, ломайте. А кому интересно, как именно я раскладываю фичу на атомарные шаги и почему четыре ревьюера, а не один, про это расскажу подробнее отдельно.