Humanizer — скилл для убирания следов AI-генерированного текста
📂 Исходный код на GitHubПортативный agent skill на чистом Markdown, который убирает признаки AI-написанного текста. Детектит 33 паттерна на основе Wikipedia «Signs of AI writing», с аудитом-пассом, вторым переписыванием и правилом no-fabrication. MIT.
Humanizer — портативный скилл для AI-агентов, который убирает из текста признаки машинной генерации и делает его естественнее. Это просто Markdown-файл SKILL.md, поэтому он работает в любом agent-харнессе, поддерживающем skill-инструкции. В основе — руководство Wikipedia «Signs of AI writing», которое ведёт WikiProject AI Cleanup на основе наблюдений над тысячами примеров AI-текста.
Проблема
Любой LLM угадывает следующее слово статистически. Из-за этого результат тяготеет к самому «вероятному» и «универсальному» варианту, а текст получается стерильным и легко узнаваемым. Вот ключевая цитата из Wikipedia:
«LLMs use statistical algorithms to guess what should come next. The result tends toward the most statistically likely result that applies to the widest variety of cases.»
Что делает Humanizer
Скилл не просто «чистит» текст — он находит характерные AI-паттерны, объясняет их и переписывает. В состав входит несколько проходов:
- детекция 33 паттернов AI-текста;
- финальный пасс-аудит «очевидно сгенерировано AI» и второе переписывание, чтобы выловить оставшиеся AI-признаки в первом черновике;
- правило no-fabrication: скилл никогда не добавляет факты, имена, даты или ссылки, которых нет в исходном тексте. Конкретика должна приходить из источника или от автора, а не из переписывания.
Установка
Через Skills CLI
Глобальная установка, чтобы Humanizer был доступен в каждом проекте:
npx skills add blader/humanizer --global
Обновить установку:
npx skills update humanizer --global
Установить глобально во все поддерживаемые agent-харнессы:
npx skills add blader/humanizer --global --agent '*'
Для конкретного харнесса — передать его имя:
npx skills add blader/humanizer --global --agent <agent-name>
Если убрать --global — локальная установка в проект, её можно коммитить и делиться с коллегами. После установки начните новую сессию агента или перезагрузите скиллы.
Как плагин Claude Code
Пользователи Claude Code могут поставить Humanizer как плагин:
/plugin marketplace add blader/humanizer
/plugin install humanizer@humanizer
Скилл вызывается как /humanizer:humanizer.
Вручную
Так как весь рантайм — это файл SKILL.md, его можно скопировать в любую папку скиллов вашего харнесса:
git clone https://github.com/blader/humanizer.git /path/to/your/skills/humanizer
Либо, если репозиторий уже склонирован:
mkdir -p /path/to/your/skills/humanizer
cp SKILL.md /path/to/your/skills/humanizer/
Использование
Вызывайте скилл тем способом, как ваш харнесс предоставляет установленные скиллы — обычно slash-команда или прямой запрос:
/humanizer
[вставьте ваш текст]
Please humanize this text: [your text]
Можно указать файл, и скилл перепишет его на месте:
Humanize the prose in docs/launch-post.md
Калибровка голоса
Чтобы совпасть с вашим личным авторским стилем, дайте скиллу образец вашего письма:
/humanizer
Here's a sample of my writing for voice matching:
[вставьте 2-3 абзаца вашего текста]
Now humanize this text:
[вставьте AI-текст]
Скилл проанализирует ритм ваших предложений, выбор слов и особенности и применит их в переписывании — вместо того чтобы выдавать generic-«чистый» результат. Сэмпл вашего голоса переживает даже жёсткое правило про em-тире.
33 детектируемых паттерна
Паттерны разбиты на группы: контент, язык, стиль, коммуникация и «мусор/хеджинг».
Контент-паттерны
| # | Паттерн | До | После |
|---|---|---|---|
| 1 | Инфляция значительности | «marking a pivotal moment in the evolution of...» | «was established in 1989 as part of a wider decentralization» |
| 2 | Раздувание известности | «cited in NYT, BBC, FT, and The Hindu» | Сократить список, оставить только то, что в источниках |
| 3 | Поверхностный анализ на -ing | «symbolizing... reflecting... showcasing...» | Убрать или оставить подтверждаемое источником |
| 4 | Рекламный язык | «nestled within the breathtaking region» | «is a town in the Gonder region» |
| 5 | Расплывчатые утверждения | «Experts believe it plays a crucial role» | Назвать реальный источник или убрать утверждение |
| 6 | Штампованные «вызовы» | «Despite challenges... continues to thrive» | Оставить факты, убрать восторженность |
Языковые паттерны
| # | Паттерн | До | После |
|---|---|---|---|
| 7 | AI-лексика | «Actually... additionally... testament... landscape... showcasing» | «also... remain common» |
| 8 | Избегание глагола «быть» | «serves as... features... boasts» | «is... has» |
| 9 | Негативные параллелизмы и хвостовые отрицания | «It's not just X, it's Y», «..., no guessing» | Сказать прямо |
| 10 | Правило трёх | «innovation, inspiration, and insights» | Естественное количество элементов |
| 11 | Перебор синонимов | «protagonist... main character... central figure... hero» | «protagonist» (повторять ясное) |
| 12 | Ложные диапазоны | «from the Big Bang to dark matter» | Перечислить темы напрямую |
| 13 | Пассивный залог и фрагменты без подлежащего | «No configuration file needed» | Назвать действующего актора |
Стилевые паттерны
| # | Паттерн | До | После |
|---|---|---|---|
| 14 | Em/en тире | «institutions—not the people—yet this continues—» | Убрать: точки, запятые, двоеточия, скобки |
| 15 | Злоупотребление жирным | «OKRs, KPIs, BMC» | «OKRs, KPIs, BMC» |
| 16 | Списки с внутренними заголовками | «Performance: Performance improved» | В прозу |
| 17 | Заголовки в Title Case | «Strategic Negotiations And Partnerships» | «Strategic negotiations and partnerships» |
| 18 | Эмодзи | «🚀 Launch Phase: 💡 Key Insight:» | Убрать эмодзи |
| 19 | Кудрявые кавычки | said "the project" |
said "the project" |
| 26 | Дефисные пары слов | «cross-functional, data-driven, client-facing» | Убрать дефисы у распространённых пар |
| 27 | Приёмы «убеждающего авторитета» | «At its core, what matters is...» | Сказать прямо |
| 28 | Анонсы-указатели | «Let's dive in», «Here's what you need to know» | Начать с контента |
| 29 | Фрагментированные заголовки | «## Performance» + «Speed matters.» | Пусть заголовок работает сам |
| 30 | Письмо, привязанное к диффам | «This function was added to replace...» | Описывать, что делает, а не что менялось |
| 31 | Искусственные «панчлайны» и стаккато | «It had no preference. No prior. No nostalgia.» | Разная длина предложений, конкретные утверждения |
| 32 | Афоризм-формулы | «Symmetry is the language of trust» | Заменить формулу фактическим утверждением |
| 33 | «Честные» риторические вступления | «Honestly? It depends...» | Убрать фейковую откровенность |
Коммуникационные паттерны
| # | Паттерн | До | После |
|---|---|---|---|
| 20 | Артефакты чатбота | «I hope this helps! Let me know if...» | Убрать полностью |
| 21 | Дисклеймеры об ограниченных источниках | «While details are limited in available sources...» | Найти источники или убрать |
| 22 | Подхалимский тон | «Great question! You're absolutely right!» | Отвечать напрямую |
Мусор и хеджинг
| # | Паттерн | До | После |
|---|---|---|---|
| 23 | Слова-паразиты | «In order to», «Due to the fact that» | «To», «Because» |
| 24 | Чрезмерный хеджинг | «could potentially possibly» | «may» |
| 25 | Общие выводы | «The future looks bright» | Конкретные планы или факты |
Полный пример
(Техническое примечание: переписывание добавляет конкретику — месяц и районы — которые подставляются на детали, что добавит автор. В реальном чате они приходят от пользователя; скилл спрашивает, а не выдумывает.)
До (звучит по-AI):
I recently spent five unforgettable days in Lisbon, and let me tell you — this city completely stole my heart. From the moment I arrived, I knew I was somewhere truly special.
Nestled along the banks of the Tagus River, Lisbon stands as a vibrant testament to Portugal's enduring spirit, where rich history and modern energy intertwine at every turn. Yes, the famous hills are challenging — my legs certainly felt it! — but every climb rewards you with breathtaking, panoramic views that make it all worthwhile.
No trip would be complete without riding the iconic Tram 28, winding through the city's most historic neighborhoods. And the food? Simply divine. The original pastéis de nata at Pastéis de Belém are a beloved national treasure, and savoring one still warm was a moment I will never forget.
But what truly makes Lisbon special isn't just the sights — it's the feeling. Wander a few steps off the main squares and you'll discover a quieter, more authentic side: sun-drenched alleys, charming tiled facades, and friendly locals going about their daily lives, inviting you to slow down and savor every moment.
Of course, the must-see São Jorge Castle offers stunning views over the rooftops below. The queues can be long, but the experience is absolutely worth it for any history buff or curious traveler.
Would I go back? Absolutely. Lisbon isn't just a place to visit — it's a place to fall in love with, again and again. If you're dreaming of your next getaway, this is one destination that promises memories to last a lifetime. ✨
После (humanized):
I spent five days in Lisbon last October and still have mixed feelings about it. Beautiful, yes. Also harder on the knees than anyone warned me.
The hills are the whole story and somehow never make the brochures. My hotel was up in Alfama, which photographs beautifully and translates, in practice, to climbing what felt like a six-story staircase every time I wanted coffee. By the second day my calves had opinions. I started planning each walk around which way was downhill, which is a strange way to see a city but probably an honest one.
Everyone says to ride Tram 28, so I did, wedged against a stranger's backpack for forty minutes while three tour groups filmed the same corner. I would walk the route next time, or go before breakfast. The custard tarts, though, earn the fuss. I had one at a plain little place in Graça, still warm, and for about thirty seconds I understood why people build trips around pastry.
What I did not expect was how quiet the city gets away from the main squares. Two blocks uphill from any plaza it turns into laundry lines, chipped tile, open windows, and old men watching football with the sound turned up. That is the Lisbon I keep thinking about, not the castle.
The castle is fine. The view is great, the queue is long, and I spent more time shuffling toward the entrance than looking at anything once I got inside. If I had only two days, I would trade it for an afternoon of getting lost.
I would go back, but in spring and with better shoes. Lisbon does not bend over backward to make things easy for you. I think I liked that, even when my legs disagreed.
Версии и развитие
История релизов показывает, как скилл уточнялся: от 24 паттернов с before/after-примерами (2.1.0) до 33 паттернов (2.8.0) и правок вроде превращения em-тире в жёсткое правило вместо «злоупотребления» (2.7.0). Версия 2.9.0 добавила правило no-fabrication и режимы вызова (вставленный текст / файл / встроенный), а 2.9.1 улучшила дистрибуцию: убран непереносимый frontmatter, глобальная установка стала дефолтной, добавлена валидация пакета. Количество паттернов не менялось уже несколько релизов.
Лицензия
MIT
Итог
Humanizer — практичный инструмент для всех, кто публикует тексты, где AI-след не нужен: рассылки, посты, документация, описания проектов. Ставится в любой харнесс за минуту, принимает вставленный текст или файл и возвращает вариант, который звучит как написанный человеком. Главное ограничение — правило no-fabrication: никакой конкретики, которой не было в исходнике, скилл не выдумывает.
Источник: https://github.com/blader/humanizer