slopsieve
A zero-dependency Node.js command-line tool that applies weighted scoring to unified diffs or pull requests, detecting code-hygiene signals such as weakened tests and leftover debugging code. It can be integrated into CI as a gate.
Timeline (last 90 days)
slopsieve is a zero-dependency Node CLI tool that scores a diff or PR and detects 12 code hygiene signals.
slopsieve is not an AI detector; its design goal is to assess the hygiene of a diff, not to judge whether code was generated by AI.
slopsieve parses the unified diff format, which consists of a series of hunks, each headed by @@ -old start line,old line count +new start line,new line count @@.
Among slopsieve's 12 weighted checks, test weakening has a weight of 30, debug leftovers have a weight of 25, and empty catch blocks and trivial dependencies each have a weight of 20.
slopsieve supports the --fail-at parameter as a CI gate, and --json output can be consumed by other tools.
slopsieve's debug leftover detection regex dd\s*\( unexpectedly matched the trailing dd( in isQuantityOdd, causing the tool to completely misjudge the test fixture.
The way to fix this bug is to add a word boundary \b before the regex pattern and solidify it as a regression test in the test fixture.
Humans can write 100/100 junk diffs, and LLMs can also write 0/100 clean code.
slopsieve's weighted scoring model is linearly additive, and the weights are subjectively set heuristics, not statistically calibrated probability values.
The typical fragility of rule-based static detection is: the shorter the pattern, the more prone to false positives; the more specific, the narrower the coverage.
1 more timeline events
All Facts (11)
slopsieve is a zero-dependency Node CLI tool that scores a diff or PR and detects 12 code hygiene signals.
50%Unverifiedslopsieve is not an AI detector; its design goal is to assess the hygiene of a diff, not to judge whether code was generated by AI.
50%Unverifiedslopsieve parses the unified diff format, which consists of a series of hunks, each headed by @@ -old start line,old line count +new start line,new line count @@.
50%UnverifiedAmong slopsieve's 12 weighted checks, test weakening has a weight of 30, debug leftovers have a weight of 25, and empty catch blocks and trivial dependencies each have a weight of 20.
50%Unverifiedslopsieve supports the --fail-at parameter as a CI gate, and --json output can be consumed by other tools.
50%Unverifiedslopsieve can be used via npx slopsieve owner/repo#123, adding almost no adoption cost.
50%UnverifiedThe way to fix this bug is to add a word boundary \b before the regex pattern and solidify it as a regression test in the test fixture.
50%UnverifiedHumans can write 100/100 junk diffs, and LLMs can also write 0/100 clean code.
50%Unverifiedslopsieve's weighted scoring model is linearly additive, and the weights are subjectively set heuristics, not statistically calibrated probability values.
50%UnverifiedThe typical fragility of rule-based static detection is: the shorter the pattern, the more prone to false positives; the more specific, the narrower the coverage.
50%Unverifiedslopsieve's debug leftover detection regex dd\s*\( unexpectedly matched the trailing dd( in isQuantityOdd, causing the tool to completely misjudge the test fixture.
50%