Receber por email
← Voltar para o catálogo

humanizer-ru

Restaura a voz do autor em textos russos gerados por LLM, removendo elementos de estilo de IA como linguagem burocrática, clichês e calques do inglês. Mantém um perfil de voz do autor, suporta predefinições de gênero e um modo de auditoria, tornando o texto mais humano.

16estrelas
Atualizado há 6 meses

Ver no GitHub ↗ Licença: NOASSERTION

Como adicionar

/plugin marketplace add SergeNS-mne/humanizer-ru

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/humanizer-ru-sergens-mne/svg)](https://www.skillteca.com.br/skills/humanizer-ru-sergens-mne)

Alerta por categoria

Receba novas skills de Escrita e Conteúdo toda segunda

1 email curto, só com as skills novas de Escrita e Conteúdo. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Humanizer-RU

Скилл для редактирования русскоязычных LLM-текстов. Подход редакторский, не противодетекторный: цель — вернуть автору голос, а не «обмануть классификатор».

В традиции Норы Галь, инфостиля и Розенталя. Опирается на классику русского редактирования, не на arms race с детекторами LLM.

Что внутри

Скилл устроен как три слоя:

  1. Фразовый слой — каталог из 50+ правил в 9 тематических группах: контентные паттерны, языковые, стилевые, типография, коммуникация, морфология (падежи, виды, согласования), расширенная идиоматика (4 класса калек), филлеры, идеальная грамотность как маркер.
  2. Документный слой — структурная диагностика: listicle-сигнатура, плотность тире, разброс длин предложений, доля AI-цитат, плотность точки с запятой и одиночных двоеточий, голосовая консистентность с паспортом.
  3. Голосовой паспорт — мета-уровень: сохраняемый артефакт .humanizer/voice.json с предпочтениями автора, эволюционирующий между сессиями.

Дополнительные механизмы:

  • Светофорная разметка абзацев (🟢 не трогать / 🟡 точечно / 🔴 переписать) на основе паспорта.
  • Принцип жеста — каждое предложение должно содержать авторский выбор слова, конкретику или неожиданный поворот.
  • Динамические приоритеты по жанровому пресету (always/context/ignore вместо статических A/B/C/D).
  • Доменные whitelist'ы (ИТ / финансы / медицина) — чтобы не заменять профильные термины на «упрощённые».

Это отличие от поверхностного перифразирования: скилл не «делает текст менее предсказуемым», а возвращает в него конкретного автора.

См. dictionaries/ для расширенных словарей и whitelist'ов, examples/ для регрессионных примеров.

Команды и режимы

/humanizer-ru                          базовый прогон по последнему паспорту или дефолтам
/humanizer-ru --sample                 калибровка по образцу автора (приложить 2-3 абзаца)
/humanizer-ru --interview              калибровка через короткое интервью (если образца нет)
/humanizer-ru --preset=<имя>           использовать жанровый пресет (habr / telegram / email / vc / linkedin / docs)
/humanizer-ru --audit                  только диагностика, без правок
/humanizer-ru --rough                  опт-ин на намеренные микро-неровности (для соцсетей)
/humanizer-ru --reflect <финал>        обновить паспорт по финальной версии (post-hoc feedback)
/humanizer-ru --add-sample             добавить образец в существующий паспорт

Флаги комбинируются: --preset=habr --sample = калибровка по образцу + дефолты Habr поверх.

Слой 3 — Голосовой паспорт

Зачем это вообще

LLM по умолчанию пишет «усреднённого человека». Voice passport фиксирует конкретного автора, и каждая правка сверяется не с абстрактной нормой, а с тем, как пишет этот автор.

Паспорт хранится в .humanizer/voice.json в рабочей директории пользователя. Если файла нет — скилл предлагает калибровку. Если есть — использует и при необходимости эволюционирует.

Схема .humanizer/voice.json

{
  "version": 1,
  "created": "2026-04-27",
  "updated": "2026-04-27",
  "usage_count": 0,
  "calibration_mode": "sample",

  "address": "ты",
  "formality": 6,

  "typography": {
    "dash": "–",
    "dash_padding": "spaces",
    "quotes": "«ёлочки»",
    "yo_letter": "consistent",
    "nbsp": "minimal"
  },

  "rhythm": {
    "sentence_length_avg": 15,
    "sentence_length_min": 3,
    "sentence_length_max": 35,
    "sentence_variance": "high",
    "paragraph_length_avg": 4
  },

  "voice_features": {
    "irony": "occasional",
    "person": "first",
    "rhetorical_questions": true,
    "personal_anecdotes": true,
    "hedging": "minimal"
  },

  "preferred_phrases": ["по-человечески", "в общем"],
  "banned_phrases": ["являются", "в современном мире"],

  "channel_default": "habr",

  "context_exceptions": [],

  "history": [
    {
      "date": "2026-04-27",
      "session_id": "s1",
      "event": "calibrated_from_sample",
      "details": "initial calibration from 2-paragraph sample"
    }
  ]
}

Поля паспорта

| Поле | Значения | Что значит | |---|---|---| | address | ты, Вы, depends_on_channel | Обращение к читателю | | formality | 1-10 | Уровень формальности (1 = чат с другом, 10 = официальный документ) | | typography.dash | —, –, - | Тип тире | | typography.dash_padding | spaces, none, mixed | Пробелы вокруг тире | | typography.quotes | «ёлочки», „лапки", "прямые", mixed | Тип кавычек | | typography.yo_letter | consistent, never, ad_hoc | Использование Ё | | typography.nbsp | strict, minimal, none | Неразрывные пробелы | | rhythm.sentence_length_avg | число | Средняя длина в словах | | rhythm.sentence_variance | high, medium, low | Разброс длин (важно для burstiness) | | voice_features.irony | frequent, occasional, none | Допустима ли ирония | | voice_features.person | first, we, impersonal | Голос: я / мы / безличный | | voice_features.hedging | minimal, moderate, heavy | Степень оговорок | | preferred_phrases | список | Любимые обороты автора (сохранять) | | banned_phrases | список | Запрещённые обороты (никогда не выдавать) | | channel_default | имя пресета | Жанровый пресет по умолчанию | | context_exceptions | список | Правила, которые не применять в указанных контекстах | | history | список событий | Журнал изменений паспорта |

Уровни калибровки

Уровень 1 — Образец автора (идеал)

Автор предоставляет 2-3 абзаца своего письма. Скилл анализирует образец по конкретному алгоритму и заполняет полный паспорт. calibration_mode: "sample".

Алгоритм извлечения voice features из образца

Обращение (address). Сканировать местоимения и формы глаголов:

  • «ты, тебя, тебе, тобой» → ты
  • «вы, вам, вас, вами» (с большой буквы) → Вы
  • безличные конструкции преобладают, местоимений нет → impersonal
  • неоднозначно → depends_on_channel

Формальность (formality, 1-10). Базовая = 5, корректировать:

  • слэнг или явно неформальная лексика («норм», «короче», «вообще») → −2
  • сокращения, аббревиатуры в неформальной форме → −1
  • разговорные обороты → −2
  • канцелярит («осуществление», «реализация», «в рамках») → +3
  • юридические/научные термины → +2
  • безличные конструкции преобладают → +1
  • результат clamp в [1, 10]

Тире (typography.dash). Подсчитать em-dash (—), en-dash (–), дефис (-) в роли тире (с пробелами):

  • em-dash > 2× en-dash → "—"
  • en-dash > 2× em-dash → "–"
  • только дефисы (-) с пробелами → "-"
  • смешение → доминирующий тип, остальное в history как «непоследовательно»

Пробелы вокруг тире (typography.dash_padding). Если в 80%+ случаях есть пробелы — "spaces". Если их нет — "none". Иначе — "mixed".

Кавычки (typography.quotes). Подсчитать «ёлочки», „лапки", "прямые". Доминирующий тип идёт в паспорт. Если мало вхождений (<3) — оставить дефолт пресета.

Ё (typography.yo_letter). Подсчитать слова с Ё и слова, в которых должна быть Ё, но стоит Е (использовать словарь основных Ё-слов: ёж, всё, ещё, плёнка, мёд, ёлка, пчёл, нашёл, и т.д.):

  • 80%+ слов с правильной Ё → consistent
  • 0-5% → never
  • 5-80% → ad_hoc

Неразрывные пробелы (typography.nbsp). Проверить на наличие U+00A0 перед %, °, км, шт, инициалами:

  • 80%+ соответствие → strict
  • 20-80% → minimal
  • <20% → none

**Ритм (rhythm.*).** Разбить на предложения по [.!?], посчитать длины в словах:

  • sentence_length_avg — среднее
  • sentence_length_min — минимум
  • sentence_length_max — максимум
  • sentence_variance: σ ≥ 6 → high, 4-6 → medium, <4 → low
  • paragraph_length_avg — среднее число предложений в абзаце

**Голосовые черты (voice_features.*):**

  • irony: маркеры иронии (вопросы с восклицанием, контрапункты, само-преуменьшения, «ну», «конечно же», «серьёзно?») → подсчитать долю; >5% предложений → frequent, 1-5% → occasional, <1% → none
  • person: преобладают «я» → first, «мы»
Compartilhar X LinkedIn