X_HEALTH_ROW_UNREADABLE
Means
scripts/health.ts could not read a row's command, so no verdict for that row exists
Typical cause
the row's command failed, threw, or printed nothing the row could read — git or gh missing from PATH, a refused or unauthenticated gh, or a child script that answered without its JSON document. A checkup answering over a row it never read would file verdicts over nothing, so the whole result is cannot tell with no data, and the cause names the row and the command that failed. release-due's own refusal passes through verbatim, its findings becoming this result's findings; registry-audit's refusal does not pass through — it is the npm-serves-tree row's unhealthy verdict, with registry-audit's finding codes in that row's reason
Fix
bun run scripts/health.ts --json — re-run once the command the cause names answers