Поверхностный ответ всегда готов. Приходит за секунды — структурированный, уверенный, разбитый на пронумерованные пункты, облачённый в техническую лексику. Звучит как глубина. Глубиной не является. Это материал в форме глубины — тот, что выдерживает осмотр, пока к нему не применяют давление.
STALIN-луп применяет давление по конструкции. Трибунал не поощряет беглость речи. Инспекция не сертифицирует уверенность. Каждый вывод проходит через цепочку ролей, которым безразлично, как звучит ответ, — важно лишь, правильный ли он на самом деле. Это не бюрократия. Это единственный известный способ заставить AI-коллектив производить архитектуру, а не комментарии.
Инструмент графового анализа должен обнаруживать определённый класс ошибок: значение, теряющее контракт типа при пересечении границы внешнего интерфейса. Вопрос задаётся AI-ассистенту. Первый ответ: «Можно отследить поток данных через границу и проверить нарушения контракта».
Это верно так же, как «можно ехать на север» верно, когда спрашивают, как добраться до конкретного города. Не ошибочно. И не полезно. Не указывает, какие именно свойства контракта проверять, как граница выглядит в графе, какой запрос найдёт нарушение. Ответ останавливается ровно там, где начинается работа.
Поверхностный ответ — не ложь. Это краткое содержание пространства, в котором содержится настоящий ответ. Он жестом указывает на правильную область. Но не входит в неё.
Проверенный здесь корпус интеллектуальной разведки содержит сессии, в которых поверхностный ответ был отвергнут, а разговор продвинут дальше. Не грубо — методично. «Что конкретно?» Один и тот же вопрос, повторяемый до тех пор, пока ответ не становился архитектурой, а не направлением.
Три примера. Все из реальных рабочих сессий. Ничего выдуманного.
Option<T> на стороне Rust отображается в T | undefined на стороне JS — двусторонний контракт. Обнаружение нарушений требует сопоставления опциональности аргументов с обеих сторон: WHERE js.arg[N].canBeUndefined = true AND rust.param[N].type CONTAINS "Option". Это не два отдельных анализа — это единая кросс-языковая задача на обход графа. Запрос, находящий ошибку, — одно Cypher-выражение, охватывающее обе стороны границы.Направление было правильным. Архитектура потребовала отказа.
Отказ не улучшил ответ. Он заменил фрейм.
unwrap_or, ||, подстановки значений по умолчанию — подозрительные паттерны.file_id, index) рядом с опасным доступом подозрительны; характерные имена (timeout, port) рядом с конфигурацией — ожидаемы. Обнаруживать не все значения по умолчанию — только те, что попадают не туда.Проблема ложных срабатываний не была решена. Она была принята как структурное ограничение — что и породило совершенно иную архитектуру.
У AI-ассистента нет стимула продвигаться за поверхность. Поверхностный ответ удовлетворяет вопрос в том виде, в каком он задан. Он полный, связный и разумный. Ассистент не скрывает более глубокий ответ — более глубокий ответ не существует, пока давление его не создаёт. Архитектура возникает из ограничений, а состояние первого ответа ограничений не имеет.
Трибунал создаёт ограничения. Инспекция проверяет, что ограничения были соблюдены. Луп существует потому, что альтернатива — принимать каждый вывод за чистую монету — производит систему, которая бегла и поверхностна: консультационный сервис вместо инженерного коллектива.
Три сессии. Три поверхностных ответа. Три отказа. Три архитектуры, которых не существовало до того, как вопрос «что конкретно?» был задан во второй раз.
Поверхностный ответ всегда готов. Архитектура требует Трибунала.
Глеб Всеволодович Сыскарёв сдал донесение без комментариев. Паттерн задокументирован. Сессия закрыта.