humanizer-ru

Проверяемая гигиена вставки из чата для русского текста

Терминал humanizer-markers подсвечивает следы машинного текста и объясняет причину каждого флага

License: MIT PyPI CI

Кому это нужно

  • Редактору и преподавателю: проверить текст перед публикацией: humanizer-markers --scan файл.md.
  • Разработчику и CI: гейт вставки из чат-интерфейсов: action и контракт.
  • Пользователю ИИ-ассистента: та же проверка внутри агентной среды: MCP одной конфигурацией или демо.

Попробовать за 30 секунд

  • Демо в браузере: ничего не устанавливать, текст не покидает браузер.
  • В терминале:
pip install humanizer-ru
humanizer-markers --scan primer.txt
  primer.txt:1 [contentReference] Согласно отчёту :contentReference[oaicite:3]{index=3}, рост заявок за неделю 12%: https://
  primer.txt:1 [utm_chatgpt] Согласно отчёту :contentReference[oaicite:3]{index=3}, рост заявок за неделю 12%: https://
  primer.txt:2 [zero_width] Данные подтверждены ассистентом​, подробности в чате.

MCP одной конфигурацией

{
  "mcpServers": {
    "humanizer-ru": { "command": "humanizer-mcp" }
  }
}

Что это НЕ делает

  • Переписанный текст: теоретический потолок детекции при парафразе [bib:sadasivan2023]; парафраз обнуляет детекторы [bib:dipper2023].

  • Нативно-гладкий машинный текст без артефактов: документная граница там же [bib:sadasivan2023]; популяционная детекция возможна только на больших выборках [bib:chakraborty2023], вердикт по документу не заявляется.

  • Короткий текст: сигналов меньше, чем слов, водяной знак и статистика требуют длины [bib:anthropic2026wm], [bib:synthid2024].

  • Водяные знаки без ключа: distortion-free знак не виден стороннему наблюдателю по построению [bib:kuditipudi2023]; криптографическая неотличимость без ключа [bib:cgz2023]; детектор SynthID-Text требует ключ разработчика [bib:synthid2024]; Anthropic подтверждает: без ключа знак не проверяется, детектор-API в закрытом preview [bib:anthropic2026wm].

  • Ключи [bib:…] раскрыты в research/BIBLIOGRAPHY.md.

  • polish не запускать на Markdown и разметке: снимает ##, **, ёлочки, тире; для разметки — режим --preserve-markup.

Почему можно доверять

Установка скилла в браузерные клиенты

  • Демо работает без установки: https://vladimir-human.github.io/humanizer-ru/ — текст не покидает браузер.
  • Claude.ai и Claude Code: добавьте скилл из каталога dsh/skills/humanizer-ru по инструкции установки в docs/USAGE.md.
  • Агентные клиенты с поддержкой agentskills.io (opencode, DeepSeek Harness): распакуйте текстовый бандл из архива релиза.
  • Браузерное расширение отклонено: новый поверхностный контур (permissions, store review) не окупается; очередь идей — research/BACKLOG.md.

Каталоги: Glama MCP · skills.sh.

Одноимённые проекты

На GitHub есть скиллы с тем же именем и другим содержанием. Снимок 2026-09-05 (проверка: gh repo view <владелец>/humanizer-ru --json stargazerCount):

  • ilyautov/humanizer-ru — 284 звезды: позиционирование «убирает признаки нейросети», публичного реестра чисел нет.
  • smixs/humanizer-ru — 148 звёзд: детерминированный линтер; единственный тёзка, включённый в LEADERBOARD.md как кандидат (парный прогон 2026-09-03).
  • Этот проект — проверяемая гигиена вставки из чат-интерфейсов: каждое число из детерминированных снимков и реестра фактов, границы — в THREAT-MODEL, ложные срабатывания — в бенчмарке.

Пришли по имени — выбирайте по способу проверки, а не по звёздам.

Цифры проекта

  • 58 паттернов машинного письма и 40 regex-маркеров (классы A и B).
  • Записи доказательств: 38 из 40 маркеров (реестр research/fixtures/marker-sources.json).
  • Гейты: 146 гейтов полного check_all (135 в --quick); фикстуры в tests/fixtures/, документация сверяется check_docs.py, персона описана в PERSONA.md.

Почему так называется: имя унаследовано от первой функции, снимавшей слой копипасты после чат-бота и возвращавшей тексту человеческий вид. Вторая функция продукта: диагностика, подсветить машинные следы и объяснить причину каждого флага, без вердиктов об авторстве. Обе функции работают офлайн, текст не покидает вашу машину.

Классовая разбивка FP, exploratory, вне предрега F16: класс A: 0 случаев на 12314 текстов-неносителей; класс B: 8 случаев на 12314, то есть 0.00065, Wilson 95% CI от 0.0003 до 0.0013; контрольный набор 40 текстов: флагов 0; тяжёлый домен S4 legal и official, n=381, дефицит объёма зафиксирован в предреге: 18 случаев на 381, то есть 0.0472, Wilson 95% CI от 0.0301 до 0.0734; знаменатели: 12354 полный корпус F16, 12314 validation-страта.

Подробнее

Regex-маркеры: классы A и B

Класс A — жёсткие артефакты копипасты: служебные ссылки и метки цитирования чат-интерфейсов. Класс B — контекстные индикаторы: невидимые символы, скрытая раскладка, placeholder-поля; одного совпадения B недостаточно. Класс маркеров — copypaste_artifacts; ретайр маркера возможен только по провалу на своём классе, статусы и даты — в markers.v1.json.

История изменений

История изменений — в CHANGELOG.md и на GitHub Releases.

Лицензия

MIT

Статус проекта

Версия Skills.sh Догфудинг

Догфудинг — проект проверяет собственные тексты собственными правилами: порог маркеров стиля в файлах поставки сверяется гейтом scripts/check_own_style.py (текущий максимум выводится в его запуске).