Бот: @safeout_dates_bot.
SafeOut хранит всю информацию о свидании с человеком, которого ты знаешь только по переписке, и если ты не выйдешь на связь вовремя — сам напишет тем доверенным контактам, кто подключился к нему в Telegram, со всеми данными. Работает на русском, английском и турецком языках (/language).
Открой @safeout_dates_bot, нажми Start, выбери язык и добавь хотя бы одного доверенного контакта — /contacts → ➕ Добавить контакт.
Бот спросит имя, телефон, email и ник в Telegram — всё, кроме имени, можно пропустить командой /skip. Ник сразу пригодится в кнопке «Позвонить контакту» во время свидания как рабочая ссылка на его Telegram. В конце бот пришлёт ссылку-приглашение, которую нужно переслать этому человеку. Telegram не разрешает боту писать тем, кто сам никогда его не запускал, поэтому без перехода по ссылке и нажатия Start бот физически не сможет отправить контакту сообщение в случае тревоги.
Бот по очереди спросит имя человека и его ник в приложении знакомств, ссылку на профиль, место встречи, куда вы можете поехать дальше, номер и описание машины, любую другую важную информацию и время, к которому ты планируешь вернуться. Всё необязательное — через /skip.
Дальше пришли всё, что есть: фото человека, скриншоты переписки, фото документов, голосовые. Когда закончишь — нажми ✅ Готово с файлами.
Бот покажет чек-лист: часть пунктов отметит сам, остальное — отметь руками. Пункты с (!) обязательны (например, «первая встреча в публичном месте»). Когда всё готово — жми ▶️ Всё готово — начать свидание.
Сразу после старта поделись с ботом живой геолокацией (скрепка → Геопозиция → Транслировать геопозицию) — тогда на странице тревоги контакты будут видеть, где ты.
Каждые 15 минут бот присылает короткую проверку на 3 вопроса: ✅ Всё хорошо — свидание продолжается; ⚠️ Есть проблема — бот предложит расширенный чек-лист, звонок контакту или продолжить под наблюдением; 🆘 SOS — немедленная тревога. Проверить статус вручную в любой момент — /status.
Если ты не ответишь на проверку — через 15 минут бот автоматически напишет доверенным контактам, подключённым в Telegram, со всеми сохранёнными данными и ссылкой на страницу тревоги (там же — последняя геолокация, если она была отправлена боту).
Если ни один контакт недоступен — бот не даст начать свидание и явно предупредит, вместо того чтобы молча ничего не сделать в момент тревоги.
Кнопка 🆘 SOS есть в любом сообщении во время свидания и оповещает контакты немедленно, не дожидаясь 15 минут. Кнопка 🏠 Я дома, всё хорошо закрывает свидание и отправляет контактам сообщение, что всё в порядке — все данные остаются в истории на случай, если понадобятся позже.
| Команда | Что делает |
|---|---|
/start | Начать / перезапустить бота |
/newdate | Создать новое свидание |
/contacts | Доверенные контакты |
/checklist | Чек-лист безопасности |
/status | Проверка во время свидания |
/tubiki | Коллекция тюбиков 🙈 |
/language | Сменить язык |
/clear | Удалить данные о свиданиях |
Оповещение получают только те контакты, кто сам нажал Start по ссылке-приглашению — просто сохранить телефон недостаточно. Уведомления идут только через Telegram, файлы хранятся через сам Telegram без отдельного облака. Необязательные поля в опроснике пропускаются кнопкой «Пропустить →».
Этот бот целиком написан по сценарию: сначала я расписала весь путь пользователя репликами бота и ответами человека — то, что видно на вкладке «Скрипт» — а потом попросила Claude Code собрать по нему настоящего Telegram-бота. Вот как это устроено, если хочешь повторить для своей идеи.
Распиши весь путь пользователя репликами бота и ответами человека — как в разделе «Скрипт»: что бот спрашивает, какие кнопки показывает, что происходит в каждой ветке — успех, ошибка, тревога. Чем подробнее сценарий, тем точнее получится бот: он служит техническим заданием, а не просто иллюстрацией.
Опиши идею Claude — текстом или в виде HTML-страницы вроде этой — и попроси собрать по ней настоящего Telegram-бота. Если есть технические предпочтения по языку, базе данных или хостингу — укажи их; если нет — можно полностью довериться выбору Claude.
Claude Code пишет весь код: обработчики команд, схему базы данных, фоновые задачи для таймеров и эскалации, веб-страницу для доверенных контактов без Telegram. Сам регистрирует бота через @BotFather, находит и исправляет баги в собственном коде.
Claude Code разворачивает бота на облачном хостинге через командную строку — поднимает базу данных, очереди задач, публичный адрес — и сразу проверяет его в реальном Telegram, прежде чем делиться с другими людьми.
Готовый промпт — от лица опытного разработчика ботов. Скопируй его и передай Claude или другому AI, чтобы проверить своего бота по всем сценариям перед запуском.
Ты — опытный QA-инженер и разработчик Telegram-ботов с 8+ годами опыта. Проведи полное тестирование бота @safeout_dates_bot. Твоя задача — найти сломанные сценарии, непонятный UX и возможные утечки данных до публичного запуска.
Тестируй системно. После каждого шага фиксируй: корректен ли ответ бота, понятен ли он, нет ли ошибок.
---
1. ХОЛОДНЫЙ СТАРТ — НОВЫЙ ПОЛЬЗОВАТЕЛЬ
• Открой бот (или /start в новом аккаунте)
• Ожидаемо: экран согласия с данными и кнопка «Принимаю»
• Нажми «Принимаю» → должно прийти приветствие со списком команд
2. ЯЗЫК
• /language → смени на английский, потом обратно
• Проверь: все сообщения приходят на выбранном языке
3. СОЗДАНИЕ СВИДАНИЯ — /newdate
Пройди весь опросник:
• Имя партнёра: «Алексей»
• Ссылка на профиль: настоящая ссылка, потом /skip
• Место встречи: «Кафе Мята, ул. Ленина 5»
• Маршрут: /skip
• Машина: «А123БВ 77 белая Tesla»
• Доп. инфо: «Высокий, борода»
• Время возврата: сначала «23:00», потом создай новое и введи «через 30 минут»
(должно быть +30 мин, а не +30 часов!)
4. НАВИГАЦИЯ НАЗАД
• В середине опросника нажми /back
• Ожидаемо: возврат к предыдущему вопросу
• /back на первом шаге — должно игнорировать
5. ЗАГРУЗКА ФАЙЛОВ
• Отправь фото, голосовое и документ
• Кнопка «Готово» должна оставаться внизу чата после каждого файла
• Нажми «Готово» без файлов — должно работать
6. ЧЕК-ЛИСТ
Компактный вид:
• «Всё готово — начать» → свидание начинается без чеклиста
Подробный вид:
• «Кое-чего нет — посмотреть список» → список с кнопками
• Переключи несколько пунктов: ⬜ → ✅ → ❌ → ⬜
• «Отметить всё» → все ✅
• «Назад» → компактный вид
• «Начать» из подробного — свидание начинается
7. АКТИВНАЯ СЕССИЯ — ПИНГИ
• Дождись первого пинга (15 минут по умолчанию)
• Нажми «Всё хорошо» → следующий пинг запланирован
• Пропусти пинг → должна сработать эскалация
8. SOS
• Во время активной сессии нажми SOS
• Доверенный контакт должен получить сообщение с ссылкой на страницу тревоги
• Открой ссылку — все данные свидания видны
9. ВОЗВРАТ ДОМОЙ
• Нажми «Я дома» — сессия завершается, пинги прекращаются
• Сообщение должно быть тёплым, а не официальным
10. ДОВЕРЕННЫЕ КОНТАКТЫ
• /contacts → добавь контакт с именем и телефоном
• Скопируй invite-ссылку, открой в другом аккаунте
• Второй аккаунт видит подтверждение, первый — уведомление
11. ОЧИСТКА ДАННЫХ
• /clear → подтверждение с предупреждением
• «Отмена» → ничего не удалено
• Создай свидание, снова /clear и подтверди
• Данные о свидании удалены, контакты остались
12. ГРАНИЧНЫЕ СЛУЧАИ
• Случайный текст вне любого сценария — бот не должен крашиться
• Строка из 500+ символов в любом поле
• /newdate во время активной сессии
---
По каждому сбою фиксируй: что сделал → что ожидал → что получил.
Отправь результаты: julia.vl.reprintseva@gmail.com