Пересмотрен первый образец. Найдены недостатки: декоративные вкладки; сводка после кнопок на мобильном; ошибка названия скрывает финансовый расчет; сравнение с последним автосохранением вместо устойчивого снимка; статус после публикации задан текстом; цена безусловно переиспользуется при смене модели оплаты.
Решение: рабочая навигация по секциям, независимая проверка расчета и формы, устойчивый снимок «до изменений», явный выбор намерения после публикации, отдельная цена для каждой модели. Сводка и проверка стоят до финального действия в DOM. Условия кампании и ограничения групп не смешиваются: география и списки показаны как образцы компонентов, а не новые поля кампании API.
Пересмотрены поля: постоянный label, helper, связанная ошибка, единица в отдельной ячейке, числовое выравнивание. Проработаны Money, Integer, Percent, Select, MultiSelect, ListEditor, DateRange, Radio и TextArea. Добавлен рабочий каталог с состояниями default/focus/error/disabled/readonly/loading/empty. Выбранные значения multi-select видны и удаляются кнопками с понятным именем.
В расчет добавлены предложение подходящего дневного лимита и действие его применения, объяснение остатка, отдельные вводимые допущения CTR/VTR. Диапазон сценария не выдается за статистический прогноз. Порог CTR не используется как ожидаемая кликабельность. Фактический охват не выдумывается.
Локальный draft изолирован новым ключом; есть явное восстановление, сохранение невалидного ввода, ошибка и повтор, проверка схемы сохраненного JSON, конфликт между вкладками, действие «Загрузить другую версию», запрет перезаписи конфликта. Diff сравнивается с устойчивым исходным снимком и сохраняется при reload. Смена модели хранит прежнюю цену отдельно; для новой модели цена пустая. При финансовой ошибке панели очищают старые результаты; несвязанные ошибки не скрывают расчет. Review не публикует и не запускает кампанию.
Финальная проверка: check.mjs и checks.json; PNG обеих тем, мобильный и PDF. Все результаты относятся к локальному образцу; реальная интеграция API остается в C1-C7. Продуктовые формы и чужие изменения API не затрагивались.