code-humanizer — скилл

Скилл находит в коде мусор от ИИ-агентов: дубли хелперов, пустые абстракции, слабые тесты. Чистит по одному шаблону за коммит.

  • 95 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Расширенный доступ

Почему такой уровень

  • В режиме исправления скилл меняет код и создает коммиты; по умолчанию он только готовит отчет.
Все причины и проверки

leonardnju/code-humanizer

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/code-humanizer

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • В режиме исправления скилл меняет код и создает коммиты; по умолчанию он только готовит отчет.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл ищет в коде приметы работы ИИ-агента: дубли существующих хелперов, клоны `_v2`, абстракции с единственной реализацией, широкие `except Exception`, комментарии-пересказы и тесты, которые проверяют только мок. Каталог состоит из 16 шаблонов в пяти уровнях, у каждого есть признаки обнаружения и примеры до и после. По умолчанию режим «сканировать и отчитаться»: таблица находок с номером шаблона, серьезностью от 0 до 4, доказательством, предложенной правкой и возможным влиянием на поведение. Правки идут после одобрения, один шаблон за коммит, с прогоном тестов после каждого шага. Режим guard проверяет новые изменения до и после реализации.

Для кого. Разработчику, чей репозиторий писали агенты и который хочет убрать лишние абстракции и дубли, не ломая поведение.

Подходит, если

  • PR агента добавил новые хелперы, повторяющие `utils`.
  • Репозиторий написан в стиле vibe coding, и перед релизом нужен отчет о мусоре.
  • Реализацию новой функции хочется провести в режиме guard, чтобы агент сначала осмотрел репозиторий.
  • Каталог `experiments/` допускает беспорядок, а `src/` нет.

Не подходит, если

  • В проекте нет тестов: скилл тогда только описывает находки и ничего не правит.
  • Нужна чистка прозы или документации: для текста есть отдельные humanizer-скиллы.
  • Хочется общего рефакторинга: скилл сохраняет поведение и не трогает несвязанный код.

Пример запроса к агенту

Используй code-humanizer и просканируй этот PR: нужен только отчет, без правок.

Ограничения

Без тестов скилл работает только в режиме отчета. Находки с серьезностью 1, то есть оправданные, например резервный импорт с обоснованием, остаются нетронутыми. Тесты по умолчанию попадают в отчет без правок. Последний коммит в репозитории сделан в июле 2026. Правки с влиянием на поведение выносятся в отдельные коммиты с пометкой `[BEHAVIOR]`. Скрытые ошибки скилл только отмечает в отчете и не исправляет молча.

Как отключить. Удалите каталог `~/.claude/skills/code-humanizer` или папку скилла в проекте. Для установки через `npx skills` скилл убирается тем же менеджером.

Частые вопросы

Как поставить code-humanizer в Claude Code?

Выполните `npx skills add LeonardNJU/code-humanizer`. Вручную скилл ставится клонированием репозитория в `~/.claude/skills/code-humanizer`.

Меняет ли скилл код без спроса?

Нет. По умолчанию он только сканирует и готовит отчет, а правки делает после одобрения, один шаблон за коммит.

Чем он отличается от humanizer для текста?

Каталог посвящен коду: 16 шаблонов в пяти уровнях, от дублирования до слабых тестов. Приметы письма вроде длинных тире он не ищет.

Что делает режим guard?

Применяет тот же каталог до и после реализации: сначала осматривает репозиторий перед созданием хелперов, потом проверяет только получившийся diff.

Какие агенты подходят?

Любой, кто читает скиллы `SKILL.md`: Claude Code, Codex, Cursor, Cline, Gemini, Copilot и другие.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скилл чистки кода после агентов: находит лишние тесты, самопроверки и запасные ветки и удаляет их, сохраняя поведение

СкиллРасширенный доступ140Звезды репозитория

Скилл ищет в коде лишние абстракции и дубли состояния и убирает безопасно, по доказательствам, одним срезом за раз.

СкиллРасширенный доступ203Звезды репозитория

Скилл запускает полный рефакторинг, после которого агентам проще читать код: ищет скрытые связи и лишние зависимости.

СкиллРасширенный доступ1,1 тыс.Звезды репозитория

Скилл разработки под доказательства: агент окружает код спецификацией и набором проверок, чтобы построчное ревью стало необязательным

СкиллРасширенный доступ759Звезды репозитория

Codex-скилл для проверки кода после вайбкодинга: объясняет блоки, называет файлы и строки, сверяет цель с доказательствами.

СкиллРасширенный доступ133Звезды репозитория

Скилл ревью кода: четыре независимых прохода, замечания с доказательствами и допуск к слиянию из JSON

СкиллРасширенный доступ479Звезды репозитория

Коротко о README

Описаны установка, примеры запросов, режимы сканирования, исправления и guard, а также каталог шаблонов по уровням. Три железных правила: поведение сохраняется, без тестов нет правок, один класс шаблонов на коммит. Приведен полевой прогон на репозитории с 13,4 тыс. строк Python.

Бейдж для README

Исходный SKILL.md

---
name: code-humanizer
version: 0.2.0
description: Use when AI-written code needs structural cleanup or when implementing a change under a guard against AI coding slop — duplicated reimplementations of existing helpers, try-import fallbacks, broad exception swallowing, speculative abstraction layers, _v2 copies, dead "for future use" code, narrating comments — including requests to "deslop", "remove AI slop", "humanize code", review an AI-generated PR beyond tests passing, or prevent these patterns in the current change.
license: MIT
compatibility: any-agent
---

# Code Humanizer

Remove signs of AI-generated code from a repository, or prevent the same patterns in the current change with Guard mode. The prose [humanizer](https://github.com/blader/humanizer) removes AI *writing* patterns; this handles AI *coding* patterns — the structural debt agents leave behind when they optimize for "tests pass" instead of "codebase stays healthy."

**Core principle:** AI code slop is not ugly code — it is code that *works* but degrades the repository: it reimplements what already exists, adds abstraction nobody asked for, swallows errors it should surface, and hedges against situations that cannot occur. Unlike prose, code has an oracle: **the test suite decides what "meaning-preserving" means. Use it constantly.**

## Iron rules

Rules 1–4 govern **cleanup of pre-existing code** in Modes A/B. In Guard mode they apply to any cleanup performed after implementation, not to the requested feature work itself. Rule 5 applies in every mode.

1. **Behavior preservation is absolute.** "Cleanup" that changes behavior is a bug with good intentions. This includes *error types and error timing* — swapping an accidental `AttributeError` for a "nicer" `ValueError` changes behavior for every caller that catches it. If you find a latent bug or an ugly-but-load-bearing behavior: **flag it in the report; never fix it silently as part of cleanup.**
2. **No tests → no cleanup edits.** Run the test suite first. If it doesn't exist, doesn't pass, or doesn't cover the pre-existing code you'd clean, you may only **report** that debt (Mode A). Offer to write characterization tests first. This does not forbid implementing a requested change in a project whose tests are incomplete; report the verification gap.
3. **Report before rewriting pre-existing code.** Default to Mode A (scan → report). Only enter Mode B (fix) when the maintainer approves, or was explicit that they want fixes. Guard mode may directly avoid or remove slop introduced by the current change.
4. **One pattern-class per cleanup commit.** Each commit that removes pre-existing slop handles one kind and passes the full suite. A red test reverts the commit — do not "fix forward" into unrelated code. Ordinary feature commits under Guard mode need not be split by pattern when the prevention is inseparable from the implementation.
5. **Search before you judge duplication.** Build a mental index of the repo's existing helpers *before* scanning or implementing (grep `utils`, `helpers`, `common`, validators, existing base classes). You cannot recognize a reimplementation if you don't know what exists.

## Pattern catalog

Severity per finding: **0** absent · **1** present but justified (→ exempt, do not touch) · **2** minor debt · **3** clear debt, raises future maintenance cost · **4** severe, breaks semantics or architecture boundaries.

### Tier 1 — Duplication and reinvention

**1. Reimplementing an existing helper** *(the signature AI tell)*
**Signals:** new private function whose body resembles something in `utils`/`helpers`/a sibling module; a regex/validation/parsing/formatting block that the repo already owns; new code that imports nothing from the package it lives in.
**Problem:** agents write code from the prompt outward, not from the repo inward. Every duplicate forks future fixes.
```python
# Before — repo already has utils.validate_email
def _is_valid_email(s):
    pattern = r"^[\w.+-]+@[\w-]+\.[\w.]+$"
    if re.match(pattern, s):
        return True
    return False

Сообщить о проблеме