Why a 60-page policy gets skimmed instead of read, and how to actually cover every page

You pasted a 60-page policy into a single prompt and asked for a summary of the exclusions, and the answer missed a clause that was sitting in plain sight on page 40.

Why rewording won't fix this

A model has a fixed context window, and even within that window attention to any one part of a long document is uneven. The start and end of what you pasted tend to get weighted more heavily than everything in between, so a clause in the middle of a long document competes for attention it may not get, no matter how carefully the question is worded. Asking more precisely does not change which pages actually got read closely.

Worked example: a 60-page policy

Instead of one call holding the whole document, split it into sections, using the document's own headings where it has them or page ranges where it doesn't. Then ask about each section on its own, something like 'list every exclusion in this section, quoting the exact sentence'. A short section gets a model's full attention; a 60-page document does not.

One model call per section, every finding tied to a page and a quote.

function findExclusions(sections) {        // sections: [{ page, text }]
  const findings = [];
  for (const section of sections) {
    const result = callModel(buildPrompt(section.text));
    for (const item of result.exclusions) {
      findings.push({ ...item, page: section.page });
    }
  }
  return findings;   // one row per clause, with its page and exact wording
}

Require a quote, not a paraphrase

Ask the model to return the exact sentence it is relying on, not a summary of it. A paraphrase can drift from what the document actually says without anyone noticing; a quote can be searched for in the source and confirmed in seconds. If a section comes back with a claim and no quote, treat that section as unread and run it again.

Stitch the sections back together deliberately

After each section has been checked, the assembly step is exact, not editorial. Combine the findings and sort by page, then drop duplicates where two adjacent sections both pick up the same clause near a page break. Only the final short summary a person reads needs the model again, and by then it is working from a handful of confirmed findings instead of sixty pages.

Feeding those findings into a fixed schema, the way the playbook on getting the same structure every time describes, keeps that final summary from drifting the same way the raw document reading would.

See also: Output format that changes every run

What stays manual

  • Deciding how to split a document that has no clear headings.
  • Spot-checking a handful of the quotes against the source before trusting the summary.
  • Any clause that affects a real decision: read it yourself before you act on it.