Your coding agent runs slopcop
Claude Code, Codex, opencode, or anything with a shell. The bundled skill tells it how.
SlopCop documentation
SlopCop checks a change with static analysis that proves its findings, from inside your coding agent's loop. These docs cover the slopcop CLI, the agents it runs in, the hosted check service, and the web app.
$ slopcop
orders/ExportServlet.java:48 definite · error
request parameter reaches SQL text
ID: 0f8fad5b-d9cb-469f-a165-70867728950e
bifrost.security.java.servlet-parameter-to-jdbc:
req.getParameter("q") reaches Statement.executeQuery
through OrderQuery.build (OrderQuery.java:21)
1 new finding across 1 file(s); 72 already in the code
Analysis complete
$ echo $?
1How a check works
There is no local analyzer. The CLI sends one git patch to the hosted service, the service applies it to your base commit and runs Bifrost over the files the change writes, and your agent reads the result.
slopcopClaude Code, Codex, opencode, or anything with a shell. The bundled skill tells it how.
From the merge base with your upstream branch: unpushed commits, unstaged edits, untracked files.
The patch is applied at the base commit. Your code is read, never run, and never sent to a language model.
The agent fixes them and checks again until none are left. Findings already in the code never fail it.
Start here
What to expect
Traced to a rule
Each finding names the rule that raised it, its severity, its certainty, and the file and line. The analysis is static, deterministic, and runs the same way twice.
Across files
Data flow is traced through the files the change writes: a request parameter that reaches a SQL query three files later is one finding, with the path that proves it.
Never a false all-clear
A rule that cannot finish makes the check incomplete, never clean. The report says what was not covered, so your agent never reads silence as safety.
Built for agents
No prompts, one request, a closed exit-code contract, and JSON or SARIF output. An agent can run it after every edit without a human in the loop.
Exit codes