# deslop

Ищет в изменениях то, что устарело после правки: упоминания удалённых файлов и флагов, битые ссылки, дубли кода. Находки подтверждает маленькая модель.

- плагин · `type=plugin` · Claude Code · ★ 8
- Автор: agent-sh
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/agent-sh/deslop
- Обновлён: 2026-10-06
- HTML: https://affpapa.org/nevibecode/plugins/deslop

## Что делает

deslop работает от git: сравнивает текущую ветку с базой слияния и просматривает только изменённые строки. Проверок много — `stale-mention` ловит имя файла, флага или переменной окружения, которое правка удалила, а в других местах оно осталось; `missing-path` и `broken-anchor` ищут ссылки на несуществующие пути и заголовки; `changelog-missing` ругается на заметное пользователю изменение без записи в `Unreleased`. Есть проверки на тесты без ассертов, код без вызывающих, настройки, которые никто не читает, и дубли от 60 токенов и 6 строк.

Находки проходят через `scripts/confirm.js`: каждая уходит в маленькую модель вместе с помеченной строкой и двумя соседними, остаётся только подтверждённое. Модель выбирается по порядку — сначала `--cmd`, потом переменная `DESLOP_SMALL_CMD`, потом ступень `ladder.small` в `project.json` Tower Crane. Читаются только файлы внутри репозитория: путь, который выходит наружу или идёт через симлинк, контекста и исправления не получит.

Проверки `duplicate-code` и `complexity` пропускают тесты, сгенерированные файлы и папки со снимками. Сложность считается линтером языка: ruff для Python, eslint из репозитория для JS/TS, golangci-lint для Go, clippy для Rust. Если линтера нет, язык попадает в `skipped` — то есть по нему проверка молча не сработает. Логические ошибки и гонки deslop не ищет: их оставляет ревьюеру.

## Установка

### Claude Code (родная платформа)

**Через маркетплейс плагинов**
В чате агента (не в терминале):
```text
/plugin marketplace add anthropics/claude-plugins-community
```
В чате агента (не в терминале):
```text
/plugin install deslop@claude-community
```

## Когда брать
- найти упоминания файла или флага, удалённого в текущей правке
- проверить, что примеры команд в документации ещё работают
- поймать тест, который не может упасть
- убрать дублирующийся код, добавленный в изменении
- сверить версию пакета во всех манифестах

## Примеры запросов агенту
- Прогони `/deslop` по текущей ветке и покажи отчёт
- Примени подтверждённые исправления: `/deslop apply`
- Проверь всё под `docs/`: `/deslop --scope=docs/`

## Похожие
- [coding](https://affpapa.org/nevibecode/skills/coding.md) — скилл · 392 установки
- [review-and-simplify-changes](https://affpapa.org/nevibecode/skills/review-and-simplify-changes.md) — скилл · 794 установки
- [code-quality](https://affpapa.org/nevibecode/skills/code-quality.md) — скилл · 2000 установок
- [principle-sequence-verifiable-units](https://affpapa.org/nevibecode/skills/principle-sequence-verifiable-units.md) — скилл · 5100 установок
- [typescript-clean-code](https://affpapa.org/nevibecode/skills/typescript-clean-code.md) — скилл · 628 установок
- [tidy](https://affpapa.org/nevibecode/skills/tidy.md) — скилл · 428 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
