
Предисловие
Скрытый текст
Здесь не будет дурацких промптов и пустых философских размышлений о том, отнимет ли искусственный интеллект вашу работу. Оставьте эти утешительные беседы инфоцыганам и теоретикам. Вы здесь для того, чтобы изучить тонкую науку и искусство системной инженерии. Я не ожидаю, что многие из вас оценят красоту изящно настроенного ETL пайплайна или тонкую гармонию микросервисной архитектуры. Однако для тех избранных, кто обладает готовностью учиться, я могу показать, как околдовать разум разработчика, сварганить безупречную архитектуру и разлить по флаконам технический авторитет.
Это руководство для тех, кто готов инвестировать в свою техническую насмотренность и техническую эмпатию. Если вы не можете поставить VPN или жалеете двадцать долларов на подписки → закройте эту статью. Мы будем строить полноценный SaaS. Почему? Потому что с вероятностью 90% вы работаете или будете работать именно с SaaS-продуктами. Наш инструмент → контролируемый Vibe Coding , а наш полигон → реальный пет-проект.
Гайд рассчитан на 10 основных этапов (~30 дней) + 10 продвинутых для желающих погрузиться глубже. Преветствую тебя, оставшийся читатель.

Выбор проекта
При выборе проекта я рекомендую не брать всеми желаемые игры или гениальные мобильные приложения. Стоит учитывать что на 23.03.2026:
Модели отлично работают с Python, JS, TS, React, Rust;
Тебе нужно при разработке проекта полкрыть полностью стандартные решения вроде клиент-серверной архитектуры и REST;
Ты должен столкнуться с типичными практиками, такими как юнит-тесты, контейнеры и логирование;
Домен проекта должен быть тебе понятен и пригодиться в целом;
Сервис должен наполняться живыми данными;
Есть смысл расширять проект до 2 фронтенд-клиентов, запускать на сервере и интегрировать туда ИИ.
Поэтому у меня для тебя идеальное решение - сделать сервис ИИ ассистента по твоей команде, который на базе таск-трекера позволяет тебе отвечать на вопросы “Как дела”, “Какой загруз у Федора и тп”.
Если вдруг ты новичок, у тебя нет тасктрекера с данными команды за пару месяцев под рукой и тебя не испугал этот гайд, не беда. Делай сервис “Аналитик Open Source”, который может отвечать на вопросы: “Какие критичные баги сейчас висят в React?” или “О чем спорят разработчики в последнем Pull Request?”
Соответственно вместо Jira API → GitHub API, вместо Atlassian MCP → GitHub MCP.
Тех стек
python, fastAPI, postgres, uv
react, typescript, vite, shadcn, tailwind
Но в целом в каждом этапе будет рекомендация что добавить.

Сетап
Он будет состоять из AI code tool + mcp + skills. Заполнение всяких .cursorrules, gemini.md, claude.md, agent.md не рекомендую делать пока вы не научитесь толком пользоваться и сейчас в целом часто избыточно.
AI coding tool
Я рекомендую для старта просто https://one.google.com/about/google-ai-plans/ AI Pro за 20$. Почему:
В целом для обучения без разницы, не обязательно сильно настраивать claude code, приучаться к codex или cursor;
В нем есть IDE Antigravity и CLI Gemini и все на лимитах в момент времени, а не запросах.
По-умолчанию использовать фронтир модели, переключаться на самый последние, например gemini-3.1-pro high.
MCP (Model Context Protocol)
Тут не надо мудрить, джентельменский набор из:
serena;
sequential-thinking;
context7;
filesystem на всякий (antigravity временами тупит).
Готовый конфиг
{ "mcpServers": { "filesystem": { "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate", "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:\\Users\\User\\a_projects", "C:\\Users\\User\\.ssh" ], "env": {} }, "sequential-thinking": { "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate", "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-sequential-thinking" ], "env": {} }, "context7": { "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate", "command": "npx", "args": [ "-y", "@upstash/context7-mcp" ], "env": {} }, "serena": { "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate", "command": "uvx", "args": [ "--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server" ], "env": {} } } }
Куда тыкать в antigravity если chatgpt не объяснил
Файлик по пути аналогичном "C:\Users\User.gemini\antigravity\mcp_config.json" или как на скриншотах ниже:




Skills
Естественно реестр https://skills.sh/ и npm install -g @skills/cli (глобально или как хотите).
Какие скиллы поставить - релевантные проекту, но для примера будут для каждого этапа добавляться.
Environment
Что установить на комьютер:
python;
npm;
pip (потом от него откажемся в пользу uv);
git.
В целом тебе потом потребуется IDE (например Antigravity), Docker Desktop, DBeaver.
Как устанавливать сетап
Гайда не будет, открывай любой LLM SaaS, например https://gemini.google.com/ и разбирайся сам, как установить на Windows 11 python и тд, это этап 0.

Как промптить и работать с ИИ
Первые 10 этапов я рекомендую не париться на этот счет, однако руководствоваться несколькими простыми правилами:
Бить работу на задачи и делать в одном чате только 1 задачу;
Если 1 задача не решается в 1 чате - открывать новый и писать задачу чуть более конкретно и структурно;
Если не получается, смотри п.1;
Не надо задавать никаких ролей, целей и критеев в промтах и писать их на английском, с 2024 года модели стали куда умнее и это вредит даже;
Если сложно просто формулировать в чате и все равно не получается, воспользоваться подходом “уточка”.
Подход уточка (Rubber Ducking):
Открываешь чат, например с gemini и разовариваешь с ней до тех пор, пока ты сам не поймешь что делаешь и пока она не сформулирует чекто задачу, пишешь ее context.md;
Копируешь context.md в отдельный чат и просишь продумать там набор архитектурных изменений - vision.md;
Копируешь в 3 чат и просишь написать задачи для изменения проект до vision.md с учетом context.md в tasks.md;
Задаешь в 4 чате что значит каждый таск в tasks.md и если тебя устраивает просишь сделать по ним.
Роадмап

Этап 1. Ответы в телеграм по джире от ИИ
Поставь Antigravity IDE (или что вам больше нравится), выпустить AI API токен (например, gemini бесплатной квоты хватит), выпустить Jira API токен положить это в .env и можно прямо так в чате Antigravity написать “сделай телеграм бота чтобы ходил по mcp в джиру и отвечал в чате на вопросы, без докера на фастапи просто”.
Ожидаемый результат: Бот работает локально; ИИ имеет доступ к Jira, но использует его как черный ящик;
Фичи: Базовый чат в Telegram; Gemini API самостоятельно решает, когда и как вызывать Atlassian MCP с использованием вашего токена;
Тех стек: Python, FastAPI, Gemini API, Atlassian MCP;
Практики тех. совершенства: нет (не думаю что переменные окружения, зависимости, хосты и порты стоит считать).
Если вдруг застрянешь, то вот готовый проект. https://github.com/letya999/tg-jira-answerer-mcp
(Единственно в нем используется Open AI, попроси поправить, у меня на момент написания статьи не генерировался токен почему-то)
Подсказка: Используйте проверенный сервер @aashari/mcp-server-atlassian-jira, а не @atlassian/mcp-server.

Этап 2. Прямая работа с Jira API и контроль версий
MCP - это удобная абстракция, которая скрывает от тебя что происходит, и именно поэтому мы от неё уходим. Ты почуствовал могущество, пора его приручить.
Инициализируй гит, работай в мейне. Переведи проект на получение задач одного конкретного проекта по API. Сделай 3 тул кол - скрипта с API (пользователи в проекте, статусы в проекте, детали задач).
Добавь скилл https://skills.sh/jeffallan/claude-skills/fastapi-expert.
Ожидаемый результат: Отказ от непрозрачного MCP в пользу контролируемых REST-запросов; сохранение истории изменений кода;
Не забудь добавить .venv, .gitignore и .env.example!
Фичи: Выкачка задач строго 1 проекта за последние 30 дней напрямую через HTTP-запросы;
Тех стек: Jira REST API, HTTP-клиент (requests), Git;
Практики тех. совершенства: Local Version Control System, Tool Calling, API Integration.
Этап 3. Реляционная БД и полнотекстовый поиск
Сделай SQL схему из задач, журнала изменений задач. Добавь в ТГ бот кнопку для загрузки свежих данных за последние 30 дней с затиранием того что уже есть в БД (это деструктивно, но грузить тебя всякими append only и датаинжинирингом будет too much). Пусть ИИ отвечает на основе топ 5 результатов того что вернет БД.
Ожидаемый результат: Данные сохраняются локально для быстрого доступа;
Фичи: Синхронная загрузка задач и чейнджлогов по кнопке, поиск по тексту задач средствами БД;
Тех стек: PostgreSQL FTS (tsvector/tsquery), чистый SQL (схемы таблиц), полнотекстовый поиск BM25 PostgreSQL.
Практики тех. совершенства: Database Design, SQL Migrations, Information Retrieval.
Подсказка: установи tsvector или аналог, а также поставь DBeaver.
ORM пока не трогаем, работаем с чистым SQL - поймёшь зачем на этапе 9.
Этап 4. Векторный поиск и гибридный RAG
Добавь как сущности в схему исполнителей, статусы и типы задач в отдельные таблицы. Произведи SQL миграции через выполнение SQL-скриптов руками (без Alembic). ID у сущностей сделай просто int.
Векторизуй загруженные задачи и научи ИИ искать релевантный контекст в двух таблицах: сначала ищи топ-5 задач по смыслу вопроса, потом по каждой задаче подтягивай связанные записи из changelog, и передавай это в контекст модели единым блоком. Именно так работает RAG: не один большой поиск, а цепочка запросов где результат первого определяет что искать во втором.
Чтобы это не тормозило, добавь индексы. На таблице задач: индекс по assignee_id, status_id, type_id (те самые новые сущности), и векторный индекс HNSW в Qdrant. На changelog: индекс по task_id. Попроси AI IDE объяснить тебе разницу между EXPLAIN и EXPLAIN ANALYZE в PostgreSQL и прогони оба на своих запросах.
JOIN выглядит так: ты получил из Qdrant список task_id → идёшь в PostgreSQL с WHERE task_id IN (...) → делаешь LEFT JOIN changelog ON changelog.task_id = tasks.id → получаешь задачи вместе с историей изменений одним запросом. Всё это передаётся в промпт как структурированный контекст.
Добавь скилл: https://skills.sh/github/awesome-copilot/postgresql-optimization
Ожидаемый результат: ИИ отвечает на о��нове смыслового понимания задач с учётом их истории; запросы не тормозят даже на тысячах записей;
Фичи: Векторизация задач, гибридный поиск (tsvector + Qdrant), JOIN задач с changelog для обогащения контекста, индексы на foreign keys и векторный HNSW;
Тех стек: Qdrant, PostgreSQL (HNSW, tsvector, EXPLAIN ANALYZE);
Практики тех. совершенства: RAG, Hybrid Search, Vector Databases, Query Optimization.
Подсказка: пока никакого чистого кода, OpenAPI спецификаций и докера. Миграции руками, это намеренно, на следующем этапе поймёшь почему это боль.
Этап 5. Базовые практики качества
Теперь когда поиск работает, самое время не добавлять фичи, а навести порядок. Это скучно. Это важно. Именно это отличает код который можно поддерживать от кода который боятся трогать.
Добавь скилл: https://skills.sh/supercent-io/skills-template/backend-testing
Ожидаемый результат: Кодовая база покрыта тестами, линтеры не дают писать грязный код, зависимости управляются нормально;
Добавь линтеры ruff, black, mypy;
Перейди на uv, он заменит pip, спроси у AI IDE чем он лучше и попроси мигрировать проект;
Добавь pytest, задизайнь самостоятельно 3 теста (например: поиск возвращает результаты, пустой запрос не падает, JOIN не дублирует строки) и покрой 50% кода.
Фичи: Линтинг, типизация, тесты на поисковую логику;
Тех стек: ruff, black, mypy, uv, pytest;
Практики тех. совершенства: Static Analysis, Test Coverage, Dependency Management.
Подсказка: пока никакого OpenAPI, докера и алембика, всё это придёт, но позже.
Этап 6. Веб-интерфейс, миграции и Long Polling
Сделай веб приложение на реакте и запусти на локалхосте, так чтобы оно могло стучаться в fastapi сервис по REST API, причем для получения ответа пусть происходит опрос сервера раз в 5 секунд. Также добавь в БД сущность спринты и переведи все ID на UID v4, но проведи миграции на Alembiс (кайфани).
Ожидаемый результат: Переход от мессенджера к браузерному UI с запуском на локальной машине, удобные миграции БД:
Покрой тестами до 75% и обязательно добавь фикстуры;
Добавь JWT-auth c сохранением в local storage (пока так, потом поменяется).
Фичи: Простой веб-чат; обновление интерфейса через периодические запросы к серверу, а также удобные миграции;
Тех стек: HTML/JS или базовый React, REST API;
Практики тех. совершенства: Client-Server Communication, Polling.
Подсказка: данные ты потеряешь, но не беда, тут не страшно!
Этап 7. Контейнеризация и WebSockets
Перестань страдать, установи докер-клиент, запусти в докер контейнере отдельными образами фронтенд, бекенд и БД. Переключи на вебсокет чат, а также добавь OpenApi спецификацию и подергай запросы через Swagger.
Добавь скилл https://skills.sh/sickn33/antigravity-awesome-skills/docker-expert.
Ожидаемый результат: Мгновенная доставка сообщений в чат без лишней нагрузки на сеть; унификация среды запуска;
Добавь eslint (линтер для реакта);
Добавь тайп чекер, например
tsc;Раздели /frontend и /backend на отдельные папочки со своими докер-файлами.
Фичи: Двунаправленный чат в реальном времени; запуск базы, бэкенда и RAG одной командой;
Тех стек: WebSockets, Docker, Docker Compose;
Практики тех. совершенства: Real-time Communication, Containerization.
Этап 8. Развертывание на удаленном сервере (VPS)
Возьми любого провайдера какой тебе больше подходит и подешевле. Я рекомендую взять просто digital ocean и его бесплатные кредиты тут, тебе на месяца 2-3 хватит. Не пугайся ubuntu консоли и SSH, я в тебя верю. Домен не покупай, настрой доступ просто по IP, но добавь свой комьютер в вайт лист, всех остальное в блеклист. Деплоится черновик намеренно.
Добавь (если готов) скилл https://skills.sh/bobmatnyc/claude-mpm-skills/digitalocean-overview.
Ожидаемый результат: SaaS-продукт доступен в интернете 24/7 по публичному IP-адресу;
Фичи: Ручной деплой на облачный сервер; базовая настройка портов;
Тех стек: DigitalOcean Droplet (или аналог VPS), SSH, Linux;
Практики тех. совершенства: Server Provisioning, Manual Deployment.
Этап 9. Командный процесс и Atomic Design на фронтенде
Познай Component Driven Design. Сгенерируй из OpenAPI схемы модели с помощью hey-api. Сделай общие стили и тему (типографика, цвета, иконки, шрифты и тд) . На базе темы и моделей сделай нужные атомы, вроде кнопки. Из атомов собери молекулы (поле ввода в чат) и из атомов лайауты. Каждый компонент делай через сторибук и проверяй там. Каждый компонент наполни через моки.
Добавь скиллы: https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices, https://skills.sh/shadcn/ui/shadcn, https://skills.sh/wshobson/agents/tailwind-design-system
Добавь https://github.com/github/github-mcp-server
Ожидаемый результат: Внедрение процесса безопасного слияния кода; фронтенд готов к масштабированию и переиспользованию UI.
Выложи репозиторий на гитхаб в privateформате;
Сделай 2 основных ветки - main и dev;
Запрети писать в main, только через пул реквест и мерж дев-а;
Делай фича ветки от dev, затем пул реквесты в дев (дев не удалять;
Проси твой AI IDE делать код-ревью открытых пул реквестов, закрывай их и мержи потом dev в main.
Фичи: Разработка интерфейса строго по компонентам (атомы, молекулы, организмы, лайауты); работа через ветки;
Тех стек:
GitHub, React (react 19 + ts 6 + vite 6 + shadcn + tailwind + radiux ui + zod + storybook + hey-api + tanstack;
Практики тех. совершенства: GitHub Flow (Pull Requests), Component-Driven Development, Atomic Design.
Подсказка: через github mcp можно без команд просто по-умолчанию это делать и просить ИИ открывать пул реквесты.
Этап 10. Чистая архитектура бэкенда и стейт-менеджмент UI
Полностью перепиши бекенд код, чтобы у тебя сохранялась чистая структура и зоны отвественности. Отрефактори на clean code + vertical feature slicing design, фронтенд также на vertical feature slicing design + store stack.
Ожидаемый результат: Избавление от спагетти-кода; жесткое разделение ответственности на бэкенде и фронтенде;
Фичи: Бэкенд: монолит разделен на модели, схемы, репозитории, сервисы, провайдеры (Vertical Feature Slicing). Фронтенд: хуки, пропсы, глобальный стор, мутации/квери; компонентные тесты;
Тех стек: SQLAlchemy, Pydantic, React Query, Zustand, Vitest;
Практики тех. совершенства: Clean Architecture, Domain-Driven Design concepts, State Management, Component Testing.

Поздравляю ты справился, Темный Лорд годиться тобой, ты можешь называть себя принцем-полукровкой по праву. Но если ты настолько самоуверен, то можешь попробовать погрузиться в глубины магии.
А что дальше? Дальше идут этапы для тех кто хочет дорасти до скорее технически подкованного менеджера, а не просто технически грамотного PM - здесь уже нет готовых подсказок, только направление.
Этап 11. Переход к deep-coding
Переходи на SDD, например используй openspec, проще всего начать с установки этих скиллов и выдаче задач с упоминанием скилла https://skills.sh/forztf/open-skilled-sdd
Ищи или пиши для себя релевантные скиллы, устанавливай их в корень диска в .agents и ставь симлинки
Переходи на более мощные инструменты: claude code ← opencode ← codex ← gemini cli ← codex app ← cursor ← antigravity
Переходи на более мощные инструменты: opus ← sonnet ← glm-5 ← gpt 5.4 ← остальное
Пробуй работать одновременно в нескольких инструментах, делегируя задачи например из claude в gemini cli с помощью скиллов/хуков, например https://github.com/letya999/claude_puppets_gemini_cli_and_codex
Этап 12. Асинхронная работа с данными и кеширование
Теперь не по кнопке в интерфейсе запускай извлечение данных их джиры и жди пока они загрузятся, а сделай выгрузку регулярным таском раз в 15 минут, который можно также преждевременно запустить по кнопке и получать его статус по эндпойнту.
Добавь скилл https://skills.sh/wshobson/agents/async-python-patterns,
Ожидаемый результат: Сервер не блокируется при выкачке тысяч задач из Jira, пользователь не ждет ответа перед пустым экраном, частые запросы не нагружают базу данных;
Фичи: Кеширование частых вопросов к ИИ, перевод синхронной загрузки задач из Jira на фоновые джобы (Jobs); мгновенный ответ API о старте задачи, уведомление фронтенда об окончании через WebSocket;
Тех стек: Redis (как In-memory кеш и брокер очередей), Celery (или SAQ c
asyncio);Практики тех. совершенства: Asynchronous Processing, Message Queuing, Data Caching, Background Job Processing;
Подсказка: если хочет чтобы и другие могли воспользоваться (похвалиться), а не только ты, можешь без сложных танцев с бубном настроить прокси через Caddy и http basic-auth.
Этап 13. Разделение на микросервисы
Ожидаемый результат: Монолит распилен на физически независимые компоненты для раздельного масштабирования;
Фичи: Выделение
Ingest Service(выкачка из Jira),Rag Service,Chatотдельные приложения, общающиеся друг с другом;Тех стек: REST API между сервисами, Docker Compose (обновленный для запуска нескольких бэкендов);
Практики тех. совершенства: Microservices Architecture, Service Decoupling.
Этап 14. Событийно-ориентированн��я архитектура и E2E тесты
Ожидаемый результат: Микросервисы общаются через события без жесткой связности; критические бизнес-пути покрыты автотестами полного цикла;
Фичи: Замена REST-вызовов между сервисами на топики Kafka (задачи_обновлены, извелчение_данных, чат_ответ). Сквозные тесты бэкенда (API) и фронтенда (имитация кликов пользователя в браузере);
Тех стек: Apache Kafka, Playwright (UI E2E), Pytest (Backend E2E);
Практики тех. совершенства: Event-Driven Architecture (EDA), End-to-End Testing.
Этап 15. Непрерывная интеграция и доставка (CI/CD)
Ожидаемый результат: Ручной деплой запрещен; код автоматически проверяется и попадает на сервер при каждом слиянии;
Фичи: Автоматический прогон E2E-тестов и линтеров; сборка Docker-образов в облаке; пуш на VPS;
Тех стек: GitHub Actions, Docker Registry;
Практики тех. совершенства: Continuous Integration (CI), Continuous Deployment (CD), Pipeline Automation.
Этап 16. Мобильный клиент и Shared-пакет
Ожидаемый результат: SaaS доступен со смартфона, фронтенд-логика и компоненты где не надо не дублируются, а переиспользуется между вебом и мобилкой;
Фичи: Кроссплатформенное приложение с интерфейсом чата, вынос общих типов, хуков API и бизнес-логики в локальный npm-пакет;
Тех стек: React Native (Expo), Turborepo / npm workspaces;
Практики тех. совершенства: Cross-platform Development, Code Sharing, Monorepo Architecture.
Этап 17. Админка, RBAC, Cookies и API Gateway
Ожидаемый результат: Единая точка входа для всего трафика, безопасное управление сессиями, разграничение прав доступа;
Фичи: Переход от JWT в localStorage к защищенным HTTP-only Cookies, внутренняя панель администратора; роли
Admin/User,шлюз, маршрутизирующий запросы к нужным микросервисам;Тех стек: API Gateway (Kong / Nginx), React-admin, HTTP-only Secure Cookies;
Практики тех. совершенства: Role-Based Access Control (RBAC), API Gateway Pattern, Secure Session Management.
Этап 18. Наблюдаемость, окружения и нагрузочное тестирование
Ожидаемый результат: Полный контроль за здоровьем системы, проверка пределов отказоустойчивости, строгая изоляция тестовых баз;
Фичи: Дашборды загрузки CPU/RAM, Telegram-алерты об ошибках, генерация 10000 одновременных запросов для проверки падения, разделение на
.env.dev,.env.stageи тд, добавлениеdocker-compose.dev.ymlи тд;Тех стек: Prometheus, Grafana, Locust (нагрузочное тестирование).
Практики тех. совершенства: Observability, Alerting, Load / Stress Testing, Environment Management.
Этап 19. Децентрализация: Отдельные репозитории и Managed БД
Ожидаемый результат: Инфраструктура готова к распределенной разработке несколькими командами, отказ от самописного управления базами данных;
Фичи: Распил монорепозитория (каждый микросервис и клиент в своем репо); публикация Shared-пакета в приватный реестр; переезд PostgreSQL и Redis из локального Docker-контейнера в управляемые облачные сервисы (DBaaS);
Тех стек: npm private registry, Managed PostgreSQL;
Практики тех. совершенства: Multi-repo Strategy, Database as a Service (DBaaS), Package Management.
Этап 20. Infrastructure as Code (IaC), Reverse Proxy и Домен
Ожидаемый результат: Инфраструктура описана кодом; продукт доступен по красивому HTTPS-домену;
Фичи: Поднятие серверов и базы данных скриптами, настройка финального Reverse Proxy для раздачи SSL-сертификатов, привязка доменного имени;
Тех стек: Terraform, Traefik (или Nginx), Let's Encrypt (SSL), Cloudflare (DNS);
Практики тех. совершенства: Infrastructure as Code (IaC), HTTPS/SSL Configuration, Reverse Proxying.

Дальше пробуй добавлять фичи и наблюдать не слолось ли чего. Ну а если ты хочешь стань темным лордом, тут я тебе не подскажу, мы все разбираемся как с этим ИИ работать.
Главное не останавливайся, уверен, главное чтобы вайбкодинг не перерос во что-то вроде этого как у меня.

