parse_db silently skipped a row that had no symbol name and accepted any
text as a NID, so a malformed database produced Unknown stubs and
technical-debt lines for NIDs that did have a name, with no hint that the
database was at fault. Reject such rows with a path:line error, the way
parse_nids already rejects malformed NIDs.
CONTRIBUTING.md says unimplemented exports call
NotImplemented_nid_no_patch(__func__), and 362 calls in core/ do. A stub
generated for a NID with a known name passed the NID string instead,
so its log line showed tNn5WBkta60 rather than sceAmprCommandBufferNop
and the output had to be edited by hand. Named stubs now use __func__;
stubs with an unknown name keep the NID, the only identifier they have.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
stubgen emitted TechnicalDebt links as repo-relative paths, but
TechnicalDebt.md lives in docs/dev and the conventions checker resolves
links relative to it, so pasted lines failed CI. The derived default path
now carries a ../../ prefix; an explicit --td-path is used as given.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq