---
name: bots-single-voice-vy
description: Все боты семьи говорят на «вы» и называют одно действие одним словом; замену «ты»→«вы» делать скриптом с ручной картой форм и обязательным пост-сканом — регекс ломает согласование и трогает системные промпты LLM
metadata: 
  node_type: memory
  type: feedback
  originSessionId: b11e39bd-4f6f-47c9-ba7b-680ccf041a5b
  modified: 2026-08-06T16:35:28.225Z
---

**Решение 06.08.2026:** единый голос семьи — **«вы»**. Так говорят все четыре сайта, бот Автеро и
витрина; на «ты» был только бот ВакХантера, и первый экран противоречил сайту, с которого человек
пришёл. Одно действие — одно имя: «❓ Как пользоваться» у ВакХантера переименовано в **«ℹ️ Помощь»**,
как у Автеро (4 вхождения + описание команды /help).

**Why:** решение принял сам, владелец его не выбирал — обратимо одной заменой, бэкап лежит
в `/tmp/vh-bot-backup-*`.

**How to apply.** Скрипт `scratchpad/voice.py`: карта форм (повелительное наклонение, местоимения,
глаголы 2 л.), сначала `--dry-run`, потом `--apply`. 262 строки в ВакХантере, 24 в CryptoPilot.
Три грабли, каждая проверена:

- **Системные промпты LLM трогать нельзя.** «Ты — ИИ-ассистент…» адресовано модели. Скрипт исключает
  `ai_assistant.py` и строки с `system_prompt`, но `translator.py` прятал промпт в
  `{"role": "system", ...}` — фильтр его не поймал, откатывал вручную. **Грепать `role.*system`
  отдельно.**
- **Регекс ломает согласование:** «Вы переходишь», «что бы сделал вы», «Когда будете готов».
  После замены обязателен пост-скан на `[а-яё]+(ешь|ишь|аешь)` и `готов(?![аыио])`.
- **Комментарии в коде не трогать** — это разговор разработчиков, а не с пользователем.

Проверено живьём через [[bot_ux_audit_skill]]: `/start`, `/help`, неизвестная команда у
ВакХантера и Автеро, `/start` у CryptoPilot и @CeBers_VPN_bot — 0 находок измерителя.
У VPN-бота попутно нашёлся невыпиленный `is_persistent=True` (семь рядов кнопок нельзя было свернуть).
