# Semantika Direkta Po Adresam

> «Собери семантику для Директа», «маски и минус-слова для посуточной аренды», «прогони ключи по адресам в Вордстате», «кластер адресов в ядро», «минус-лист против масок».

- Skill: `kir-kopylov/semantika-direkta-po-adresam` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add kir-kopylov/semantika-direkta-po-adresam`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kir-kopylov/semantika-direkta-po-adresam/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kir-kopylov (https://skillmd.com/u/kir-kopylov)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kir-kopylov/semantika-direkta-po-adresam

---


# Семантика Директа Для Посуточной Аренды (экспериментальный)

## Запуск Навыка

При явном вызове или однозначном смысловом совпадении применяйте навык сразу. Перед первым шагом покажите ровно одну короткую контекстную строку (не более 30 слов) и продолжайте работу в том же ответе, не ожидая реакции:

Применяю экспериментальный навык **«Семантика для посуточной аренды»** (обратная связь — @kir-kopylov): <кратко назовите конкретную пользу для текущего запроса>; продолжаю без ожидания.

Не включайте в строку `author_github`, внутреннее имя папки или пересказ всего запроса. Не спрашивайте, применять ли навык.

Если одновременно подходят совместимые навыки, выберите минимальный набор и покажите одну общую строку. Если подходы ведут к несовместимым результатам и запрос не позволяет выбрать, спросите только о желаемом результате, не о разрешении применить навык.

Запуск навыка не расширяет полномочия. Выполните всю безопасную и уже разрешённую часть; запросите подтверждение только непосредственно перед ещё не разрешённым внешним или изменяющим действием. Не запрашивайте повторно уже данное разрешение и не дублируйте системное окно подтверждения.

## Обзор

Skill превращает список адресов STR-бизнеса в городе в рабочую книгу семантики для Яндекс.Директа: маски по группам спроса, частоты, вердикты, минус-лист без самоконфликтов, черновик кампаний. Общайтесь простым языком: «маски» и «минус-слова», а не «семантические кластеры».

Три правила, выученные на реальных прогонах (не нарушать):

1. **Сначала дёшево группировать, потом проверять.** Адреса группируются в кластеры по улицам и районам ДО веб-проверок; гео-проверка — одна на кластер, не на адрес. Обратный порядок сжигает треть бюджета токенов на подтверждение одного и того же района.
2. **Пустышки режет частота, а не мнение.** Не выбрасывайте маску потому, что «по улицам не ищут» — жд вокзал тоже «точка», а спрос там живой. Отсев только по частотному порогу из Вордстата; до частот маска — кандидат.
3. **Минус-лист проверяется против собственных масок.** Директ матчит минусы по лемме: минус «ночь» молча обнулит вашу же маску «квартира на ночь». Каждый минус проходит `minus-check`; конфликтные — в «спорное» с явным решением человека.

## Режимы И Входы

Режимы: **новый город** (полный цикл), **дозаливка** (новый кластер адресов в существующую книгу), **аудит минус-листа** (только `minus-check` по чужому списку).

Обязательные входы: город; адреса или кластеры; рамки спроса (только квартиры? почасовая? отели?). Опрос — ТОЛЬКО по недостающим входам, по одному вопросу за раз; известные рамки (из памяти или прошлой книги) не переспрашивать. Пороги вердиктов и region_id берутся из прошлой книги; если их нет — калибруются на этом прогоне и помечаются `[requires recheck]` до калибровки.

## Контрфактический Гейт Рабочего Вопроса

Проверку проводи внутренне; пользователю не показывай вероятные ответы и карту изменений.

Перед любым вопросом проведи контрфактическую проверку:
Представь наиболее вероятные ответы пользователя.
Назови, какое решение, действие или часть результата изменит каждый ответ.
Если следующий шаг при всех ответах одинаков — вопрос запрещён.
Если пользователь уже зафиксировал выбор — запиши его, не открывай заново.
Если неизвестное техническое и его можно проверить самостоятельно — проверь, не спрашивай.
Задавай только ближайший вопрос, ответ на который реально меняет результат.

## Процесс

1. **Группировка адресов** — по названиям улиц и известным районам, без агентов и веб-поиска. Результат: кластеры `C1..Cn` с улицами.
2. **Гео-проверка** — веб-поиском подтвердить район, метро, ориентиры: один запрос-проверка на кластер. Не выдумывать ориентиры без подтверждения.
3. **Генерация масок** — по вееру групп спроса из `references/spros-gruppy-str.md` (веер — ориентир под бизнес, не обязательный шаблон). Комментарий к маске ≤1 строка. Дедуп делает скрипт по нормализованным словоформам.
4. **Config** — собрать `config.json` по схеме из docstring `scripts/semantika.py`; первичная книга: `python3 scripts/semantika.py build --config cfg.json --out core.xlsx`.
5. **Частоты** — по механике `references/domain-playbook.md`: браузер пользователя, регион города, каждая снятая частота сразу в append-only `wordstat-progress.jsonl` в папке проекта (обрыв ничего не теряет); мусорные хвосты из выдачи — туда же. Капчу не обходить; пароли не вводить; нет браузера — фолбэк «ручная проверка» (маски пользователю батчем, частоты вносит он).
6. **Вердикты** — `semantika.py verdicts --config … --progress … --out …`: ниже нижнего порога «вон», между порогами «гипотеза», выше верхнего «в кампанию».
7. **Минус-лист** — `semantika.py minus-check`: конфликтные минусы становятся «спорное»; по каждому — явное решение в книге. Хвосты с действием «в минус-лист» добавить в config.
8. **Кампании** — строит скрипт по `references/campaign-rules.md`: только маски «в кампанию», 1 группа объявлений = 1 интент, кросс-минусовка детерминированная.
9. **Книга** — финальный `build` (или `merge --into` для дозаливки: бэкап автоматически, ручные колонки не трогаются). После ручных правок книга — единственный их носитель: пересборка только `--force` осознанно.
10. **Проверка целостности** — по гейтам самой книги: нет «спорных» минусов без решения (жёлтая подсветка чиста), нет вердиктов без частоты (красная подсветка чиста), «Кампании» непусты после вердиктов. При работе в checkout репо дополнительно `python3 -m pytest tests/test_semantika_direkta_po_adresam.py`. Критик-агент полноты — опционально и только для нового типа бизнеса: стандартные проверки уже в скрипте.

## Границы

- Не выдавать частоты «из головы» — только из Вордстата или явная метка ручного режима.
- Не обходить капчу и не вводить пароли: логин в Яндекс делает пользователь сам.
- Не удалять минус-слова и маски автоматически — скрипт только помечает, решает человек.
- Не пересобирать книгу поверх ручных правок без `--force`; дозаливка — только `merge`.
- Не переносить адреса и данные клиентов в примеры и репо — только «Город N», «кластер C1».
- Не для SEO, ставок, бюджетов и Google Ads; разовая частота пары ключей — без развёртывания цикла.

## Definition Of Done

Книга с шестью листами (Сводка, Маски, Минус-слова, Гео-кластеры, Хвосты, Кампании); у каждой маски частота или явная метка ручного режима; ни одного «спорного» минуса без решения; «Кампании» непусты (после вердиктов); пороги и region_id откалиброваны или помечены `[requires recheck]`; подсветки-гейты книги чисты (красная — вердикт без частоты, жёлтая — спорный минус без решения).

## Опрос После Использования

Опрос задаётся один раз — после сдачи книги пользователю или после явной остановки цикла, не посреди сбора частот. Если пользователь уже ответил «пропустить» в этой сессии, не переспрашивайте.

```text
Опрос по skill:
1. Что в этом использовании semantika-direkta-po-adresam было полезно?
2. Что стоит доработать в skill или его формате?
Можно ответить коротко или написать "пропустить".
```

Если пользователь ответил, сохраните санированную карточку в `~/.codex/skill-runs/semantika-direkta-po-adresam/usage-feedback.jsonl` — лучше через bundled script:

```bash
python3 scripts/log_usage_feedback.py --liked "..." --improve "..." --outcome "..."
```

Script перед записью редактирует приватные пути, контакты и token-like строки и сохраняет в JSONL `redaction_applied` и `redaction_types`. Если запись невозможна из-за sandbox, прав или отсутствия tools, не делайте вид, что лог сохранён: скажите об этом и покажите короткую JSONL-карточку для ручного сохранения. Raw-ответы, контакты, пути и секреты не коммитить.

## Логирование Сбоев

Перед выполнением прочитайте локальный `known-exceptions.yaml` как список уже известных случаев и применяйте подходящее `do_next_time` без нового поиска.

Если пользователь поправил skill, tool/API/browser упал, нарушен режим работы, пришлось искать workaround или skill сделал ложное предположение, запишите приватную карточку в `~/.codex/skill-runs/<skill-name>/exception-log.jsonl`.

Пишите факты: что skill хотел сделать, что сделал, где сломался, какая предпосылка была ложной и что сделать в следующий раз. Если поле неизвестно, пишите `unknown`. Raw logs не коммитить.

