Page one is not the total.
A retriever reads the first page and cites it. The source's own response carries a total. Nothing was invented, and that is the problem.
what a retriever reads
—
what the source says
—
Live query against GitHub's public search API. No login, no key. Both numbers come from the same response.
I found this the hard way. A post said 20 records. The source's own list endpoint returned 30. Nobody invented anything. Someone read page one and called it the total.
The fix is not a better retriever. It is a gate that re-pulls the number from the source's own record before the claim goes out.