# Voice Dictionary — парные формулировки (модель → Олег)

> **Назначение:** словарь для эмуляции голоса Олега. Слева — как написала бы модель (причёсанный натив или generic-дефолт). Справа — как написал/оставил Олег. Цель при генерации текста под его именем: узнавать левую колонку как «не его» и тянуться к правой.
>
> **Источник:** реальные парные правки из чатов проекта (Lucky Hunter / XPN Q1-Q2, Plata, Salmon, Miratech, Faye, Web Engineer/Robert, Ecommpay), плюс эталоны из voice-анализа. Каждая строка — фактическая пара, не выдуманная.
>
> **Как читать пометку «он принял» / «он откинул»:** «откинул» = я предложил левую, он вернул правую (чистейший сигнал голоса). «он принял» = он написал правую, я предложил левую, он согласился — но правая всё равно его естественная рука, и для эмуляции цель — она.
>
> Дополняет `voice-profile-oleg.md` (там правила), здесь — конкретные пары.

---

## 1. Глаголы действия: я тяну к «native verb», он — к простому/системному

| Модель (левая) | Олег (правая) | Что меняется |
|---|---|---|
| I've built this pattern in several places | I've implemented such scenarious in serveral places | он берёт `implemented` + указатель `such scenarious`, не «built this pattern» |
| picks the best-matching component by score | select a best matching component based on a score system | `based on a score system` вместо `by score`; постпозиция вместо компрессии |
| fills its props from a compact component schema | fills props based on compact component schema | дроп артикля (`props`, `compact component schema`) + `based on` |
| I built a harness around these steps | I also created a harness around these steps | `created`, не `built`; вводное `also` |
| the chatbot that helps users create and modify page nodes | the chatbot that assist users in creating/modifying page nodes | `assist` (его опорное слово), drop -s, `in creating/modifying` |

**Вывод:** не апгрейдить его глаголы до «сочного» нативного. `implemented / created / assist / orchestrates` — его база. Декоративные `picks / crafts / leverages` — чужие.

---

## 2. Постпозиция «from / based on» вместо компрессии

| Модель (левая) | Олег (правая) | Что меняется |
|---|---|---|
| autonomously selecting components via a scored, filtered candidate pool | autonomously selecting components from a registry of 200+ from a scored, filtered candidate pool | двойное `from ... from ...` подряд — он так пишет, я бы свернул |
| My relevant experience comes from PrimeUI | I see the relevant experience in what I've been doing at PrimeUI | **он откинул мою.** Калька с русского, оставил сознательно (русскоязычная команда = signal «свой») |

**Вывод:** обоснование и источник он навешивает в хвост через `from` / `based on` / `in what I've been doing`. Не переворачивать в «X comes from Y».

---

## 3. Длинные цепочки через запятую, без точки с запятой

| Модель (левая) | Олег (правая) | Что меняется |
|---|---|---|
| Each step reads the previously generated content, picks the best-matching component by score, **and** fills its props from a compact component schema. | Each step reads the previously generated content, select a best matching component based on a score system, fills props based on compact component schema. | я добавляю `and` перед последним блоком и причёсываю согласование; он нанизывает три глагольных блока через запятую без `and`, с плавающим -s |
| it orchestrates around 20 agent tools **that access** the DB, UX layer, component registry, **and so on** | it orchestrates around 20 agent tools accessing DB, UX, component registry etc | он: `accessing` (не `that access`), `etc` (не `and so on`), drop артиклей в списке |

**Вывод:** не разбивать его комма-цепочки на отдельные предложения и не вставлять `;`. `etc` он любит больше, чем `and so on`.

---

## 4. Самохарактеристики → двоеточие-заголовок

| Модель (левая) | Олег (правая) | Что меняется |
|---|---|---|
| I'm a direct match | My day-to-day stack: [перечисление] | **он откинул мою.** Не заявляет «я подхожу», даёт фактам говорить через двоеточие-заголовок |
| My day-to-day stack matches yours | [конкретные claims по годам на каждую технологию] | **он откинул мою** (Miratech): «слишком casual», заменил на годы-на-стек |
| The core of the role is the work I've been doing | [открывашка сразу в свою работу, не пересказ JD] | **он откинул мою** (Miratech): я пересказал JD обратно работодателю — он ведёт сразу со своего |

**Вывод:** он не пишет «I'm a great fit / matches yours / the role is what I do». Вместо самооценки — `My day-to-day stack:` + факты. Письмо НЕ открывает пересказом вакансии.

---

## 5. «Поэтичное» / гладкое → короткое конкретное

| Модель (левая) | Олег (правая) | Что меняется |
|---|---|---|
| Multi-tenant and white-label is not new to me | [короткие конкретные предложения про Tipico: mobile app, web portal, casino team, betting widgets как consumers одного бэкенда] | **он откинул мою** (Miratech): «слишком поэтично», заменил на конкретику с named-сущностями |
| Built the AI layer containing some independent AI flows | [назвать 4 потока: content writing, page generation, chatbot, sitemap generation] | vague `some ... flows` он сам потом раскрыл в число — но изначально склонен к vague, тут я подталкивал к конкретике |
| Happy to dig into specifics on a call | Open to chat if it's a fit. | его закрывашка — короче и суше, без «happy to dig» |

**Вывод:** где я сглаживаю в обтекаемую фразу — он рубит на короткие предложения с именами систем. Закрывашка короткая: `Open to chat if it's a fit.`

---

## 6. Связки и переходы

| Модель (левая) | Олег (правая) | Что меняется |
|---|---|---|
| So, the content team ran experiments... | Content team ran experiments... | **он откинул `So`** в начале связки. Принцип: связь из содержания, не из слова |
| Furthermore / Moreover / That said | [нет связки, новое предложение / двоеточие] | он не использует gluing-переходы в начале |
| — (em-dash на вставке) | : или , или отдельное предложение | em-dash на parenthetical он не ставит, я ставлю |

---

## 7. Грамматические подписи (его рука — сохранять дозированно, НЕ «исправлять»)

Это правая колонка как есть — то, что я по привычке вычищаю, а для его голоса часть надо оставлять:

| Модель причёсывает в → | Олег пишет → | Статус |
|---|---|---|
| PrimeUI is **an** AI-based platform | PrimeUI is AI based platform | drop артикля перед составным сущ. — **оставлять дозированно** |
| with a focus on **high** design quality | with a focus on hi design quality | `hi`→high — фонетика на скорости; в followup ок, **в cover letter чистим** |
| I've worked on it from scratch **for over a year** | I've been working on that project from scratch during more than one year | `during more than one year` — калька, его ритм; **оставлять в неформальном** |
| picks the best-matching component (3 л. -s ровно) | reads... select... fills (плавающий -s) | согласование плавает внутри фразы — **дозированно ок** |

---

## 8. Чистые ошибки (правлю всегда — это НЕ голос, это опечатки)

Эти правки он принимал без споров. Они отделяют «голос» (сохранять) от «брак» (чинить):

| Олег написал | Правка | Тип |
|---|---|---|
| splitted to: | split into: | irregular verb, грамматика |
| serveral / scenarious | several / scenarios | опечатка |
| exelent | excellent | опечатка |
| clients communication | client communication | мн.ч. в атрибутиве |
| regulator approvements was | regulator approval was a critical step | несуществующее слово + согласование |
| has signed Deel account | have a Deel account (W-8BEN on file) | глагол/артикль |
| tested for a compatibility | tested for compatibility | лишний артикль |
| Senior AI Engineer . (пробел перед точкой) | Senior AI Engineer. | типографика |

**Граница:** `splitted`, `exelent`, `approvements` — чинить (брак). `AI based platform`, `assist users`, `I see the relevant experience` — НЕ трогать (голос).

---

## 9. Опорные слова правой колонки (тянуться к ним)

Из его текстов, не из моих: **harness, orchestrates, registry, flow, loop, score / scored, from scratch, assist, such / these / that** (указатели), **etc**, **based on**.

Дефолты модели, которых он не использует: leverage, robust, seamless, crafts, dig into, a direct match, So/Furthermore/Moreover в начале, em-dash на вставке.

---

## 10. Эталон целиком — одна пара для калибровки ритма

**Моя версия (left, причёсанный натив):**
> PrimeUI is an AI-based platform that generates production-level codebases for client websites, with a strong focus on the design quality of components and pages — I've worked on it from scratch for over a year. The core of page generation is a planner agent that iterates section by section across a page, autonomously selecting components from a registry of 200+ via a scored, filtered candidate pool. Each step reads the previously generated content, picks the best-matching component by score, and fills its props from a compact component schema. I built a harness around these steps with validation and a retry system.

**Его версия (right, target voice):**
> PrimeUI is AI based platform for generation production level codebases for clients websites with a focus on hi design quality of components and pages. I've been working on that project from scratch during more than one year. The core of pages generation is a planner agent that iterates section by section across a page, autonomously selecting components from a registry of 200+ from a scored, filtered candidate pool. Each step reads the previously generated content, select a best matching component based on a score system, fills props based on compact component schema. I also created a harness around these steps with validation and retry system.

Разница на одном абзаце: я ставлю артикли, em-dash, `and` перед хвостом, апгрейжу `created→built` и `assist→helps`, сворачиваю двойное `from`. Он держит drop-артикли, комма-цепочку, постпозицию `based on`, плавающий -s, `from scratch during more than one year`.
