DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk5 min

My Code Reviewer Scored a Nonexistent Directory 100/100 and Exited 0

A code-review command treated the word selftest as a scan path, examined zero files, and still exited 0 with a 100/100 score. What the author reports and how to guard against it.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Yes, according to the author’s account. A code-review command given the positional argument selftest treated it as a scan path, found no such directory, skipped it, and reported zero files and zero lines. It still returned a 100/100 health score, a “safe to merge” verdict, and exit code 0. Every signal a pipeline reads said the review had passed, but nothing had been examined.

The account comes from Felixwang007, republished at World Programming on October 1, 2026. The tool’s behavior and the audit figures below are the author’s reports. They have not been independently reproduced.

As an Amazon Associate I earn from qualifying purchases.

What the author reports happened

The tool’s real self-test is started with a --selftest flag. The incident came from a different input: the positional word selftest, which the tool did not recognize as a mode. The sequence the author describes runs as follows.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. The command receives selftest as a positional argument.
  2. The tool reads that word as a directory to scan, not as a request to run its self-test.
  3. The directory does not exist. The tool skips it instead of stopping with an error.
  4. The run summary reports a scope of 0 files and 0 lines.
  5. The run produces a health score of 100/100, a “safe to merge” verdict, and exit code 0.

The author’s point is that the malformed invocation exposed a separate behavior, scan mode with an empty target, which deserves its own handling.

Why an empty scope looks like a pass

A score calculated from findings will read as perfect when there are no findings to count. Unless the code checks how much was examined, zero problems and zero work produce identical output. The author’s central line puts it this way: “Nothing wrong” and “nothing examined” are not the same result, and a tool that returns the same status for both cannot be part of a gate.

The author describes two ways this could reach production:

  • Continuous integration: a pipeline passes an empty changed-file variable to the reviewer. The reviewer scans nothing and the job goes green.
  • Agent tooling: an agent passes the wrong parameter, such as a subcommand name where a path belongs. The agent then reports the change as reviewed.

Two self-test conventions, and where each goes wrong

The author audited 34 packages in 2026 and found three patterns for self-tests. The counts below are the author’s figures.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Convention Example invocation Packages (author count) Failure the author highlights
Flag-based self-test tool --selftest 5 Explicit and documented, so the harness can call it directly.
Positional subcommand tool selftest 12 The word can be read as a scan path. If the path is missing, the run can succeed with nothing examined.
No self-test Not applicable 17 Nothing confirms the checks can fail, so their output cannot be trusted as evidence.

Flag-based self-tests

A flag such as --selftest is unambiguous because it cannot be confused with a path. The harness can call one exact form and read the result. The code-review tool in the incident uses this form.

Positional subcommands

A bare word that also works as a file or directory name is a hazard. The same argument list can mean a check in one case and a scan target in another. Unless the tool rejects a missing path loudly, the harness will not notice the difference.

Packages with no self-test

Seventeen packages had no self-test at all. Without one, there is no way to show that a rule set fires on bad input, so a clean result carries little information.

The audit figures and how far to trust them

The author reports the following for a single package audit. These numbers describe one author’s sample and are not representative statistics about agent tooling in general.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Five flag-based self-tests had 30, 54, 16, 40, and 77 assertions.
  • The code-review tool’s --selftest had 54 assertions and 38 rules. The author reports that 23 of those rules fired on dirty samples.
  • Across the 17 packages with self-tests, the author gives a total of about 700 assertions. “About 700” is the author’s rounded total, not a separately measured figure.

The 23-of-38 figure matters because a rule that never fires on bad input is a rule that cannot catch anything. The author does not say what the other 15 rules check or why they stayed silent on the dirty samples, so the figure should be read as a prompt for inspection rather than a verdict on the tool.

Positive and negative cases a checker needs

A self-test that only confirms a check finds problems can still hide over-reporting. The author recommends paired cases, a sample that must trigger a finding and a sample that must not. The author’s examples come from a SQL inspector:

  • DROP TABLE should produce a finding, while DROP TABLE IF EXISTS should not.
  • A phrase inside a string literal should not be mistaken for a missing WHERE clause.
  • SELECT * inside a comment should not be reported.
  • An environment variable reference should not be treated as a literal password.
  • A PL/pgSQL BEGIN ... END body should not be mistaken for an unclosed transaction.

These are the author’s examples. They have not been independently tested here, but they show the shape of a useful check: each rule has a case where it must speak and a case where it must stay quiet.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

A safeguard checklist for CI and agent harnesses

The author offers five recommendations. They are the author’s own and do not cite a formal standard or independent validation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Report whether work was examined. Treat zero files, zero rules run, or zero tokens as a distinct non-success condition.
  2. Document one exact self-test invocation for each package, and have the harness read that contract rather than guess from source text.
  3. Show that each self-test can fail by deliberately breaking an assertion or rule.
  4. Include positive samples where a check must fire and negative samples where it must stay silent.
  5. Run the gate in the publish or deploy step, and stop on failure rather than trusting an earlier report.

For the first recommendation, a guard can sit in the wrapper script. The line below is an illustrative sketch, not code from the author’s tool. It assumes the wrapper can count reviewed files:

if [ "$reviewed_files" -eq 0 ]; then echo "review examined no files" >&2; exit 1; fi

The exit code is the point. Any non-zero value that the pipeline treats as failure will stop the merge, and the message makes the empty scope visible in logs.

What this does and does not establish

The evidence is one author’s incident report and one audit. The exact behavior of the tool has not been reproduced independently, and no official standard for reviewer exit codes was located. The author’s own caveat for the code-review tool is that its rules have a clear limit: “static rules can only disprove, not prove — still verify permissions, concurrency and money precision by hand.”

The narrower lesson holds up on its own terms. A success exit code shows only that the program finished without a reported error. It does not show that the intended files were read, so a gate should record what it examined alongside whether it passed.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.