find · v1.0.0 · 2026-09-24 · sha256 2d54233aaf407120

find v1.0.0A

Immutable. This exact content never changes and is served at /api/v1/blob/2d54233aaf407120.

---
name: find
description: "- Find a person, lead, contact or company by name in ANY spelling — deterministic name search that catches transliteration (Victor/Viktor/виктор), wrong keyboard layout (dbrnjh = виктор), and typos (висктор). Trigger on “/find <name>“, “найди <имя>“, “найди компанию <X>“, “все Викторы“, “кто такой <имя>“, “find <name>“, “покажи всех <имя>“"
version: 1.0.0
---

# /find — умный поиск имени/компании по написанию

> 🧒 **When reporting to Anton:** end with a child-simple "Простыми словами" recap.

Детерминированный, 0 токенов — **НЕ RAG**. Эмбеддинги не понимают каракули (`dbrnjh`, опечатки, раскладку); это ловит отдельный код по фонетическим отпечаткам + нечёткому сравнению. Для поиска по СМЫСЛУ — это `/ask`, не сюда.

## Когда сюда
«найди Виктора» · «все Викторы» · «найди компанию Мерлион» · «кто такой <имя>» · `dbrnjh`/опечатки/транслит — любое имя ЧЕЛОВЕКА, лида, контакта или КОМПАНИИ в любом написании.

## Запуск (ВСЕГДА `PYTHONUTF8=1` — иначе cp1252 краш на виндовой консоли)
`PYTHONUTF8=1 python "$IMPORTS_ROOT/namesearch/find_name.py" <имя> [--html] [--all]`
- по умолчанию: лиды + люди + компании + Apple-контакты (заметки волта скрыты)
- `--all` — добавить заголовки заметок всего волта
- `--html` — визуальный дашборд в `_Dashboards\Name-Search-*.html` (Антон работает глазами — предлагай его для длинных списков)

Имя в кириллице даёт чистый запрос (виктор → ровно `viktor`); раскладочный/опечаточный запрос — расширяется автоматически.

## Сперва спроси WhatsApp-базу, если ищешь по ПЕРЕПИСКЕ
`namesearch` знает имена и карточки, но НЕ знает текста WhatsApp: 148 978 сообщений живут в
`[путь владельца]` (SQLite+FTS5, 0 токенов), и в волт едет только хвост
транскрипта -- «не нашёл в заметках» там не значит «не было».
- по человеку: `SELECT name,n,n_mine,first,last FROM chats WHERE name LIKE '%<имя>%'`
- по телефону: `SELECT name,handle,wa_phone FROM people WHERE wa_phone LIKE '%<хвост>'` (leads.db)
- по словам: `SELECT chat_name,sender,text FROM messages_fts WHERE messages_fts MATCH '<слово>' LIMIT 20`
Витрины: [[_WhatsApp-People-Index]] (люди) · [[_WhatsApp-Chats-Index]] (все чаты, включая ниже порога).

## Смежное
- `expand_query.py <слово> [--grep] [--line]` — развернуть слово во все написания для grep по волту или для скармливания в `/ask` (RAG-хук).
- Индекс `names.db` пересобирается недельной задачей (и вручную `name_index.py --vault`). Если после большого импорта чего-то не хватает — упомяни, что нужна пересборка; сам не запускай без спроса.

## Ответ
- Дай список/таблицу (display · тип · файл-ссылка); для длинного — `--html` дашборд.
- Компания всплывает первой по запросу фирмы + связанные люди.
- Если 0 хитов — скажи прямо, предложи проверить написание или пересобрать индекс; не угадывай.
- Коротко; закончи 🧒-рекапом.

## Не путать
- `/ask` = по смыслу (RAG, эмбеддинги). `/find` = по написанию (детерминированный отпечаток). Канон-память [[smart-name-search]].