본문으로 건너뛰기
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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고