How to Prompt AI to Find What Is Missing
Models score what is in front of them. Absence has no tokens, so it has no weight. The fix is to stop asking what is missing and start asking about a checklist.
Ask a model what is missing from your contract and it will confidently tell you nothing important is. Ask it to check your contract against a named list of fourteen clauses and it will find the three you left out. The difference is not effort or model quality. It is that absence produces no tokens, so a model reading your document has nothing to attend to where the gap is. You have to supply the shape of the missing thing before it can notice the hole.
Why absence is structurally hard
A language model works over what it is given. Every judgement it makes is anchored in text that exists. When you ask "what is missing here", you are asking it to compare your document against an implicit ideal document it has to invent first, from memory, without being told what kind of document to imagine. It will invent something generic, compare loosely, and report back that things look fine.
This is the same reason models are agreeable about drafts: reviewing present text is a well-defined task, and imagining an absent standard is not. It also explains a pattern you have probably seen, where a model finds real omissions when you ask about one specific thing and finds none when you ask openly. The open question has no anchor.
The enumerate-then-check pattern
Three steps, and the order matters because step one must happen without the document in view.
Generate the checklist first, in a separate call, with no document attached. "List the sections a commercial services agreement between a UK software consultancy and a client normally contains." You are asking for the ideal, uncontaminated by your draft.
Review that list yourself. Delete what does not apply, add what the model missed. This takes two minutes and is where your domain knowledge enters the process.
Check the document against the list, item by item, in a second call. "For each item below, state PRESENT with a quote, PARTIAL with what is thin, or ABSENT. Do not skip items."
Keeping steps one and three apart is the whole trick. If the document is in context when the checklist is generated, the model's list will be shaped by what it just read, and it will produce a checklist your document happens to satisfy. That failure is invisible in the output and it is the most common way this goes wrong.
A prompt you can copy
Below is a checklist and a document.
For EVERY checklist item, output one row:
item | PRESENT | PARTIAL | ABSENT | evidence
Rules:
- PRESENT requires a direct quote from the document. No quote means not present.
- PARTIAL means it is mentioned but leaves a question unanswered. Say which.
- ABSENT means you searched and found nothing. Do not soften this.
- Output every item in the order given. Never merge or skip items.
- Do not comment on quality. Only presence.
CHECKLIST:
1. ...
DOCUMENT:
...The quote requirement does the heavy lifting. It converts a judgement into a retrieval task, and retrieval is something models are reliable at. Without it you get confident PRESENT verdicts for things that are not there. Related discipline in how to prompt AI to check its own work.
Where this pattern earns its keep
Task | The checklist to generate first |
|---|---|
Contract review | Standard clauses for that contract type and jurisdiction |
Incident postmortem | Timeline, detection, root cause, contributing factors, actions with owners |
API documentation | Auth, errors, rate limits, pagination, versioning, examples per endpoint |
Job description | Scope, level, must-haves, nice-to-haves, salary band, process |
Test coverage | Happy path, boundaries, invalid input, permissions, concurrency |
Security review | Trust boundaries, authn, authz, input validation, secrets, logging |
The table is the actual deliverable of this technique. Once you have a good checklist for a recurring document type, you keep it and reuse it, and the model becomes a reliable executor of a standard you defined rather than an unreliable inventor of one.
Three failure modes to watch
The model marks something PRESENT because a related word appears
A contract mentioning "confidential" once in a recital is not a confidentiality clause. The quote requirement exposes this: read the quotes, not the verdicts. If the evidence is a fragment, the verdict is wrong.
It silently drops items from the end of a long list
Past roughly twenty items this becomes common. Split into two calls of ten rather than fighting it, and count the output rows against the input rows every time. Counting is the only reliable check.
It negotiates with you
Asked whether something is absent, a model will often explain why its absence is acceptable. Ban that explicitly with the "only presence" instruction, and do the acceptability judgement yourself afterwards. Related: how to make AI say I don't know.
When you have two documents instead of a checklist
If you have a reference document that is known good, the job becomes a comparison rather than a gap analysis, which is easier and covered in how to prompt AI to compare two documents. The checklist approach is for when the standard exists only in your head or in an industry norm.
And when the model reports an omission that is not there, treat it the way you would any other confident error. How to tell if an AI answer is hallucinated applies to negative findings just as much as positive ones. The general foundations are in our prompt engineering pillar.
Frequently asked questions
Can I generate the checklist and do the check in one prompt?
You can, and it is the version that fails. The model writes a checklist informed by the document it can already see, then finds the document complete. Two calls, always.
Does a bigger model remove the need for this?
It improves the checklist quality in step one. It does not fix the underlying issue, because the issue is that an open "what is missing" question has no anchor regardless of model size.
Should the checklist live in a file?
Yes. Once you have refined a checklist for a document type you use often, save it and version it. It is more valuable than the prompt around it.
How do I check the checklist itself is complete?
Generate it twice, in separate sessions, with slightly different framing, and take the union. Disagreement between the two runs is where your real gaps usually are.
How did this land?
About the author

Developer Advocate
Steve builds something with Swarmz every week and writes up what worked, what broke, and what he'd do differently. Tutorials and hands-on guides are his lane.


