Тринадцать файлов существовали только на диске ПК владельца, в рабочей копии, отставшей от 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>
141 lines
13 KiB
Markdown
141 lines
13 KiB
Markdown
> **ОТМЕНЕНО 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. Что делать с элементами, которых нечем наполнить
|
||
|
||
Часть макета опирается на данные, которых в снапшоте может не быть.
|
||
|
||
1. **Ничего не выдумывать.** Нет данных — `Н/Д` с причиной, как принято в проекте. Нарисовать кольцевую диаграмму с числом «42» из макета — дефект, а не выполнение задания.
|
||
2. **Модель и аккаунт на карточке узла в снапшоте есть** — брать оттуда, а не подписывать примерами из макета.
|
||
3. **Версию из макета не переносить.** Там `v2.9.0`, в проекте `0.1.1`, и она заморожена намеренно.
|
||
4. **Нижняя панель других приложений экосистемы** (Planner, Journal, Finance и прочие) — этих приложений не существует. Не делать и **назвать пропущенным** в отчёте, а не рисовать неработающие кнопки.
|
||
5. Всё остальное, что упирается в отсутствующие данные, — так же: реализовать оформление, показать пустое состояние честно, перечислить в отчёте.
|
||
|
||
## P0-3. Скриншоты — это и есть сдача работы
|
||
|
||
Владелец сравнивает глазами. Отчёт без картинок принят не будет.
|
||
|
||
1. **Список расхождений по каждому экрану** — до начала работы, приложить.
|
||
2. **Скриншот до и после по каждому экрану** — обязательно. Это критерий, по которому A43 провалился.
|
||
3. **Рядом с каждой парой — фрагмент макета**, к которому приводили.
|
||
4. Пройти все макеты `1.1` … `7.1`, а не только первый.
|
||
5. **Три темы** — светлая, средняя, тёмная — проверить на каждом экране.
|
||
|
||
## P0-4. Аудит вторым проходом
|
||
|
||
Проверяющему: в прошлый раз работа была принята без единого взгляда на экран.
|
||
|
||
1. **Открыть хаб и посмотреть.** Не отчёт, не тесты — экран.
|
||
2. **Проверить, что `style.css` действительно изменён** и изменения относятся к вёрстке, а не косметике в одну строку.
|
||
3. **Сверить скриншоты с макетами** попарно.
|
||
4. **Убедиться, что выдуманных данных нет**: ни одного числа из макета в живом интерфейсе.
|
||
5. **Холст не сломан**: панорамирование, зум колесом, «вписать» работают как после A43.
|
||
6. **Подписи связей читаются** на всех масштабах и не перекрываются карточками.
|
||
7. **Побочные изменения** объяснить.
|
||
8. **Пропущенный пункт назвать пропущенным.**
|
||
|
||
---
|
||
|
||
## Ограничения
|
||
|
||
- **Без сборки, без npm, без фреймворка** — решение зафиксировано в `docs/web-api/CONTRACT.md` §1.
|
||
- Python не трогать.
|
||
- Холст A43 не переделывать, только доводить.
|
||
- Учётные данные и `~/.hermes/agy_profiles/` не трогать.
|
||
- Версию `0.1.1` не поднимать.
|
||
- Правило честности без исключений.
|
||
|
||
## Критерии приёмки
|
||
|
||
1. Ветка в `origin`, `git status` чист.
|
||
2. `style.css` изменён; вёрстка экранов приведена к макетам.
|
||
3. По каждому экрану приложены скриншоты до и после рядом с фрагментом макета.
|
||
4. Пройдены все макеты `1.1` … `7.1`.
|
||
5. Инспектор агента реализован по макету; отсутствующие данные показаны как `Н/Д` с причиной.
|
||
6. Карточки узлов показывают модель и аккаунт из снапшота.
|
||
7. Подписи связей не перекрываются карточками узлов; проверено на нескольких масштабах.
|
||
8. Панель инструментов холста реализована либо названа пропущенной с причиной.
|
||
9. Ни одного числа из макета в живом интерфейсе.
|
||
10. Три темы работают на всех экранах.
|
||
11. `ruff check .` чисто; релизный гейт не ухудшен.
|
||
12. Отчёт: `START_HEAD`, `FINAL_HEAD`, `origin/main`, `git status`, `X passed / Y skipped / Z failed`. На `origin/main` сейчас **496 passed**.
|
||
|
||
## Главное
|
||
|
||
Владелец полдня ждал сборку, поставил её на две машины и увидел прежний интерфейс. Холст стал лучше, но он один экран из семи. Задание закрывает то, что в A43 просто не начинали: вёрстку по макетам. И сдаётся оно скриншотами, потому что проверить его иначе нельзя — тесты этого не видят, что и показал прошлый заход.
|
||
|
||
## Порядок сдачи
|
||
Передать точный `FINAL_COMMIT_SHA`.
|