Skip to content

Latest commit

 

History

History
190 lines (144 loc) · 11.5 KB

File metadata and controls

190 lines (144 loc) · 11.5 KB

Product Constitution - Ключевые требования к продукту Super Valera

Область применения: Этот документ описывает требования к ПРОДУКТУ (AI-боту), а не к проекту (репозиторию). Термины см. в Глоссарии

Статус: Mandatory Версия: 1.1 Создан: 25.10.2025 Автор: Product Owner Обновлен: 25.10.2025

🎯 Конституция продукта Super Valera

Этот документ содержит неотъемлемые требования к продукту, которые не могут быть изменены или нарушены при разработке. Все реализации, планы и технические решения должны соответствовать этим принципам.

📜 Ключевые требования

1. Dialogue-Only Interaction (Только диалоговое взаимодействие)

ТРЕБОВАНИЕ: Пользователи взаимодействуют с системой ИСКЛЮЧИТЕЛЬНО через естественный текстовый диалог с AI-ассистентом.

Что ЗАПРЕЩЕНО:

  • ❌ Кнопки меню и навигация
  • ❌ Команды вида /start, /help, /services
  • ❌ Inline клавиатуры для выбора услуг
  • ❌ Любые элементы интерфейса кроме текста
  • ❌ Меню, списки, опции для клика

Что ОБЯЗАТЕЛЬНО:

  • ✅ Естественное общение через текстовые сообщения
  • ✅ AI понимает запросы на естественном языке
  • ✅ Контекстный диалог с памятью предыдущих сообщений
  • ✅ Проактивные предложения от ассистента

Пример правильного взаимодействия:

Пользователь: Привет! Что умеете?
Бот: Здравствуйте! Я помогу с кузовным ремонтом и покраской. Опишите вашу проблему, и я дам оценку стоимости. Чем могу помочь?

2. AI-First Approach (AI в первую очередь)

ТРЕБОВАНИЕ: AI должен быть основным интерфейсом пользователя, а не просто дополнительной функцией.

Что ОБЯЗАТЕЛЬНО:

  • ✅ AI анализирует контекст и предугадывает потребности
  • ✅ Естественный диалог без жестких сценариев
  • ✅ AI предлагает релевантные услуги на основе описания
  • ✅ Адаптация под стиль общения клиента

3. Russian Language Context (Русскоязычный контекст)

ТРЕБОВАНИЕ: Весь интерфейс и общение ведется на русском языке с учетом автомобильной терминологии.

Что ОБЯЗАТЕЛЬНО:

  • ✅ Русский язык для всех сообщений
  • ✅ Понимание автомобильного сленга и терминов
  • ✅ Контекст автосервиса и кузовного ремонта

4. System-First Logic Approach (Логика через системные промпты)

ТРЕБОВАНИЕ: Вся логика взаимодействия с клиентом и алгоритмы работы должны реализовываться через 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: "Если клиент упоминает ДТП - сразу уточни про тип страховки и предложи помощь с оформлением. Если спрашивает цены - покажи релевантные услуги в контексте его запроса. Будь проактивным и предлагай варианты."

5. No File Operations in Tests (Без файловых операций в тестах)

ТРЕБОВАНИЕ: В тестовой среде запрещены операции записи/чтения файлов для безопасности.

Что ЗАПРЕЩЕНО в тестах:

  • ❌ File.write, File.delete
  • ❌ Модификация ENV переменных
  • ❌ Мокирование логирования

🔍 Проверка соответствия

Любая реализация должна проверяться на соответствие этим требованиям:

Чек-лист проверки:

  • Нет кнопок или меню?
  • Взаимодействие только через текст?
  • AI понимает естественный язык?
  • Русский язык интерфейса?
  • Логика взаимодействия реализована через system prompts?
  • Безопасные тестовые практики?

⚡ Скорость взаимодействия

Требования к скорости ответа:

  • Текстовые ответы: < 2 секунд
  • Создание заявок: < 3 секунд

🚫 Анти-паттерны (Что никогда нельзя делать)

UI Анти-паттерны:

  • Кнопки "Показать услуги", "Записаться", "Цены"
  • Меню с категориями услуг
  • Inline клавиатуры для выбора
  • Команды /start, /help, /price

Dialog Анти-паттерны:

  • "Я бот, вот мои команды:"
  • "Выберите из меню:"
  • "Используйте /command"
  • Роботизированные ответы без контекста

Code Анти-паттерны:

  • Хардкодинг диалоговых сценариев в Ruby коде
  • Сложные conditional конструкции для обработки сообщений
  • Программирование реакций бота вместо настройки через промпты
  • Создание новой логики в коде вместо обновления system prompts

📊 Метрики соответствия

Ключевые метрики для проверки соблюдения конституции:

  • Dialog Success Rate: > 85% пользователей успешно решают задачи через диалог
  • AI Understanding Accuracy: > 80% запросов понимаются без уточнений
  • Natural Language Retention: 0% кнопок в интерфейсе

🔄 Обновление конституции

Важно: Эти требования являются фундаментом продукта и могут быть изменены только решением Product Owner с полным пересмотром архитектуры.

Процесс изменений:

  1. Признание необходимости изменения
  2. Обсуждение с командой
  3. Обновление версии конституции
  4. Пересмотр всех затронутых компонентов
  5. Тестирование соответствия

🔗 Связанные документы


Версии и изменения:

  • v1.0 (25.10.2025) - Базовая конституция с ключевыми принципами
  • v1.1 (25.10.2025) - Добавлен System-First Logic Approach (логика через системные промпты)
  • v1.2 (22.12.2025) - Удалён Visual Analysis Priority (отказ от фото-анализа)