Nomen
Production-grade движок поиска брендовых имён (Python 3.12+): novelty search вместо hill-climbing, 10 генераторов, BeautyScore / BrandScore / CollisionScore, онлайн-валидация по реестрам и доменам, checkpoint/resume и жёсткий запрет на сходство в одну фонетическую семью.
Что это
Nomen — утилита для охоты за чистыми бренд-именами под software-продукты (AI-native CMS, developer platform, MCP, cloud). Не «генератор fancy-слов», а пайплайн: генерирует десятки тысяч кандидатов, отсекает offline-фильтрами, ранжирует по эстетике и бренд-фиту, проверяет коллизии в GitHub / npm / PyPI / доменах / поиске и выдаёт короткий список независимых имён с полным audit trail.
Стек: Python 3.12+, asyncio + httpx, Typer/Rich CLI, pydantic, RapidFuzz, Metaphone, diskcache, опционально sentence-transformers. Обучение только на статистике SaaS/AI/cloud-брендов — verbatim из корпуса никогда не эмитится.
Зачем делалось
Для Jasefly CMS и соседних продуктов нужно было имя, которое звучит премиально, не пересекается с чужими пакетами/репо/доменами и не сваливается в одно фонетическое гнездо (Plerasta / Plerora / Plerenda…). Ручной перебор и ChatGPT-списки не тянут: либо «красиво, но занято», либо «свободно, но synthetic sludge». Нужен был движок, где diversity — hard constraint, а не побочный эффект.
Ядро движка
- Novelty search — не hill-climbing к одному пику; сходство в одну root-family = баг → automatic exploration restart.
- 10 генераторов — char LM, phoneme model, evolutionary / genetic, syllable recombination, letter graph, entropy sampler, pronounceability optimizer, mutation winners и др.; квоты по генераторам, длине и CV-паттернам.
- Offline filter bank — фонетика, banned morphemes, english cores, synthetic fragments, weak tails, verbatim corpus ban.
- Similarity engine — Levenshtein / Damerau / Jaro-Winkler / n-gram / Metaphone + опциональные embeddings.
- Scoring — BeautyScore (эстетика без знания реестров), BrandScore (произношение, память, typing, visual, premium feel), CollisionScore, NoveltyScore → Overall.
- Diversity selector — 1 имя на phonetic root, лимиты на generator/pattern share, min beauty / min novelty.
- Online ValidationGateway — GitHub, npm, PyPI, crates, RubyGems, NuGet, Packagist, Docker Hub, WordPress, GitLab, RDAP-домены (.com/.io/.dev/.ai…), web search (Brave/SerpAPI/Bing), OpenCorporates; кэш 72h, retry/backoff, concurrency.
- Elite archive + tournament — shortlist «лучших из лучших» с попарным сравнением.
- Ops — checkpoint/resume, parallel CPU workers для генерации, HTTP semaphore, экспорт results.json/csv, clean_names, top10/20/100, rejected.json с причинами отказа.
- Benchmark — offline diversity-прогон без сети (
nomen benchmark --n 5000).
Пайплайн
Generate (quota-balanced)
→ Offline filters
→ Similarity
→ Beauty + Brand + Collision
→ Novelty + clustering (1 per root)
→ Generator / length / CV quotas
→ Online validation
→ Convergence detector → reseed
→ Repeat until ≥N independent clean names
Итог
Nomen — brand discovery под вайбкодинг продуктов: локально гоняешь охоту, получаешь аудируемые clean names с scores и причинами reject, без иллюзии, что «свободно в npm» = юридически чисто (Nice-class / counsel — отдельно).