清理俄语文本中的 AI 痕迹:识别聊天机器人复制粘贴残留(ChatGPT、Gemini、Grok、Perplexity、DeepSeek),移除隐藏文本标记(零宽字符、隐形排版;影子扫描捕获被不可见字符拆分的标记),并按需求改写为自然行文;40 个正则标记,其中 38 个有完整证据登记;156 个门控,530 个测试;离线运行,纯文本 bundle(二进制元数据移除在 scripts/ 中)。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Vladimir-Human/humanizer-ru#path:/dsh
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 README 只有英文版本。
Проверяемая гигиена вставки из чата для русского текста
40 regex-маркеров артефактов вставки из чат-интерфейсов, у 38 из них полная запись доказательств. Ложных срабатываний класса A на 12314 текстах-неносителях ноль, класса B — 8, то есть 0.00065 (Wilson 95% CI от 0.0003 до 0.0013; замер 04.09.2026 по замороженной предрегистрации). Каждое число с датой и командой воспроизведения — в разделе «Цифры проекта».
Очистка артефактов вставки и сверка фактов доступны и для английского текста:
добавьте --language en к humanizer-clean, humanizer-polish,
humanizer-facts или humanizer-report (либо --language auto). Это не
включает русские стилевые эвристики и не даёт вердиктов об авторстве; профиль
сохраняет код, URL, Markdown и проверяемые факты. Русский профиль остаётся
значением по умолчанию для совместимости.
Кому это нужно
- Редактору и преподавателю: проверить текст перед публикацией:
humanizer-markers --scan файл.md. - Разработчику и CI: гейт вставки из чат-интерфейсов: action и контракт.
- Пользователю ИИ-ассистента: та же проверка внутри агентной среды: MCP одной конфигурацией или демо.
Попробовать за 30 секунд
- Демо в браузере: ничего не устанавливать, текст не покидает браузер.
- Сообщить о проблеме или опыте использования: issue в репозитории; пользовательский текст не передаётся автоматически ни демо, ни сборщиком обратной связи.
- В терминале:
pip install humanizer-ru
python -c "open('primer.txt','w',encoding='utf-8').write('Согласно отчёту :contentReference[oaicite:3]{index=3}, рост заявок.\n')"
humanizer-markers --scan primer.txt; echo "rc=$?"
primer.txt:1 [contentReference] Согласно отчёту :contentReference[oaicite:3]{index=3}, рост заявок.
Найдено маркеров: 1.
rc=1
rc=1 означает «найдены маркеры» — это ожидаемый результат проверки на образце со следом вставки, а не ошибка; rc=0 — следов нет, rc=2 — вход не читается (с --json конверт ошибки печатается в stdout).
MCP одной конфигурацией
{
"mcpServers": {
"humanizer-ru": {
"command": "uvx",
"args": ["--from", "humanizer-ru==3.36.0", "humanizer-mcp"]
}
}
}
Форма uvx устанавливает закреплённый выпуск PyPI и запускает stdio-сервер.
При локальной установке эквивалентны pip install humanizer-ru и запуск
humanizer-mcp.
Матрица проверенных возможностей и границ
Без заявлений о лидерстве: сопоставимого внешнего исследования в нише на дату записи нет (см. LEADERBOARD.md). Строки — что фактически проверено гейтами и тестами цикла; границы — что поверхность не делает.
| Поверхность | Проверка известных артефактов | Безопасная очистка | Сверка фактов | Машинный конверт | Граница |
|---|---|---|---|---|---|
CLI (humanizer-markers, -polish, -facts, -report) |
да, с координатами и классами A/B | режимы strip / --preserve-markup / --typographic с инвариантами сохранения | humanizer-facts (категории фактов) | --json, коды возврата по контракту | семантику не проверяет; вердиктов об авторстве нет |
MCP (humanizer-mcp, набор инструментов contract.v1.json) |
те же команды через stdio | те же режимы через humanizer_polish | humanizer_facts | JSON-RPC конверты, isError по контракту | текст не покидает процесс |
| Демо на Pages | да, подсветка исходных диапазонов в браузере | нет (только проверка и отчёт) | нет | копирование отчёта из одного результата | офлайн в браузере, без установки |
| GitHub Action | гейт вставки + автофикс текстового пути (класс A) | action_fix вне fenced/кода | нет | rc гейта | фикс не трогает защищённые области |
| Текстовый скилл (SKILL.md) | процедуры агента по references | стилевая правка только по явной просьбе | нет | нет (проза скилла) | гарантий естественности и сохранности смысла нет |
Что это НЕ делает
Переписанный текст: теоретический потолок детекции при парафразе [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.
Почему можно доверять
- Методология и бенчмарк: числа с доверительными интервалами.
- Публичный бенчмарк: таблица с CI, командами воспроизведения и колонкой «где мы хуже».
- Модель угроз и границы детектора.
- Парити-гейт Python и JS правил.
- Самоаудит: числа, статусы и эррата.
- Статус последнего успешного прогона и деплоя: status.json на Pages (генерируется деплой-артефактом из точного SHA; обновляется только зелёным прогоном).
Установка скилла в браузерные клиенты
- Демо работает без установки: 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-11
(проверка: gh repo view <владелец>/humanizer-ru --json stargazerCount):
- ilyautov/humanizer-ru — 333 звезды: позиционирование «убирает признаки нейросети», публичного реестра чисел нет; приглашён к совместному публичному бенчмарку (issue 220).
- smixs/humanizer-ru — 154 звезды: детерминированный линтер; единственный тёзка, включённый в LEADERBOARD.md как кандидат (парный прогон 2026-09-03).
- Этот проект — проверяемая гигиена вставки из чат-интерфейсов: каждое число из детерминированных снимков и реестра фактов, границы — в THREAT-MODEL, ложные срабатывания — в бенчмарке.
Пришли по имени — выбирайте по способу проверки, а не по звёздам.
Цифры проекта
- 58 паттернов машинного письма и 40 regex-маркеров (классы A и B).
- Записи доказательств: 38 из 40 маркеров (реестр research/fixtures/marker-sources.json).
- Гейты: 156 гейтов полного check_all (145 в --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
Статус проекта
Догфудинг — проект проверяет собственные тексты собственными правилами: порог маркеров стиля в файлах поставки сверяется гейтом scripts/check_own_style.py (текущий максимум выводится в его запуске).
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-skill-explorer★ 8178
技能中心:按来源分级浏览已加载的全部 skill,启用/禁用模型调用、创建新技能、删除进可恢复回收站。
GanyuanRan/Aegis★ 1305
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。
superdesigndev/superdesign-skill★ 618
在 Superdesign 画布上做 UI 与营销图的设计技能:先读代码库拿上下文、抽取现有设计系统,再通过 Superdesign CLI 生成并迭代可分支的设计稿、流程页与可复用组件。
linhay/harmony-next.skills★ 356
为 DeepSeek Harness 提供 HarmonyOS NEXT 技能包、离线 API 参考及 DevEco、HDC 与模拟器自动化指南。
sandbaseai/sandbase-skills★ 202
通过文件系统 Skill provider 将 88 个研究、社交情报、营销与商业 Agent Skills 挂载到 dsh。
VDERR/dsh-echocat-skill-panel★ 196
每轮对话报告本轮调用了哪些 skill(模型自动加载、用户输入 /name,或一个都没用),并管理本机 skill 目录:粘贴仓库、文件夹、SKILL.md 或 zip 地址即可安装,中文显示名写入该 skill 的 meta.yaml,删除时保留备份。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。