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.
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.
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.