---
name: investpilot-plain-language
description: КодИнвест — весь пользовательский текст бота должен быть понятен человеку без инвест-бэкграунда
metadata:
  node_type: memory
  type: feedback
  originSessionId: 6f344612-b945-4107-b457-8ad2163cd988
  modified: 2026-07-23T08:02:51.714Z
---

Владелец (2026-07-23): «Во всём боте должно быть все достаточно понятно, так
как я не разбираюсь в инвестициях» — после того как первая точечная правка
одного сообщения (дайджест идей) была принята, стало ясно, что это не разовая
правка, а системное требование ко ВСЕМ пользовательским текстам бота.

**Why:** владелец — не инвестор-профи, ему прямая аудитория для этого
продукта. Инженерный жаргон (гейт/консенсус/RR/conf/вселенная/чанки/
эмбеддинги/дистилляция и т.п.), просочившийся из кода в тексты Telegram,
делает карточки нечитаемыми без контекста разработки.

**How to apply:** при ЛЮБОЙ новой пользовательской строке в investpilot
(карточка, кнопка, статус) — писать сразу на понятном языке, без сокращений
без расшифровки. Общий модуль для перевода причин гейтов —
`src/investpilot/signals/plain_language.py` (`explain_gate_reason`), тянуть
через него, а не плодить сырые строки из `signals/gates.py` в тексте.
Особо чувствительная зона — «песочница»/paper trading: ВСЕГДА явно помечать
«(виртуально, деньги не тратятся)», иначе риск, что владелец не поймёт,
реальная это сделка или тест. Полный проход по всем текстам сделан вручную
(не агентами) — единая интонация важнее скорости; см. Obsidian Changelog
«понятный язык во всём боте».

**Проверено, но не 100% покрытие:** аудит (Explore-агент) прошёлся по
formatting.py/scheduler.py/real_portfolio.py/bonds.py/money_market.py/
payout_calendar.py/portfolio.py/handlers.py/keyboards.py — основной массив
закрыт. LLM-генерируемый текст (`why`/`risks`/постмортемы) не трогали — это
свободная речь модели, не фиксированный шаблон.

**Паттерн «что и как» к каждой рекомендации (владелец сослался на
[[oddiks_overview]] — там `_fonbet_hint` есть у каждого пика).** В
investpilot: `render_signal` уже так делал (`_execute_steps`), добавлено
туда же — `bonds.py::render_ofz`, `portfolio.py::render_portfolio`,
`real_portfolio.py::deep_review` (детерминированный футер, не полагаемся
на LLM не забыть шаги). Правило на будущее: любая НОВАЯ карточка/сообщение
с actionable-рекомендацией (купить/продать/докупить) обязана нести
конкретный «Т-Инвестиции → найти X → ...» рядом, а не только цифры.
