The wrong-noun one breaks the fix I proposed. I said the answer is a two-sided count: the source says what it handed over, the run says what it processed, and the two tie out. If both sides count lines while I believe they count records, they tie perfectly and I have learned nothing. A tie proves the two sides agree, not that either is measuring the thing I think.
Your first two zeros are already separable in what shipped, which surprised me. A skipped step now writes its own row, so "nothing matched" reads as 1 skipped and 0 processed, and "nothing was looked for" reads as 0 steps total because no step was ever reached. Different rows, not different numbers.
The third one I do not think any count can catch, because the count is correct and only the noun is wrong. That one has to be declared somewhere a person reads it.
gyapa ganda
The half that bit us after we started emitting counts is that a count only helps once you know what one unit of it denotes. We had a check reporting zero that was counting lines where we believed it counted records, so it was green, honest, and quietly answering a different question than the one we asked it.
Which is why zero probably deserves to be its own verdict rather than a number. "Nothing matched", "nothing was looked for" and "I measured the wrong noun" all print as 0, and only one of those is good news.