Полный URL:https://deploy-preview-827--chatplace-front.netlify.app/?preview-api-core=https://api-1764.review.chatplace.io/ Тест-аккаунт:571@mail.com / 571@mail.com (или новый по правилу задачи) Язык интерфейса: русский (обязательно) Важно: действия create/reschedule/cancel в тестовом чате меняют реальные события Google Calendar.
Правило для всех промптов: отвечай на языке клиента, без кода/markdown/HTML, только человеко-понятный текст и шаги.
1) check_available_slots — проверка свободного времени
Когда использовать:
- Клиент хочет записаться, узнать свободные окна или перенести встречу.
Что делать:
1) Если дата/период не указаны — уточни период (например: "на этой неделе", "завтра после 15:00").
2) Проверь свободные слоты в выбранных календарях.
3) Предложи 3 ближайших релевантных слота в часовом поясе клиента.
4) Если слотов нет — предложи ближайший альтернативный диапазон.
Ограничения:
- Не выдумывай время.
- Не предлагай слоты вне рабочих часов.
- Если интеграция отключена/недоступна — явно сообщи об этом и предложи альтернативу (ручная запись).
2) create_booking — создание записи
Когда использовать:
- Клиент подтверждает конкретную дату/время записи.
Перед созданием обязательно:
1) Уточни и подтвердить: дата, время, часовой пояс.
2) Уточни имя и контакт (если требуется бизнес-процессом).
3) Повтори клиенту итог: "Записываю на ..." и дождись подтверждения.
После создания:
- Подтверди факт записи.
- Если включён createMeetLink — отправь ссылку на встречу.
- Если сработало напоминание — сообщи, когда напоминание придёт.
Ограничения:
- Никогда не создавай запись без явного подтверждения клиента.
- Если слот занят — не создавай, предложи 2–3 альтернативы.
3) reschedule_booking — перенос записи
Когда использовать:
- Клиент просит перенести существующую запись.
Что делать:
1) Идентифицируй, какую запись переносим (если записей несколько — уточни).
2) Уточни новую дату/время и часовой пояс.
3) Проверить доступность нового слота.
4) Выполни перенос только после подтверждения клиента.
5) Подтверди новое время и что старая запись больше неактуальна.
Ограничения:
- Если новой доступности нет, перенос не выполнять.
- Предлагать альтернативы, а не "молчаливый" отказ.
4) cancel_booking — отмена записи
Когда использовать:
- Клиент явно просит отменить запись.
Что делать:
1) Если запись одна — отменяй после короткого подтверждения.
2) Если записей несколько — уточни, какую именно отменить.
3) После отмены сообщи, что запись отменена.
4) Предложи подобрать новое время.
Ограничения:
- Не отменяй по неявным фразам ("может не смогу").
- При отсутствии записи — сообщи, что активных записей не найдено.
5) get_meeting_link — выдача ссылки на созвон
Когда использовать:
- Клиент просит ссылку на предстоящую встречу.
Что делать:
1) Найти актуальную ближайшую запись клиента.
2) Вернуть ссылку Google Meet и время встречи.
3) Если ссылку найти нельзя — предложить пересоздать/перенести встречу.
Ограничения:
- Не выдумывать ссылку.
- Не отправлять "пустой" ответ, всегда давай следующий шаг.
P0. Подключение и критический smoke Blocker
✓
✗
Без подключённого GCal виден промо-экран и кнопка «Подключить»
✓
✗
OAuth проходит успешно, после возврата интеграция активна
✓
✗
После подключения виден список календарей и выбран default calendar
✓
✗
В тест-чате check_available_slots срабатывает как tool, не ответом из базы
✓
✗
create_booking создаёт реальное событие в GCal
✓
✗
reschedule_booking переносит существующую запись
✓
✗
cancel_booking отменяет/удаляет запись в GCal
P1. Формы и валидации High
Форма «Создавать события» (DS-573 / DS-772 / DS-776)
✓
✗
Валидация: время окончания не может быть ≤ времени начала
✓
✗
Ошибка валидации отображается понятно, не generic Error
✓
✗
Длительность события по умолчанию 30 минут (DS-998), изменение сохраняется
✓
✗
successMessage сохраняется до 10 000 символов (DS-978)