# Цикл заданий по аудиту hermes-android **Repo:** `ochenstarik-ui/hermes-android` **Исходный аудит:** 63 находки на коммите `ba5f0466f3fcb83fc2367ca61727ddb897529f88` **Режим:** Antigravity как оркестратор, кодер 1 — Gemini Flash 3.7 high, кодер 2 — Gemini Pro high **Куда класть:** `agents/antigravity/inbox/` репозитория `hermes-android` ## Порядок Задания выдаются по одному. Каждое следующее берёт base SHA из принятого предыдущего. Параллельно не запускать: 02 опирается на порядок событий из 01, 04 проверяет тесты 01–03, 06 продолжает `SEC-01` из 01, 07 опирается на отпечаток сертификата из 06. | № | Файл | Тема | Приоритет | Находки | |---|---|---|---|---| | 01 | `TASK-2026-08-24-01-hermes-transport-and-lan-reachability.md` | Достижимость LAN-хоста и гонки в транспорте | CRITICAL | SEC-01 · NET-01, 02, 03, 04 | | 02 | `TASK-2026-08-24-02-persistence-integrity.md` | Целостность хранения и таймлайна | CRITICAL | DATA-01, 02, 03, 04, 06, 08 · BUILD-04 | | 03 | `TASK-2026-08-24-03-critical-ux.md` | Критичный UX | CRITICAL | UI-01, 02, 03, 04, 06 · DATA-05 | | 04 | `TASK-2026-08-24-04-ci-and-test-harness.md` | CI и проверяемость тестов | HIGH | BUILD-03, 05 · TEST-01, 02, 03, 04 | | 05 | `TASK-2026-08-24-05-repo-hygiene.md` | Гигиена репозитория | HIGH | BUILD-01, 06, 07, 08 | | 06 | `TASK-2026-08-24-06-auth-and-secrets.md` | Авторизация, TLS, секреты | CRITICAL | SEC-02…08 · NET-08 | | 07 | `TASK-2026-08-24-07-pairing-protocol.md` | Протокол сопряжения и hermes-pair | HIGH | PAIR-01…07 · SEC-09, 10 | | 08 | `TASK-2026-08-24-08-connection-lifecycle.md` | Жизненный цикл соединения и фон | HIGH | NET-05, 06, 07, 09 · DATA-11, 12 · UI-11 | | 09 | `TASK-2026-08-24-09-performance-and-attribution.md` | Производительность и атрибуция | MEDIUM | DATA-07, 09, 10 · UI-07 | | 10 | `TASK-2026-08-24-10-cleanup-and-release.md` | Чистка мёртвого слоя и релиз | HIGH | DEAD-01, 02 · BUILD-02 · UI-05, 08, 09, 10 | Покрытие сверено программно: все 63 находки назначены, ни одна не осталась без задания. ## Общий протокол на два кодера Одинаков во всех заданиях, полная формулировка — в каждом файле. **Раунд 1 — кодер 1 (Flash).** Сначала пишет тесты из `§Required tests` и фиксирует их падение на base SHA дословным выводом. Только потом правит код по `§Scope`. Архитектурных решений не принимает: нерешённое идёт в `OPEN QUESTIONS`, а не выбирается молча. **Раунд 2 — кодер 2 (Pro).** Не переписывает работу целиком. Порядок: независимо воспроизводит падение своим прогоном → проходит `§Anti-checklist`, отмечая каждый пункт `проверено — чисто` / `нарушено — <что>` → доводит минимальным дифом → выдаёт findings по шкале `CRITICAL/HIGH/MEDIUM/LOW`. Формулировка `findings: none` допустима только со списком того, что фактически проверялось. Удалять и ослаблять тесты кодера 1 запрещено. **Раунд 3 — оркестратор.** Принимает только при: фактическом выводе команд вместо утверждений; подтверждённом обоими кодерами падении тестов на base SHA; совпадении списка изменённых файлов с дифом; отсутствии удалённых тестов. Расхождения между отчётами разрешаются до приёмки. При споре приоритет у того, кто приложил вывод команды. ## Отклонения от роли по умолчанию В трёх заданиях часть работы отдана кодеру 2 напрямую, потому что она требует проектного решения, а не механической правки: - **06 §Scope 7** — политика синхронизации контекста между хостами: сначала письменная спецификация, потом код. - **07 §Scope 1** — спецификация протокола сопряжения v1 и общие тест-векторы: пишется **до** того, как кодер 1 приступит. - **08 §Scope 6** — решение по foreground service: затрагивает политику публикации, а не только код. ## Что требует решения владельца Исполнители обязаны запросить и не решать самостоятельно: - **05** — переписывание истории git ради удаления 37 МБ бинарников (force-push ломает все клоны); выбор лицензии; сертификат для подписи Windows-бинарника. - **10** — keystore и пароли для подписи релизного APK; судьба экрана настроек (наполнить или удалить). ## Ограничения проверки Задания 02, 03, 06, 08, 09, 10 требуют устройства или эмулятора: миграции Room, освобождение камеры, отпечаток сертификата, `FLAG_SECURE`, фоновая работа, поведение после R8. Без устройства соответствующие пункты помечаются `UNVERIFIED` и задание **не считается закрытым** — по `AGENTS.md §3` формулировки `green`, `PASS`, `готово` без фактического запуска не допускаются. Финальная сверка — таблица «находка → задание → статус» на все 63 позиции в отчёте задания 10, без пустых клеток.