# Доска приёмки 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 | 38.2 | предв. | ~34 | ? | нет | карта+diff выложены (из кода spreed v22.0.12); жду приоритеты P1–P5; звонок=vendor; Fd на устройстве | | tasks | b-mob-tasks | 1 | 16.7 | 41.5 | ~38 | ~11 | нет | карта+diff выложены (из кода v0.17.1); жду приоритизацию P1–P5, вопросы по меткам/напоминаниям/корзине | | notes | b-mob-notes | 0 | — | — | — | — | нет | карта готова, diff | | notifications | b-mob-notify | 0 | — | — | — | — | нет | карта готова, diff | | deck | b-mob-deck | 0 | — | — | — | — | нет | карта готова, diff | | calendar | b-mob-calendar | 0 | — | — | — | — | нет | карта готова, diff | | contacts | b-mob-contacts | 0 | — | — | — | — | нет | карта, edit/delete/группы | Обозначения статуса: `карта` → `diff` (итерация 1) → `правки` → `повторный прогон` → `✅ 0` (Ff=Fd=100%) → `✅ 0 подтв.` (второй прогон держит 0).