# selected-layout-stay - [x] Создан OpenSpec change (proposal/design) — `skip_specs: true` - [x] `openspec validate selected-layout-stay` — чисто - [x] web/app.py `post_select()`: редирект на кандидаты (src="candidates") после отбора - [x] web/app.py `candidates_bulk()` action=select: редирект на `back` (кандидаты) - [x] web/templates/selected.html: правое поле — резюме под кнопками, редактор/оригинал flex-grow-1, комментарий+публикация внизу, высоты calc(100vh - 160px) - [x] web/templates/candidates.html: высоты панелей calc(100vh - 160px) - [x] Smoke-тесты (read-only, TestClient): GET /candidates и /selected рендерятся, новая высота, резюме-блок, approve-форма внизу; редиректы select — проверены по коду + редирект single select подтверждён (Location=/candidates) - [x] Перезапуск `sudo systemctl restart vesti-web` (HTTP 200) - [ ] Обновить STATUS.md / TODO.md - [ ] Бэкап (крон 2:45 делает сам, вручную НЕ запускать) - [ ] Финальный e2e (временный select + откат статуса) — требует подтверждения пользователя (правило: не мутировать БД без явного согласия)