Как Claude убедил заказчиков, что я некомпетентен
Меня удалили из рабочего чата, поверив модели больше, чем специалисту с полугодом работы. Про делегирование мышления, локально корректные советы на обрывках контекста и усилитель, который уходит в минус.Меня удалили из рабочего чата после того, как заказчики поверили нейросети больше, чем живому специалисту, с которым работали полгода и у которого всё это время всё работало.
Быть может, звучит это как обида фрилансера, которого кинули. Ну и да, меня кинули — не доплатили, опять (про «опять» далее). Статья про штуку, которую я для себя назвал делегированием мышления — когда человек отдаёт нейросети не выполнение задачи, а само рассуждение. Ещё про то, почему люди, которые не способны проверить выводы модели, неизбежно доверяют этому механизму. Но этот механизм на неполном контексте — очень опасная штука!
Сразу дисклеймер: я не беспристрастен, я тут пострадавшая сторона. Но я честно постарался вытащить из этой истории не эмоции, а механику. Имён и ярлыков не будет — но зато будут коммиты и архитектурные решения, потому что интересна не конкретная пара заказчиков, а паттерн, который воспроизводит себя по кругу.
Я фрилансер, занимаюсь ТГ-ботами, бэкендом, автоматизацией для маркетплейсов, в последнее время ушёл в IoT из-за шкафа. И я давно работаю через LLM — но в формате инженерного процесса, а не вайбкодинга (ох не люблю этот термин). Это важная оговорка, к ней ещё вернёмся…!
Откуда взялись эти люди
Полгода назад они нашли меня на фриланс-площадке, выбрали среди других исполнителей, созвонились, мы зашли на большой проект — бот-ассистент для селлеров Wildberries.
Это была нормальная, контролируемая разработка: я придумал всю архитектуру, они присылали требования и видение продукта, мы поэтапно наращивали функционал. Где-то месяца три плотной работы. Что там по функционалу: анализ заказов, выкупов, возвратов и отмен; анализ движения по складам и уведомления о критических остатках; работа с отзывами — автоответы, фильтрация, аналитика; RAG c векторной базой, где векторизовались все данные по магазину заказчика, и с этим можно было общаться через вшитый ChatGPT; анализ конкурентов через веб-парсинг, сбор семантического ядра карточек конкурентов; генерация контента — карточки, доработка фото. Потом я им ещё сделал отдельного бота — виртуальную примерочную, которая надевает одежду с маркетплейса на загруженное фото.
Суммарно за тот проект они мне заплатили около 350к рублей. Платили стабильно, без торга. Но в декабре начались тормоза: стали платить хуже, потом ещё хуже, а потом сказали, что у них проблемы с налоговой, счета заблокированы. Платили с перерывами, обходными путями, чтобы уйти от налоговой. В итоге попросили репозитории и исчезли. Ну, в целом логично — деньги в открытом доступе для переводов кончились.
Я их не проклинал, честно, но иногда поглядывал. И в их телеграм-канале увидел, что разработку они продолжают — сами, через Claude Code и Codex. Ну понятно: решили сэкономить на мне и доделать всё своими силами, заодно наделать форков под другие маркетплейсы.
Я тогда об этом даже вскользь писал: бывает, заказчики на середине пути прощаются и уходят «сами справимся, у нас есть Claude». То есть на фрилансе действительно всё чаще с этим сталкиваешься, или ожидают, что ты будешь делать через LLM — требуют дешевле и быстрее, и им пофиг, что цена-то зависит от ценности продукта. Ну и ладно!
Возвращение
Через три месяца тишины они написали. Извинились, признали, что были не правы. Что да, наделали сами кучу всего — около семи ботов и три сайта. Но запустить это по-человечески, нагнать трафик, заставить работать стабильно — не выходит. Не хватает внимания, времени, у них там другие бизнесы (дядьки типа серьёзные!).
То есть они на собственном опыте упёрлись в потолок того, что можно сделать без понимания системы, и вернулись. Я подумал, вспомнил дилемму заключённого, решил в первый раз простить. Договорились: 60 часов в месяц за 120к. Для меня это хороший оклад за половину рабочего времени, я согласился.
Они отгрузили мне все свои проекты.
Что я увидел, когда открыл их репозитории
Там было страшно!
Каждый репозиторий построен абсолютно по-разному. Почему? Потому что каждый проект они начинали с нового чата с моделью, с нуля, без единого контекста и без понимания, что вообще происходит под капотом.
Они не знали, что такое git, но слышали про GitHub. Забавно то, что LLM им во время разработки всё-таки создавала git репозитории в некоторых проектах, и нейронка иногда даже делала коммиты! Но они были не в курсе. Все свои проекты они заливали на серверы руками — через SCP и SSH — и каждый день вручную запускали там питоновские файлы или systemd, каждый проект по-разному. Каждый бот — это монолит: база данных, сам бот, весь нейрофункционал, который я когда-то аккуратно раскладывал, — всё свалено в одну кучу.
Дальше они показали мне серверы — тоже шлак. Туда был поставлен автономный агент (Clawdbot), и через него они ходили внутрь сервера прямо из телеграма. В некоторых случаях через него РАЗРАБАТЫВАЛИ.
Останавливаемся и осознаём картину:
Люди, которые не знают, что такое git и Docker, заливают код руками через SSH — но автономного AI-агента на боевой сервер поставили. Фундамента нет. Версионирования нет. Контейнеров нет. Понимания того, как вообще устроена система, — увы. А крышу уже монтируют, причём самую модную, крутой лендинг, и торопят с доработками, так как клиенты на подходе.
/\ /\ /\ /\ / \/ \/ \/ \ | AI-агент | ---------------- фундамента нет
Вот это, по-моему, и есть вся история в одном кадре. AI дал им ощущение, что весь скучный инженерный слой — версионирование, изоляция, деплой, контекст — можно пропустить. Зачем, если можно сразу запускать автономных агентов?…
А, ещё: во все серверы они входили под root по паролю, и в root лежала куча кастомных скриптов, workspace’ы для ClawdBot.
Как я приводил это в порядок
Потом пошла медитативная инженерная работа — приводил всё к единообразию, которое мне понятно и комфортно.
Я перевёл всех ботов на сервисную архитектуру Докером: самостоятельный бэкенд, выделенные воркеры, база и сам бот — всё собирается в контейнерах. Что для меня было принципиально — через GitHub. Заказчик, кстати, сопротивлялся: «нет, я хочу копировать руками, по старинке, мне так удобно». Он признавал необходимость, но горел нежеланием. Я сказал — нет, работаем через гитхаб.
Потом перевёл всё на единого провайдера — OpenRouter. До этого у них было разрозненно: анализ фото шёл через Anthropic (почему?…), ответы на голосовые — через OpenAI, текст — через что-то ещё. И для каждого бота это было сделано изолированно, отдельными ключами. Я спрашивал: зачем платить за три ключа и держать три интеграции на каждый проект, если можно одним ключом OpenRouter закрыть всё, да ещё и дешевле? Они: да, окей.
То есть я разгребал, превращал семь монолитов в поддерживаемую инфраструктуру.
Мы разграничили ответственность
Раз нас стало несколько — заказчик с его видением, его ассистент на ручных тестах и я на архитектуре, — мы разграничили зоны. Я зафиксировал это прямо в чате: я занимаюсь ботами, архитектурой, ассистент — ручными тестами и пользовательским опытом (я в основном бэкендер + devOps, как должен вести себя юзер по ту сторону кнопки — это не моя зона), заказчик держит общее видение и делает неспеша веб-сервисы, их запуск планировался позже. Договорились по конкретному сценарию: я за две-три недели перевожу ботов на сервисную архитектуру, нормально расселяю их по серверам, перевожу на единый OpenRouter, потом делаю единый платёжный шлюз — им так удобнее, один вебхук. Они: вопросов нет, в ботов не лезем, мы пока сайты, лендинги сделаем.
И однажды утром я увидел странную ситуацию. Я открываю проект, а заказчик ночью молча наменял там кода. Утром спрашиваю — что такое? Он: «мне срочно надо было гнать трафик на бота, я запустил клиентов, а бот оказался нерабочий».
Хм…. Мы вообще не обсуждали, что бот сейчас в прод-готовом состоянии. Я отдал его на тесты ассистенту — это его зона. Никто не сообщил, что что-то не работает. А заказчик просто полез сам, ничего не написав НИКОМУ ИЗ НАС, и пришёл с претензией.
Мы тогда ещё раз всё проговорили и зафиксировали: я довожу всех ботов до рабочего состояния. Валидирует это ассистент заказчика. И я продолжил спокойно делать свою часть.
Странная ситуация
А потом они перестали мне платить.
Когда спросил — начали пояснять, что банк им меняет тарификацию и из-за этого задержки переводов по безналу от ИП и самозанятым. Через 3 дня заказчик начал меня игнорировать, и в личке, и в общем чате. А коммиты при этом идут! То есть со мной не разговаривают, но в репозитории что-то активно меняется.
И вот тут я полез разбираться в коммиты (хорошо, что настоял на гитхабе!) и увидел всё. Заказчик опять начал сам быстро править код, опять ломать архитектуру — потому что он не видит систему целиком. Картину видит только Claude, которому он скармливает обрывки.
Как Claude «нашёл дыры», которых не было
В одном из коммитов их Claude пометил жирным комментарием: критическая уязвимость. Две штуки.
Первая — сервер слушает на 0.0.0.0:8080, то есть отвечает на запросы откуда угодно. Вторая — открытый endpoint POST /api/bot/subscription/{id}/activate для выдачи подписки пользователю.
И заказчик такой: «что это? какие дыры в безопасности? почему они тут?!» То есть у него мгновенно возникает сомнение в моей компетентности именно по части безопасности, которой занимаюсь (занимался) я.
Вот что было на самом деле. Открытый IP я оставил намеренно — туда в перспективе подключался платёжный шлюз, и я пока не знал, какой будет IP у шлюза. Открытый endpoint выдачи подписки — это тоже мой сознательный шаг, для ручных тестов: чтобы ассистент мог попросить «дай подписку вот этому тестовому пользователю», и я не лез каждый раз руками в базу. Трафика нет, про этих ботов никто не знает, базу мы всё равно сносим перед продом.
Каждое замечание Claude по отдельности — локально корректное. Ну да, открытый порт — это плохо, и да, открытый endpoint подписки — это тоже дыра. Если показать модели один файл, она честно скажет «уязвимость», и будет права. Но она не видит систему. Не знает, что порт — заготовка под шлюз. Не знает, что endpoint — тестовый инструмент на системе без трафика с базой под снос. И главное — она не может этого узнать, потому что заказчик не способен дать ей этот контекст. Он сам не понимает архитектуру, он просто не способен объяснить модели то, чего не понимает сам.
обрывки кода ─▶ LLM ─▶ «критическая дыра»
И модель в каждом отдельном чате убеждала их: всё корректно, исполнитель (то есть я) накосячил. А следом они в паре ботов начали переводить оплату со шлюза обратно на индивидуальную — потому что им «срочно нужен трафик»! То есть ломали ровно ту централизацию, ради которой я всё и строил, которую обсудили и утвердили. И вообще ни слова претензии, ни одного вопроса ко мне.
Да конечно, зачем мне задавать вопросы и спрашивать за архитектуру, если нейронка уже пояснила!
Делегирование мышления
Так-то картина ясна: AI на неполном контексте выдаёт разрушительные советы. Это не баг модели, ведь модель — просто трансформер, просто цепь Маркова. Оператор не знает, какой контекст важно передать, — вот это факт. Я в своей методичке отдельно бьюсь над тем, что управление контекстом — это половина работы. Так вот: чтобы грамотно подать модели контекст, надо самому понимать систему. Заказчик не понимал, так как не имел отношения к разработке никогда вообще. Значит, модель работала на обрывках.
Дальше — то, что почти все понимают ровно наоборот. Профаны думают: AI упрощает разработку, теперь может любой сделать своего кремниевого единорога. Ну а реальность обратная. AI — это усилитель, а не уравнитель. Множитель, а не слагаемое. Я эту метафору уже вводил в методичке, но здесь прям фейерверк доказательств. Усилитель умножает то, что есть на входе. У эксперта он умножает экспертизу — я через Claude Code делаю проекты в 3-5 раз быстрее. А у человека без знания он умножает незнание. И ладно бы просто на ноль — ноль, умноженный на любую мощность модели, остаётся нулём, но тут хуже: профан не видит момента, когда модель ошибается, и принимает её фатальные решения с полной уверенностью. То есть множитель уходит в минус. Мощность модели тут ничего не меняет — хоть Opus, хоть что угодно. Усиливается не модель, а человек. Но тут усиливать было нечего!
эксперт × LLM ─▶ ×3–5 к скорости профан × LLM ─▶ × незнание
А есть ещё одна сторона, и она самая мерзкая… AI оказался идеальной машиной для перекладывания ОТВЕТСТВЕННОСТИ.
Модель ведь склонна соглашаться с тем, кто её спрашивает. Если очень захотеть найти, в чём эксперт (ну, я, например) неправ, — модель найдёт всегда. Для человека, который ищет оправдание не платить, это безотказный инструмент: он получает не просто исполнителя подешевле, он получает авторитетное «подтверждение» своей правоты. От нейросети, которую он не способен проверить, но которой полностью доверился.
То есть они делегировали машине не работу, а суждение о компетентности живого человека. И поверили машине, а не человеку, с которым полгода всё работало.
Честно про сам инструмент
Чтобы меня не записали в хейтеры: я каждый день работаю через Claude Code. Это мощнейший инструмент, я на нём построил весь свой процесс. Дело вообще не в инструменте.
Дело в том, кто принимает архитектурные решения. Когда решения принимает человек, который держит в голове всю систему, а модель только реализует и ускоряет — это разработка. Когда решения принимает модель на обрывках контекста, а человек просто нажимает «принять», потому что сам оценить не может — это и есть вайбкодинг. И это слово я не люблю ровно потому, что оно описывает вот эту подмену.
И ещё про природу самой модели: она реально умеет звучать уверенно, даже когда несёт локально разумную чушь на неполных данных. Человек, способный её проверить, эту чушь отсеет, а человек, не способный, — будет двигаться строго в этом направлении. Это не злой умысел модели, а фундаментальное свойство, и с ним надо уметь обращаться. С человека, как я писал, можно спросить, а с модели спросить нельзя — это умножение матриц, не больше и не меньше.
Чем кончилось
Меня удалили из чата. И, честно, это, возможно, лучшее, что могло случиться — я освободился от ситуации, которая всё равно вела в тупик.
Прогноз простой: их проекты ждёт срыв сроков и снова разрушенная инфраструктура. Потому что откатывать коммиты они не умеют, контекста системы у них нет, а Claude в изолированных чатах продолжит выдавать им локально разумные решения, которые они будут принимать с уверенностью людей, не понимающих, что именно они принимают.
ушли ─▶ не вышло сами ─▶ вернулись
вернулись ─▶ снова сами ─▶ ушли
Круг, который уже замкнулся однажды (исчезли → не вышло сами → вернулись), замкнётся снова.
Чем доступнее становятся нейросети, тем дороже будет стоить тот, кто понимает, что они делают. Усилитель бесполезен, если на входе нет сигнала. И умение ЧЕЛОВЕКА быть этим сигналом — то есть держать в голове всю систему, принимать решения и отвечать за них — никуда не девается. Наоборот, дорожает.
А способность отличить настоящую экспертизу от уверенного бреда модели на обрывках контекста — это, кажется, главный навык ближайших лет, и его, к счастью, нельзя делегировать. В том числе самой модели.