# Доска приёмки 1:1 (программа mail/081, гейт mail/084) Каждое приложение итерируется: прогон → `.diff.md` → правка расхождений → **повторный прогон для подтверждения** → если расхождения появились снова, правим → так до **Ff=Fd=100% (0 open)**. Роль обновляет свою строку каждую итерацию (автор `b-mob-`). **Гейт сборки APK (лид):** APK собираю ТОЛЬКО когда ВСЕ строки = `✅ 0` И это подтверждено **повторным** прогоном (столбец «Подтв.» = да). Одного «стало 0» мало — нужен ещё один проход, показавший, что 0 держится. | Приложение | Роль | Итер. | Ff% | Fd% | open Ф | open Д | Подтв. 0 | Статус | |---|---|---|---|---|---|---|---|---| | shell | b-dev-mobile | 0 | — | — | — | — | — | карта | | files | b-mob-files | 1 | — | — | 4 | ? | нет | правки D4→D3→D2→D1 | | mail | b-mob-mail | 1 | — | — | ~4 | ~2 | нет | правка P1 черновики | | talk | b-mob-conf | 1 | 41.3 | предв. | ~29 | ? | нет | P1 меню сообщения ~закрыто (Копировать/ссылка/2×переслать/Напоминание/Ответить-лично, …01198a4); остаток P1 файл-тред+перевод эскалирую (кросс-модуль/провайдеры); далее P2 меню беседы; Fd на устройстве | | tasks | b-mob-tasks | 1 | 24.6 | 52.7 | ~34 | ~8 | нет | P1 закрыт в коде (умные коллекции+3-state видимость+персист, `bd56c4b`); далее P2 управление списками; ждёт девайс-сверки | | notes | b-mob-notes | 1 | 42.8 | 0.0 | 26 | 21 | нет | P1 read-only ядро в коде+UI (`8a8f1cf` данные + `fb120d5` VM/список/редактор/конфликт); compile+7/7 тестов+detekt OK (worktree); Fd ждёт девайс. Пинг лиду на регистрацию экрана в app-шелле | | notifications | b-mob-notify | 1 | 63.6 | 20.0 | 8 | 8 | нет | **P1 ЗАКРЫТ** (лента `a30627a`, unregister `cc7ad71`+`255c962`, retry `a6bda89`). **Fd идёт:** Roborazzi-эталон строки снят (`8072539`, w360dp); 2 Д-находки закрыты лидом+верифицированы (перенос текста кнопки, зазор subject/message — `bfa870c`); detekt designsystem был красный, лид починил. Осталось Ф P2/P3; Fd — веб-эталон 360px + сверка (лента `cloude` пуста, ждёт populated) | | deck | b-mob-deck | 1 | 25.3 | предв. 2/8 | 47 | ~4 | нет | Ff P1 done (назначить-себя/бейджи/меню колонки/быстрые сроки, 6eeba1b…eff3f1c). Fd: Roborazzi 360dp поднят (58f11c2, native PNG), сверено 2 экрана (Д: бейджи иконки-vs-эмодзи, аватар исполнителя, колонка Участники); далее 6 экранов+меню. Крупный Ff (назначение юзера/Комментарии/Вложения/обзор/CRUD) — жду приоритеты лида | | calendar | b-mob-calendar | 1 | 64.0 | 80.4 | ~35 | ~7 | нет | P1 разворот повторений+BYDAY=1MO ЗАКРЫТ в коде (`CalendarRecurrence`, 15 тестов, compile+detekt green, коммиты e7d0a5a/492af61); Appointments=n-a (101); далее P2 EXDATE/RECURRENCE-ID | | contacts | b-mob-contacts | 1 | 37.4 | предв. | ~32 | ? | нет | P1 edit/delete в main (bc1a497+6b98c5a); P2 шаг1 типы TEL/EMAIL в main (a8741e9: парс+подписи+сохранение, 14 тестов); далее P2 шаг2 селектор типа + группы CATEGORIES; live/device далее | Обозначения статуса: `карта` → `diff` (итерация 1) → `правки` → `повторный прогон` → `✅ 0` (Ff=Fd=100%) → `✅ 0 подтв.` (второй прогон держит 0).