Судьба Fable 5 с момента релиза была столь же загадочной, как и имя модели.
От долгожданного «Момента обожествления ИИ» до принудительного отключения по распоряжению правительства США, а затем и запрета на доступ для неамериканцев — она привлекла внимание всего мира.
Теперь ажиотаж понемногу утихает. В конечном счете, модели должны вернуться в сферу производительности.
С этой целью инженер Claude Code Тэрик Шихипар опубликовал в социальных сетях длинный блог, подробно разъясняющий методы работы с Fable 5.
Эта статья отвечает на вопрос, который долгое время мучил многих. Способности современных моделей уже развились до невероятного уровня, так почему же при использовании модели мы по-прежнему чувствуем, что она не справляется с задачей?
Блог Тэрика проливает свет на эту загадку. Короче говоря: между человеком и моделью существует информационный разрыв, то есть разница между данными пользователем промптами, навыками, контекстом и фактическим выполнением задачи.
Весь этот блог как раз и учит, как преодолеть этот разрыв. Ниже Machine Heart приводит полный текст блога для читателей.

Заголовок блога: A Field Guide to Fable: Finding Your Unknowns
Ссылка на блог: https://x.com/trq212/status/2073100352921215386
Работа с Claude Fable 5 постоянно напоминает мне старую истину: карта — это не территория.
Под «картой» подразумевается представление работы, которую нужно выполнить, то есть мои промпты, навыки и контекст — то, что я передаю Claude. «Территорией» же является то место, где реально должна происходить работа: кодовая база, реальный мир и существующие в нем ограничения.

Разрыв между картой и территорией я называю «неизвестными элементами». Когда Claude сталкивается с неизвестным элементом, он вынужден принимать решения, основываясь на своем наилучшем предположении о моих намерениях. Чем сложнее задача, тем больше неизвестных элементов может встретить Claude.
Fable — первая модель, которая явно дала мне почувствовать, что качество работы ограничивается моей способностью прояснить ее неизвестные элементы.
Важно понимать, что одного лишь предварительного планирования не всегда достаточно. Вы можете обнаружить неизвестные элементы в глубине реализации; также может оказаться, что они указывают на тот факт, что проблему на самом деле следует решать совершенно другим способом.
Я понял, что сотрудничество с Fable по сути представляет собой итеративный процесс постоянного обнаружения неизвестных элементов до, во время и после реализации.
Автор приводит несколько примеров обнаружения «неизвестных элементов», которые читатели могут изучить вместе с полным текстом.

Примеры: https://thariqs.github.io/html-effectiveness/unknowns/
Поймите свои неизвестные элементы
Что такое неизвестный элемент? Когда я обращаюсь к Claude с проблемой, я обычно разбираю ее с четырех сторон:
Известное известное: Это, по сути, то, что я пишу в промпте. Я говорю агенту, чего хочу.
Известное неизвестное: Что я еще не выяснил, но знаю, что еще не выяснил?
Неизвестное известное: Что для меня настолько очевидно, что я даже не стану это записывать, но узнаю, как только увижу?
Неизвестное неизвестное: О чем я вообще не подумал? Какие знания у меня есть, о которых я еще не знаю? Знаю ли я, насколько хорошо можно сделать ту или иную вещь?

Самые лучшие программисты-агенты обычно обладают относительно меньшим количеством неизвестных элементов. Они очень четко понимают, чего хотят, и в мельчайших деталях. Они находятся в полной синхронизации как с кодовой базой, так и с поведением модели.
Но они также предполагают существование неизвестных элементов. Во многом, сокращение и предварительное планирование ваших неизвестных элементов — это ключевой навык программирования с агентами. К счастью, это навык, который можно развивать, сотрудничая с Claude.
Помогите Claude, чтобы помочь себе

Давать указания Claude — это тонкий баланс. Если вы будете слишком конкретны, Claude будет строго следовать вашим инструкциям, даже если другой подход может оказаться более подходящим. Если вы будете слишком расплывчаты, Claude, как правило, будет делать выбор и предположения, основанные на лучших отраслевых практиках, которые не всегда подходят для вашей задачи.
Оба подхода терпят неудачу, когда вы не продумали свои неизвестные элементы. Вы не знаете, когда дорога впереди будет усеяна препятствиями, а когда она на самом деле окажется гладкой, но вы все равно хотите, чтобы Claude мог при необходимости корректировать курс.
Claude может помочь вам быстрее обнаружить неизвестные элементы. Он может чрезвычайно быстро искать в вашей кодовой базе и в интернете, а также обладает большим объемом общих знаний по большинству тем, чем вы. Он также может быстрее итерироваться после неудач.
Важнейший аспект этого процесса — предоставить Claude достаточный исходный контекст. Например, расскажите ему, на каком этапе размышлений вы сейчас находитесь; объясните, насколько хорошо вы знакомы с проблемой и кодовой базой; позвольте ему сотрудничать с вами как с партнером по размышлениям.
Я уже писал о том, как использовать Claude для генерации HTML. Почти во всех этих сценариях HTML-артефакт — лучший способ визуализировать и выразить идеи.
В этой статье я подробно расскажу о некоторых паттернах, которые использую для обнаружения этих неизвестных элементов. Я не всегда применяю все эти техники, но держать их наготове как набор вызываемых методов очень полезно.

До реализации
Сканирование слепых зон
Одна из самых полезных вещей при начале работы — понять свои слепые зоны. Например, если вы пишете функционал в новом модуле кодовой базы или поручаете Claude работу, с которой вы не знакомы, например, итерацию над дизайном, то у вас, скорее всего, будет много «неизвестных неизвестных».
Вы можете не знать, какие вопросы задавать, что считается хорошим результатом, какая работа уже была проделана в прошлом и какие подводные камни следует обойти.
Чтобы это сделать, вы можете попросить Claude помочь найти «неизвестные неизвестные» и объяснить их вам. Мне нравится прямо использовать такие слова, как «blindspot pass» и «unknown unknowns». Обычно также важно сказать ему, кто вы и что вы знаете.
Пример промпта:
«Я добавляю нового провайдера аутентификации, но я ничего не знаю о модуле аутентификации в этой кодовой базе. Можешь сделать blindspot pass, помочь мне найти связанные unknown unknowns и написать для тебя лучшие промпты?»
«Я не разбираюсь в цветокоррекции, но мне нужно сделать ее для этого видео. Можешь объяснить мне мои unknown unknowns в цветокоррекции, чтобы я мог(ла) писать лучшие промпты?»
Мозговой штурм и прототипирование
Когда я работаю в области с большим количеством «неизвестных известных», то есть тех вещей, которые я смогу определить как стандарт, только увидев их, я прошу Claude провести со мной мозговой штурм и создать прототип.
Раннее выявление и выражение этих «неизвестных известных» на этапе прототипирования очень ценно, потому что их обнаружение на этапе реализации обычно обходится дороже. Небольшие изменения в функционале или спецификации могут привести к огромным различиям в реализации кода, и откатить изменения, сделанные агентом, будет сложнее.
Например, вы можете просто захотеть посмотреть, как выглядит кнопка в определенном фреймворке, не подключая реальный бэкенд-роутинг и не поддерживая лишнее состояние на фронтенде.
Визуальный дизайн для меня — это то, что трудно четко выразить словами, но я пойму, что хочу, когда увижу. В таком случае я прошу Claude предложить несколько разных вариантов дизайна для артефакта.
Я также почти всегда начинаю каждую сессию кодинга с разведки или мозгового штурма. Это помогает мне определить рамки проекта с четким намерением. Claude часто обнаруживает варианты высокой ценности, которые я бы упустил, но иногда он также может за деревьями не видеть леса. Мозговой штурм не дает мне изначально установить слишком узкие или слишком широкие рамки.
Пример промпта:
«Я хочу сделать дашборд для этого набора данных, но у меня нет визуального вкуса, и я не знаю, на что он способен. Сделай мне HTML-страницу с 4 вариантами дизайна в сильно различающихся стилях, чтобы я мог(ла) дать обратную связь по результату.»
«Прежде чем подключать реальные данные, сделай отдельный HTML-файл с фиктивными данными, имитирующий новую панель инструментов редактора. Я хочу сначала дать обратную связь по макету, а затем ты уже внесешь изменения в реальное приложение.»
«Вот моя грубая проблема: пользователи отваливаются после онбординга. Поищи в кодовой базе, проведи мозговой штурм по 10 точкам, где мы можем вмешаться, от самых дешевых до самых амбициозных решений. Я скажу тебе, какие направления мне больше нравятся.»
Встречные вопросы
После достаточного мозгового штурма у меня обычно все еще остаются неизвестные элементы.
В этом случае я прошу Claude задавать мне вопросы о любых неясных или двусмысленных моментах. Когда вы просите Claude взять у вас интервью, старайтесь предоставлять контекст по проблеме, чтобы он задавал более целенаправленные вопросы. Вот несколько примеров.
Пример промпта:
«Пожалуйста, задавай мне по одному вопросу за раз, интервьюируя меня по любым неясным моментам. В первую очередь задавай вопросы, ответы на которые могут изменить архитектурный дизайн.»
Справочные материалы
Иногда вы не можете подробно описать то, что хотите. Например, у вас может не быть соответствующего языка для выражения или это слишком сложно, чтобы тратить время на полное описание.
В этом случае лучшим ответом являются справочные материалы. Вы можете предоставить диаграммы, документацию или изображения, но лучшими справочными материалами обычно является исходный код.
Если у вас есть библиотека, которая реализует определенный функционал определенным образом, или есть компонент дизайна, который вам очень нравится, просто направьте Fable в соответствующую папку и скажите, на что смотреть. Даже если справочный код написан на другом языке, это не проблема.
Также работает Claude Design. Вам не обязательно давать ему файл, хотя вы можете это сделать. Вы можете направить его на модуль веб-сайта, который вам нравится, и он прочитает исходный код, а не просто скриншот. Это дает гораздо больше деталей: структуру разметки, организацию компонентов и то, как этот компонент фактически построен.
Пример промпта:
«Этот Rust crate в vendor/rate-limiter реализует именно то поведение отката и повторных попыток, которое мне нужно. Пожалуйста, изучи его и реализуй ту же семантику в нашем TypeScript API-клиенте.»
План реализации
Когда я чувствую, что готов приступить к реализации, я обычно прошу Claude сначала составить план реализации для моего ознакомления, сосредоточив внимание на тех частях, которые с наибольшей вероятностью могут измениться, например, на модели данных, типах интерфейсов или UX-потоках. Это позволяет Claude заранее выявить моменты, которые мне действительно, возможно, потребуется скорректировать.
Пример промпта:
«Напиши план реализации в виде HTML, но в начале покажи точки принятия решений, которые я, скорее всего, буду менять: изменения модели данных, новые типы интерфейсов и любой контент для пользователей. Механические рефакторинги помещай в самый низ, в них я тебе доверяю.»
В процессе реализации
Заметки по реализации
Когда я доволен планом, я начинаю новую сессию и передаю соответствующие артефакты в промпт. Например, я могу передать файл спецификации и прототип, а затем попросить агента реализовать это.
Но факт в том, что сколько бы вы ни планировали, всегда будут скрываться неизвестные неизвестные. В процессе работы агент может обнаружить, что из-за какого-то пограничного случая в коде ему приходится менять подход.
Я прошу Claude Code вести временный файл implementation-notes.md или .html, чтобы фиксировать принимаемые им решения, и тогда мы сможем учиться на следующей попытке.
Пример промпта:
«Пожалуйста, веди файл implementation-notes.md. Если ты столкнешься с пограничным случаем, из-за которого тебе придется отклониться от плана, выбери консервативный вариант, запиши причину в раздел ‘Deviations’ и продолжай.»
После реализации
Документация для презентации и объяснения

Один из важнейших моментов при релизе чего-либо — получить понимание, поддержку и одобрение от других. Создание артефактов для презентации и объяснений в итоговой документации помогает:
Ускорить понимание рецензентов, которые изначально имели те же неизвестные элементы, что и вы.
Ускорить утверждение экспертами, которые хотят убедиться, что вы учли неизвестные элементы и типичные точки отказа, которые они могли бы предвидеть.
Пример промпта:
«Упакуй прототип, спецификацию и заметки по реализации в единый документ, который я могу сразу отправить в Slack для получения поддержки. В начале помести демонстрационный GIF.»
Тестирование
После длительной рабочей сессии Claude мог проделать больше работы, чем я осознаю. Один лишь просмотр diff'а кода часто дает лишь поверхностное понимание произошедшего, поскольку многое зависит от существующих путей выполнения кода.
Попросить Claude провести меня по изменениям и затем протестировать меня на их понимание (после предоставления большого контекста) помогает мне по-настоящему понять, что произошло. Я сливаю код только после того, как идеально пройду тест.
Пример промпта:
«Я хочу убедиться, что понимаю все, что произошло в этих изменениях. Пожалуйста, предоставь мне HTML-отчет, который поможет мне прочитать и понять эти изменения, включая контекст, интуитивные объяснения, конкретные действия и т.д., и в конце добавь тест, который я должен(а) пройти.»
Объединение методов: пример с релизом Fable
Релизное видео Fable было полностью смонтировано Claude Code. Для меня это была совершенно новая область, и я в ней не эксперт.
Поэтому я начал с того, что знал. Я знал, что Claude может редактировать видео с помощью кода и делать транскрипцию, но не был уверен, будет ли точность достаточной. Тогда я попросил Claude объяснить мне, как работают технологии транскрипции, такие как Whisper, и смогу ли я с помощью ffmpeg точно вырезать междометия вроде «э-э» или длинные паузы.
Я хотел, чтобы Claude создал UI, синхронизированный по времени с произносимыми мною словами, но не был уверен, сможет ли он это сделать. Тогда я попросил Claude создать видео-прототип с помощью Remotion и текста транскрипции, чтобы проверить, реализуема ли эта идея.
Наконец, само видео выглядело несколько тусклым. Я знал, что это проблема цветокоррекции, но не понимал, что это такое. При первой попытке я хотел, чтобы Claude сделал несколько вариантов на выбор, но осознал, что в отношении цветокоррекции я не знаю, что считается «хорошим». Вместо того чтобы слепо генерировать варианты, я попросил Claude научить меня цветокоррекции, чтобы обнаружить свои неизвестные элементы.
Сделайте карту соответствующей территории
Чем мощнее модель, тем больше вы можете сделать, используя правильные методы. Когда длительная задача возвращает неверный результат, это, скорее всего, означает, что вам нужно потратить больше времени на определение своих неизвестных элементов или создать план реализации, который позволит Claude гибко действовать в условиях этих неизвестных.
Каждое объясняющее документирование, мозговой штурм, интервью, прототип и справочный материал — это малозатратный способ обнаружить то, о чем вы изначально не знали, прежде чем цена исправления возрастет.
Поэтому, приступая к следующему проекту, сначала попросите Claude помочь вам найти свои неизвестные элементы.
Эта статья взята с официального аккаунта WeChat «Machine Heart», редакция: Редакция Machine Heart








