Тринадцать файлов существовали только на диске ПК владельца, в рабочей копии, отставшей от origin/main на 122 коммита. Их реализация и тесты давно влиты: tests/test_a42_provider_connect.py, test_a49_subagents_skills_memory.py, test_a51_hub_controls_hermes.py, test_a52_local_models_supervisor_dual.py, test_a55_account_connection.py, test_a56_context_compression.py и другие. Постановок, объясняющих, что эти тесты обязаны доказывать, в репозитории не было. Правило записано в agents/AGENTS.md: задание живёт в репозитории, а не в переписке и не в личных папках на диске. A48, A50 и A54 не переносятся: они уже есть на origin под другими именами, содержимое совпадает с точностью до перевода строки в конце файла. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
13 KiB
ОТМЕНЕНО 31.08.2026. Работа передана Codex заданием
2026-08-31-A48-codex-interface-by-mockup.md. Исполнитель сидит на сервере, где запущен хаб, и может сверять с макетом глазами. Antigravity за фронтенд не берётся: два агента в одних файлах уже приводили к переключению ветки под чужой работой.
Задание A46: вёрстка по макетам — возврат по A43
Дата поступления
2026-08-31
База
origin/main (81a58f6) — там уже лежит A43.
git fetch origin --prune
git checkout -b antigravity/a46-mockup-redo origin/main
В main напрямую не пушить.
Порядок исполнения
Два прохода: Flash реализует, Pro проводит аудит. Пункт P0-4 написан для аудитора.
Исполнитель работает на машине владельца, где хаб запущен и есть живой снапшот. Макеты — в Desktop/фронтенд/, файлы 1.1.png … 7.1.png и пояснения 1.txt, 3.txt.
Почему возврат
A43 закрыл холст и оставил вёрстку нетронутой. Владелец поставил сборку и написал: «интерфейс вообще не изменился, какой был, такой и остался. Зачем тогда было задание на изменение по макетам?»
Он прав. Вот что изменил A43:
app.js +297 шесть карточек показателей, обвязка холста
workflow.js +136 панорамирование, зум колесом
index.html +8
workflow.css 15 потолок 430 px снят, слои холста
style.css НЕ ОТКРЫВАЛСЯ НИ РАЗУ
style.css — это и есть внешний вид: сетка, отступы, типографика, карточки, палитра. Пункт P0-2 задания A43 требовал привести экраны к макетам именно по этим свойствам. Сделать это, не тронув файл со стилями, невозможно.
Скриншотов «до и после», которых требовал критерий приёмки 3, в ветке нет. Работа была принята по прохождению тестов, а тесты внешний вид не проверяют.
Холст переделывать не нужно. P0-1 выполнен: панорамирование, зум колесом, снятый потолок высоты — всё работает и остаётся.
P0-1. Расхождения с макетом 1.1.png
Сверено ревьюером: макет против живой сборки 81a58f6 на сервере владельца.
Шапка. В макете: поиск с подсказкой Ctrl + K, колокольчик со счётчиком, шестерёнка, карточка пользователя (инициалы, имя, команда). В сборке вместо этого две кнопки — «Обновить всё» и «Добавить аккаунт».
Логотип и подпись. В макете вензель, «HERMES HUB» и вторая строка «Крона • Бизнес-экосистема». В сборке — значок молнии и «Multi-Account Router».
Левое меню. В макете иной набор и оформление пунктов, внизу блок с эмблемой и текстом про единый визуальный язык. В сборке внизу — служебная строка про Live API и номер сборки.
Панель инструментов холста. В макете вертикальная панель слева внутри холста: курсор, добавить узел, связь, рамка, показать, удалить. В сборке отсутствует полностью.
Карточки узлов. В макете: иконка, имя, файл .md, строка «модель • аккаунт», статус точкой. В сборке: три строки текста, обрезанные многоточием, без модели и аккаунта.
Подписи связей. В макете подписи SUCCESS, REVIEW_PASSED, REVIEW_FAILED разнесены и подкрашены, возвраты идут красным пунктиром. В сборке подписи налезают на карточки узлов и режутся: владелец видит «ТАНОВКА ЗАД» и «РАЙПРИЁМКА».
Центрирование подписей ревьюер уже починил (text-anchor в workflow.css), и эта правка на месте. Режут их сами карточки узлов, которые рисуются поверх, и слишком узкий промежуток между узлами. Лечится порядком слоёв и расстоянием в раскладке, а не стилем текста.
Нижний ряд. В макете три карточки: «Последние события» с временем и цветными бейджами, «Статистика workflow» с кольцевой диаграммой, «Активные задачи». В сборке — «Последние события» и «Управление LIVE».
Инспектор. В макете это основная панель: вкладки «Основное», «Модель», «Инструкции», «Инструменты», «Память», «История»; поля статуса, текущей задачи, итерации, последнего запуска, времени выполнения, успешности; блок «Конфигурация исполнения» с провайдером, аккаунтом, моделью, температурой, лимитом токенов и таймаутом; блок «Agent File»; инструменты чипами; быстрые действия кнопками. В сборке — пустая заглушка «Выберите агента на графе».
Палитра и рамки. Тёмно-зелёный фон с золотыми акцентами и тонкими рамками. Это то, что задаётся в style.css.
P0-2. Что делать с элементами, которых нечем наполнить
Часть макета опирается на данные, которых в снапшоте может не быть.
- Ничего не выдумывать. Нет данных —
Н/Дс причиной, как принято в проекте. Нарисовать кольцевую диаграмму с числом «42» из макета — дефект, а не выполнение задания. - Модель и аккаунт на карточке узла в снапшоте есть — брать оттуда, а не подписывать примерами из макета.
- Версию из макета не переносить. Там
v2.9.0, в проекте0.1.1, и она заморожена намеренно. - Нижняя панель других приложений экосистемы (Planner, Journal, Finance и прочие) — этих приложений не существует. Не делать и назвать пропущенным в отчёте, а не рисовать неработающие кнопки.
- Всё остальное, что упирается в отсутствующие данные, — так же: реализовать оформление, показать пустое состояние честно, перечислить в отчёте.
P0-3. Скриншоты — это и есть сдача работы
Владелец сравнивает глазами. Отчёт без картинок принят не будет.
- Список расхождений по каждому экрану — до начала работы, приложить.
- Скриншот до и после по каждому экрану — обязательно. Это критерий, по которому A43 провалился.
- Рядом с каждой парой — фрагмент макета, к которому приводили.
- Пройти все макеты
1.1…7.1, а не только первый. - Три темы — светлая, средняя, тёмная — проверить на каждом экране.
P0-4. Аудит вторым проходом
Проверяющему: в прошлый раз работа была принята без единого взгляда на экран.
- Открыть хаб и посмотреть. Не отчёт, не тесты — экран.
- Проверить, что
style.cssдействительно изменён и изменения относятся к вёрстке, а не косметике в одну строку. - Сверить скриншоты с макетами попарно.
- Убедиться, что выдуманных данных нет: ни одного числа из макета в живом интерфейсе.
- Холст не сломан: панорамирование, зум колесом, «вписать» работают как после A43.
- Подписи связей читаются на всех масштабах и не перекрываются карточками.
- Побочные изменения объяснить.
- Пропущенный пункт назвать пропущенным.
Ограничения
- Без сборки, без npm, без фреймворка — решение зафиксировано в
docs/web-api/CONTRACT.md§1. - Python не трогать.
- Холст A43 не переделывать, только доводить.
- Учётные данные и
~/.hermes/agy_profiles/не трогать. - Версию
0.1.1не поднимать. - Правило честности без исключений.
Критерии приёмки
- Ветка в
origin,git statusчист. style.cssизменён; вёрстка экранов приведена к макетам.- По каждому экрану приложены скриншоты до и после рядом с фрагментом макета.
- Пройдены все макеты
1.1…7.1. - Инспектор агента реализован по макету; отсутствующие данные показаны как
Н/Дс причиной. - Карточки узлов показывают модель и аккаунт из снапшота.
- Подписи связей не перекрываются карточками узлов; проверено на нескольких масштабах.
- Панель инструментов холста реализована либо названа пропущенной с причиной.
- Ни одного числа из макета в живом интерфейсе.
- Три темы работают на всех экранах.
ruff check .чисто; релизный гейт не ухудшен.- Отчёт:
START_HEAD,FINAL_HEAD,origin/main,git status,X passed / Y skipped / Z failed. Наorigin/mainсейчас 496 passed.
Главное
Владелец полдня ждал сборку, поставил её на две машины и увидел прежний интерфейс. Холст стал лучше, но он один экран из семи. Задание закрывает то, что в A43 просто не начинали: вёрстку по макетам. И сдаётся оно скриншотами, потому что проверить его иначе нельзя — тесты этого не видят, что и показал прошлый заход.
Порядок сдачи
Передать точный FINAL_COMMIT_SHA.