7 месяцев вайбкодинга: как в одиночку делать то, что раньше требовало команду

от автора

Предыстория

Я обычный python-backend разработчик. В основном писал и поддерживал web-часть проектов. Около года назад в свободное время начал разработку собственных пет-проектов, но полноценно вайбкодить начал 7 месяцев назад. И в этой статье поделюсь тем, что за это время понял.

Нейросети использовал и раньше, но точечно. Сам собирал контекст, формулировал задачу, копировал ответ и вставлял его в редактор.
Это ускоряло работу, но концептуально не сильно менял весь процесс разработки, всё равно большую часть проблем приходилось отлаживать и чинить вручную. Продолжалось так до тех пор, пока не открыл для себя Cursor.

После открытия инструментов подобных «Cursor», скорость и качество разработки значительно увеличилось.
Более 7 проектов (включая работу для клиента под NDA) и суммарно более 3 тысяч активных пользователей.

Так же заранее хочу предупредить, что ИИ это не панацея, и в любом случае при разработке проекта требуется понимание основ программирования и составления архитектуры продукта. Входной порог снизился, но всё равное требуются знания для создания действительно качественного продукта.


Три уровня вайбкодинга

Уровень 1. Чат с моделью
Промпт в чат → код → вставка в редактор → проверка. Цикл повторяется, пока не получится удовлетворительный результат.

Для разовой задачи это нормально, но если вести так разработку каждый день, это быстро становится невыносимым: контекст теряется и «плывёт» между сообщениями, а каждая новая сессия начинается с пересказа архитектуры проекта заново.

Уровень 2. AI в редакторе
Асистент видит открытые файлы и часть проекта, дописывает код блоками.
Ты всё ещё пишешь код руками, и принимаешь или отклоняешь решения от ИИ. Это быстро и удобно, но не «агент ведёт разработку»

Уровень 3. Агентная разработка
Здесь ты Архитектор, а ИИ строитель. Он сам читает структуру проекта, создает и правит файлы, запускает команды, пишет и гоняет тесты, чинит все ошибки в цикле. Ты ставишь цель и корректируешь курс.

Важно понимать: даже на третьем уровне человек не отключается от процесса. Он задаёт требования, принимает архитектурные решения и контролирует результат. Разница в том, что ты перестаёшь писать код руками и начинаешь руководить разработкой.
Дальше в статье будет идти речь только про третий уровень вайбкодинга.

до и после открытия ИИ агентной разработки

до и после открытия ИИ агентной разработки

Какие инструменты я использовал

Рынок уже плотный, оболочек много, но все они решают одну задачу.
Ниже то, чем пользовался лично сам. Конечный выбор всегда остаётся за вами, что и как использовать

cursor | оценка: 8/10

cursor | оценка: 8/10
Обзор Cursor

Возможности:
Редактор «из коробки», чаты рядом с кодом.
— Можно переключаться между режимом ИИ помощника в режим агентной разработки.
— Понятное управление сессиями, частые обновления с новыми фичами.
— Мультизадачность без ухода в отдельный терминал, всё происходит в рамках одной сессии.
— Низкий порог входа, максимально простой интерфейс

Лимиты и подписка:
На обычной pro-подписке даётся примерно 20$ баланса на API их внутренних моделей (Composer) и ещё 20$ на сторонние модели (ChatGPT, Claude и другие). Удобно и быстро, если денег на подписку хватает с запасом: лимиты распределяются сразу на месяц, а реализация одной сложной задачи через сторонние модели съедала у меня 20-30% всего лимита. Внутренние модели расходуются заметно экономнее и позволяют грамотно вести разработку весь месяц, балансируя между качеством и скоростью.

Опыт
Удобно и быстро, в основном подходит для рутинных задач и мелких фиксов, нежели активной ежедневной разработки. Очень легко сжечь месячные лимиты за пару дней. Cursor хорошо учит формулировать задачи и промпты , ведь цена ошибки, это твои деньги.

Оценка
8/10
Удобный интерфейс и скорость работы, но ценовая политика в отношении лимитов заметно уступает конкурентам.

claude | оценка: 9/10

claude | оценка: 9/10
Обзор Claude | Claude Code

Claude | Claude Code

  • Claude (web/app) визуально ближе к привычному формату «чат + артефакты / агент в проекте» — кому-то удобнее работать мышкой.

  • Claude Code — это CLI, вся работа с агентом идёт в терминале, рядом с git, тестами и деплоем. Где вести разработку — вопрос вкуса и привычки к терминалу: модели и результат одинаковые, отличается только оболочка.

Где вести разработку ворпрос вкуса и привычки к терминалу, ведь модели и результаты одинаковые, отличается только оболочка.

Возможности
— Одни из лучших моделей на рынке для кода
— Полный цикл разработки проекта: при грамотном запросе агент делает проект «под ключ»
— Лучшая на рынке реализация подагентов с сохранением контекста и ускорением работы
— Гибкая кастомизация под конкретный стек и процессы разработки

Лимиты и подписка
Всё зависит от плана (Pro, Max x5/x20).
Система распределения лимитов отличается от Cursor: есть лимит на сессию (5 часов с момента первого сообщения) и лимит на неделю, который сбрасывается раз в 7 дней.

На практике обычная Pro-подписка мало годится для полноценной разработки проектов полного цикла — для серьёзной работы нужен план Max. За время работы сессионные лимиты обычно не успевают исчерпаться, что позволяет сутками вести разработку на пределе возможностей, используя топовые модели в огромном количестве и сжигая токены на сотни долларов, при этом сама подписка стоит дешевле одной полностью исчерпанной сессии. Лучшее соотношение цена/количество из всего, что я пробовал.

Опыт:
Сначала я был ярым сторонником Cursor, но потом полностью перешёл на Claude Code. Гибкая настройка, запуск субагентов, работа в «ultracode» режиме, когда агент запускает до 50 подагентов для параллельных задач — лимиты сжигаются очень быстро, но результат того стоит. Для ежедневной разработки большого объёма функционала — лучший вариант из всех, что я тестировал.

Оценка
9/10
Всё супер, проблема только из-за региональных ограничений, т.к. аккаунт могут заблокировать из-за геолокации или санкционных ограничений, привязанных к региону пользователя.

codex | оценка: 8/10

codex | оценка: 8/10
Обзор Codex

Очень похож на Claude Code по использованию и опыту работы

Возможности
— агентная разработка полного цикла
— работает даже на бесплатной подписке
— щадящие лимиты
— одни из лучших в мире моделей
— хорошо подходит для роли «второго мнения» при мультиагентной разработке

Лимиты и подписка
Система распределения лимитов схожа с Claude. Тоже есть отдельные лимиты по сессии и по неделе. У Codex CLI лимиты обычно выше в сравнении с Claude, при этом лимиты для самого Codex и для обычной версии ChatGPT не связаны друг с другом. При использовании определённых инструментов можно подключить браузерную версию к Codex и фактически удвоить доступный лимит.

Опыт
Хорошая модель, явных минусов не нашёл. Качество моделей и выполнение задач на высоком уровне, хотя сам пользовался не так активно. Были сложности с созданием субагентов и меньшее контекстное окно по сравнению с Claude Code. Хорошо подходит именно как второй инструмент в связке с другими моделями.

Оценка
8/10
Сильные модели и щадящие лимиты, но реализация некоторых фич (субагенты, контекст) пока уступает конкурентам.

antigravity | оценка: 6/10

antigravity | оценка: 6/10
Обзор Antigravity

Отдельная агентская среда того же класса, что Cursor, только от Google — фактически форк редактора с двумя режимами работы: Editor view (обычный IDE-интерфейс с агентом сбоку) и Manager view (панель для управления несколькими параллельно работающими агентами).

Возможности
— Поддержка нескольких моделей одновременно, включая Gemini, Claude Sonnet/Opus и открытые модели
— Встроенный браузер, которым агент может пользоваться сам для тестирования результата
— Система «Artifacts»: вместо сырых логов агент показывает план задач, скриншоты и записи действий в браузере — удобно для контроля процесса
— Параллельный запуск нескольких агентов на разные задачи

Лимиты и подписка
Antigravity работает через подписку Google AI и делит пользователей на три уровня: Free, Pro и Ultra. На бесплатном тарифе квота обновляется раз в неделю, это единственный вариант сброса лимита для тех, кто не платит. На платных Pro и Ultra квота обновляется каждые 5 часов, но у Ultra пятичасовая квота, и недельный потолок заметно выше, чем у Pro.

Опыт
Пользовался какое-то время назад, впечатление смешанное. Изначально всё было отлично: доступ к множеству моделей, включая Opus и Sonnet, но после мартовского пересмотра условий лимиты стали заканчиваться быстро и восстанавливаться заметно дольше, чем раньше. Через некоторое время пользоваться стало практически невозможно: постоянно писало, что модель недоступна, «попробуйте позже». И так на протяжении нескольких недель. В какой-то момент меня вообще выкинуло из аккаунта и перестало пускать обратно в Antigravity. Предположительно, из-за региональных ограничений.

Оценка
6/10
Подписку Google на 12-18 месяцев в своё время можно было получить очень дёшево, и за такую цену грех жаловаться на лимиты. Но резкое изменение правил квот в марте, постоянные перегрузки серверов и блокировки доступа сделали продукт неудобным для регулярной работы — в итоге я от него отказался.

grok build | оценка: 7/10

grok build | оценка: 7/10
Обзор Grok build

аналог claude code, coodex от xAI, компании Илона Маска.

Лимиты и подписка
Система здесь принципиально другая, чем у Codex, Claude Code или Cursor: тебе сразу выдаётся определённый объём токенов на всю неделю вперёд, и дальше ты сам решаешь, как его расходовать — хоть равномерно, хоть с упором на пару интенсивных дней. Никаких пятичасовых сессионных окон и промежуточных откатов, как у конкурентов, тут нет. На обычной базовой подписке этого недельного лимита реально хватает на всю неделю при разумном использовании.

Опыт
Пользовался не так интенсивно, как Cursor или Claude Code, поэтому по стабильности работы у меня пока меньше данных для полноценных выводов. По качеству кода работает примерно на уровне Codex. Хорошо справляется с задачами, ощутимой разницы в качестве работы не заметил. Грамотно использует запросы и расходует токены. А сам подход к лимитам даёт ощущение контроля над недельным бюджетом токенов, а не борьбы с таймером.

Оценка:
7/10
Качество кода на уровне Codex и удобная система лимитов — плюсы, но сырой интерфейс, меньшее контекстное окно и не до конца решённые проблемы с удобством работы пока не дают поставить оценку выше.


Мой стек и настройки агентов

Здесь краткая выжимка того как я веду разработку с помощью ИИ агентов.
Основной стек: Claude Code + Cursor или Grok в зависимости от задачи когда нужен второй взгляд или кончилась квота.

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

Два слоя инструкций:

1. Глобальные (на все проекты)
User-level правила. В основном задаются общие черты того, что ты хочешь от агента при каждом запуске в любом проекте и в любом ответе. Настраивается в корне вашего инструмента. К примеру у claude code это «~\.claude\CLAUDE.md»

2. Проектные (канон репозитория)
В каждом проекте проекте что разрабатывал инструкции распределялись так: AGENTS.md (как устроен этот репо, главный файл), тонкий CLAUDE.md («сначала прочитай AGENTS.md»), аналогичное правило для Cursor (.cursor/rules/…). Сделано для того, чтобы любой агент попадал в один источник правды.

Мои настройки:

Личные инструкции
# AGENTS.md> Инструкции для AI coding agents. Человеческий обзор - в [README.md](README.md).> Перегенерировано скиллом `generate-readme`. Источник правды - код репозитория.## Профиль проекта- **Тип:** web-app (Astro SSG, персональный портфолио-сайт)- **Аудитория:** internal (личный сайт под брендом DotCore)- **Runtime:** Node.js >=20 (`.nvmrc` = 20)- **Монорепо:** нет## Быстрый старт```bashnvm use            # Node 20 LTSnpm installcp .env.example .env   # опционально: без .env работают дефолты Zodnpm run dev        # http://localhost:4321```## Сборка и проверки| Действие  | Команда                                                                     || --------- | --------------------------------------------------------------------------- || Установка | `npm install` (CI: `npm ci`)                                                || Dev       | `npm run dev` (`:4321`)                                                     || Тесты     | нет тестов в репо                                                           || Lint      | `npm run lint` (ESLint, fail на warning)                                    || Typecheck | `npm run type-check` (`astro check` + `tsc --noEmit`)                       || Format    | `npm run format` / `npm run format:check` (Prettier)                        || OG-превью | `npm run og:render` (PNG из SVG через `@resvg/resvg-js`)                    || SEO-чек   | `npm run seo:check` (og-манифест + смок по `dist/`, требует свежий `build`) || Build     | `npm run build` → `dist/`                                                   || Preview   | `npm run preview`                                                           |Команды - только из `package.json`. Тестового раннера в проекте нет; quality-gate - `lint` + `type-check`, а CI дополнительно гоняет `build` + `seo:check` (см. `.github/workflows/deploy.yml`).## Структура репозитория```src/├── pages/        # роутинг: index, /en, /projects/[slug], 404, robots.txt.ts, sitemap.xml.ts, llms.txt.ts, llms-full.txt.ts├── layouts/      # BaseLayout.astro├── components/   # .astro: hero/projects/about + case/*, diagram/*, illustration/*├── content/│   ├── projects/ # 7 JSON-описаний проектов (6 product + 1 infra)│   └── i18n/     # ru.json / en.json├── styles/       # tokens.css, global.css, glass.css└── lib/          # config (Zod), i18n, projects, contactspublic/           # favicon, OG (SVG-исходники + PNG), manifest, _headers, public/projects/<slug>/scripts/          # parse-lh.cjs (разбор Lighthouse JSON), render-og.mjs (SVG -> PNG)deploy/           # docker-compose.yml + Caddyfile.container (co-hosted за Caddy DotSound), setup.sh/update.sh/ci-setup.sh.github/workflows/deploy.yml   # gate (lint/type-check/build/seo:check) + SSH-триггер deploy/update.shastro.config.mjs```## Соглашения- **Язык документации:** русский (README и этот файл).- **Бренд в UI:** только `.core` (EN) / `.ядро` (RU). Строка «DotCore» допустима лишь в коде, репо и метаданных, не в видимом UI.- **Стиль кода:** TypeScript strict; ESLint 9 (`eslint-plugin-astro`, `jsx-a11y`) + Prettier (`prettier-plugin-astro`). Двойные кавычки, форматирование - Prettier, не вручную.- **Стили:** чистый CSS + custom properties в `src/styles/tokens.css`. Без Tailwind. Монохром.- **Static-first:** `integrations: []` - не добавляй UI-фреймворк в рантайм без запроса. Интерактив - точечный vanilla-JS, обязательно под `prefers-reduced-motion`.- **Контент:** новый проект - JSON в `src/content/projects/<slug>.json` (тип `Project` в `src/lib/projects.ts`) + обложка `public/projects/<slug>/`; порядок витрины - `FEATURED_ORDER`.- **OG-превью:** источник правды - SVG (`public/og-image.svg`, `public/projects/<slug>/og.svg`); в мета-теги и `ogImage` идут PNG. После правки любого og.svg или иконок запусти `npm run og:render` и закоммить перегенерированные PNG.- **SEO-слой:** canonical/hreflang и JSON-LD Person+WebSite собираются в `BaseLayout.astro`; страничные схемы (ProfilePage, SoftwareSourceCode, BreadcrumbList) передаются пропом `structuredData`. `llms.txt` / `llms-full.txt` генерируются из данных проектов; новые поля контента появляются там автоматически, эндпоинты руками не синхронизировать.- **i18n:** строки - в `src/content/i18n/{ru,en}.json`; добавляешь в один - добавь в оба.- **Копирайт:** в тексте (`description`/`detail`/`tagline`/`caseDescription`/`overview`/`label` и т.п. в `src/content/projects/*.json`, `src/content/i18n/*.json`) не используй `" - "` (пробел-дефис-пробел) как паузу вместо тире - перестраивай на запятую, двоеточие, точку с запятой, союз или отдельное предложение. Дефис без пробелов в составных словах (SHA-256, non-root, lesson-forge) - не трогать, под правило не попадает.## Переменные окруженияИмена - из Zod-схемы `src/lib/config.ts`. Значения не читать, `.env` не открывать.| Переменная                                                              | Назначение                                                                                                                                         || ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- || `PUBLIC_DOMAIN`                                                         | канонический домен (site URL, OG)                                                                                                                  || `PUBLIC_GITHUB_USER` / `PUBLIC_GITHUB_REPO`                             | сборка ссылок на репозитории проектов                                                                                                              || `PUBLIC_AUTHOR_NAME_RU` / `PUBLIC_AUTHOR_NAME_EN`                       | имя автора по локали                                                                                                                               || `PUBLIC_AUTHOR_PHOTO` / `PUBLIC_AUTHOR_BIO_RU` / `PUBLIC_AUTHOR_BIO_EN` | фото и био (опц.)                                                                                                                                  || `PUBLIC_SOCIAL_GITHUB/TELEGRAM/LINKEDIN/X/VK`                           | соцссылки (пустые не рендерятся)                                                                                                                   || `AUTHOR_EMAIL`                                                          | без префикса; в bundle уходит base64 от перевёрнутой строки (`data-e`) - обфускация от скраперов, тривиально восстановима, адрес считать публичным |`PUBLIC_*` попадают в клиентский bundle (видны посетителю). На CI значения материализуются из GitHub Actions secrets. Не коммить секреты и `.env`.## Что делать агенту- Перед правками прочитай затронутые файлы и соседний код.- После изменений запусти `npm run lint` и `npm run type-check`. Если правил SEO-слой, мета-теги, OG-изображения или эндпоинты (robots/sitemap/llms), дополнительно `npm run build && npm run seo:check`.- **README-sync:** при глобальных изменениях (новые/удалённые команды или скрипты, новый/убранный модуль или проект-кейс, смена зависимостей/стека, архитектуры или runtime) обнови `README.md` и `AGENTS.md` через скилл `generate-readme`, включая пересчёт LoC. Мелкие правки (опечатки, внутренний рефактор, багфикс без смены API/команд) README не трогают.- Не латай разметку README вручную - перегенерируй скиллом.- Минимальный diff: не рефактори несвязанный код.- Числа, пути, версии, env-имена - только из репозитория.## Чего не делать- Не выдумывать команды, зависимости, env, маршруты.- Не писать «DotCore» в видимом UI - только `.core` / `.ядро`.- Не добавлять `<details>`, centered hero, emoji в README.- Не менять `docs/cover.svg` без регенерации обложки скиллом.- Не менять `LICENSE` и текст лицензии без явного запроса пользователя.- Не читать/коммитить `.env`, токены, секреты; приватное фото - в gitignored `public/people/`.- Не удалять маркеры `<!-- loc:start -->` / `<!-- loc:end -->` в README.- Не добавлять рантайм UI-фреймворк (React и т.п.) без явного запроса - проект static-first.## Документация- [README.md](README.md) - запуск, команды, стек, конфигурация, деплой, архитектура- `TODO.md` - дорожная карта витрины и технических задач## DotCoreПроект следует стандарту DotCore: плоский технический README, SVG-обложка, LoC-бейдж, монохром. При запросе «обнови README» используй скилл `generate-readme`.
Проектные инструкции (пример)
# AGENTS.md> Инструкции для AI coding agents. Человеческий обзор - в [README.md](README.md).> Перегенерировано скиллом `generate-readme`. Источник правды - код репозитория.## Профиль проекта- **Тип:** web-app (Astro SSG, персональный портфолио-сайт)- **Аудитория:** internal (личный сайт под брендом DotCore)- **Runtime:** Node.js >=20 (`.nvmrc` = 20)- **Монорепо:** нет## Быстрый старт```bashnvm use            # Node 20 LTSnpm installcp .env.example .env   # опционально: без .env работают дефолты Zodnpm run dev        # http://localhost:4321```## Сборка и проверки| Действие  | Команда                                                                     || --------- | --------------------------------------------------------------------------- || Установка | `npm install` (CI: `npm ci`)                                                || Dev       | `npm run dev` (`:4321`)                                                     || Тесты     | нет тестов в репо                                                           || Lint      | `npm run lint` (ESLint, fail на warning)                                    || Typecheck | `npm run type-check` (`astro check` + `tsc --noEmit`)                       || Format    | `npm run format` / `npm run format:check` (Prettier)                        || OG-превью | `npm run og:render` (PNG из SVG через `@resvg/resvg-js`)                    || SEO-чек   | `npm run seo:check` (og-манифест + смок по `dist/`, требует свежий `build`) || Build     | `npm run build` → `dist/`                                                   || Preview   | `npm run preview`                                                           |Команды - только из `package.json`. Тестового раннера в проекте нет; quality-gate - `lint` + `type-check`, а CI дополнительно гоняет `build` + `seo:check` (см. `.github/workflows/deploy.yml`).## Структура репозитория```src/├── pages/        # роутинг: index, /en, /projects/[slug], 404, robots.txt.ts, sitemap.xml.ts, llms.txt.ts, llms-full.txt.ts├── layouts/      # BaseLayout.astro├── components/   # .astro: hero/projects/about + case/*, diagram/*, illustration/*├── content/│   ├── projects/ # 7 JSON-описаний проектов (6 product + 1 infra)│   └── i18n/     # ru.json / en.json├── styles/       # tokens.css, global.css, glass.css└── lib/          # config (Zod), i18n, projects, contactspublic/           # favicon, OG (SVG-исходники + PNG), manifest, _headers, public/projects/<slug>/scripts/          # parse-lh.cjs (разбор Lighthouse JSON), render-og.mjs (SVG -> PNG)deploy/           # docker-compose.yml + Caddyfile.container (co-hosted за Caddy DotSound), setup.sh/update.sh/ci-setup.sh.github/workflows/deploy.yml   # gate (lint/type-check/build/seo:check) + SSH-триггер deploy/update.shastro.config.mjs```## Соглашения- **Язык документации:** русский (README и этот файл).- **Бренд в UI:** только `.core` (EN) / `.ядро` (RU). Строка «DotCore» допустима лишь в коде, репо и метаданных, не в видимом UI.- **Стиль кода:** TypeScript strict; ESLint 9 (`eslint-plugin-astro`, `jsx-a11y`) + Prettier (`prettier-plugin-astro`). Двойные кавычки, форматирование - Prettier, не вручную.- **Стили:** чистый CSS + custom properties в `src/styles/tokens.css`. Без Tailwind. Монохром.- **Static-first:** `integrations: []` - не добавляй UI-фреймворк в рантайм без запроса. Интерактив - точечный vanilla-JS, обязательно под `prefers-reduced-motion`.- **Контент:** новый проект - JSON в `src/content/projects/<slug>.json` (тип `Project` в `src/lib/projects.ts`) + обложка `public/projects/<slug>/`; порядок витрины - `FEATURED_ORDER`.- **OG-превью:** источник правды - SVG (`public/og-image.svg`, `public/projects/<slug>/og.svg`); в мета-теги и `ogImage` идут PNG. После правки любого og.svg или иконок запусти `npm run og:render` и закоммить перегенерированные PNG.- **SEO-слой:** canonical/hreflang и JSON-LD Person+WebSite собираются в `BaseLayout.astro`; страничные схемы (ProfilePage, SoftwareSourceCode, BreadcrumbList) передаются пропом `structuredData`. `llms.txt` / `llms-full.txt` генерируются из данных проектов; новые поля контента появляются там автоматически, эндпоинты руками не синхронизировать.- **i18n:** строки - в `src/content/i18n/{ru,en}.json`; добавляешь в один - добавь в оба.- **Копирайт:** в тексте (`description`/`detail`/`tagline`/`caseDescription`/`overview`/`label` и т.п. в `src/content/projects/*.json`, `src/content/i18n/*.json`) не используй `" - "` (пробел-дефис-пробел) как паузу вместо тире - перестраивай на запятую, двоеточие, точку с запятой, союз или отдельное предложение. Дефис без пробелов в составных словах (SHA-256, non-root, lesson-forge) - не трогать, под правило не попадает.## Переменные окруженияИмена - из Zod-схемы `src/lib/config.ts`. Значения не читать, `.env` не открывать.| Переменная                                                              | Назначение                                                                                                                                         || ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- || `PUBLIC_DOMAIN`                                                         | канонический домен (site URL, OG)                                                                                                                  || `PUBLIC_GITHUB_USER` / `PUBLIC_GITHUB_REPO`                             | сборка ссылок на репозитории проектов                                                                                                              || `PUBLIC_AUTHOR_NAME_RU` / `PUBLIC_AUTHOR_NAME_EN`                       | имя автора по локали                                                                                                                               || `PUBLIC_AUTHOR_PHOTO` / `PUBLIC_AUTHOR_BIO_RU` / `PUBLIC_AUTHOR_BIO_EN` | фото и био (опц.)                                                                                                                                  || `PUBLIC_SOCIAL_GITHUB/TELEGRAM/LINKEDIN/X/VK`                           | соцссылки (пустые не рендерятся)                                                                                                                   || `AUTHOR_EMAIL`                                                          | без префикса; в bundle уходит base64 от перевёрнутой строки (`data-e`) - обфускация от скраперов, тривиально восстановима, адрес считать публичным |`PUBLIC_*` попадают в клиентский bundle (видны посетителю). На CI значения материализуются из GitHub Actions secrets. Не коммить секреты и `.env`.## Что делать агенту- Перед правками прочитай затронутые файлы и соседний код.- После изменений запусти `npm run lint` и `npm run type-check`. Если правил SEO-слой, мета-теги, OG-изображения или эндпоинты (robots/sitemap/llms), дополнительно `npm run build && npm run seo:check`.- **README-sync:** при глобальных изменениях (новые/удалённые команды или скрипты, новый/убранный модуль или проект-кейс, смена зависимостей/стека, архитектуры или runtime) обнови `README.md` и `AGENTS.md` через скилл `generate-readme`, включая пересчёт LoC. Мелкие правки (опечатки, внутренний рефактор, багфикс без смены API/команд) README не трогают.- Не латай разметку README вручную - перегенерируй скиллом.- Минимальный diff: не рефактори несвязанный код.- Числа, пути, версии, env-имена - только из репозитория.## Чего не делать- Не выдумывать команды, зависимости, env, маршруты.- Не писать «DotCore» в видимом UI - только `.core` / `.ядро`.- Не добавлять `<details>`, centered hero, emoji в README.- Не менять `docs/cover.svg` без регенерации обложки скиллом.- Не менять `LICENSE` и текст лицензии без явного запроса пользователя.- Не читать/коммитить `.env`, токены, секреты; приватное фото - в gitignored `public/people/`.- Не удалять маркеры `<!-- loc:start -->` / `<!-- loc:end -->` в README.- Не добавлять рантайм UI-фреймворк (React и т.п.) без явного запроса - проект static-first.## Документация- [README.md](README.md) - запуск, команды, стек, конфигурация, деплой, архитектура- `TODO.md` - дорожная карта витрины и технических задач## DotCoreПроект следует стандарту DotCore: плоский технический README, SVG-обложка, LoC-бейдж, монохром. При запросе «обнови README» используй скилл `generate-readme`.

Лучше всего просите что бы именно агент генерировал правила для проекта, просто пишете ему свои предпочтения и он сам в правильном формате всё составит. Это более рациональный и разумный подход, чем писать всё самому

Основная цель всех этих инструкций следующая:
один раз описал систему, сто раз не повторяешь в чате. Файлы по возможности синхронизируются с реальным репо, а не живут как устаревший wiki.

Основные правила разработки

Аналитика продукта

Для грамотной разработки продукта с помощью вайбкодинга следует учитывать следующие моменты:

  1. Определение проблемы/боли, которую решает ваш продукт.
    Разработка очередного калькулятора или сайта-заметок является пустой тратой времени. Это не востребованно, есть куча других аналогов, которые будут лучше и качественнее реализованы.

  2. Целевая аудитория — кому это нужно. Определение ЦА важный этап, т.к. влияет на основной фундамент самой идеологии продукта который вы разрабатываете. Простенький бот-помощник для семьи и друзей, или же высоконагруженный онлайн-сервис для сотен пользователей. Это нужно учитывать при проектировании

  3. Анализ конкурентов и аналогов. Вам нужно изучить нет ли уже готового решения вашей проблемы? Поможет определить насколько ваша идея пользуется спросом, найти сильные и слабые стороны, которые можно подметить для разработки собственного продукта. И стоит ли вообще разрабатывать его после изучения конкурентов?

  4. Реверс-инжиниринг. Нужно брать с готового примера и адаптировать его под себя, под свои нужды. Зачем заново изобретать велосипед и нагружать лишний раз мозг, если 90% ваших идей уде реализованы в той или иной мере? Скорее всего они даже лежать в открытом доступе на github с готовым кодом и реализацией. Так почему бы не взять его и адаптировать под себя? Или хотя бы не тратить время на продумывание сложных моментов, ведь их решение уже у вас есть на руках.

  5. Итеративность. При разработке вашего продукта, ИИ-агент должен работать безостановочно, постоянно прогонять итерации.
    Запустил → получил фидбек → доработал. Пока агент работает над исправлением старого функционала ты уже пишешь ему промпт для нового.

Один чат — одна задача

Не веди один чат неделю активной разработки. Длинная сессия копит отвергнутые гипотезы, куски логов, бесполезные данные, которые перегружают контекст. Модель опирается на мусор и начинает галлюцинировать и выдавать не те ответы что ты ожидал, при этом пожирая огромное количество токенов для поддержания контекста. Качество падает, расход растёт

Практика:

Сценарий

Как

Багфикс «упал деплой»

Отдельный чат: симптом → фикс → проверка → конец

Новая фича А

Отдельный чат на A (или на A + тесно связанные подпункты)

Рефакторинг модуля X

Отдельный чат, без «заодно UI»

В одной сессии можно закрыть несколько задач, если они части одной цели.

Когда один чат на несколько фич оправдан:

  • фичи делят одни файлы и контракты

  • решение по B зависит от того, как легла A

  • scope пакета и критерий «готово» зафиксированы заранее

  • появился какой-то баг и есть открытый чат с «готовым» контекстом для этого бага.

Когда точно нужен новый чат:

  • сменилась цель (с багфикса на внедрение нового функционала)

  • агент зациклился или поплыл

  • контекст раздут логами и тупиками

  • проще пересказать текущее состояние, чем чистить хвост

AGENTS.md и скиллы как раз для этого: новый чат ≠ объяснить проект с нуля. Подтягиваются правила и код; пропадает только шум старой переписки.

[Иллюстрация 6: длинный чат vs пачка коротких — токены и качество]

Токены и лимиты

У агентских инструментов почти всегда два потолка:

  1. Контекстное окно

  2. Квоты тарифа

Что жрёт токены:

  • длинная история с несколькими разворотами решения

  • повторное чтение огромных файлов

  • простыни логов в родительский чат

  • «ещё раз объясни весь проект» вместо правил в репо

  • бесконечный fix → test → fix без сужения гипотезы

  • одна сессия на несвязанные задачи

Что экономит:

  • новый чат на новую цель

  • короткая постановка + критерий done + указание модулей

  • AGENTS.md и скиллы вместо копипаста инструкций

  • quality-gate локально, чтобы агент не крутился на глупых ошибках;

  • не скармливать секреты и огромные файлы

  • резать scope: три чата по 20 минут лучше одного на 4 часа с тупиками

  • сильная модель на reasoning; механика на быстрой/дешёвой

  • подагенты на ресёрч и рутину, чтобы не раздувать основной диалог

Недельные и суточные лимиты на практике:

  • «дорогие» дни (архитектура, большой рефакторинг, миграции), лучше проводить когда квота свежая

  • рутину, на более дешёвый контур или другую оболочку;

  • не жечь лимит на «поиграться с промптом» в чате на 40 сообщений мусора;

  • упёрся? Cмени инструмент (Claude ↔ Cursor ↔ Codex ↔ Grok Build), не стой до понедельника

  • один длинный agent-run часто стоит как десяток коротких точечных

[Иллюстрация 7: Context window / Weekly quota — что тратит / что экономит]

Подагенты: польза и паттерны

Подагент, это не «ещё один чат ради галочки». Это способ разделить работу и контекст, чтобы не тащить весь шум в одну голову.

Для нетривиальных задач в основном используется агент — оркестратор, он делегирует сложную работу более умной модели, а простую и монотонную более лёгкой модели. Это ускоряет работу и уменьшает потребление токенов

Тип

Что отдавать

Зачем

Explore

Где auth?, какие эндпоинты трогают заказы?

Обход репозитория, сжатый отчёт, вместо 50 сырых файлов

Deep / reasoner

Архитектура, спорный API, хитрый баг

Дорогое мышление точечно

Fast / worker

тесты, однотипные правки

Меньшее потребление токенов, тот же уровень выполнения задачи

Что даёт на практике:

  1. Экономия контекста родителя. Ресёрч не забивает основной диалог

  2. Скорость. Независимые куски можно гнать параллельно

  3. Разделение моделей. Не все задачи нужно решать «самой умной» модели.

  4. Меньше зацикливания. Короткая и чёткая задача для подагента часто дешевле, чем долго гонять один и тот же тред по кругу.

  5. Проще review. Короткий отчёт «нашёл X, риск Y, правки в Z» читается быстрее tool-простыни.

Когда подагенты не нужны:
линейная цепочка A→B, правка 1–2 файлов. Ты и так знаешь место бага, параллель только устроит конфликт в одних строках.

[Иллюстрация 8: Orchestrator + explore / deep / fast; пакет связанных фич]

Модели под задачу

Задача

Куда

Архитектура, спорное API, сложный баг

более сильная / high-effort модель

Массовые правки, тесты

быстрая / дешёвая + fast-worker

Зациклился основной агент

другой инструмент (Codex / Grok / Cursor) или новый чат

Заключение

Сопротивляться агентам в 2026-м, это как ходить в библиотеку и гордиться тем, что вместо простого поиска в интернете ты ищешь ответы вручную. Бесспорно это круто, но медленно и неэффективно.

Роли сжались. Теперь один человек с агентом заменяет целую команду разработки: QA, Backend, Frontend, Дизайн и прочих…

То что раньше занимало месяцы упорной работы целых команд, теперь может делать один человек в считанные дни. Сложность никуда не делась. Изменилось лишь то, сколько сил съедает склейка и работа с шумным контекстом.

Код перестал быть главным активом. Главный ресурс сейчас, это внимание и доверие.

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

Ссылки

GitHub: https://github.com/
Мои проекты: https://info.dotcore.lol/
Telegram-канал: https://t.me/nesw_ai — (новости по вайбкодингу)

ссылка на оригинал статьи https://habr.com/ru/articles/1065582/