The function passed its test. The application never called it.
The new function returns the right answer. Its test passes. Running the application still gives the old result.
That is an easy mistake to make when a coding agent handles a feature in pieces. One step creates the implementation, another adds a test, and the change that connects it to a real application path gets lost between them.
I build Pharaoh, and this is one of the structural problems its PR Guard checks. Here is a small example you can run without Pharaoh, followed by what the actual classifier reported when I ran the same wiring pattern through it.
This is a controlled example, with a stubbed main-branch graph. It is not a customer incident or a capture from a live GitHub pull request.
A useful function, sitting on its own
Suppose an application needs a weekly digest total. The new implementation lives in src/digest.ts:
export function formatWeeklyDigest(rows: number[]): number {
return rows.reduce((sum, row) => sum + row, 0);
}
The name is deliberately specific enough to find again. Its behavior is small enough to check without building a service around it. Put this in src/digest.test.ts:
import assert from "node:assert/strict";
import { formatWeeklyDigest } from