slopcop

Deterministic. No model. No server.

Slop stops here.

Point slopcop at a public GitHub repository. Files are fetched straight from GitHub and scanned by the real linter compiled to WebAssembly. Nothing leaves your browser.

Try

GitHub token (optional)

Without a token, every scan from your network shares GitHub's anonymous limit of 60 API requests per hour, and each scan uses two. A token raises the limit to 5,000 per hour. Create a fine-grained token with public repository access and no permissions. It stays in this tab and is only sent to api.github.com.

bank.py
error DEAD001 Exception is swallowed without logging, rethrowing, or handling.

Fix: Handle the failure, rethrow it, or document a narrow and intentional exception.

warning VIBE002 The prose repeatedly addresses the reader like a chat assistant.

Fix: Remove conversational service framing and state the useful information directly.

error DEAD010 A test asserts a constant truth rather than observable behavior.

Fix: Assert a result or side effect produced by the unit under test.

warning TRAIL001 The commit subject is a placeholder rather than a change summary.

Fix: Summarize the observable change with a specific imperative subject.

error DEAD016 A user-facing event handler is present but performs no action.

Fix: Implement the interaction or remove the control until it has real behavior.

warning VIBE025 The prose dresses ordinary facts in dramatic characterizations.

Fix: State the concrete fact, such as the number, date, or change, instead of calling it a pivotal moment or a fundamental shift.

error DEAD003 Executable code contains an explicit unimplemented placeholder.

Fix: Implement the behavior before shipping, or move the contract to a recognized abstract interface.

warning DEAD014 An exception handler only rethrows the same failure without adding behavior.

Fix: Remove the handler, or add the translation, cleanup, or context that justifies it.

Fetch

Files come straight from GitHub at the exact commit you pick. Dependency folders and oversized files are skipped before download.

Scan

The same Rust linter as the CLI, compiled to WebAssembly, runs in a background worker. No account, no model, no upload.

Review

Filter findings, read the evidence, jump to the line on GitHub, and export the report as HTML or JSON.

What it catches

Observable problems, not authorship.

deadweight

Code and prose that exist without doing useful work: swallowed exceptions, placeholder markers, empty functions, trivial assertions, and comments that restate the code.

    vibecheck

    Patterns in prose and comments: stock transitions, assistant framing, hedging, forced symmetry, and uniform rhythm. One “robust” is fine. Density and repetition are not.

      papertrail

      Commit messages and branch history: placeholder subjects and autosquash commits that should never reach an integration branch. Needs a local clone.

        Take it to your terminal

        The CLI scans private code, staged changes, diffs against a base branch, and commit history. Run it from pre-commit, or gate CI with SARIF and GitHub annotations.

        $ curl -fsSL https://raw.githubusercontent.com/JGalego/slopcop/main/install/install.sh | sh
        $ slopcop init
        $ slopcop .