It did not report a wrong verdict. It reported none.

Three backgrounded test suites wrote 0 bytes. No process was alive afterwards. The skill waited about 40 minutes on a completion signal that could not fire. Pick a hypothesis to see how it was settled, and what is still not proven.

Hypotheses

The primitive that killed three of them at once

npm writes its own banner before it runs anything. > pkg@version script appears before the script body executes. So every hypothesis in which npm started predicts a non-empty file. All three failures were 0 bytes.

Generalised: the absence of a tool's startup banner locates the failure BEFORE the tool, not inside it. That one observation refuted the concurrency theory, the PATH theory, and the hung-suite theory without running any of them.

What shipped, and what deliberately did not

Shipped: the skill must capture a task id, treat its absence as "the request was ignored, the output is already inline", bound every wait, and report an empty run as a failure rather than as pending. No grade may be emitted from a run that produced no bytes.

Not shipped: a claim that H5 is the cause. The probe that showed inline execution was an Agent fork and got no task id at all; /ork:verify is a skill fork and did get ids with empty files. Those paths share a mechanism only if the same plumbing serves both, which is an assumption, not a measurement.

The fix does not depend on H5 being right. Whatever empties the file, an unbounded wait on an unconfirmed task is a defect by itself, and bounding it turns a silent hang into a reported failure.

#3263· symptoms re-validated at HEAD b6e65248f· reproduction still blocked by the #3235 sentinel