User Stories: CalmTrader MVP¶
Версия: 1.0 Дата: 13.01.2026 Количество: 20 user stories
Формат User Story¶
Каждая user story содержит:
- Роль — кто использует функцию
- Действие — что хочет сделать
- Ценность — зачем это нужно
- Acceptance Criteria — критерии выполнения
- Приоритет — High / Medium / Low
- Story Points — оценка сложности (1-8)
Онбординг (US-001 — US-003)¶
US-001: Первый запуск бота¶
Как новый пользователь, Я хочу запустить бота командой /start, Чтобы начать использовать сервис.
Acceptance Criteria:
- AC1: Команда /start создаёт запись пользователя в БД
- AC2: Telegram ID сохраняется уникальным
- AC3: Повторный /start не создаёт дубликат
- AC4: Отображается экран настроек с приветствием
- AC5: Язык определяется автоматически по Telegram
Приоритет: High Story Points: 3 Связь: A4A-38
US-002: Настройка языка¶
Как пользователь, Я хочу выбрать язык интерфейса (русский или английский), Чтобы получать сообщения на понятном мне языке.
Acceptance Criteria:
- AC1: В настройках есть кнопка выбора языка
- AC2: Доступны варианты: Русский, English
- AC3: Выбор сохраняется в БД (поле language_code)
- AC4: Все последующие сообщения на выбранном языке
- AC5: Команды бота (/start, /help) локализованы
Приоритет: High Story Points: 2 Связь: A4A-38
US-003: Настройка голосовых предпочтений¶
Как пользователь, Я хочу настроить голосовые параметры агента, Чтобы получать ответы в предпочтительном формате.
Acceptance Criteria:
- AC1: Выбор режима: текстовый или голосовой
- AC2: Выбор пола голоса агента: мужской или женский
- AC3: Выбор TTS провайдера: OpenAI или ElevenLabs
- AC4: Выбор конкретного голоса из списка
- AC5: Настройка скорости речи (0.8 / 1.0 / 1.2)
- AC6: Все настройки сохраняются в профиле
Приоритет: Medium Story Points: 5 Связь: A4A-148
Check-in / Checkout (US-004 — US-007)¶
US-004: Pre-market check-in (короткий)¶
Как трейдер перед торговой сессией, Я хочу быстро пройти check-in за 1-2 минуты, Чтобы оценить свою готовность к торговле.
Acceptance Criteria:
- AC1: Команда /checkin показывает выбор длительности
- AC2: Кнопка "Быстро (1-2 мин)" выбирает короткий режим
- AC3: Отправляется короткий системный промпт
- AC4: Агент задаёт 2-3 ключевых вопроса
- AC5: Состояние агента меняется на IN_SESSION_SHORT
Приоритет: High Story Points: 3 Связь: A4A-34
US-005: Pre-market check-in (полный)¶
Как трейдер, желающий глубоко проработать состояние, Я хочу пройти полный check-in без ограничения времени, Чтобы получить максимально персонализированные рекомендации.
Acceptance Criteria:
- AC1: Кнопка "Полная (до 10+ мин)" выбирает unlimited режим
- AC2: Отправляется полный системный промпт
- AC3: Агент проводит глубокое интервью
- AC4: Состояние агента меняется на IN_SESSION_UNLIMITED
- AC5: Агент даёт развёрнутые CBT-рекомендации
Приоритет: High Story Points: 5 Связь: A4A-34
US-006: Post-market checkout¶
Как трейдер после торговой сессии, Я хочу провести рефлексию торгового дня, Чтобы проанализировать эмоции и извлечь уроки.
Acceptance Criteria:
- AC1: Команда /checkout показывает выбор длительности
- AC2: Доступны 3 режима: короткий, средний, полный
- AC3: Отправляется соответствующий промпт для checkout
- AC4: Агент анализирует результаты и эмоции дня
- AC5: Состояние агента меняется на OUT_SESSION_*
Приоритет: High Story Points: 3 Связь: A4A-35
US-007: Персонализированное приветствие¶
Как пользователь, Я хочу получать персонализированное приветствие при check-in/checkout, Чтобы чувствовать индивидуальный подход.
Acceptance Criteria:
- AC1: Приветствие содержит имя пользователя
- AC2: Учитывается время суток (утро/день/вечер)
- AC3: Учитываются предыдущие заметки агента
- AC4: Приветствие генерируется через OpenAI
- AC5: Разные приветствия для check-in и checkout
Приоритет: Medium Story Points: 3 Связь: A4A-145
Практики осознанности (US-008 — US-014)¶
US-008: Выбор категории практики¶
Как трейдер, желающий восстановить спокойствие, Я хочу выбрать категорию практики осознанности, Чтобы получить подходящее упражнение для моей ситуации.
Acceptance Criteria:
- AC1: Команда /meditate показывает 4 категории (дыхание, общие, ситуативные, справка)
- AC2: Каждая категория имеет название и эмодзи-иконку
- AC3: Категории отображаются как inline-кнопки
- AC4: Показывается персонализированное приветствие с изображением
- AC5: Кнопка "Назад" для навигации между уровнями
Приоритет: High Story Points: 3 Связь: A4A-37, A4A-235, A4A-259
Категории:
| # | Категория | Описание |
|---|---|---|
| 1 | 🌬️ Дыхательные упражнения | 5 техник для быстрого успокоения |
| 2 | 📿 Общие практики | 6 медитаций на каждый день |
| 3 | 🎯 Ситуативные практики | 8 медитаций для конкретных эмоций |
| 4 | 📖 Справка и методология | Описание подхода и рекомендации |
US-009: Выбор дыхательной техники¶
Как трейдер, испытывающий острый стресс, Я хочу выбрать технику дыхания из категории "Дыхательные упражнения", Чтобы быстро восстановить спокойствие.
Acceptance Criteria:
- AC1: Категория "Дыхательные" показывает 5 техник
- AC2: Каждая техника имеет название
- AC3: Техники отображаются как inline-кнопки (2+2+1)
- AC4: Кнопка "Назад" возвращает к категориям
- AC5: После выбора — выбор длительности (3/5/10 мин)
Приоритет: High Story Points: 3 Связь: A4A-37, A4A-235
Техники:
| # | Техника | Назначение |
|---|---|---|
| 1 | Physiological Sigh | Экстренное успокоение (30 сек) |
| 2 | Box Breathing | Баланс и фокус (2-3 мин) |
| 3 | 4-7-8 Breathing | Глубокое расслабление (3-5 мин) |
| 4 | Coherent Breathing | Базовая практика (5-20 мин) |
| 5 | Extended Exhale | Поддержание спокойствия (2-5 мин) |
US-010: Выполнение дыхательной практики¶
Как пользователь, Я хочу выполнить дыхательную практику с аудио-сопровождением, Чтобы правильно следовать ритму дыхания.
Acceptance Criteria:
- AC1: Выбор длительности: short (3 мин) / medium (5 мин) / long (10 мин)
- AC2: Кнопки "Техника" (объяснение) и "Выполнить" (практика)
- AC3: Аудио динамически собирается из частей
- AC4: Части: intro, inhale, hold, exhale, outro
- AC5: Формат: OGG Opus для Telegram voice
- AC6: После паузы (5 сек) появляется кнопка "Готово"
Приоритет: High Story Points: 8 Связь: A4A-235
US-011: Выбор медитации¶
Как трейдер, желающий восстановиться, Я хочу выбрать guided медитацию из общих или ситуативных, Чтобы получить направленную практику для моей ситуации.
Acceptance Criteria:
- AC1: Категория "Общие практики" показывает 6 медитаций
- AC2: Категория "Ситуативные" показывает 8 медитаций
- AC3: Каждая медитация имеет название и кнопку
- AC4: Кнопка "Справка" объясняет назначение категории
- AC5: Кнопка "Назад" возвращает к категориям
Приоритет: High Story Points: 3 Связь: A4A-259
Общие медитации:
| # | Медитация | Назначение |
|---|---|---|
| 1 | Morning Focus | Утренняя настройка на день |
| 2 | Evening Reflection | Вечерняя рефлексия |
| 3 | Success Visualization | Визуализация успеха |
| 4 | Patience Cultivation | Развитие терпения |
| 5 | Acceptance Practice | Принятие результатов |
| 6 | Market Detachment | Отстранённость от рынка |
Ситуативные медитации:
| # | Медитация | Назначение |
|---|---|---|
| 1 | Loss Recovery | Восстановление после убытка |
| 2 | Tilt Prevention | Предотвращение тильта |
| 3 | Overtrading Reset | Сброс после овертрейдинга |
| 4 | FOMO Intervention | Работа с FOMO |
| 5 | Risk Mindset | Правильный риск-менеджмент |
| 6 | Revenge Trading | Предотвращение мести рынку |
| 7 | Profit Anxiety | Тревога из-за прибыли |
| 8 | Analysis Paralysis | Паралич анализа |
US-012: Прослушивание медитации¶
Как пользователь, Я хочу прослушать guided медитацию с ambient звуками, Чтобы расслабиться и восстановить силы.
Acceptance Criteria:
- AC1: После выбора начинается генерация аудио
- AC2: Показывается индикатор "Генерируем..."
- AC3: Аудио собирается динамически из частей
- AC4: Добавляется 1 из 10 ambient звуков (лес, дождь, океан и др.)
- AC5: Отправляется как voice message в Telegram
- AC6: После паузы появляется кнопка "Готово"
Приоритет: High Story Points: 8 Связь: A4A-259
US-013: Feedback после дыхательной практики¶
Как пользователь, завершивший дыхательную практику, Я хочу поделиться ощущениями с агентом, Чтобы получить поддержку и рекомендации.
Acceptance Criteria:
- AC1: Кнопка "Готово" удаляется после нажатия
- AC2: Состояние агента меняется на BREATHE_FEEDBACK
- AC3: Агент получает контекст: техника + длительность
- AC4: Агент спрашивает об ощущениях
- AC5: Ответы учитываются для персонализации
Приоритет: Medium Story Points: 3 Связь: A4A-235
US-014: Feedback после медитации¶
Как пользователь, завершивший медитацию, Я хочу обсудить ощущения с агентом, Чтобы закрепить эффект и получить рекомендации.
Acceptance Criteria:
- AC1: Кнопка "Готово" удаляется после нажатия
- AC2: Состояние агента меняется на MEDITATE_FEEDBACK
- AC3: Агент получает контекст: тип медитации
- AC4: Агент спрашивает об ощущениях
- AC5: Агент даёт рекомендации на основе feedback
Приоритет: Medium Story Points: 3 Связь: A4A-259
AI Agent (US-015 — US-017)¶
US-015: Текстовое общение с агентом¶
Как пользователь, Я хочу общаться с AI-агентом текстовыми сообщениями, Чтобы получать поддержку и рекомендации.
Acceptance Criteria:
- AC1: Любое текстовое сообщение отправляется агенту
- AC2: Показывается индикатор набора текста
- AC3: Агент отвечает в течение 5 секунд
- AC4: Ответ учитывает текущее состояние агента
- AC5: Сообщения сохраняются в БД
Приоритет: High Story Points: 5 Связь: A4A-145
US-016: Голосовое сообщение агенту¶
Как пользователь, Я хочу отправить агенту голосовое сообщение, Чтобы быстрее выразить мысли без набора текста.
Acceptance Criteria:
- AC1: Голосовое сообщение принимается ботом
- AC2: Сообщение транскрибируется через Whisper
- AC3: Транскрипция отправляется агенту
- AC4: Аудио сохраняется в MinIO
- AC5: Ограничение: максимум 20 минут
Приоритет: High Story Points: 5 Связь: A4A-147
US-017: Получение CBT-рекомендации¶
Как трейдер, испытывающий негативные эмоции, Я хочу получить рекомендацию на основе CBT-методологии, Чтобы изменить деструктивные паттерны мышления.
Acceptance Criteria:
- AC1: Агент распознаёт негативные паттерны (FOMO, tilt)
- AC2: Агент применяет CBT-техники в ответах
- AC3: Рекомендации персонализированы
- AC4: Агент предлагает практику (дыхание/медитация) при необходимости
- AC5: Заметки о пользователе обновляются
Приоритет: High Story Points: 5 Связь: A4A-36
Управление (US-018 — US-020)¶
US-018: Сброс истории чата¶
Как пользователь, Я хочу очистить историю общения с ботом, Чтобы начать с чистого листа.
Acceptance Criteria:
- AC1: Команда /reset запрашивает подтверждение
- AC2: При подтверждении удаляются сообщения из Telegram
- AC3: Удаляются записи сообщений из БД
- AC4: Сбрасываются заметки агента
- AC5: Сбрасывается состояние агента на IDLE
Приоритет: Medium Story Points: 3 Связь: A4A-75
US-019: Изменение настроек¶
Как пользователь, Я хочу изменить настройки бота в любой момент, Чтобы адаптировать его под текущие потребности.
Acceptance Criteria:
- AC1: Команда /settings открывает меню настроек
- AC2: Все настройки сгруппированы по категориям
- AC3: Изменения применяются сразу
- AC4: Кнопка "Назад" возвращает в главное меню
- AC5: Кнопка "Продолжить" переводит к агенту
Приоритет: Medium Story Points: 3 Связь: A4A-38
US-020: Просмотр статистики (admin)¶
Как администратор, Я хочу видеть статистику использования бота, Чтобы мониторить активность пользователей.
Acceptance Criteria:
- AC1: Команда /users доступна только админам
- AC2: Показывается список пользователей
- AC3: Для каждого пользователя — дата последней активности
- AC4: Возможность фильтрации по активности
- AC5: Админ-панель показывает расширенную статистику
Приоритет: Medium Story Points: 5 Связь: A4A-39
Сводная таблица¶
| ID | Название | Приоритет | SP | Статус |
|---|---|---|---|---|
| US-001 | Первый запуск бота | High | 3 | Done |
| US-002 | Настройка языка | High | 2 | Done |
| US-003 | Настройка голосовых предпочтений | Medium | 5 | Done |
| US-004 | Pre-market check-in (короткий) | High | 3 | Partial |
| US-005 | Pre-market check-in (полный) | High | 5 | Partial |
| US-006 | Post-market checkout | High | 3 | Partial |
| US-007 | Персонализированное приветствие | Medium | 3 | Done |
| US-008 | Выбор категории практики | High | 3 | Done |
| US-009 | Выбор дыхательной техники | High | 3 | Done |
| US-010 | Выполнение дыхательной практики | High | 8 | Done |
| US-011 | Выбор медитации | High | 3 | Done |
| US-012 | Прослушивание медитации | High | 8 | Done |
| US-013 | Feedback после дыхательной практики | Medium | 3 | Done |
| US-014 | Feedback после медитации | Medium | 3 | Done |
| US-015 | Текстовое общение с агентом | High | 5 | Done |
| US-016 | Голосовое сообщение агенту | High | 5 | Done |
| US-017 | Получение CBT-рекомендации | High | 5 | Partial |
| US-018 | Сброс истории чата | Medium | 3 | Done |
| US-019 | Изменение настроек | Medium | 3 | Done |
| US-020 | Просмотр статистики (admin) | Medium | 5 | In Progress |
Итого Story Points: 76
Документ создан: 13.01.2026 Версия: 1.0