Voice dna builder
Skill ponomr/voice-dna-builder
Создаёт персональный voice-скилл для любого пользователя — интервьюирует его, анализирует его реальные образцы текста и генерирует готовый устанавливаемый SKILL.md с индивидуальным Voice DNA (профиль, каналы, тональности, забаненные фразы, калибровочные примеры). Используй когда пользователь хочет «настроить свой стиль», «склонировать свой голос», «сделать скилл под мой стиль письма», «voice dna», «свой style-writer», «обучить агента писать как я».From its SKILL.md
npx -y skills add ponomr/voice-dna-builderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 4 commands, including `python3 ~/.claude/skills/voice-dna-builder/scripts/extract_telegram.py result.json` and 3 more.
SKILL.md
8.4 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
Voice DNA Builder
Мастер, который превращает образцы текста человека в персональный writing-скилл,
устанавливаемый в ~/.claude/skills/. Результат — такой же по структуре, как
style-writer-ponomar, но с голосом конкретного пользователя: его вводными
словами, ритмом, маркерами иронии, каналами и тональностями.
Когда использовать
- Пользователь хочет, чтобы агент писал его голосом (посты, письма, реплики).
- Просит «настроить мой стиль», «склонировать голос», «свой voice dna».
- Хочет раздать коллегам инструмент для их собственных голосов.
Что внутри (bundled resources)
| Ресурс | Назначение |
|---|---|
scripts/analyze_corpus.py | Детерминированно считает длину, ритм, вводные, n-граммы-обороты, начала/концовки, маркеры иронии, пунктуацию |
scripts/extract_telegram.py | Достаёт корпус автора из JSON-экспорта Telegram Desktop (фильтрует форварды, медиа, ссылки) |
references/extraction-guide.md | Вопросы интервью + правила маппинга «отчёт → шаблон» + схема voice-profile.json |
references/skill-template.md | Шаблон выходного SKILL.md (структура как у style-writer-ponomar) |
references/universal-anti-slop.md | Общий анти-AI-слой (баны фраз, RU+EN), встраивается в каждый скилл |
Рабочий процесс
Выполнять по шагам. Интерфейс мастера — на русском; сгенерированный скилл — на языке образцов пользователя (RU/EN/смешанный).
Обновление существующего голоса? Если у пользователя уже есть скилл с
references/voice-profile.json— не проводить интервью заново, перейти к разделу «Обновление голоса» ниже.
Шаг 1 — Интервью
Прочитать references/extraction-guide.md (Часть 1) и провести интервью порциями:
сначала блок А (личность, темы, каналы), потом блок Б (тон, тональности, анти-правила).
Не задавать всё одним списком. Для выбора каналов/тональностей удобно использовать
структурированные вопросы.
Шаг 2 — Сбор образцов
Запросить 5–20+ реальных образцов в нужном голосе. Способы (любой):
- вставка в чат через разделитель
---; - путь к файлу (.txt / .md);
- JSON-экспорт Telegram Desktop — лучший источник живого голоса:
python3 ~/.claude/skills/voice-dna-builder/scripts/extract_telegram.py result.json # покажет авторов
python3 ~/.claude/skills/voice-dna-builder/scripts/extract_telegram.py result.json --from "Имя" -o /tmp/corpus.txt
Если образцов мало (<5) — честно предупредить, что голос выйдет приблизительным.
Шаг 3 — Анализ корпуса
Сохранить образцы во временный файл и прогнать:
python3 ~/.claude/skills/voice-dna-builder/scripts/analyze_corpus.py /tmp/corpus.txt
Отчёт даёт реальные числа. Не выдумывать статистику — брать только из отчёта.
Шаг 4 — Сборка скилла
По references/extraction-guide.md (Части 3–4) заполнить references/skill-template.md:
- подставить данные интервью и числа из отчёта;
- вместо
{{ANTI_SLOP}}вставить RU- или EN-секцию изreferences/universal-anti-slop.md; - в Usage-примеры вставить 3–4 дословных образца автора (они калибруют тон сильнее правил);
- учесть тире-исключение: если автор сам активно использует тире — не банить их жёстко.
Шаг 5 — Установка
Записать результат в ~/.claude/skills/{{slug}}/SKILL.md, где slug — kebab-case
латиницей (напр. style-writer-ivanov). Проверить frontmatter (валидный name +
description с триггер-фразами).
Рядом сохранить профиль голоса ~/.claude/skills/{{slug}}/references/voice-profile.json
(ответы интервью + корпус + дата; схема — в extraction-guide.md, Часть 4). Без него
обновление голоса потребует повторного интервью и повторной вставки всех образцов.
Шаг 6 — Проверка и калибровка
Сообщить пользователю команду вызова (/{{slug}}) и предложить пробную генерацию.
Если голос звучит не так — вернуться к Шагу 4, поправить профиль/правила/примеры.
Опционально упаковать скилл для раздачи:
python3 ~/.claude/skills/skill-creator/scripts/package_skill.py ~/.claude/skills/{{slug}}
Обновление голоса (без повторного интервью)
Когда пользователь просит «обнови мой голос» / «добавь новые образцы»:
- Прочитать
~/.claude/skills/{{slug}}/references/voice-profile.json— интервью уже там, заново не спрашивать (только уточнить, если что-то изменилось: новые каналы, тон). - Принять новые образцы (чат / файл /
extract_telegram.py), добавить к корпусу из профиля. - Прогнать
analyze_corpus.pyпо объединённому корпусу. - Показать пользователю diff подписи голоса: какие вводные/обороты добавились, какие выпали.
- Пересобрать SKILL.md (Шаг 4), обновить
voice-profile.json(корпус +updated).
Принципы качества
- Только настоящее. В «подпись голоса» идут лишь реально частотные слова из отчёта, не выдуманные.
- Примеры > правила. Реальные образцы автора в Usage — половина качества клона.
- Анти-слой общий, голос личный. Баны AI-фраз одинаковы для всех; всё остальное индивидуально.
- Язык вывода = язык образцов, даже если интервью шло на русском.
What ships with it: 8 files
53.5 KB alongside SKILL.md, 2 of them executable
references/
- extraction-guide.md9.9 KB
- skill-template.md6.3 KB
- universal-anti-slop.md10.0 KB
scripts/
- analyze_corpus.pyruns13.6 KB
- extract_telegram.pyruns4.7 KB
- .gitignore172 B
- LICENSE1.0 KB
- README.md7.8 KB