{"version":"2.1.300","anchor":"pdf-reference-attachment-tells-the-model-it-has-not-seen-the","canonical_anchor":"pdf-reference-attachment-tells-the-model-it-has-not-seen-the","heading":"Claude is told plainly when it has not seen a PDF and must read it by pages","tier":"notice","area":"Read Tool","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300\/e\/pdf-reference-attachment-tells-the-model-it-has-not-seen-the","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300","markdown":"### Claude is told plainly when it has not seen a PDF and must read it by pages\n\nWhen a PDF must be read page by page, Claude is now told it has not seen the file and must use the Read tool with a page range first\n\n**What**\n\nWhen you give Claude Code a PDF, it sometimes cannot pass the whole file to the model at once.\n\n- The result of counting a PDF's pages can now include `modelReadsByPage`, next to the existing `wholeRefusedByModel`.\n\n- When `modelReadsByPage` is set and the page count is known, the note added to the conversation now says \"You have NOT seen this file: none of its content is in this conversation.\" It tells Claude to call the `Read` tool with a page range before writing anything else.\n\n- When the model refused the whole file, the note tells Claude to read pages 1 to N.\n\nBefore, the note only said the PDF was too large or still arriving and to use the pages option.\n\n**Why**\n\nThe firmer wording pushes Claude to actually open the pages before talking about the PDF, which should make it less likely to describe a document it never saw.\n\n- Area: Read Tool\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}