From fb22c564daa61455ac864f0c96213f8c6e498720 Mon Sep 17 00:00:00 2001 From: "Petrov, Nikolay A" Date: Fri, 13 Nov 2026 13:36:36 -0800 Subject: [PATCH 1/2] docs(review): checklist of patterns that hide a defect, from SlopCodeBench's rubric Signed-off-by: Petrov, Nikolay A --- REVIEW.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/REVIEW.md b/REVIEW.md index 76c6d1590..27ce6188e 100644 --- a/REVIEW.md +++ b/REVIEW.md @@ -24,6 +24,35 @@ checks. schema's. - Behaviour differs on Windows or with a `None`, empty or missing input. +## Patterns that hide a defect + +Flag these in code the PR adds or changes. Each is must-fix when it changes +a number, verdict or exit code, otherwise a nit. + +- Lost data or failure: a slice, clamp, fallback chain, `or` default, retry + or lenient parse that drops input or hides which path ran, with no warning, + error or record of it. +- An error rewritten to a generic message, or reported as `False`, `None`, + `-1` or `""` that the caller cannot tell from a result. +- A return value that matters left unused: a subprocess return code, a + validation result nothing acts on. +- A missing directory or file created where a wrong path should fail. +- A mode, kind or state passed as a bare string and compared in several + places, where an `Enum` or `Literal` would let mypy check it. +- A default on a parameter that switches behaviour, so a caller gets the mode + without asking for it. +- A `None` check, `or` default or defensive copy on a value that cannot be + `None` or is never mutated. +- Structure without a second user: a base class, protocol, registry, factory + or wrapper class with one implementation or entry, or a class that only + forwards calls. +- Code nobody asked for: an option or case the issue and docs do not name, a + stub or placeholder return, scaffolding left half-done. +- A loop that `pathlib`, `itertools`, `collections`, `json` or `shlex` + already does. +- A docstring that restates the function name, or a comment that narrates + the next line ("Now we...", "Step 1:"). + ## How to raise a finding - Name the file and line, and show the input that breaks it: a command, a From d4e9ea6102e3ab4d36c377ad7afbccba7d8c916b Mon Sep 17 00:00:00 2001 From: vchamarthi <123653452+vchamarthi@users.noreply.github.com> Date: Fri, 13 Nov 2026 19:03:21 -0600 Subject: [PATCH 2/2] fix(review): severity rule for style bullets and overlapping defects Style-point bullets are raised only when they change a number, verdict or exit code; a finding that matches a listed defect keeps that severity. Signed-off-by: vchamarthi <123653452+vchamarthi@users.noreply.github.com> --- REVIEW.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/REVIEW.md b/REVIEW.md index 27ce6188e..8eb5aed62 100644 --- a/REVIEW.md +++ b/REVIEW.md @@ -27,7 +27,9 @@ checks. ## Patterns that hide a defect Flag these in code the PR adds or changes. Each is must-fix when it changes -a number, verdict or exit code, otherwise a nit. +a number, verdict or exit code, or when it matches a defect listed above. +Otherwise it is a nit, except the last two bullets, which are style points +raised only when they change a number, verdict or exit code. - Lost data or failure: a slice, clamp, fallback chain, `or` default, retry or lenient parse that drops input or hides which path ran, with no warning, @@ -50,7 +52,7 @@ a number, verdict or exit code, otherwise a nit. stub or placeholder return, scaffolding left half-done. - A loop that `pathlib`, `itertools`, `collections`, `json` or `shlex` already does. -- A docstring that restates the function name, or a comment that narrates +- A docstring that repeats the function name, or a comment that narrates the next line ("Now we...", "Step 1:"). ## How to raise a finding