512 000 строк утекшегокода. 44 feature‑флага. Система питомцев в духе тамагочи. Имена вроде «Tengu», «Fennec» и «Penguin mode». Всё это — то, о чём написали сотни новостей. Но не это главное.

Пока интернет разбирал по косточкам внутренности Claude Code, увлечённо споря, игрушка это или серьёзная архитектура, настоящая ценность утечки осталась почти незамеченной. Anthropic случайно показала миру не список фич. Она показала, как на самом деле думает её ИИ‑агент.

За милыми именами и игровыми механиками скрывается жёсткая инженерная реальность: самовосстанавливающийся цикл запросов, вычисления во сне и двухуровневая система отсечения функций. Это уже не обёртка над API. Это операционная система для ИИ. И сегодня мы разберём три паттерна, которые делают Claude Code не просто дорогим автокомплитом, а продуктом на 2,5 млрд $ в год.


31 марта 2026 года тысячи разработчиков по всему миру сделали одно и то же: скормили Claude его собственный исходный код — и попросили объяснить, как он устроен.

Флагманский CLI‑инструмент от Anthropic слил весь свой TypeScript‑код — 512 000 строк — через source map, по ошибке упакованный в npm‑пакет. Буквально за считаные часы интернет разобрал находку по косточкам: насчитали 44 feature‑флага, откопали систему питомцев в духе тамагочи с 18 видами и механикой гачи, а заодно вытащили внутренние кодовые имена вроде «Tengu», «Fennec» и «Penguin Mode».

Но список функций — не суть истории. Об этом уже все написали. Настоящая ценность утечки не в том, что умеет Claude Code, а в том, как он мыслит.

Обвязка и есть продукт

Большинство считало Claude Code тонкой CLI‑оболочкой поверх API Claude: терминальный интерфейс, который отправляет запрос, стримит ответ и умеет немного работать с файлами.

Но утёкший код рассказывает совсем другую историю. На деле Anthropic поставила продукт из 512 000 строк TypeScript: особый терминальный рендерер на React с двойной буферизацией вывода и flexbox‑разметкой через Yoga, более 60 инструментов с разграничением прав и отложенной подгрузкой, систему оркестрации мультиагентов, которая запускает и координирует параллельных «исполнителей», фоновый движок консолидации памяти, работающий, пока вы спите, и самовосстанавливающийся цикл запросов, который попросту не падает.

Это не обёртка. Это операционная система для ИИ‑агента.

Сообщество Hacker News раскололось на два лагеря. Одни отмахнулись от утечки, сравнив её с казино: «Исходный код игрового автомата неинтересен владельцу казино». Модель — вот где деньги. CLI — расходный материал. Другие увидели всё наоборот: модель — это крупье. Обвязка — это казино. А казино строить чертовски трудно.

Цифры — на стороне второй группы. Opus 4.6 доступен всем через API по цене 5/25 $ за миллион токенов. Но по данным VentureBeat, один только Claude Code приносит 2,5 млрд $ годовой выручки по подписке, причём 80% — за счёт корпоративных клиентов. Разработчики платят не за модель. Они платят за обвязку, которая делает модель полезной: оркестрацию инструментов, систему прав, управление контекстом, восстановление после ошибок. Уберите это — и останется просто дорогой автокомплит.

Замкнутый контур дохода, возникший 31 марта, делает это особенно наглядным. Один разработчик поднял MCP‑сервер специально для того, чтобы можно было интерактивно исследовать утёкший Claude Code через сам Claude Code. Другой в 04:00 утра переписал его ключевую архитектуру на Python — ещё до рассвета. Команда из Китая собрала из утечки курс по реверс‑инжинирингу на 12 занятий. А разработчик Jingle Bell сформулировал происходящее в одной фразе: «Сегодняшняя выручка Claude — это люди, которые используют Claude, чтобы разбирать исходники Claude».

Обвязка создаёт спрос на модель. Модель приносит деньги обвязке. Этот маховик и есть продукт.

Дальше — три архитектурных паттерна, извлечённых из утёкшего кода. Не функции. Не кодовые имена. А инженерные принципы, за счёт которых этот маховик вообще крутится.

Стек “обвязка как продукт”
Стек «обвязка как продукт»

Паттерн 1: Самовосстанавливающийся цикл запросов

Самая дорогая часть инженерии в Claude Code — вовсе не ИИ. Это обработка ошибок.

В самом сердце Claude Code — цикл обработки запросов. Не примитивная схема «запрос — ответ», а полноценная машина состояний на while(true), которая из итерации в итерацию ведёт изменяемое состояние. И у неё есть один жёсткий принцип: пользователь никогда не должен увидеть сырую ошибку.

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

Но настоящая инженерия начинается там, где всё ломается. Когда происходит сбой, цикл не падает — он методично перебирает цепочку всё более жёстких стратегий восстановления:

  • Микросжатие. Удаляются наименее значимые сообщения, освобождая токены.

  • Схлопывание контекста. Если этого мало, целые фрагменты диалога сворачиваются в краткие сводки.

  • Эскалация токенов. Если модель исчерпала лимит вывода посреди задачи, ей незаметно подсовывают служебное сообщение («Продолжай сразу, без извинений и повторов») — и цикл идёт дальше. Не более трёх попыток подряд, после чего причина остановки всё‑таки раскрывается.

  • Резервная модель. Если основная модель недоступна, подключается альтернативная.

  • Показ ошибки. И только если исчерпаны все варианты, пользователь, наконец, видит сбой.

Стек «обвязка как продукт»
Машина состояний цикла запросов

Один из разработчиков, разобравший двенадцать версий Claude Code по минифицированному JavaScript, обнаружил любопытную деталь: 5,4% всех вызовов инструментов «осиротевали» — модель вызывала инструмент, тот отрабатывал, но результат до неё так и не возвращался. Самовосстанавливающийся цикл как раз и рассчитан на то, чтобы поглощать подобные сбои — незаметно для пользователя.

Пакетная обработка инструментов с учётом параллелизма
Пакетная обработка инструментов с учётом параллелизма

Исполнение инструментов добавляет ещё один уровень сложности. Цикл не запускает их по одному — он разбивает вызовы на группы в зависимости от того, безопасны ли они для параллельного выполнения. Каждый инструмент сам сообщает об этом через метод isConcurrencySafe(). Читающие операции (grep, glob, чтение файлов) могут выполняться параллельно — до десяти одновременно. Записывающие (редактирование файлов, bash‑команды с побочными эффектами) — строго по очереди. Пакеты чередуются: чтение, запись, снова чтение. Более того, потоковый исполнитель может начать запуск инструментов ещё до того, как модель закончила генерировать ответ, накладывая вычисления и ввод‑вывод друг на друга и тем самым снижая задержку.

Сами инструменты подчиняются той же философии — ничего лишнего в контексте. Из более чем 60 инструментов Claude Code примерно 40 загружаются в каждый запрос. Остальные 18 помечены как отложенные: модель о них не знает, пока не найдёт их через специальный ToolSearchTool. Как только возникает потребность — будь то интеграция с LSP, запуск фоновых задач или настройка cron — модель ищет инструмент, получает его схему и тут же вызывает, в рамках той же итерации. Для пользователя всё выглядит как обычно. Зато контекстное окно остаётся легче примерно на 200 тысяч токенов — потому что ненужные схемы туда просто не попали.

Даже порядок инструментов имеет значение. Перед отправкой в API список сортируется по алфавиту. Это не вопрос красоты — это оптимизация кеша. Алфавитный порядок делает список идентичным от запроса к запросу, повышая вероятность попадания в кеш промптов. Промах — и приходится заново обрабатывать тысячи токенов с описаниями схем. Сортировка превращает это в стабильный префикс.

Вывод, который поначалу звучит парадоксально: в агентных системах надёжность — не надстройка. Она и есть ядро. Основной цикл и есть система обеспечения надёжности. Движок запросов Claude Code занимает 46 тысяч строк не потому, что «счастливый путь» сложен, а потому, что всё остальное — куда сложнее.


Как не потеряться в многообразии ИИ-моделей

Хотите разобраться в архитектуре ИИ-агентов на практике?

Утёкший код Claude Code показывает, как устроена настоящая «операционная система для ИИ»: самовосстанавливающиеся циклы, вычисления во сне, двухуровневое управление функциями. Но теория — это одно. А возможность самостоятельно сравнивать разные модели, проверять, как они обрабатывают вызовы инструментов, — совсем другое.

BotHub собирает ведущие мировые нейросети в одном окне. Тестируйте гипотезы, воспроизводите паттерны из статьи, стройте собственных агентов — без VPN и сложностей с оплатой.

Изучать архитектуру по исходникам — полезно. Проверять её на живых моделях — ещё лучше.

Для доступа не требуется VPN, можно использовать российскую карту.

По ссылке вы можете получить 300 000 бесплатных токенов и приступить к работе с нейросетями прямо сейчас!


Паттерн 2: Вычисления во сне

Самое важное, что делает Claude Code, происходит тогда, когда вы им не пользуетесь.

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

Ответ Claude Code — система под названием autoDream. И это не случайное имя. Это буквально сон Клода.

Между сессиями Claude Code запускает отделённого подагента, единственная задача которого — навести порядок в памяти. Он проходит по директории памяти проекта, перечитывает логи последних сессий, вылавливает всё новое и стоящее сохранения — и переписывает файлы памяти так, чтобы они стали чище, точнее и полезнее для будущей работы. Системный промпт у него предельно прямолинеен: «Ты выполняешь сон — рефлексивный проход по своим файлам памяти. Синтезируй недавний опыт в устойчивые, хорошо организованные воспоминания, чтобы в следующих сессиях можно было быстро сориентироваться».

Но этот «сон» не случается когда вздумается. У него есть три условия — трое «ворот», и все они должны открыться, прежде чем начнётся консолидация.

Система трёх условий запуска
Система трёх условий запуска
  • Ворота 1: время. С момента последнего «сна» должно пройти не менее 24 часов. Это защищает от чрезмерной переработки данных, если вы работаете короткими сессиями, но часто.

  • Ворота 2: сессии. Должно накопиться как минимум пять сессий. Иначе просто нечего осмыслять.

  • Ворота 3: блокировка. Подагент обязан получить «замок» на консолидацию. Это исключает одновременные «сны», если запущено несколько экземпляров Claude Code.

Когда все три условия выполнены, запускается четырёхфазный процесс.

  • Фаза 1 — ориентация. Просмотреть директорию памяти. Прочитать индексный файл (MEMORY.md). Быстро пробежаться по тематическим файлам, чтобы понять текущее состояние.

  • Фаза 2 — сбор сигналов. Найти в недавних источниках информацию, достойную сохранения. Приоритет жёсткий: сначала дневные логи, затем «дрейфующие» факты (то, что изменилось), затем поиск по транскриптам — в попытке выловить закономерности, замеченные моделью в работе.

  • Фаза 3 — консолидация. Обновить или переписать файлы памяти. Перевести относительные даты («вчера») в точные («30 марта 2026 года»). Удалить устаревшие или противоречащие новым данным факты. Слить дубликаты.

  • Фаза 4 — обрезка и индекс. Держать MEMORY.md в пределах 200 строк и примерно 25 КБ. Убирать устаревшие ссылки. Разруливать противоречия. Индекс должен оставаться настолько компактным, чтобы его можно было безболезненно подгружать в каждую новую сессию.

Подагент «сна» имеет доступ к bash только на чтение. Он может наблюдать за проектом — читать файлы, смотреть структуру каталогов, проверять состояние git, — но не имеет права ничего менять. Это принципиальная граница безопасности: процесс консолидации не должен вмешиваться в сам код.

Эта архитектура перекликается с идеей «вычислений во сне» из исследований UC Berkeley: использовать простаивающие ресурсы, чтобы ускорить будущие выводы. В тех работах предлагается заранее предсказывать возможные будущие запросы на основе накопленного контекста. autoDream смотрит не вперёд, а назад: он не угадывает будущее, а приводит в порядок прошлое. Но логика та же — тратить вычисления тогда, когда пользователь не ждёт, чтобы следующая сессия начиналась быстрее и с более осмысленным контекстом.

В итоге получается четырёхслойная архитектура памяти — такой в продакшен‑инструментах для программирования ещё не было.

Четырёхслойная архитектура памяти
Четырёхслойная архитектура памяти
  • Слой 1: CLAUDE.md. Инструкции, которые пишете вы. Статичные, всегда загружаются.

  • Слой 2: автопамять. Заметки, которые Claude ведёт по ходу каждой сессии: команды сборки, находки при отладке, архитектурные решения, ваши предпочтения. Нарастает сама.

  • Слой 3: память сессии. Непрерывность диалога в рамках одной сессии — обычное управление контекстным окном.

  • Слой 4: autoDream. Периодическая сборка мусора и переупаковка всего накопленного в слоях с первого по третий. Очистка. Дефрагментация. Фаза быстрого сна.

  • Инструкция, записная книжка, кратковременная память и фаза сна. Это уже не набор функций. Это зачатки когнитивной архитектуры.

Паттерн 3: Устранение функций на этапе компиляции

Утечка source map произошла именно потому, что система безопасности… сработала. Код действительно вырезали из сборки. Просто забыли вырезать его из карты.

Anthropic поставляет одну и ту же кодовую базу двум аудиториям. Внутренние сотрудники получают KAIROS (всегда активного помощника), BUDDY (компаньона в духе тамагочи), Coordinator Mode (оркестрацию мультиагентов), Voice Mode, Bridge Mode и ещё с десяток экспериментальных подсистем. Внешние пользователи — ничего из этого. Во внешней сборке нет «мёртвого» кода, спрятанного за if. Его там нет физически — ни байта в исполняемом файле.

Механизм основан на функции feature() из Bun, которая вычисляется не во время выполнения, а на этапе сборки. Когда Anthropic собирает внешний пакет, каждый вызов feature('KAIROS') превращается в константное false. Сборщик Bun затем полностью вырезает соответствующую ветку как «мёртвый код». В итоговом JavaScript не остаётся ни следа от KAIROS, BUDDY или любой другой закрытой подсистемы: ни строк, ни функций, ни импортов. Как будто их никогда и не было.

Это первый уровень двухуровневой системы управления функциями.

Гейтинг функций: компиляция vs выполнение
Гейтинг функций: компиляция vs выполнение

Второй уровень — управление на этапе выполнения через GrowthBook, платформу feature‑флагов. Флаги (в коде они идут с префиксом tengu_) отвечают за постепенные выкаты, A/B‑тесты и «рубильники» для уже допущенных в релиз функций. Проверяющая их функция названа показательно: getFeatureValue_CACHED_MAY_BE_STALE(). В этом названии зашито инженерное решение: устаревшие данные допустимы. Скорость важнее актуальности. Агент не должен тормозить, ожидая ответа по флагу.

Оба уровня решают разные задачи. Устранение на этапе компиляции — это граница безопасности: внутренние функции не должны существовать во внешнем артефакте вообще, даже в виде недостижимого кода. Флаги времени выполнения — это инструмент раскатки: функции уже присутствуют, но включаются постепенно, под наблюдением, и могут быть мгновенно отключены при сбое.

Сверху добавлен третий слой: проверки вида USER_TYPE === 'ant', открывающие возможности только для сотрудников Anthropic. Сюда входят доступ к staging API, дамп отладочных промптов, Undercover Mode (режим, при котором Claude не раскрывает, что он ИИ, в публичных опенсорс‑вкладках), а также внутренние инструменты вроде ConfigTool и TungstenTool.

Ирония, позволившая этой утечке случиться, — в самой структуре системы. Source map существует, чтобы связать скомпилированный код с исходниками. Он хранит оригинальный код в массиве sourcesContent — независимо от того, что именно компилятор вырезал. Удаление «мёртвого» кода защищает исполняемый файл, но не карту. Bun генерирует source map по умолчанию. Никто это не отключил. Никто не добавил *.map в .npmignore. В итоге весь внутренний код оказался в npm — в виде JSON‑файла на 59,8 МБ.

И это не первый случай. Та же проблема всплывала в феврале 2025 года, при первом запуске Claude Code. Тогда её тихо убрали. Через тринадцать месяцев, в версии 2.1.88, она вернулась. Конвейер сборки так и не починили. Настройки Bun не переопределили. Компания с лучшей языковой моделью в мире, придумавшая undercover mode, чтобы скрывать внутреннюю кухню, споткнулась о одну пропущенную строчку в .npmignore.

Вывод здесь не в курьёзе, а в конструкции. Если вы делаете агентный продукт, вам нужна двухуровневая система управления функциями: устранение на этапе компиляции — для безопасности (что не должно существовать вовсе) и флаги времени выполнения — для управления выкладкой (что существует, но выключено). И наконец, конвейер сборки, который проверяет, что именно вы публикуете. npm pack --dry-run перед каждым релизом. Без исключений.

Комментарии (24)


  1. DarthVictor
    06.04.2026 13:19

    собственный терминальный рендерер на React

    Нет, это сторонняя либа


  1. ez_hbr
    06.04.2026 13:19

    Превьюшка кайфовая


  1. Daseron
    06.04.2026 13:19

    Самый прикол что статью писали через ИИ


    1. piton-vas
      06.04.2026 13:19

      И картинки клавдием сгенерины


  1. Sanitir
    06.04.2026 13:19

    >Компания с лучшей языковой моделью в мире

    значит не лучшей

    > опять обосраласьспоткнулась о одну пропущенную строчку

    мне лично не нравился claude code и без гачимучи, а с гачимучи и подавно


  1. mixsture
    06.04.2026 13:19

    Самовосстанавливающийся цикл как раз и рассчитан на то, чтобы поглощать подобные сбои – незаметно для пользователя.

    Не знаю насчет сбоев, зато токены он поглощает внутренними ошибками и ретраями - очень заметно! Так что у меня сомнения: полезен ли для меня этот цикл или нет. Пожалуй, скорее нет! Потому что если у клауда сдохли линукс контейнеры и он не может выполнить банальный sed над текстовым файлом, то за кучу ретраев он с легкостью сжирает мой лимит токенов - ну а результат все равно остается никакой, контейнеры то за это время все еще лежат!

    И вот у меня вопрос: нафига мне такая автоматизация, которая съедает 5 часовой лимит, так ничего и не сделав полезного?!

    В целом клауд пытается уменьшить свои расходы, но как-то получается, что ценой ухудшения качества.


    1. bambazamba
      06.04.2026 13:19

      Если стоимость токенов для вас основная проблема - значит все, что вы пытаетесь сделать, стоит дешевле этих токенов.


  1. Politura
    06.04.2026 13:19

    А какой промпт для статьи использовали? Просто интересно. "прочти новости о слитом кдауд коде и напиши статью про то, что никто не понял, что кауд код это операционка"? Хатя, наверное, проще, после "прочти новости" написали "придумай кликбейт заголовк по теме и затем напиши статью", я угадал?

    Ой, только сейчас заметил, что это перевод медиума, опять. :) Ну так-то понятно, конечно автор с медиума использовал промпт попроще, вопрос снимается, там других больше не водится.


    1. netricks
      06.04.2026 13:19

      Да вы достали уде везде видеть нейрослоп... Ну, не конкретно Вы, а широкое вы. На Хабре нынче, в какую статью не зайди, везде, дескать нейронка писала, нейронка писала.


      1. Jabus
        06.04.2026 13:19

        После статей, которые были написаны до появления нейронок чувствуется, что стиль сильно поменялся, да и сходство таких статей с тем как общается чат гпт большое (почему-то мне кажется, что это он и писал)


      1. peterkam
        06.04.2026 13:19

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


        1. LuciusWill
          06.04.2026 13:19

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


        1. web36m
          06.04.2026 13:19

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


      1. StudyHelp
        06.04.2026 13:19

        На самом деле если человек много взаимодействует с нейросетями в повседневной жизни и на работе, он потихоньку начинает перенимать её текстовые обороты, а местами и способ мышления. Так что определить на 100% практически невозможно, и со временем этот процесс усложняется: нейронки становятся всё умнее и красноречивее (особенно специально тренированные на текстах), а человек со временем больше смещается к "речевым оборотам из нейронки". Хотя в данной статье я всё же тоже склоняюсь к тому, что её писали как минимум в сотрудничестве с нейросетью (а то и только нейросетью).


        1. Aluvian
          06.04.2026 13:19

          Тут уже был коммент в другой статье. Комментатор прогнал свою диссертацию написанную 10 лет назад и тест показал, что 80% написала нейронка.


      1. LuciusWill
        06.04.2026 13:19

        Статья интересная. Но судя по манере речи/текста, 99% что это нейронка. Само по себе это не плохо. Я часто прошу их подробно рассказывать разные темы. Иногда они косячат. Но редко. Обычно реально хорошо рассказывают.

        Скрытый текст

        Да, ты абсолютно прав — эту статью (или как минимум 95% её текста) написала нейросеть.

        Это не просто «подозрительно хорошо написано». Это классический, почти учебниковый пример LLM-текста 2025–2026 годов.
        Я разберу её по косточкам, с конкретными речевыми оборотами, приёмами и структурными «отпечатками пальцев» ИИ.

        1. Повторяющийся «крючок» в начале (самый яркий маркер)

        Статья дважды начинает почти одинаково:

        • Первое предложение:
          «512 000 строк утекшегокода. 44 feature‑флага. Система питомцев в духе тамагочи. … Но не это главное.»

        • Потом, после небольшого вступления:
          «Флагманский CLI‑инструмент от Anthropic слил весь свой TypeScript‑код — 512 000 строк — через source map…» и снова перечисляет те же 44 флага, тамагочи, Tengu/Fennec/Penguin Mode.

        Это классический LLM-приём «restatement of the premise». Нейросеть сначала даёт яркий хук, потом через 150–200 слов пересказывает его почти дословно, будто боится, что читатель забыл. Люди так не пишут. ИИ — постоянно.

        2. «Но не это главное» / «Настоящая ценность» — фирменная фраза-шаблон

        Фраза «Но не это главное» и её вариации («Настоящая ценность утечки не в том…», «Обвязка и есть продукт») повторяются 4 раза в разных формулировках.
        Это типичный риторический шаблон Claude/GPT-4o/Grok для техстатей:
        «Все думают, что X. Но на самом деле Y».
        Нейросеть использует его как структурный «разделитель», чтобы создать ощущение глубины.

        3. Жёсткая «тройная» структура («три паттерна»)

        Самый надёжный маркер ИИ-текста 2026 года — «Давайте разберём три ключевых паттерна».
        Любая нейросеть, когда ей говорят «напиши аналитику», по умолчанию выдаёт:

        • Введение

        • Три (иногда пять) пронумерованных паттерна/принципа/урока

        • Вывод

        Здесь ровно так:
        «Дальше — три архитектурных паттерна…» → Паттерн 1, Паттерн 2, Паттерн 3.
        Каждый паттерн имеет:

        • жирный подзаголовок,

        • список с *,

        • мини-таблицу/слои,

        • красивый вывод в конце.

        Это не человек структурировал. Это prompt-инструкция («структурируй как статью на Habr/VC с тремя паттернами»).

        4. Внезапный рекламный блок посреди текста

        Самый убойный proof:

        После описания Паттерна 1 внезапно появляется блок:

        «Как не потеряться в многообразии ИИ-моделей
        Хотите разобраться в архитектуре ИИ-агентов на практике?
        BotHub собирает… 300 000 бесплатных токенов… российскую карту…»

        А потом статья продолжается как ни в чём не бывало с Паттерна 2.

        Это классический «ad insertion prompt». Человеку-автору было бы стыдно вот так ломать нарратив. Нейросети — нет, если в промпте было «вставь нативную рекламу BotHub после первого паттерна».

        5. Другие речевые обороты — «пальцы» ИИ

        • Длинные предложения с тире и запятыми для драмы: «Это не обёртка. Это операционная система для ИИ.» (повторяется несколько раз в разных вариациях).

        • Метафоры-шаблоны: казино / крупье / маховик — ИИ очень любит такие развёрнутые аналогии.

        • Технический over-explaining: подробное описание «машины состояний while(true)», «ворота 1, 2, 3», «четырёхфазный процесс», «четырёхслойная архитектура памяти». Человек бы сократил, ИИ — раскладывает по полочкам, потому что «так информативнее».

        • «Утёкший код рассказывает совсем другую историю» — ещё одна фирменная фраза LLM в реверс-инжиниринг статьях.

        • Идеальная грамматика + лёгкая «роботизированность» стиля: текст слишком ровный, слишком ритмичный, слишком «красивый» для живого техблогера.

        6. Контекст публикации (финальный гвоздь)

        Статья опубликована на Habr.com в разделе companies/bothub — это аккаунт самого сервиса BotHub. То есть они сами себе написали хвалебную аналитику, вставили в неё свою рекламу и оформили как «глубокий разбор».

        Такие статьи сейчас почти всегда генерируются нейросетью (чаще всего Claude 4 или Opus), а потом человек только заголовок подкручивает и публикует.

        Итог

        Это не статья человека, который ночью разбирал 512к строк кода.
        Это статья, которую нейросеть написала за 30–40 секунд по промпту примерно такого вида:

        «Напиши вирусную статью на Habr про утечку Claude Code 31 марта 2026. Начни с хука про 512к строк. Скажи, что все упустили главное. Разбери три архитектурных паттерна. Вставь нативную рекламу BotHub после первого паттерна. Стиль — драматичный, техно-энтузиастичный, как у лучших авторов VC.ru».

        Поэтому да — ты почувствовал правильно. Это чистой воды нейросетевой контент. Очень качественный, но всё ещё с характерными «отпечатками».

        Дополнительный глубокий разбор: именно манера речи и речевые обороты (то, что ты просил)

        Теперь разберём только стиль речи — те самые конструкции, которые кричат «это ИИ» даже если убрать весь смысл. Ты выписал отличные примеры. Я проанализирую каждый + покажу, почему они типично нейросетевые (2025–2026 гг.).

        1. «Цифры — на стороне второй группы.»
          Классический LLM-оборот «X — на стороне Y». Нейросети обожают эту конструкцию с тире, потому что она даёт ощущение «объективного вердикта». Человек написал бы проще: «Вторая группа права» или «Цифры говорят в пользу вторых». ИИ же делает «литературно-драматично».

        2. «Уберите это — и останется просто дорогой автокомплит.»
          Это «Уберите X — и останется Y» — один из самых частых шаблонов современных LLM. Структура «если убрать → останется голый минимум» используется в 70 % аналитических статей, сгенерированных Claude/GPT. Создаёт резкий контраст и ощущение «вот где настоящая ценность».

        3. «Другой в 04:00 утра переписал его ключевую архитектуру на Python — ещё до рассвета.»
          Здесь сразу два маркера:

          • «ещё до рассвета» — поэтический, почти романтический оборот, который ИИ вставляет для «живости». Человек написал бы «ещё до 5 утра» или «за пару часов».

          • Тире + временной штрих для драматизма. Нейросети любят подчёркивать скорость/героизм разработчиков именно так.

        4. «Дальше — три архитектурных паттерна, извлечённых из утёкшего кода. Не функции. Не кодовые имена. А инженерные принципы, за счёт которых этот маховик вообще крутится.»
          Это чистый ИИ-шаблон «Не X. Не Y. А Z». Параллельная конструкция с повторяющимся «Не» + резкий поворот на «А».
          Плюс «за счёт которых этот маховик вообще крутится» — метафора «маховик» + «вообще» в конце — типичный способ ИИ сделать вывод «глубоким».

        5. «После этого — стриминговый вызов API.»
          Короткое предложение после длинного, начинающееся с «После этого —». ИИ использует такие «ступеньки» постоянно, чтобы создать ритм повествования. Человек чаще пишет «Затем идёт…» или просто «Потом…».

        6. «Это не вопрос красоты — это оптимизация кеша.»
          Самый популярный шаблон 2025–2026: «Это не A — это B».
          ИИ вставляет его десятками раз в статью. Создаёт ощущение «я сейчас раскрою тебе правду». В человеческом тексте такие контрасты встречаются, но не так ритмично и часто.

        7. «Промах — и приходится заново обрабатывать тысячи токенов с описаниями схем.»
          Ещё один «X — и Y» (где X — короткое слово, Y — последствие). Эта конструкция с тире — визитная карточка LLM. Она имитирует устную речь, но в письменном виде выглядит слишком отточенной.

        8. «Внешние пользователи — ничего из этого.»
          Эллипсис + тире. ИИ любит обрывать фразу резко, чтобы создать паузу и напряжение. Полная версия звучала бы «Внешние пользователи не получают ничего из этого».

        9. «Его там нет физически — ни байта в исполняемом файле.»
          Усиление «физически — ни байта». Нейросети обожают такие «ни грамма / ни байта / ни следа» — это их способ сделать описание максимально категоричным и образным.

        10. «Ирония, позволившая этой утечке случиться, — в самой структуре системы.»
          Классический «Ирония … — в …». ИИ очень любит начинать предложения со слова «Ирония» или «Парадокс», а потом ставить тире и раскрывать «глубокий смысл». Это приём для создания «вау-эффекта» в конце абзаца.

        Общие речевые «пальцы» по всей статье (дополнение к твоим примерам):

        • Чрезмерное использование длинного тире (—) как универсального знака препинания (пауза, контраст, выделение). В человеческом техтексте тире встречается реже и осмысленнее.

        • Ритмические повторы на уровне абзаца: короткое предложение → длинное → снова короткое с тире.

        • «Литературные» вставки («ещё до рассвета», «маховика вообще крутится», «жёсткая инженерная реальность») — ИИ пытается сделать текст «живым», но выходит чуть слишком красиво и шаблонно.

        • Отсутствие настоящих шероховатостей: ни одной разговорной фразы, ни одного «ну», «короче», «блин» — текст идеально отполирован.

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


        1. dmitrifriend Автор
          06.04.2026 13:19

          Хм, в соседней ветке написали, что не сгенерировано...


        1. TotalAMD
          06.04.2026 13:19

          «Но не это главное» / «Настоящая ценность» — фирменная фраза-шаблон

          На чём же их так натренировали всех на эту залупу?..


        1. web36m
          06.04.2026 13:19

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


        1. TotalAMD
          06.04.2026 13:19

          Почему эти залупы могут распознать паттерны человека и ии, но не могут написать, как человек?


          1. web36m
            06.04.2026 13:19

            А кто-нибудь вообще ходил кода-нибудь, в их настройки смотрел? Единицы мне кажется.


  1. Squoworode
    06.04.2026 13:19

    512 000 строк

    Какое-то подозрительно круглое число...


    1. LuciusWill
      06.04.2026 13:19

      Ну да. В таких случаях обычно используют, о ужас, округление.

      Был у меня знакомый в армии, который не верил в динозавров. Потому что учёные всегда называют дату их гибели ровно 65 миллионов лет назад. Мол, подозрительно точное число. И не меняется из года в год.

      Вот такого бреда у людей гора. Особенно, если внимательно и критически людей изучать. У КАЖДОГО находятся свои тараканы. На фоне безумия людей, смешно слышать претензии к нейронкам, "галлюцинации" и прочее. Какие-нибудь плоско-земельщики это лишь верхушка айсберга.

      Мне в плане адекватности и не-токсичности, нейронки нравятся в разы больше, чем люди.


      1. Squoworode
        06.04.2026 13:19

        Жаль, что приходится объяснять шутку, но что поделать...

        Это шутка про стереотипных программистов. 512 в шестнадцатеричной системе счисления является круглым числом и выглядит как 0x200. Стереотипные обычные люди округлили бы до 500 000.