An output contract tells an AI response what it must contain, how it should be arranged, and what to do when the available information is incomplete. It turns “give me a useful answer” into something you can inspect before you rely on it.
The contract does not need to be formal or long. It needs to make the finish line visible.
Start with the smallest useful contract
A good contract answers three questions:
- What sections or fields must appear?
- What rules must the response follow?
- How should uncertainty or missing information be handled?
If you are new to the idea, read the short Output Contract definition first. Then choose the example below that looks most like your task.
Example 1: a decision brief
Use this when you want a recommendation that remains easy to review.
Return:
1. Recommendation: one sentence
2. Reasons: three bullets tied to the evidence
3. Risks: the two most important failure modes
4. Next step: one action the owner can take today
If evidence is missing, name the gap instead of guessing.
The useful part is not the numbered list by itself. It is the combination of a clear recommendation, bounded support, and an explicit rule against filling gaps with invention.
Example 2: a comparison table
Use this for products, approaches, or plans that need to be judged by the same criteria.
Compare each option in a Markdown table with these columns:
- Option
- Best fit
- Main tradeoff
- Setup effort: low, medium, or high
- Evidence needed before choosing
After the table, give a recommendation for each user type. Do not name an overall winner unless one option satisfies every required criterion.
This contract prevents a comparison from drifting into unrelated feature lists. It also makes the recommendation conditional on the reader’s situation.
Example 3: machine-readable JSON
Use JSON only when another tool or script will consume the result. Define the allowed fields and what an empty value means.
{
"summary": "string, maximum 200 characters",
"actions": [
{
"owner": "string or null",
"task": "string",
"dueDate": "YYYY-MM-DD or null"
}
],
"openQuestions": ["string"]
}
Add one more instruction: return valid JSON with no text before or after it. If a field is unknown, use the defined empty value rather than inventing one.
Example 4: an answer that shows uncertainty
Some tasks need judgment more than rigid formatting. In that case, contract for confidence and evidence.
Answer in three sections:
- What the available evidence supports
- What remains uncertain
- What would change the conclusion
Label every material assumption. Do not present an assumption as a verified fact.
This pattern is useful for research, debugging, and planning because it separates a plausible answer from a supported one.
Adapt the pattern instead of stacking rules
Choose one example, replace its fields with the decisions your workflow needs, and test it on a real input. If reviewers still ask the same follow-up question, add that missing requirement to the contract.
Avoid combining every pattern into one giant response. A contract is effective when it makes the output easier to use, not when it proves how many rules the prompt can hold.
Promptlight can keep these contracts inside reusable Markdown prompt files. Save the task, expected inputs, and output contract together, then search and copy the prompt when you need it. The response still comes from the AI tool you paste it into; Promptlight keeps the reusable source legible and local.
For a stricter execution pattern, see the Objective Execution Mode prompt and the guide to reviewing prompts before sharing.



