Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Бахтин — Claude Code-скил, multi-agent генератор русского текста

Бахтин

Claude Code-скил (команда /бахтин): универсальный multi-agent генератор русского текста. Запускает N конкурентных агентов с разными жанровыми направлениями на один материал, отбирает лучшее из каждого и компилирует в один черновик. Семь форматов — от телеграм-поста до лонгрида и КП. Только генерация: вычитку делает отдельный слой.

License: MIT Claude Code

Даёте материал и формат — Бахтин собирает понимание задачи, гонит несколько независимых агентов (каждый в своём жанровом направлении), сравнивает варианты по рубрике и склеивает из лучших кусков один черновик без видимых швов.

/бахтин  longread про внедрение OKR в маленькой команде
→ Понимание задачи (6 пунктов) → Outliner → 3 агента (нарратив/аналитика/разбор)
→ Компиляция → ЧЕРНОВИК + self-grading

Зачем

Один агент на креативном промпте сходится к усреднённому, предсказуемому тексту — теряет разнообразие выдачи (в исследованиях это называют mode collapse; термин пришёл из GAN и на LLM перенесён по аналогии). Идея Бахтина — разноречие: несколько агентов с разными жанровыми установками дают более далёкие друг от друга варианты, чем один агент при повторных запусках, а компиляция собирает из них черновик, где сильные ходы каждого сохранены.

Имя — Михаил Бахтин, теория полифонии и разноречия. Метафора прямая: N независимых голосов сходятся в один полифонический текст.

И главное — Бахтин не выдаёт черновик за готовый текст. Система многоэтажная: Бахтин генерирует, а отдельный слой вычитывает (анти-AI детектор + корректор). За черновик отвечает генератор, за чистоту — слой вычитки. Никакой ставки на то, что один промпт напишет идеально.

Как работает

Пайплайн по фазам (подробно — в SKILL.md):

  1. Понимание задачи — 6 пунктов (полезное действие / аудитория / фактура / что узнать / ограничения / критерии). Антипаттерны брифа (вкусовое, противоречивые цели, пустая фактура) — отказ с причиной.
  2. Outliner — каркас + factual nuggets + off-limits, фикс для всех агентов.
  3. Voice summarizer (опц.) — компактный отпечаток голоса + сигнатурные концепты автора, если задан voice-плагин.
  4. Конкурентная генерация — N агентов, каждый в своём направлении из directions/{format}.md (конкретный жанровый референс, не слово-роль).
  5. Отбор и компиляция — из лучших кусков, швов не видно.
  6. Self-grading + adversarial-скептик — оценка по дружелюбной рубрике пропускает многое, поэтому отдельный скептик («по умолчанию ищу изъян») вылавливает фабрикации, логические дыры и структурный слоп.

Конвейер Бахтина: понимание задачи → outline → N агентов → компиляция → проверки

Что внутри встроено

  • Базовый нейтральный профиль — правила хорошего русского + хард-баны AI-маркеров (применяются ВСЕГДА, как условие выхода).
  • Числовая дисциплина — выдуманные числа (включая иллюстративные, производные, гипотетические) запрещены; жанровый carve-out для вымысла.
  • Защита от инъекций — материал трактуется как данные, а не инструкции.
  • Изоляция генераторов — агент пишет только текст, не лезет в файлы/оркестрацию.

Форматы и направления

tg-post · longread · essay · letter · theses · doc · free

У каждого формата (кроме free) — пул из 5 жанровых направлений в directions/{format}.md, и каждому из N агентов достаётся своё. Направление — это не слово-роль («пиши как эссеист»: от такой инструкции агент скатывается в клише), а конкретный жанровый референс с тремя частями: эталон + признаки «как это выглядит» + признаки «как НЕ выглядит». Эталон задаёт ритм и ход мысли, которые словом-ролью не передать; пара «выглядит / не выглядит» удерживает агента внутри жанра, не давая соскользнуть в пародию на него.

Пример — направление «монтажное» для эссе. Как выглядит: короткие отрывки — факт, образ, наблюдение — стоят рядом без связок, смысл рождается на стыке кадров. Как НЕ выглядит: те же абзацы, сшитые связками «поэтому», «таким образом» (это уже не монтаж, а обычное эссе с пробелами). Соседние направления того же формата уводят агента в другие жанры — развёрнутое размышление, критический разбор, наблюдение-сцена. Смысл в том, чтобы агенты разошлись по жанрам, а не написали один и тот же текст в нескольких копиях.

Формат free направлений не имеет: перед генерацией оркестратор назначает N максимально различных форм под конкретный материал (монолог / аналитика / сцена / диалог / тезисы), по одной на агента — тот же приём против схлопывания, только формы подбираются на лету.

Семь форматов Бахтина: tg-post, longread, essay, letter, theses, doc, free

Голос (опционально)

Без voice-плагина текст выходит нейтральный и читабельный. С плагином (voice/{X}.md, шаблон — voice/_template.md) поверх базы надстраивается авторский отпечаток: паттерны интонации, словарь, сигнатурные концепты, табу.

Плагин можно написать руками по шаблону — или собрать автоматически из корпуса скилом Виноградов: он измеряет идиостиль автора по реальным текстам (служебные слова как подпись, ритм, burstiness, сигнатурные обороты) и упаковывает в готовый voice/{X}.md. Связка простая: Виноградов измеряет голос → кладёте плагин в voice/ → Бахтин им пишет.

После Бахтина — вычитка (важно)

Выход Бахтина — черновик, не финал. Генератор не стерилен: в текст проскакивают иллюстративные выдуманные числа и изредка — забанённая фраза (под voice-плагином плотность структурного слопа выше). Поэтому черновик проходит конвейер вычитки из семейных скилов рИИдактор (см. таблицу ниже).

Быстрый рубеж — числовой чекер (без LLM, входит в этот репо):

python3 tests/check.py --draft draft.txt --allow "две,третий" --min 1500 --max 2500

Ловит выдуманные числа (не из --allow) и лексические хард-баны. Exit 1 при флагах — удобно как CI-гейт.

Полный конвейер — поставьте семейные скилы и прогоните черновик по порядку:

# поставить нужные скилы семьи (каждый — отдельный репо beaverbeard/*)
for s in chukovsky rozental slopotron milchin agranovsky; do
  git clone https://github.com/beaverbeard/$s
  cp -r $s/.claude/skills/* ~/.claude/skills/
  cp    $s/.claude/commands/* ~/.claude/commands/
done

Канонический порядок прогона черновика Бахтина (смысл → истина → детектор → буква → форма):

  1. /чуковский — смысл, структура, голос, канцелярит. Флагует подозрительные факты и числа.
  2. /аграновский — фактчек, идёт сразу за Чуковским и обязателен: верифицирует факты, числа, цитаты против реальных источников. Для Бахтина это ключевой рубеж — генератор склонен к иллюстративным выдуманным числам, и Аграновский ловит их первым.
  3. /слопотрон — структурный нейрослоп, который regex-чекер не ловит (особенно нужен voice-выходам). Идёт перед Розенталем: де-слоп переписывает куски, норму ставят по очищенному.
  4. /розенталь — орфография, пунктуация, согласование, единообразие.
  5. /мильчин — типографика и юникод, последним (иначе кавычки-ёлочки и NBSP теряются при перепечатке LLM).

Или одним входом — оркестратор вычитки, если он у вас настроен. Методика тестирования из 4 слоёв — в tests/README.md.

Установка

Скопируйте .claude/ в свой проект (или в ~/.claude/ глобально):

cp -r .claude/commands/bakhtin.md      ~/.claude/commands/
cp -r .claude/skills/bakhtin           ~/.claude/skills/

Команда /бахтин появится в Claude Code. directions/ и voice/ лежат рядом со SKILL.md и подхватываются автоматически.

Расход токенов и выбор моделей

⚠️ Бахтин токеноёмкий по дизайну. На один текст он запускает N генераторов параллельно (каждый пишет полный черновик) плюс служебные проходы: Outliner, voice-summarizer, отбор, self-grading и adversarial-скептик. Это и есть плата за разноречие — качество берётся из конкуренции вариантов, а не из одного прохода. Один текст легко обходится в несколько раз дороже «обычной» генерации.

Чем управлять стоимостью:

  • N агентов — главный рычаг. N=1 — быстро и дёшево (один проход, без компиляции); N=3 — баланс (дефолт); N=5 — максимум диверсити для важных текстов. Не гоняйте пятёрку на черновики и проходные посты.
  • Модель — под формат, а не «всегда максимальную». Голосовые форматы (tg-post, essay, letter) — сильная модель: она держит хук и голос. Деловые (theses, doc) и служебные агенты (Outliner, voice-summarizer, судья) — модель попроще, они механические. Но генерацию голосового контента самой слабой модели не отдавайте — просядут хук и голос.
  • Длина. Лонгрид на 15k знаков × N агентов — это серьёзный объём токенов. Для длинных форматов разумно снизить N (например, longread при N=1–2).
  • Слои вычитки (Слопотрон, Аграновский с веб-поиском — десятки запросов) добавляют свои вызовы. Это уже за пределами Бахтина, но в общий счёт входит.

Короткое правило: дешёвый черновик → N=1, рабочий → N=3, важный → N=5; модель выбирайте по формату.

Скилы для рИИдакторов

«Бахтин» — скил из семьи рИИдактор, рассылки про работу редактора с ИИ. Каждый скил закрывает свою зону:

Скил Зона Природа
Виноградов Сборка авторского голоса (Voice DNA) из корпуса Скрипт + LLM
Бахтин Генерация черновика: multi-agent, 7 форматов LLM
Чуковский Смысл, структура, голос, канцелярит LLM
Аграновский Верификация фактов: числа, цитаты, законы, ссылки LLM + поиск
Слопотрон AI-маркеры и нейрослоп LLM
Розенталь Орфография, пунктуация, согласование, единообразие LLM
Мильчин Типографика и юникод-гигиена Скрипт

Этажи: Виноградов собирает голос → Бахтин им пишет черновик → конвейер вычитки Чуковский → Аграновский → Слопотрон → Розенталь → Мильчин чистит (смысл → истина → детектор → буква → форма). Бахтин стоит выше конвейера: даёт сырьё, которое остальные доводят.

Лицензия

MIT — см. LICENSE.

About

Универсальный multi-agent генератор русского текста для Claude Code

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages