Область применения: Этот документ описывает требования к ПРОДУКТУ (AI-боту), а не к проекту (репозиторию). Термины см. в Глоссарии
Статус: Mandatory Версия: 1.1 Создан: 25.10.2025 Автор: Product Owner Обновлен: 25.10.2025
Этот документ содержит неотъемлемые требования к продукту, которые не могут быть изменены или нарушены при разработке. Все реализации, планы и технические решения должны соответствовать этим принципам.
ТРЕБОВАНИЕ: Пользователи взаимодействуют с системой ИСКЛЮЧИТЕЛЬНО через естественный текстовый диалог с AI-ассистентом.
Что ЗАПРЕЩЕНО:
- ❌ Кнопки меню и навигация
- ❌ Команды вида /start, /help, /services
- ❌ Inline клавиатуры для выбора услуг
- ❌ Любые элементы интерфейса кроме текста
- ❌ Меню, списки, опции для клика
Что ОБЯЗАТЕЛЬНО:
- ✅ Естественное общение через текстовые сообщения
- ✅ AI понимает запросы на естественном языке
- ✅ Контекстный диалог с памятью предыдущих сообщений
- ✅ Проактивные предложения от ассистента
Пример правильного взаимодействия:
Пользователь: Привет! Что умеете?
Бот: Здравствуйте! Я помогу с кузовным ремонтом и покраской. Опишите вашу проблему, и я дам оценку стоимости. Чем могу помочь?
ТРЕБОВАНИЕ: AI должен быть основным интерфейсом пользователя, а не просто дополнительной функцией.
Что ОБЯЗАТЕЛЬНО:
- ✅ AI анализирует контекст и предугадывает потребности
- ✅ Естественный диалог без жестких сценариев
- ✅ AI предлагает релевантные услуги на основе описания
- ✅ Адаптация под стиль общения клиента
ТРЕБОВАНИЕ: Весь интерфейс и общение ведется на русском языке с учетом автомобильной терминологии.
Что ОБЯЗАТЕЛЬНО:
- ✅ Русский язык для всех сообщений
- ✅ Понимание автомобильного сленга и терминов
- ✅ Контекст автосервиса и кузовного ремонта
ТРЕБОВАНИЕ: Вся логика взаимодействия с клиентом и алгоритмы работы должны реализовываться через system prompts, а не через программный код.
Что ОБЯЗАТЕЛЬНО:
- ✅ Диалоговые сценарии описываются в system prompts
- ✅ Поведение AI настраивается через промпты: это означает, что мы определяем стиль общения, тон личности, реакцию на типичные ситуации, правила вежливости и специфику автомобильной терминологии через текстовые инструкции в system prompt, а не через программные условия в коде
- ✅ Алгоритмы обработки запросов реализуются через инструкции
- ✅ Изменение логики через обновление промптов, а не кода
Что ЗАПРЕЩЕНО:
- ❌ Создание жесткой логики в коде для диалогов
- ❌ Программирование сценариев взаимодействия в Ruby
- ❌ Хардкодинг ответов и реакций бота
- ❌ Сложные conditional конструкции для обработки сообщений
Пример правильного подхода:
Настройка поведения AI через system prompt:
System Prompt: "Ты - эксперт по кузовному ремонту с 10-летним опытом. Общайся дружелюбно, но профессионально. Используй автомобильные термины, но объясняй их простым языком. Всегда предлаги 2-3 варианта ремонта с разными ценами. При упоминании ДТП сразу уточни про страховку (ОСАГО/КАСКО)."
Алгоритм обработки запросов через инструкции:
System Prompt: "Когда клиент описывает повреждение:
1. Сначала уточни детали: тип повреждения, размер, расположение
2. Определи возможные способы ремонта (PDR, покраска, замена)
3. Предложи 2-3 варианта ремонта с ценами и сроками
4. Спроси, какой вариант предпочитает клиент
5. При согласии - собери данные для записи"
Пример того, что НЕЛЬЗЯ делать (в коде):
# ❌ ПЛОХО - Хардкодинг логики в коде
def handle_message(message)
if message.include?("ДТП")
response = "Произошло ДТП? У вас есть ОСАГО или КАСКО?"
if message.include?("КАСКО")
response = "Отлично! Помогу с оформлением КАСКО. Опишите повреждения"
end
elsif message.include?("цена")
response = "Наши цены: замена бампера - 15000р, покраска двери - 12000р"
end
send_message(response)
endВместо этого используем system prompt с инструкциями:
System Prompt: "Если клиент упоминает ДТП - сразу уточни про тип страховки и предложи помощь с оформлением. Если спрашивает цены - покажи релевантные услуги в контексте его запроса. Будь проактивным и предлагай варианты."
ТРЕБОВАНИЕ: В тестовой среде запрещены операции записи/чтения файлов для безопасности.
Что ЗАПРЕЩЕНО в тестах:
- ❌ File.write, File.delete
- ❌ Модификация ENV переменных
- ❌ Мокирование логирования
Любая реализация должна проверяться на соответствие этим требованиям:
- Нет кнопок или меню?
- Взаимодействие только через текст?
- AI понимает естественный язык?
- Русский язык интерфейса?
- Логика взаимодействия реализована через system prompts?
- Безопасные тестовые практики?
- Текстовые ответы: < 2 секунд
- Создание заявок: < 3 секунд
- Кнопки "Показать услуги", "Записаться", "Цены"
- Меню с категориями услуг
- Inline клавиатуры для выбора
- Команды /start, /help, /price
- "Я бот, вот мои команды:"
- "Выберите из меню:"
- "Используйте /command"
- Роботизированные ответы без контекста
- Хардкодинг диалоговых сценариев в Ruby коде
- Сложные conditional конструкции для обработки сообщений
- Программирование реакций бота вместо настройки через промпты
- Создание новой логики в коде вместо обновления system prompts
- Dialog Success Rate: > 85% пользователей успешно решают задачи через диалог
- AI Understanding Accuracy: > 80% запросов понимаются без уточнений
- Natural Language Retention: 0% кнопок в интерфейсе
Важно: Эти требования являются фундаментом продукта и могут быть изменены только решением Product Owner с полным пересмотром архитектуры.
- Признание необходимости изменения
- Обсуждение с командой
- Обновление версии конституции
- Пересмотр всех затронутых компонентов
- Тестирование соответствия
Версии и изменения:
- v1.0 (25.10.2025) - Базовая конституция с ключевыми принципами
- v1.1 (25.10.2025) - Добавлен System-First Logic Approach (логика через системные промпты)
- v1.2 (22.12.2025) - Удалён Visual Analysis Priority (отказ от фото-анализа)