本文へ移動
cccskills
無料GitHub で公開

promo-walk-candidates

Подбирать варианты новых промопрогулок из уже озвученных точек production — минимум 10 точек, от 17 минут аудио, не больше 50 % точек из любой существующей промопрогулки. Применять при просьбах найти, проанализировать или предложить новые промопрогулки или проверить пересечение идеи прогулки с опубликованными.

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosokスター 2(GitHub 2 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(4)

  • SKILL.md8.9 KB
  • agents/openai.yaml458 B
  • scripts/analyze.py15.4 KB
  • scripts/collect.mjs3.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Варианты новых промопрогулок

Найди районы, где из готовых рассказов складывается новая промопрогулка, и предложи пользователю короткий список с обоснованием. Скилл только анализирует: прогулки не создаются, озвучка не заказывается, на production ничего не пишется.

Критерии по умолчанию

Пользователь может поменять любой порог; тогда передай его в analyze.py флагом.

  • Точки: не меньше 10 (--min-stops), не больше 20 (--max-stops).
  • Аудио: не меньше 17 минут суммарно (--min-audio-min). Записи F5 и v3 перед публикацией переозвучиваются в v4 (правило AGENTS.md), поэтому их длительность оценивается по числу слов с темпом v4 ~117 слов в минуту; точная длительность есть только у v4.
  • Пересечение: с каждой существующей промопрогулкой общих точек не больше 50 % от точек нового варианта (--max-overlap). Учитываются все прогулки аккаунта promo-walks, включая открытые только по ссылке: это готовые выпуски очереди. Варианты в выдаче отличаются и друг от друга по тому же правилу. Если пользователь имеет в виду пересечение с объединением всех прогулок, смотри поле unionOverlapShare.
  • Соседство: с остановками каждой существующей прогулки рядом, ближе 100 м (--near-m), не больше 50 % точек варианта (--max-near-overlap), поле nearOverlap и колонка «≤100 м от остановок». Так отсекается та же улица с другими рассказами: скилл сначала берёт точки, которых нет ни в одной прогулке, и без этой проверки выдаёт «0 пересечений» на чужом маршруте.
  • Фото: у каждой остановки должно быть превью (правило AGENTS.md). Колонка «Без фото» и поле needsPhoto показывают, каким точкам его нужно найти; если у точки нет свободного снимка в Commons или на Flickr с CC, её заменяют другой.
  • Пешая связность: оценка пути ≤ 4 км (--max-route-km, прямые × 1,3), соседние остановки не дальше 700 м (--max-hop-m), точки в радиусе 900 м от затравки (--radius-m).

Одна точка — один рассказ: одинаковый MP3 под разными id и записи каталога ближе 40 м считаются одной точкой. Остановки старых автоматических прогулок без placeId сопоставляются по координатам.

Мемориальные доски, могилы и посольства (kind в снимке) по умолчанию не входят в пул: из них не складывается прогулка на слух, а к посольству не подойти. Флаг --include-minor возвращает их.

1. Снимок production (только чтение)

Адрес сервера лежит в игнорируемом .env.ops (VPS); не печатай его и не записывай в репозиторий. Скрипт открывает обе базы с readOnly.

S=<scratchpad>
VPS=$(grep '^VPS=' .env.ops | cut -d= -f2-)
ssh -o ConnectTimeout=15 "$VPS" 'docker exec -i otgolosok-generator-generator-1 node --input-type=module' \
  < .claude/skills/promo-walk-candidates/scripts/collect.mjs > $S/snapshot.json

Локальная backend/data/jobs.sqlite устаревает за дни и не содержит новых прогулок: не подменяй ею снимок. ADMIN_TOKEN из локального .env на production не подходит.

2. Автоматический отбор

python3 -I .claude/skills/promo-walk-candidates/scripts/analyze.py $S/snapshot.json $S/out --top 40 \
  --extra-walks content/<пакет>/walk-stops-<прогулка>.json

В --extra-walks передай остановки прогулок, которых ещё нет в снимке: незакоммиченные пакеты параллельных сессий (git status --short content/) и уже согласованные варианты. Иначе отбор предложит район, который собирают рядом.

Результат: $S/out/candidates.md (таблица) и candidates.json (точки каждого варианта, модель записи, в каких прогулках точка уже есть, ближайшее метро у начала и конца). Сортировка: больше новых точек, меньше переозвучки, больше аудио. Работает ~30 с.

3. Ручная проверка каждого варианта

Скрипт видит только координаты и длительность. Прочитай точки варианта и отбрось или поправь его, если:

  • точки за платным или закрытым входом (территория Кремля, музейные дворы, могилы внутри соборов) — слушатель должен стоять у объекта снаружи;
  • нет общей темы или узнаваемой оси (улица, набережная, слобода): название промопрогулки строится как «Остоженка: искусство и частная жизнь»;
  • вариант повторяет район опубликованной прогулки по смыслу, хотя точки формально другие (соседние дома той же улицы);
  • путь идёт через магистраль без перехода, промзону или закрытую территорию — проверь на карте;
  • у точки нет фото и свободный снимок не находится — замени точку, не публикуй её без превью;
  • много мелких точек без истории (мемориальные доски, безымянные башни подряд) — такая прогулка скучна на слух.

Замену точки бери из places снимка в том же районе и пересчитай критерии.

4. Отчёт

По-русски, 5–10 лучших вариантов после ручной проверки. Для каждого: рабочее название, старт и финиш (метро), число точек, аудио (сколько измерено v4 и сколько оценено), путь, максимальное пересечение и с какой прогулкой, сколько записей нужно переозвучить в v4 (это платно), сколько точек без фото, 3–4 сильные точки и риски. Отдельно перечисли отброшенные районы и причину.

Переозвучку и создание прогулки предлагай следующим шагом: объём платной партии подтверждает пользователь. Если отчёт нужен надолго, сохрани его в docs/agents/promo-walk-candidates-<дата>.md и добавь строку в docs/agents/README.md; без адресов сервера и токенов.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Качество русского текста для агента. Russian text quality for agents: proofreading and AI-slop cleanup for Cyrillic text. Триггеры: очеловечь, вычитай, отредактируй, поправь, причеши, проверь текст, убери канцелярит, humanizer. Молча снимает жёсткие запреты в собственном русском выводе агента; чужой текст молча не трогает. Use when надо убрать из русского текста канцелярит, воду и нейросетевую манеру, не сломав смысл, факты и голос автора. Три режима по запросу: редактура, аудит без переписывания, точечная правка одной категории. Со скиллом едет детерминированный сканер scripts/scan.py: считает хард-баны, категории маркеров, ритм и морфологию, печатает ЧИСТОТА: N/100, поэтому правка измерима («было N, стало M»). Флаг --genre academic/legal/fiction/news снимает маркеры, законные для научного, юридического и новостного регистра. Работает ТОЛЬКО с русским: для английского humanizer, для итальянского humanizer-it. НЕ используй для: перевод, написание с нуля, грамматика без стилистики, код.

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosok22026年10月29日 更新

Implement an existing plan from docs/agents/plans/. Use when the user asks to implement, execute, resume, or continue a plan, or references a plan file — the plan's Status line must be updated on completion.

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosok22026年10月29日 更新

make-plan

無料

Create an implementation plan for any task — feature, refactor, migration, fix — and save it to docs/agents/plans/. Use when the user asks to plan work, write an implementation plan, or prepare a task spec for claude/codex. (Implementing an existing plan is the implement-plan skill, not this one.)

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosok22026年10月29日 更新

Review a project for production readiness. Invoked manually by the user via /production-readiness before deploying or preparing a release.

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosok22026年10月29日 更新

Переписывать русские рассказы о городских точках, перегруженные датами, — цепочки «в 1884 году… 9 февраля 1885-го… в 1989-м… в декабре 1993-го» скучно слушать. Оставлять одну-две опорные даты, остальные выражать через промежутки («через десять лет», «спустя два столетия», «в конце 1980-х»), не теряя смысла и точности. Применять при просьбах убрать перебор дат, сделать рассказ живее на слух или проверить точки, прогулку, партию рассказов на перечисления годов.

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosok22026年10月29日 更新

Заменять инициалы людей в озвучиваемых русских рассказах на полные имена, найденные в источниках («Э.-Р. Нирнзее» → «Эрнст-Рихард Нирнзее»). Применять при просьбах убрать инициалы, исправить плохое произношение имён или проверить на инициалы прогулку, точку или партию рассказов; заголовки и адресные поля карточек не трогать.

日本語の概要は準備中です。原文の説明を表示しています。

softmg/otgolosok22026年10月29日 更新

softmg のスキルをすべて見る

このスキルの問題を報告する