SSkilltecabyclaudinhocode
Enviar skill
← Voltar para o catálogo

humanizer-ru

Escrita e Conteúdo

Возвращает автору голос в русскоязычных текстах от LLM. Чистит канцелярит, штампы, цепочки родительного, «является», кальки с английского, преувеличения, типографические маркеры; ведёт голосовой паспорт автора в `.humanizer/voice.json`, поддерживает жанровые пресеты (Habr/Telegram/email и др.) и режим аудита. Применять, когда пользователь просит «сделать текст человечнее», «убрать AI-стиль», «пере

11estrelas
Ver no GitHub ↗Autor: SergeNS-mneLicença: NOASSERTION

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Обращение к читателю
formality1-10Уровень формальности (1 = чат с другом, 10 = официальный документ)
typography.dash, , -Тип тире
typography.dash_paddingspaces, none, mixedПробелы вокруг тире
typography.quotes«ёлочки», „лапки", "прямые", mixedТип кавычек
typography.yo_letterconsistent, never, ad_hocИспользование Ё
typography.nbspstrict, minimal, noneНеразрывные пробелы
rhythm.sentence_length_avgчислоСредняя длина в словах
rhythm.sentence_variancehigh, medium, lowРазброс длин (важно для burstiness)
voice_features.ironyfrequent, occasional, noneДопустима ли ирония
voice_features.personfirst, we, impersonalГолос: я / мы / безличный
voice_features.hedgingminimal, 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, «мы»

Como adicionar

/plugin marketplace add SergeNS-mne/humanizer-ru

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

Comentários · Nenhum comentário

Entre para comentar. Entrar

  • Ainda não há comentários. Seja o primeiro.