# deslop

Scans a change for what went stale: names of deleted files and flags, dead links, copied code. A small model confirms each finding before anything is fixed.

- plugin · `type=plugin` · Claude Code · ★ 8
- Author: agent-sh
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/agent-sh/deslop
- Updated: 2026-10-06
- HTML: https://affpapa.org/en/nevibecode/plugins/deslop

## What it does

deslop is git-based. It diffs the current branch against its merge base and reads only the lines the change touched, so a clean change costs nothing. The checks cover a lot of ground: `stale-mention` catches a file, flag or env var the change removed but other files still name; `missing-path` and `broken-anchor` flag citations and heading links that resolve to nothing; `changelog-missing` complains about a user-visible change with no entry under `Unreleased`. There are also checks for tests with no assertion, added code nothing calls, settings nothing reads, and duplicates of 60 tokens and 6 lines or more.

Every finding goes to `scripts/confirm.js`, which sends the flagged line plus two neighbours to a small model and keeps only what comes back confirmed. The model is picked in order: `--cmd`, then `DESLOP_SMALL_CMD`, then the `ladder.small` rung in Tower Crane's `project.json`. Only files inside the repository are read — a path that escapes it or goes through a symlink gets neither context nor a fix.

\`duplicate-code` and `complexity` skip tests, generated files and snapshot folders. Complexity is measured by the language's own linter: ruff for Python, the repo's eslint for JS/TS, golangci-lint for Go, clippy for Rust. No linter installed means that language lands under `skipped`, and the check quietly does nothing for it. Logic errors and races are left to a reviewer.

## Install

### Claude Code (native platform)

**Plugin marketplace**
In the agent chat (not a shell):
```text
/plugin marketplace add anthropics/claude-plugins-community
```
In the agent chat (not a shell):
```text
/plugin install deslop@claude-community
```

## When to use it
- find names of a file or flag the change deleted
- check that docs examples still run
- catch a test that cannot fail
- remove code copied instead of reused
- keep package versions aligned across manifests

## Example prompts
- Run `/deslop` on the current branch and show me the report
- Apply the confirmed fixes: `/deslop apply`
- Check everything under `docs/`: `/deslop --scope=docs/`

## Similar
- [coding](https://affpapa.org/en/nevibecode/skills/coding.md) — skill · 392 installs
- [review-and-simplify-changes](https://affpapa.org/en/nevibecode/skills/review-and-simplify-changes.md) — skill · 794 installs
- [code-quality](https://affpapa.org/en/nevibecode/skills/code-quality.md) — skill · 2000 installs
- [principle-sequence-verifiable-units](https://affpapa.org/en/nevibecode/skills/principle-sequence-verifiable-units.md) — skill · 5100 installs
- [typescript-clean-code](https://affpapa.org/en/nevibecode/skills/typescript-clean-code.md) — skill · 628 installs
- [tidy](https://affpapa.org/en/nevibecode/skills/tidy.md) — skill · 428 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
