Recommended Free Tools
A check that reads zero inputs can still print PASS, but that does not show that anything was checked. Make the input scope visible and distinguish a clean result (PASS), a detected problem (FAIL) and no meaningful result because the input set was empty (NOT RUN).
What does PASS mean when the input set is empty?
A verdict word only means what the check’s input and execution allow it to mean. If the check inspected files and found no problems, PASS is a useful result. If it inspected no files at all, the same word can be misleading: it looks like evidence of a clean inspection even though there was nothing to inspect.
As an Amazon Associate I earn from qualifying purchases.
Use three outcomes to make that difference explicit:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware match- PASS: the intended input set was read and the check found it clean.
- FAIL: the intended input set was read and the check found a problem.
- NOT RUN: there was no meaningful verdict, for example because the relevant input set was empty.
For NOT RUN, report what the check attempted to read. Naming the empty set, the repository root and the command makes clear whether the check ran against the intended scope.
#1 Best Overall
How an empty file set produced a misleading PASS
In the author’s account of a pre-commit workflow, four small instruments reported over sets of files, and their output was copied into commit messages and pull-request bodies. During a git archive export without a .git directory, the command git ls-files '*.md' allegedly reached an enclosing repository whose index had no files under the exported directory. It returned zero lines without an error, and the LINKGATE instrument printed PASS even though it counted zero tracked Markdown carriers.
This is a project-specific account, not an independently verified reproduction. Its practical lesson is that a successful command exit and a reassuring verdict do not, by themselves, establish that the intended files were inspected. A report should expose the count and scope alongside the outcome—for example, that the Markdown carrier set was empty, which repository root was used, and which command was run—and use NOT RUN rather than implying a clean check.
Four questions to ask about checks and metrics
What set did the verdict read?
Identify the inputs the check was supposed to inspect and the inputs it actually found. State what happens when that set is empty. This catches cases where a command succeeds but its scope is wrong or contains no files.
What happened between measurement and display?
A displayed figure may no longer match the underlying output if a pipeline filters or truncates it. The author describes a tail -6 step that omitted a numeric line from tool output; the displayed count then differed from a later run at the referenced commit. When output is narrowed, say how it was narrowed and preserve the relevant count rather than letting a shortened excerpt stand in for the full result.
Rank #3
Can reporting the count change the set being counted?
If a comment reports the number of comments in a live set, posting that comment adds an item to the set. In the author’s example, the reported count changed from 188 to 189 when the reporting comment was added. A live count should identify the time or state it describes, or be measured after the write by something outside the counted set.
What does an empty result mean?
An instrument that returns nothing may mean there are no entries, or that the source did not provide them. Those meanings should not be collapsed. The author reports that a version-history field returned no entries for ordinary unedited comments, making “never edited” and “history unavailable” look alike. An explicit interpretation is needed; checking a comment’s current completeness is also different from establishing what it contained when the original review was posted.
Quick Recap
Best Value
Rank #4
Make the scope and meaning of every verdict visible
- Record the set the check was meant to read, the set it actually read and the command or source used.
- Use
NOT RUNwhen the set is empty or otherwise cannot support a meaningful verdict; do not let an empty input masquerade as a clean result. - Describe filters, truncation or sampling between the measurement and the displayed report.
- For counts over changing data, name the time or state represented and whether the act of reporting changes that data.
- Interpret empty history or query results explicitly instead of treating “no entries” as proof that no data exists.
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.




