Как планировать проект перед кодом
Вайб-кодеры часто начинают кодить сразу — и через час ИИ уже не понимает что происходит. Правильная подготовка занимает 10–20 минут и экономит часы путаницы.
Почему нельзя просто сказать «сделай мне проект»
ИИ не знает:
- Какую проблему решаешь
- Какой стек использовать
- Что уже есть
- Какие ограничения (платный API / бесплатный тариф)
Без этого — он угадывает. Угадывает неправильно. Ты правишь. Снова неправильно. Повторяешь 10 раз.
Решение: потратить 10 минут на план — и ИИ будет работать точно с первого раза.
Три вещи перед стартом
1. Сформулируй задачу одним абзацем
Ответь на вопросы:
- Что делает проект? (одно предложение)
- Кто использует? (ты сам / один клиент / много пользователей)
- Какой главный результат? (уведомление в Telegram / таблица с данными / сайт с формой)
Пример плохой постановки:
«Сделай мне бота»
Пример хорошей:
«Telegram-бот для отслеживания задач. Я один пользователь. Бот принимает задачи командой /add, хранит в SQLite, показывает список командой /list, помечает выполненными через /done. Напоминания не нужны.»
2. Выбери стек заранее
Сообщи ИИ что использовать — иначе он выберет сам (и выберет то что знает, но не то что нужно тебе).
Для типичных задач:
- Telegram-бот → Python + aiogram 3 + SQLite (aiosqlite)
- Веб-сайт → VitePress (документация) / Next.js (приложение) / FastAPI + HTML
- Скрипт/автоматизация → Python + requests/httpx
- API-интеграция → Python с конкретной библиотекой или requests
Если не знаешь — спроси ИИ отдельным сообщением: «Какой стек выбрать для [задача]? Я уже умею Python, у меня VPS».
3. Создай CLAUDE.md
CLAUDE.md — файл в корне проекта. Это инструкция для ИИ специфичная к твоему проекту. Загружается автоматически при открытии папки в Claude Code.
Минимальный шаблон:
# Project Name
## Что это
Одно предложение что делает проект.
## Стек
- Python 3.11
- aiogram 3.x (Telegram-бот)
- SQLite + aiosqlite
- systemd для деплоя
## Структура
- bot.py — точка входа
- handlers/ — обработчики команд
- db.py — работа с базой данных
- .env — токены (не трогать, не коммитить)
## Команды
- `python bot.py` — запустить
- `systemctl status my-bot` — статус на сервереПосле создания скажи ИИ: «Прочитай CLAUDE.md и работай в соответствии с ним».
Структура папок с самого начала
Хаотичная структура = ИИ теряется. Договорись о структуре в начале.
Telegram-бот
my-bot/
├── CLAUDE.md
├── .env # токены (в .gitignore)
├── .gitignore
├── requirements.txt
├── bot.py # точка входа
├── config.py # настройки из .env
├── handlers/
│ ├── __init__.py
│ ├── start.py # /start
│ └── tasks.py # /add, /list, /done
├── db.py # база данных
└── data/
└── .gitkeep # папка для SQLite-файлаPython-скрипт / автоматизация
my-script/
├── CLAUDE.md
├── .env
├── .gitignore
├── requirements.txt
├── main.py
├── data/ # входные/выходные данные
└── logs/ # логиВеб-приложение (FastAPI)
my-app/
├── CLAUDE.md
├── .env
├── .gitignore
├── requirements.txt
├── main.py # FastAPI app
├── models.py # схемы данных
├── database.py # подключение к БД
├── routers/ # группы эндпоинтов
├── templates/ # HTML (если есть)
└── static/ # CSS, JS, картинкиПопроси ИИ создать структуру:
Создай структуру папок для [тип проекта].
Стек: [стек].
Создай пустые файлы и папки, добавь минимальный CLAUDE.md.README: зачем и как
README.md — файл который видит любой кто откроет репозиторий (включая тебя через 3 месяца).
Минимум что должно быть:
- Что делает проект (1-2 предложения)
- Как запустить локально
- Как задеплоить на сервер
- Переменные окружения
Попроси ИИ написать после того как проект готов:
Напиши README.md для проекта.
Что делает: [описание]
Стек: [стек]
Как запустить: [команды из нашей работы]
Переменные .env: [список]Итеративный подход: MVP → улучшения
Не делай всё сразу. Три фазы:
Фаза 1 — MVP (работает):
- Только главная функция
- Без красоты и оптимизации
- Тестируешь сам
Фаза 2 — Продакшн (надёжно):
- Обработка ошибок
- Логирование
- Деплой на сервер
Фаза 3 — Улучшения (удобно):
- Дополнительные фичи
- Оптимизация
- Документация
Для каждой фазы — отдельный разговор с ИИ или ветка в git.
Чеклист перед стартом
- [ ] Одним абзацем описана задача
- [ ] Выбран стек
- [ ] Создан CLAUDE.md в корне проекта
- [ ] Создана базовая структура папок
- [ ]
.gitignoreс.env,__pycache__,*.pyc,.venv,node_modules - [ ] Репозиторий создан на GitHub (или хотя бы
git init)
После этого — начинаешь кодить. ИИ сразу понимает контекст и работает точнее.
Пример: полный старт нового бота за 15 минут
1. Создай папку my-task-bot и открой в Claude Code:
mkdir my-task-bot && cd my-task-bot && claude
2. Скажи ИИ:
«Создай структуру для Telegram-бота управления задачами.
Стек: Python 3.11, aiogram 3, SQLite (aiosqlite).
Команды: /add <задача>, /list, /done <номер>.
Я один пользователь. Создай CLAUDE.md, структуру папок,
.gitignore, requirements.txt с нужными пакетами.»
3. ИИ создаёт структуру. Проверяешь. Ок.
4. Скажи:
«Теперь напиши минимальный рабочий бот.
Токен из .env переменной BOT_TOKEN.
Команда /start — приветствие.
Пока без остальных команд — просто чтобы бот отвечал.»
5. Тестируешь. Работает. Коммит:
git add -A && git commit -m "init: bot structure"
6. Продолжаешь итеративно добавлять команды.Связанные материалы
- Структура проекта и CLAUDE.md — подробнее про CLAUDE.md
- Git: ветки и откат — итеративная разработка через ветки
- Первый проект — практика с нуля