TL;DR
На следующий день после запуска AI-офиса из 10 агентов — контент-мейкер начал генерировать пустышки ("Привет! Чем могу помочь?" вместо постов), путь к картинкам был захардкожен под сервер, а локальный .env не содержал ключей для генерации изображений и LinkedIn. Вместо паники — обычный разговор с Claude Code на русском. 20 минут — и всё починено, протестировано и запушено в GitHub.
Предыстория
Вчера (2 апреля) я построил AI-офис IKIGAI PROMOTION — 10 агентов на сервере, замкнутый контур с Supabase, автопостинг в 3 Telegram-канала и LinkedIn. Всё работало. Подробности — в предыдущей статье.
Сегодня утром решил проверить: "Всё ли ещё работает?"
Спойлер: почти всё.
Что пошло не так
Проблема 1: Контент-мейкер выдаёт пустышки
Файлы контента от 3 апреля содержали:
# INSTAGRAM пост — 2026-04-03
Привет! Чем могу помочь?Это дефолтный ответ Claude, когда промпт не дошёл. Что случилось?
Промпт (~3000+ символов — описание компании, CRM-метрики, тренды, инструкции) передавался как аргумент shell-команды:
// Было (сломано):
const cmd = `claude -p '${escaped}' --model sonnet`;
execSync(cmd, ...);Когда в промпте встречаются кавычки, бэкслеши, символ $ или другие спецсимволы — shell обрезает или искажает текст. Claude получает пустоту и отвечает "Привет!".
Проблема 2: Путь к картинкам захардкожен
В image-gen.js:
// Было:
const OUTPUT_DIR = path.join(
process.env.HOME,
"projects/claude-workspace/projects/ikigai-promotion/content/images"
);Этот путь работает только на сервере и только под конкретным пользователем. Локально — падает.
Проблема 3: Отсутствующие ключи
Локальный .env содержал только ключи GetCourse и AmoCRM. Но не содержал:
FAL_KEY— для генерации картинокLINKEDIN_TOKEN— для постинга в LinkedInAPIFY_TOKEN— для мониторинга конкурентов
Все эти ключи были на сервере, но не синхронизированы.
Как чинили (диалог, не код)
Вот что я сказал Claude Code:
"Проверь работоспособность AI-офиса, если что-то не работает — устрани поломки"
Что произошло дальше (без моего участия в коде):
Шаг 1: Диагностика (Claude сам)
- Прочитал все 10 файлов агентов
- Проверил Supabase — работает
- Проверил Telegram-бота — работает
- Попытался подключиться к серверу по SSH
- Обнаружил что контент от 3 апреля — пустышки
- Определил корневую причину: shell-экранирование промпта
Шаг 2: Исправления (Claude сам)
// Стало (исправлено):
const result = execSync('claude -p --model sonnet', {
input: prompt, // ← промпт через stdin, не через shell
encoding: 'utf-8',
timeout: 120000,
});Одна строка. Вместо передачи через shell-аргумент — передача через stdin. Никакого экранирования не нужно. Работает с любыми символами.
Шаг 3: Путь к картинкам
// Стало:
const OUTPUT_DIR = path.join(__dirname, "..", "ikigai-promotion", "content", "images");Относительный путь. Работает на любой машине.
Шаг 4: Синхронизация .env
Claude подключился к серверу, скопировал полный .env (14 ключей вместо 6), обновил локальный файл.
Шаг 5: Удаление мусора и push
- Удалены 3 файла-пустышки от 3 апреля
- Commit + push в GitHub
- Сервер подтянет изменения автоматически через 30 мин (cron git pull)
Параллельно: полная проверка сервера
Claude подключился к серверу и проверил всё:
Компонент | Статус |
VPS Timeweb | Работает |
n8n (Docker) | Работает, 40+ часов uptime |
Cron (9 задач) | Все на месте |
Digest (CRM sync) | Работает — 351 клиент, 18827 контактов |
Content-maker | Работает (на сервере генерировал корректно) |
Orchestrator | Работает — Health Score 6/10 |
LinkedIn-постинг | Работает |
FAL.ai (картинки) | Работает |
Telegram (3 канала) | Работает |
Supabase | Работает |
Competitor monitor | Настроен |
Git auto-pull | Каждые 30 мин |
На сервере всё работало корректно — баг проявлялся только при локальном запуске.
Главный инсайт
AI-офис — это не "настроил и забыл". Это живая система, которая требует обслуживания. Но вот в чём фокус:
Обслуживание AI-офиса — это тоже разговор на русском языке.
Я не открывал ни одного файла. Не читал код. Не гуглил ошибки. Я сказал:
- "Проверь работоспособность"
- "Если что-то не работает — почини"
- "Синхронизируйся с GitHub"
3 предложения → 3 бага найдены → 3 бага исправлены → push в production.
Это и есть вайб-кодинг в чистом виде. Не "я пишу промпты для генерации кода". А "я управляю инженерной командой, которая существует внутри терминала".
Аналогия из реального мира
Представь: ты нанял CTO. Утром приходишь в офис и говоришь:
"Проверь, всё ли работает. Если что-то сломалось — почини. Потом задеплой."
CTO:
- Проверяет все системы
- Находит 3 бага
- Чинит
- Тестирует
- Деплоит
- Даёт отчёт
Именно это произошло сегодня. Только CTO — это Claude Code. И стоит он не $15 000/мес, а $100.
Уроки на будущее
- Shell-аргументы ненадёжны для длинных промптов — всегда передавай через stdin
- Пути в коде должны быть относительными —
__dirname, неprocess.env.HOME - .env должен быть одинаковым на локалке и сервере — синхронизируй сразу после настройки
- Проверяй контент-пайплайн — автоматическая генерация может тихо сломаться, и ты не узнаешь, пока не посмотришь
- AI умеет чинить то, что AI создал — замкнутый цикл создания и поддержки
Итого
Метрика | Значение |
Время на диагностику + починку | ~20 минут |
Строк кода написано мной | 0 |
Строк кода исправлено Claude | 12 |
Багов найдено | 3 |
Багов исправлено | 3 |
Мои действия | 3 предложения на русском |
Вайб-кодинг — это не про написание кода.
Это про управление системами через намерение.
Ты говоришь что нужно. AI делает как.
И да — он ещё и эту статью написал. По моей просьбе. И опубликовал в Notion. Одной командой.
Сергей Конев, основатель IKIGAI PROMOTION
3 апреля 2026
Алматы, Казахстан
Хотите собрать свою AI-систему за 1 день?
Мы проводим AI-интенсив за 1 день — 8 часов практики, после которых у вас уже работает Claude Code, подключены Telegram, Gmail, Notion, настроены агенты и автоматизации.
88 000 ₸ · Кол-во мест ограничено · Узнать подробности и записаться →
Хотите глубже? Полное погружение за 23 дня: Программа курса →
Сергей Конев · Со-основатель IKIGAI PROMOTION · Победители Digital Qazaqstan Awards 2026