Семантика Директа Для Посуточной Аренды (экспериментальный)
Запуск Навыка
При явном вызове или однозначном смысловом совпадении применяйте навык сразу. Перед первым шагом покажите ровно одну короткую контекстную строку (не более 30 слов) и продолжайте работу в том же ответе, не ожидая реакции:
Применяю экспериментальный навык «Семантика для посуточной аренды» (обратная связь — @kir-kopylov): <кратко назовите конкретную пользу для текущего запроса>; продолжаю без ожидания.
Не включайте в строку author_github, внутреннее имя папки или пересказ всего запроса. Не спрашивайте, применять ли навык.
Если одновременно подходят совместимые навыки, выберите минимальный набор и покажите одну общую строку. Если подходы ведут к несовместимым результатам и запрос не позволяет выбрать, спросите только о желаемом результате, не о разрешении применить навык.
Запуск навыка не расширяет полномочия. Выполните всю безопасную и уже разрешённую часть; запросите подтверждение только непосредственно перед ещё не разрешённым внешним или изменяющим действием. Не запрашивайте повторно уже данное разрешение и не дублируйте системное окно подтверждения.
Обзор
Skill превращает список адресов STR-бизнеса в городе в рабочую книгу семантики для Яндекс.Директа: маски по группам спроса, частоты, вердикты, минус-лист без самоконфликтов, черновик кампаний. Общайтесь простым языком: «маски» и «минус-слова», а не «семантические кластеры».
Три правила, выученные на реальных прогонах (не нарушать):
- Сначала дёшево группировать, потом проверять. Адреса группируются в кластеры по улицам и районам ДО веб-проверок; гео-проверка — одна на кластер, не на адрес. Обратный порядок сжигает треть бюджета токенов на подтверждение одного и того же района.
- Пустышки режет частота, а не мнение. Не выбрасывайте маску потому, что «по улицам не ищут» — жд вокзал тоже «точка», а спрос там живой. Отсев только по частотному порогу из Вордстата; до частот маска — кандидат.
- Минус-лист проверяется против собственных масок. Директ матчит минусы по лемме: минус «ночь» молча обнулит вашу же маску «квартира на ночь». Каждый минус проходит
minus-check; конфликтные — в «спорное» с явным решением человека.
Режимы И Входы
Режимы: новый город (полный цикл), дозаливка (новый кластер адресов в существующую книгу), аудит минус-листа (только minus-check по чужому списку).
Обязательные входы: город; адреса или кластеры; рамки спроса (только квартиры? почасовая? отели?). Опрос — ТОЛЬКО по недостающим входам, по одному вопросу за раз; известные рамки (из памяти или прошлой книги) не переспрашивать. Пороги вердиктов и region_id берутся из прошлой книги; если их нет — калибруются на этом прогоне и помечаются [requires recheck] до калибровки.
Контрфактический Гейт Рабочего Вопроса
Проверку проводи внутренне; пользователю не показывай вероятные ответы и карту изменений.
Перед любым вопросом проведи контрфактическую проверку: Представь наиболее вероятные ответы пользователя. Назови, какое решение, действие или часть результата изменит каждый ответ. Если следующий шаг при всех ответах одинаков — вопрос запрещён. Если пользователь уже зафиксировал выбор — запиши его, не открывай заново. Если неизвестное техническое и его можно проверить самостоятельно — проверь, не спрашивай. Задавай только ближайший вопрос, ответ на который реально меняет результат.
Процесс
- Группировка адресов — по названиям улиц и известным районам, без агентов и веб-поиска. Результат: кластеры
C1..Cnс улицами. - Гео-проверка — веб-поиском подтвердить район, метро, ориентиры: один запрос-проверка на кластер. Не выдумывать ориентиры без подтверждения.
- Генерация масок — по вееру групп спроса из
references/spros-gruppy-str.md(веер — ориентир под бизнес, не обязательный шаблон). Комментарий к маске ≤1 строка. Дедуп делает скрипт по нормализованным словоформам. - Config — собрать
config.jsonпо схеме из docstringscripts/semantika.py; первичная книга:python3 scripts/semantika.py build --config cfg.json --out core.xlsx. - Частоты — по механике
references/domain-playbook.md: браузер пользователя, регион города, каждая снятая частота сразу в append-onlywordstat-progress.jsonlв папке проекта (обрыв ничего не теряет); мусорные хвосты из выдачи — туда же. Капчу не обходить; пароли не вводить; нет браузера — фолбэк «ручная проверка» (маски пользователю батчем, частоты вносит он). - Вердикты —
semantika.py verdicts --config … --progress … --out …: ниже нижнего порога «вон», между порогами «гипотеза», выше верхнего «в кампанию». - Минус-лист —
semantika.py minus-check: конфликтные минусы становятся «спорное»; по каждому — явное решение в книге. Хвосты с действием «в минус-лист» добавить в config. - Кампании — строит скрипт по
references/campaign-rules.md: только маски «в кампанию», 1 группа объявлений = 1 интент, кросс-минусовка детерминированная. - Книга — финальный
build(илиmerge --intoдля дозаливки: бэкап автоматически, ручные колонки не трогаются). После ручных правок книга — единственный их носитель: пересборка только--forceосознанно. - Проверка целостности — по гейтам самой книги: нет «спорных» минусов без решения (жёлтая подсветка чиста), нет вердиктов без частоты (красная подсветка чиста), «Кампании» непусты после вердиктов. При работе в 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]; подсветки-гейты книги чисты (красная — вердикт без частоты, жёлтая — спорный минус без решения).
Опрос После Использования
Опрос задаётся один раз — после сдачи книги пользователю или после явной остановки цикла, не посреди сбора частот. Если пользователь уже ответил «пропустить» в этой сессии, не переспрашивайте.
Опрос по skill:
1. Что в этом использовании semantika-direkta-po-adresam было полезно?
2. Что стоит доработать в skill или его формате?
Можно ответить коротко или написать "пропустить".
Если пользователь ответил, сохраните санированную карточку в ~/.codex/skill-runs/semantika-direkta-po-adresam/usage-feedback.jsonl — лучше через bundled script:
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 не коммитить.