Tool-Result Truncation / Pagination-Completeness Check

Your agent totalled page one and called it the whole set.

A recognized production-agent failure no other surface grades: the agent treats a TRUNCATED / PAGINATED / ROW-CAPPED tool result as if it were COMPLETE. It SUMs over page 1 of N and reports a wrong total, or concludes “no matching records” over a result the server capped — the silent partial-result failure. It is a DISTINCT axis from its nearest sibling: the tool-result output-contract check grades a result's field / type / enum / range integrity; this grades its COMPLETENESS. AgentSmack reads each tool result's explicit completeness signals (hasMore, nextPageToken / nextCursor, truncated, returnedCount / totalCount, rowLimitApplied, pageIndex / pageCount), binds each downstream claim back to the result it consumed, and fires a hard blocker when an aggregate is computed over an incomplete result, or a no-record conclusion is drawn over a row-capped result. Ground-truth-first: a provably-complete result (hasMore:false, returnedCount===totalCount) consumed by a claim, or a paginate-then-fully-fetch sequence, scores a clean 100. Raw rows and cursor / page-token values are never stored — only the tool name + integer counts + a redacted excerpt. Load a sample to watch the result → claim lineage light up with no live infra.

No transcript scored yet. Load the vulnerable sample to watch an aggregate computed over a paginated page-1-of-N (hasMore:true, returnedCount<totalCount) and a “no overdue invoices” conclusion drawn over a row-capped result — detonating the partial-aggregate + truncated-negative blockers — or the safe sample to see an agent paginate to a provably-complete final page and aggregate over it for a clean 100.