Как 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 дал им ощущение, что весь скучный инженерный слой — версионирование, изоляция, деплой, контекст — можно пропустить. Зачем, если можно сразу запускать автономных агентов?…

А, еще — во все серверы они входили под root по паролю, и в root лежало куча кастомных скриптов, workspac’ы для 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 — тестовый инструмент на системе без трафика с базой под снос. И главное — она не может этого узнать, потому что заказчик не способен дать ей этот контекст. Он сам не понимает архитектуру, он просто не способен объяснить модели то, чего не понимает сам.

И модель в каждом отдельном чате убеждала их: всё корректно, исполнитель (то есть я) накосячил. А следом они в паре ботов начали переводить оплату со шлюза обратно на индивидуальную — потому что им «срочно нужен трафик»! То есть ломали ровно ту централизацию, ради которой я всё и строил, которую обсудили и утвердили. И вообще ни слова претензии, ни одного вопроса ко мне. 

Да конечно, зачем мне задавать вопросы и спрашивать за архитектуру, если нейронка уже пояснила!

Делегирование мышления

Так то картина ясна: AI на неполном контексте выдаёт разрушительные советы. Это не баг модели, ведь модель — просто трансформер — просто цепь Маркова. Оператор не знает, какой контекст важно передать — вот это факт. Я в своей методичке отдельно бьюсь над тем, что управление контекстом — это половина работы. Так вот: чтобы грамотно подать модели контекст, надо самому понимать систему. Заказчик не понимал, так как не имел отношения к разработке никогда вообще. Значит, модель работала на обрывках.

Дальше — то, что почти все понимают ровно наоборот. Профаны думают: AI упрощает разработку, теперь может любой сделать своего кремниевого единорога. Ну а реальность обратная. AI — это усилитель, а не уравнитель. Множитель, а не слагаемое. Я эту метафору уже вводил в методичке, но здесь прям фейрверк доказательств. Усилитель умножает то, что есть на входе. У эксперта он умножает экспертизу — я через Claude Code делаю проекты в 3-5 раз быстрее. А у человека без знания он умножает незнание. И ладно бы просто на ноль — ноль, умноженный на любую мощность модели, остаётся нулём, но тут хуже: профан не видит момента, когда модель ошибается, и принимает ее фатальные решения с полной уверенностью. То есть множитель уходит в минус. Мощность модели тут ничего не меняет — хоть Opus, хоть что угодно. Усиливается не модель, а человек. Но тут усиливать было нечего!

А есть ещё одна сторона, и она самая мерзкая… AI оказался идеальной машиной для перекладывания ОТВЕТСВЕННОСТИ.

Модель ведь склонна соглашаться с тем, кто её спрашивает. Если очень захотеть найти, в чём эксперт (ну, я, например) неправ, — модель найдёт всегда. Для человека, который ищет оправдание не платить, это безотказный инструмент: он получает не просто исполнителя подешевле, он получает авторитетное «подтверждение» своей правоты. От нейросети, которую он не способен проверить, но которой полностью доверился.

То есть они делегировали машине не работу, а они делегировали ей суждение о компетентности живого человека. И поверили машине, а не человеку, с которым полгода всё работало.

Честно про сам инструмент

Чтобы меня не записали в хейтеры: я каждый день работаю через Claude Code. Это мощнейший инструмент, я на нём построил весь свой процесс. Дело вообще не в инструменте.

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

И ещё про природу самой модели: она реально умеет звучать уверенно, даже когда несёт локально-разумную чушь на неполных данных. Человек, способный её проверить, эту чушь отсеет, а человек, не способный — будет двигатсья строго в этом направлении. Это не злой умысел модели, а фундаментальное свойство и с ним надо уметь обращаться. С человека, как я писал, можно спросить, а с модели спросить нельзя — это умножение матриц, не больше и не меньше.

Чем кончилось

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

Прогноз простой: их проекты ждёт срыв сроков и снова разрушенная инфраструктура. Потому что откатывать коммиты они не умеют, контекста системы у них нет, а Claude в изолированных чатах продолжит выдавать им локально-разумные решения, которые они будут принимать с уверенностью людей, не понимающих, что именно они принимают. Круг, который уже замкнулся однажды (исчезли → не вышло сами → вернулись), замкнётся снова.

Чем доступнее становятся нейросети, тем дороже будет стоить тот, кто понимает, что они делают. Усилитель бесполезен, если на входе нет сигнала. И умение ЧЕЛОВЕКА быть этим сигналом — то есть держать в голове всю систему, принимать решения и отвечать за них — никуда не девается. 

Наоборот, дорожает.

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


Я не ухожу из софта, но всё больше копаю в сторону железа и IoT — писал почему. А поток сознания и мысли по таким вот ситуациям выкладываю в канале.

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