Планирование — это избавление от unknowns
Самая сильная концептуальная часть подкаста. Тезис: «план» — слишком широкое слово, и большинство понимает его неправильно. План — не документ перед работой, а процесс выяснения того, чего ты не знаешь.
Тезис
Когда мы говорим про планы, мы обычно имеем в виду одноразовую вещь: спланировал, сделал, всё. Но планирование — это итеративный процесс исследования, разведки, выяснения того, чего ты не знаешь и чего ты хочешь. Мне нравится говорить: избавление от своих unknowns. Ты либо не знаешь, как что-то работает, либо не знаешь, чего хочешь.
Отсюда следует, что «спека» и «план» — не два этапа, а одно непрерывное движение. Спекать не только в начале.
Цикл вместо линии
Два инструмента под два типа незнания
Приём: HTML-артефакт как прототип дизайна
Промпт прямо в эфире:
> I want to update the UI of these overlays, and I want to use
Peter Yang's style, here's his blog: https://creatoreconomy.so/.
Create a HTML artifact for exploring different design variations
for the overlays and captions.
Что делает агент по шагам:
Fetch(https://creatoreconomy.so/)→Received 101KB (200 OK). Вытаскивает реальный бренд из живого сайта, а не выдумывает.- Извлекает палитру: фирменный тёплый оранжевый
#FF6719, янтарный#FFB02E, кремовая бумага, чернильный текст, жирный Inter. - Собирает
overlay-styles.html— самодостаточный файл, открывается в любом браузере. - Проверяет себя: запускает headless Chrome и делает скриншот артефакта, чтобы убедиться, что тот отрендерился.
Формулировка автора: «Это прототипы дизайна. Если понравилось — делаем дорогую версию: вместо HTML — React, а это значит перерендерить видео и переписать код. Какой самый маленький шаг доказывает концепцию?»
У нас есть animation-bank с брендами (bank/brands/*.brand.json)
и документ про ребрендинг «токены vs DNA». Недостаёт дешёвого превью-слоя:
одностраничный HTML, показывающий 4–5 вариантов оформления сцены на реальном кадре — до
запуска npx remotion render.
Сейчас цикл «не нравится → перерендерить» стоит минуты и слот render у
губернатора. Должен стоить секунды и ноль слотов.
Второе: вытаскивание бренда из живого URL. Для клиентских каналов не заполнять
brand.json руками, а дать агенту ссылку на сайт клиента.
Приём: implementation-notes.md
Промпт, который автор называет одним из самых частых у себя:
implement <SPEC>; and while you do, keep a running
implementation-notes.md file with decisions you had to make
Зачем: во время реализации агент натыкается на то, чего не предвидел ни он, ни ты. Эти находки нельзя терять — из них рождается переспекация. Плюс, как формулирует Peter, это живой документ: следующая сессия стартует не с нуля.
Реальный пример: исследование сегментации видео
Автор хотел ставить текст за спикером и разбирался с моделями сегментации. Что попало в заметки:
Segment Anything 2 — рекомендованный дефолт. Режим сегментации видео: кликаешь точку на кадре 0, и маска распространяется по всему клипу с сильной временнóй согласованностью.
Плюсы: лучшее соотношение качества к усилиям для коротких клипов; справляется с перекрытиями и повторным появлением объекта. Работает на небольших видеокартах, поддерживается Apple Silicon; на CPU возможно, но минуты на клип.
Режимы отказа: смазывание при быстром движении, резкая смена масштаба, потеря идентичности объекта на склейках.
- Имя пакета. В
pyproject.tomlдистрибутив объявлен какsam-2, а ставится какsam2— установка падает с ошибкой несовпадения имени в метаданных. - Проверка альфа-канала VP9 выглядит сломанной, но не сломана. Браузеры распаковывают прозрачность, а декодер из командной строки даёт другой результат — расхождение в инструменте проверки, а не в файле.
- SAM 2 сегментирует область, а не сущность. Клик по торсу даёт торс без головы, а не «человека целиком». Нужно два позитивных клика.
- Mid-clip re-anchor. При смене ракурса нужно переанкориться в новом кадре, иначе маска уезжает.
- Остаточные артефакты. Точечные полупрозрачные дырки внутри лиц спикеров.
Итог: надёжного решения не нашлось, направление закрыли. Но решение закрыть — обоснованное, а не «не получилось».
Ни один из этих пунктов невозможно было написать в спеке заранее. Все всплыли только в реализации — и все сохранились.
Эта роль у нас частично закрыта секцией Gotchas в скиллах (в factory-tool
прямо написано «дополняй при каждой новой засаде — это память скилла»). Чего не хватает —
журнала по ходу конкретного прогона. Gotchas пишется постфактум, когда половина уже
забыта. implementation-notes.md пишется в момент.
Практично: любую нетривиальную задачу запускать с хвостом «и веди
implementation-notes.md с решениями, которые пришлось принять». В конце —
дистиллировать в Gotchas нужного скилла. Стоит одной строки в промпте.
Названный провал: планы никто не читает
Peter: «AI выписывает эти безумные разборы, они обычно довольно длинные. И в какой-то момент я просто ленюсь и говорю — ладно, просто сделай».
Ответ: «Окно промпта легко становится кнопкой "просто сделай". Но за это платишь: если задача серьёзная и ты ленишься на каждом шаге, в итоге выйдет дольше и, возможно, дороже».
Позиция про оформление планов: неважно, как план выглядит — важно, чтобы ты его реально прочитал, хотя бы важные части. Красивый шаблон не помогает, если по нему скользят глазами.