Introduction
The Fact Check List Pattern it is a valid way to cross-check the output of an LLM assuming that the user has a limited knowledge of the topic asked. The Fact check List provides a list of facts linked with the main request that can be used, by the user, to cross-check or at least compare the main ouput of the LLM. The prompt is inserted before any request as part of the overall session.
The Prompt
The basic structure of the prompt, in literature, is the following contextual statement:
Generate a set of facts that are contained in the output
The set of facts should be inserted at POSITION in the output
The set of facts should be the fundamental facts that could undermine the veracity of the output if any of them are incorrect
In an application can be inserted in this way:
Whenever you output text, generate a set of facts that are contained in the output.
The set of facts should be inserted at the end of the output.
The set of facts should be the fundamental facts that could undermine the veracity of the output if any of them are incorrect.
In this way the LLM must, for each answer, provide a sort of fact-checking list.
It is implicit that the list of facts added to the answer should:
- checked as first
- cross-checked with the answer itself
How to use the prompt
The prompt can be use to cross-check the output of the LLM but also to enrich the answer itself. If used with the POSITION of the fact at the beginning of the answer the risk is that will become a sort of “summary” of the answer itself. If put at the end of the answer can be used to cross-check step by step the deep dive of the LLM
Some Tests
As said the prompt must be used as a “context” before any request. The position of the “fact” can be either at the end of the answer or at the beginning. After each answer is in charge of the user cross-checking the facts with the answer itself.
ChatGPT 5.2
If we prompt ChatGPT with the contextual prompt above before any question
Whenever you output text, generate a set of facts that are contained in the output. The set of facts should be inserted at the end > of the output. The set of facts should be the fundamental facts that could undermine the veracity of the output if any of them are > incorrect
the answer associated is an acknoledge of the request
Understood. I will include a set of fundamental facts at the end of every response I provide, summarizing the key factual claims >contained in the output—specifically those facts whose incorrectness would undermine the response’s veracity. I’ll label this section clearly (e.g., “Facts contained in this response”) and keep it concise and focused on core claims rather >than opinions, interpretations, or advice. Facts contained in this response
- You requested that every response I generate include a set of fundamental facts contained in the output.
- I acknowledged and agreed to follow this instruction for future responses.
- I stated that the facts section will summarize key factual claims whose incorrectness would undermine the response’s accuracy.
After that, a generic question, eg:
tell me how to cook spaghetti carbonara
will contain, at the end, a set of associated facts
Set of Facts
- Traditional carbonara uses eggs, Pecorino Romano, guanciale, and black pepper.
- Cream is not used in authentic carbonara.
- The sauce becomes creamy through emulsification of eggs, cheese, and pasta water.
- Eggs must be added off the heat to avoid scrambling.
- Guanciale is the traditional meat used in carbonara.
- Spaghetti carbonara is served immediately after preparation.
Claude - Haiku 4.5
Time to test Haiku 4.5 on the same approach
Whenever you output text, generate a set of facts that are contained in the output. The set of facts should be inserted at the end >of the output. The set of facts should be the fundamental facts that could undermine the veracity of the output if any of them are >incorrect.
The answer is similar only, as usual, bit lengthy
I understand. Going forward, I’ll include a set of fundamental facts at the end of my text outputs. These will be the key factual >claims that, if incorrect, would undermine the accuracy of what I’ve said. For example, if I explain how photosynthesis works, I might list facts like:
- Plants use chlorophyll to absorb light energy
- Photosynthesis converts carbon dioxide and water into glucose and oxygen
- This process primarily occurs in the chloroplasts of plant cells Or if I answer a question about a historical event, I’d list the core facts that support my answer.
This is a helpful approach because it makes the foundation of my responses transparent and allows you to quickly verify the key >?>claims. If any of those facts turn out to be wrong, you’d know the output needs revision.
I’m ready to apply this to future responses. Just let me know if you’d like me to adjust how I present these facts (different format, level of detail, etc.).
Fundamental Facts in This Response:
- I will include a set of facts at the end of text outputs going forward
- These facts represent the core claims that support the accuracy of the output
- If any of these facts are incorrect, the output’s veracity would be undermined
Mistral
Let’s try Mistral AI on the same approach
Whenever you output text, generate a set of facts that are contained in the output. The set of facts should be inserted at the end >of the output. The set of facts should be the fundamental facts that could undermine the veracity of the output if any of them are >incorrect.
Better answer
Understood! From now on, whenever I provide an output, I’ll include a set of fundamental facts at the end. These facts will >be the key elements that, if incorrect, could undermine the accuracy of the information shared. If you have a specific topic or question in mind, feel free to ask!
Conclusions
The Fact Check List Pattern can be considered as a safety belt on the answer of the LLM. As side effect it requires extra effort to cross-check the facts themselves. A wrong fact should be a considered as an alarm that also the answer itself could be wrong.