From reels-skill
Используй, когда нужен сценарий короткого вертикального видео (Instagram Reels, TikTok, Shorts, VK Клипы) на русском языке про свой проект на основе git-репозитория. Триггеры — «сценарий рилса», «реелс из коммитов», «build in public день N», «шортс про мой проект», «короткое видео про фичу/баг/деплой», «сделай рилс из последней недели».
How this skill is triggered — by the user, by Claude, or both
Slash command
/reels-skill:writing-reels-from-repoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Берёт реальную работу из репозитория — несколько связанных коммитов, инцидент, milestone — и превращает в скрипт 30–60 сек на русском языке для Reels / TikTok / Shorts. Главная цель — звучать как живой инженер, а не AI-копирайтер.
Берёт реальную работу из репозитория — несколько связанных коммитов, инцидент, milestone — и превращает в скрипт 30–60 сек на русском языке для Reels / TikTok / Shorts. Главная цель — звучать как живой инженер, а не AI-копирайтер.
Два жёстких правила, которые отличают этот скилл от плохих рилс-генераторов:
references/ban-list-ru.md и references/register-ru.md.Да: сценарий короткого видео про свой проект на русском (серия «день N», еженедельный дайджест, война с багом, milestone, архитектурное решение).
Нет: длинные YouTube-видео, лендинги, B2B-кейсы где автор не герой, рилсы не про код (тогда отдельные скиллы), английский контент.
Шаг 0 → Сбор коммитов и логов (git + CLAUDE.md + MEMORY.md)
Шаг 1 → Кластеризация в АРКИ (5–20 коммитов на арку)
Шаг 2 → Извлечение лексикона проекта (3+ уникальных терминов)
Шаг 3 → Скоринг арок (6 осей × 0–2)
Шаг 4 → Выдать 2–3 кандидата → выбрать арку
Шаг 4.5 → Deep source pass по выбранной арке (diff, файлы, числа, visual proof)
Шаг 5 → Story atoms (5 буллетов) → подтвердить или продолжить в fast final
Шаг 5.5 → Audience + author voice
Шаг 6 → Хук с обязательной ротацией формул
Шаг 7 → Скрипт с тайм-кодами + speak-test
Шаг 7.5 → Trim pass (подрезка до бюджета слов −5%)
Шаг 8 → Production pack: b-roll, on-screen text, caption, hashtags, обложка
Шаг 9 → QC pass перед выдачей
Дефолт — guided mode: показать кандидатов, дождаться выбора, показать story atoms, дождаться подтверждения.
Если пользователь просит готовый результат без промежуточных согласований (сразу сделай, дай финальный сценарий, без вопросов) — включи fast final mode:
Выбрал арку сам: <почему>,<verify>.Запусти параллельно:
git log --since="3 weeks ago" --oneline
git log --since="3 weeks ago" --stat | head -200
git log --since="3 weeks ago" --pretty=format:"%h %s%n%b%n---"
git log --since="3 weeks ago" --name-only --pretty=format:"--- %h %ad %s" --date=short | head -300
Дополнительно прочитай (если есть):
CLAUDE.md, README.md — что за проект, чьи болиMEMORY.md, project_*.md, feedback_*.md — инциденты, миграции, решенияgh pr list --state merged --limit 30 и gh issue list --limit 30 — если просилиОдин коммит — почти всегда скучно. Делай арки.
Группируй коммиты в арки по:
Цель арки: 5–20 коммитов под одной болью. Это будущий сюжет.
Single-commit арка разрешена ТОЛЬКО если:
Иначе агрегируй. Если не получается набрать ≥3 коммитов на одну арку — спроси пользователя, не пора ли подождать неделю и накопить.
Это лекарство от generic тона. Найди 3+ термина, существующих ТОЛЬКО в этом проекте:
auth-service, а реальное имя из репо).git log и grep -r "TODO\|FIXME\|HACK").Эти термины должны буквально звучать в скрипте. Без них сценарий получится «универсальным» = скучным.
Если терминов <3 — спроси у пользователя кодовые слова, не выдумывай.
| Ось | 0 | 1 | 2 |
|---|---|---|---|
| Ставки | Косметика, dev-only | Затрагивает юзеров | Деньги / данные / SLA / репутация |
| Твист | Прямой фикс «как и думали» | Неочевидное решение | Смешно-тупое решение / парадокс |
| Универсальность | Только девы поймут | Кому-то за пределами IT понятно | Боль ясна любому |
| Доказуемость | Нечего показать | Diff / лог / число | Сильный визуал (графики, до/после, скрин чата) |
| Эмоция | Нейтрально | Удивление / лёгкое раздражение | Стыд / восторг / страх / боль |
| Веха | Просто работа | Косвенный итог недели | Круглое число / первый раз |
Порог: сумма ≥ 7 — снимать, 5–6 — слабый, <5 — не снимать.
Выдай 2–3 топ-арки в формате:
### Кандидат A: <название арки> · score 9/12
- Период: <с — по>
- Коммиты: <5–7 хешей или 1-line>
- Боль: <одна фраза разговорным языком>
- Виральный угол: <ось с максимумом>
- Лексикон проекта: <3+ терминов из Шага 2>
- Риск на камере: <что может не сработать>
В guided mode: стоп, ждать выбор пользователя. Не идти дальше без подтверждения.
В fast final mode: выбери арку сам. При равном score побеждает арка с лучшим визуальным доказательством, затем с более понятной болью.
После выбора арки обязательно проверь не только сообщения коммитов, но и реальные изменения:
git show --stat --patch <hash1> <hash2> ...
git log --name-status --pretty=format:"--- %h %ad %s" --date=short <range>
Извлеки:
Если visual proof слабый — понизь score по Доказуемость. Если twist не подтверждается diff/log/issue — перепиши twist как гипотезу или спроси пользователя.
После выбора арки выпиши 5 атомов. Если хоть один не вытаскивается из источника — спроси, не выдумывай.
Покажи пользователю атомы. В guided mode: стоп, ждать подтверждение. В fast final mode: продолжай.
Перед хуком зафиксируй 4 настройки. Не превращай это в анкету: если пользователь не дал вводных, используй дефолты.
| Настройка | Дефолт |
|---|---|
| Аудитория | русскоязычные разработчики + люди, которым интересен build in public |
| Обращение | ты |
| Голос автора | живой инженер, без маркетинга, без лекции |
| Мат / жёсткость | без мата, лёгкая самоирония разрешена |
Если контекст канала известен из README/MEMORY/прошлых эпизодов — следуй ему. Если автор явно пишет грубее или мягче, копируй его регистр.
references/hook-bank-ru.md (20+ формул), которая не повторяет формулы последних 3 эпизодов.Если пользователь не дал историю — не блокируй сценарий. Отметь: Истории хуков нет, выбрал формулу без ротации. Попроси сохранить формулу в лог после финала.
| Время | Блок | Задача |
|---|---|---|
| 0:00–0:03 | Хук | Pattern interrupt. Одно предложение из Шага 6. |
| 0:03–0:12 | Сетап | Кто я + что за арка человеческим языком. Можно дропнуть, если хук уже представил контекст. |
| 0:12–0:30 | Напряжение | Проблема растёт. Здесь — ставки для зрителя-не-айтишника. |
| 0:30–0:45 | Поворот | Фикс / разгадка. Одно число из источника; если числа нет — конкретный файл, строка, лог или before/after кадр. |
| 0:45–0:55 | Вывод | Принцип, который больше, чем баг. Одно предложение. |
| 0:55–end | CTA + петля | Soft follow + последний кадр рифмуется с хуком. |
Бюджет слов (русская речь на камеру, ~150 wpm):
После написания скрипта — отдельным проходом подрежь его до бюджета минус 5%. Это компенсирует естественное замедление на камере.
Алгоритм:
Это отдельный шаг, не комбинируй с написанием. Писать и резать одновременно не работает.
Полный список запрещённых слов и фраз — в references/ban-list-ru.md. Прочитай его, когда пишешь Voice/Dialog.
Самые частые провалы:
| ❌ Запрещено | ✅ Замена |
|---|---|
| «давайте разберёмся», «итак», «погружаемся», «представьте» | Cold open. Сразу к делу. |
| «является», «представляет собой», «осуществляет» | Любой нормальный глагол. |
| «данный», «вышеуказанный», «в рамках» | «этот», «выше», «когда» |
| «это о том, как…» | «я сделал X» / «X сломался» |
| «имеет смысл», «таким образом», «в конце дня» | Удали. |
| «крутой», «топ», «потрясающий», «киллер-фича» | Конкретное число или сравнение. |
| «лайфхак», «секрет», «инсайт» (без иронии) | Удали. |
| Generic метафоры (иголка в стоге сена, слон в посудной лавке) | Метафора только если она буквально есть в источнике (например, имя ветки needle-in-haystack). |
Speak-test: прежде чем отдать скрипт — мысленно прочитай каждый voiceover-блок вслух. Спотыкаешься на слове? Это слово вылетает. Длинное причастие? Заменяй на придаточное «который…».
Под-правило для разговорности:
В таком порядке:
Время | Камера | Voice/Dialog | Текст на экране.#buildinpublic), вертикаль (#petproject, #разработка), широкий (#айти). Без #tagsforlikes.Стоп. Никаких «надеюсь, понравится», никаких «дай знать если что».
Перед финальным ответом проверь:
<verify>.<verify> рядом со всеми числами/датами, которые не извлечены из коммитов или явно не названы пользователем.| Сигнал | Что значит |
|---|---|
| В скрипте появилось «итак» / «давайте» / «погружаемся» | Включился AI-тон. Откатить хук, переписать заново. |
| Скрипт работает для любого проекта (можно скопировать в другой) | Пропустил Шаг 2 (лексикон). Вернуться. |
| Хук длиннее 7 слов | Произнеси вслух. >3 сек — режь. |
| Слов больше бюджета | Пересчитай. RU ≈ 2.5 слова/сек. |
| Хук той же формулы что в прошлом эпизоде | Вернись в hook-bank, выбери другую. |
| Атом «Pain» сформулирован девелоперским языком | Переформулируй так, чтобы поняла мама. |
| Один коммит как материал без признаков hotfix/milestone | Вернись в Шаг 1, агрегируй. |
| Score <5 — но всё равно пишу скрипт | Не надо. Скажи пользователю «материал слабый, подожди неделю». |
references/ban-list-ru.md — полный чёрный список фраз с заменами.references/hook-bank-ru.md — 20+ хук-формул с примерами.references/register-ru.md — bad/good трансформации, как звучит живой инженер.references/arc-clustering.md — приёмы кластеризации коммитов в арки.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub jointime1/reels-skill --plugin reels-skill