# X_NODE_IMPORT_UNEXPLAINED

## Means

a `node:` builtin is imported with no `why:` comment on it or directly above

## Typical cause

root `CLAUDE.md` says "no Node-specific APIs unless via `node:` and unavoidable, and then **with a comment saying why**" and nothing read the second half — and until 2026-08-26 the ratchet also skipped every test file, so **404 unexplained imports across 164 suites** sat under a green gate while the pin table said 146 (#365). 545 across 16 packages once tests joined the corpus. `node:` is not banned; reaching for one without naming the Bun native that is missing is, because that sentence is the only thing that lets the next agent delete the import when Bun ships it. A fixture is exempt: a specifier inside a string literal **or a comment** is data, not an import. A ratchet per package: the count may fall and may never rise

## Fix

write `// why: <the Bun API that does not exist>` on the import or the line above it, then `bun run scripts/node-imports.ts --unpin <pkg>`

[CLI and verify](/error-codes#cli-and-verify)
