{"course":{"slug":"prompting","title":"Getting Real Work out of a Model","url":"https://addaly.com/learn/prompting","level":"beginner","track":"start"},"lesson":{"slug":"checking-against-constraints","title":"Making it check its answer against the rules","url":"https://addaly.com/learn/prompting/checking-against-constraints","position":43,"of":72,"minutes":8,"answer":"Checking is easier than composing, so make compliance a separate pass that quotes the deciding words, and remember a green checklist only covers the rules you thought to write down.","keyIdea":"Checking is easier than composing, so make compliance a separate pass that quotes the deciding words, and remember a green checklist only covers the rules you thought to write down."},"body":{"format":"markdown","text":"## Composing under constraint is harder than checking\n\nYou know from earlier that a list of eight requirements gets partly satisfied and quietly trimmed. The fix is not a firmer instruction. It is a second pass, because **checking is a much easier task than composing**.\n\nWhen a model writes a product description while holding eight rules in mind, every token is a compromise between fluency and compliance. When it reads a finished description and asks \"does this contain the SKU?\", that is a simple lookup with a yes or no answer.\n\nSo split the two.\n\n## The pattern\n\n```\nStep 1. Write the description.\nStep 2. Then output a checklist: for each of the eight rules,\n        state PASS or FAIL and quote the words that decide it.\nStep 3. If any rule is FAIL, output a corrected version.\n```\n\nThree things make this work rather than being ceremony.\n\n**Quote the deciding words.** Without that, you get a column of PASS that means nothing, since a model asked whether it complied is being asked a leading question. With a quote, you can check the check.\n\n**Rules must be mechanically decidable.** \"Under 120 words\", \"contains the SKU\", \"does not use the word quality\", \"ends with a question\". Not \"engaging\", not \"on brand\". A rule the model cannot apply reliably produces a confident PASS and teaches you to distrust the whole checklist.\n\n**Correction is a separate step.** Asking it to fix and re-check in one breath tends to produce a claim of correction rather than a correction.\n\n## Where this is worth the tokens\n\n**Anything with hard requirements**: legal wording that must appear, a character limit, a required disclaimer, an accessibility rule, a format another system will parse.\n\n**Anything going out at volume.** A hundred product descriptions where two break a rule is a real problem, and reading a hundred descriptions is not going to happen. Reading a hundred checklists filtered to FAIL rows takes two minutes.\n\n**Anything where the requirements came from somebody else.** A client brief, a regulator, a house style guide. The checklist becomes the evidence you complied.\n\n## The self-check's blind spot\n\nIt catches violations of rules you wrote down. It does not catch anything you did not think to write down, and it does not catch a factual error, because a factual error is not visible from inside the text.\n\nThat is worth stating plainly, because a green checklist is persuasive out of proportion to what it establishes. Eight PASS rows tell you eight things were checked. They tell you nothing about the ninth thing you never listed, and nothing about whether the figures are right.\n\n## Independent checking is stronger\n\nThe strongest version does not tell the checker what was intended:\n\n> Below is a product description. Check it against the rules that follow. Do not assume it was written to satisfy them.\n\nBetter still, run the check in a fresh conversation. In the same conversation the draft is in the context, along with the effort that produced it, and there is a documented pull towards consistency with what has already been said. A clean context has no such attachment.\n\nFor anything consequential, this is the version to use: draft in one place, check in another, with only the artefact and the rules crossing between them.\n\n## The everyday version\n\nMost of the time you do not need the full apparatus. One line at the end of a prompt does most of the work:\n\n> After the answer, list any of my instructions you did not fully satisfy, and why.\n\nModels will often tell you, honestly, that they dropped the word limit or could not find a figure. It is not reliable, and it is free, and the answer is frequently more useful than the output it accompanies.\n\n## Writing rules that can be checked\n\nSince the whole technique depends on decidable rules, it is worth knowing how to convert the undecidable ones. Take each vague requirement and ask what you would look at to settle it.\n\n- *Professional tone* → no exclamation marks, no contractions, no first names in the opening line.\n- *On brand* → uses the product name in full at first mention, never abbreviates it afterwards, does not compare us to a named competitor.\n- *Accessible* → no sentence over 25 words, every acronym expanded at first use, no colour-only references.\n\nNone of those is the whole of what you meant. Each is a testable proxy for part of it, and three testable proxies enforce more than one unenforceable adjective."},"check":{"question":"A marketing team adds a self-check step and every output now reports all rules PASS, yet violations still reach the client. What is the most likely defect?","options":[{"text":"The model is being sycophantic and reporting what the team wants to hear.","correct":false,"tempting":"Names a real tendency but skips the specific and fixable cause visible in the setup."},{"text":"The rules are too numerous, so the check itself drops some.","correct":false,"tempting":"Possible in principle, but a check that reports on every rule has not dropped them; the question is what those reports are based on."},{"text":"The check runs in the same response as the draft, which is always invalid.","correct":false,"tempting":"Same-context checking is weaker, not worthless; the missing evidence is the bigger problem here."},{"text":"The rules are not mechanically decidable and the check does not quote the deciding words, so PASS is an assertion rather than evidence.","correct":true}]},"prev":{"slug":"plan-then-execute","title":"Ask for the plan before the work","url":"https://addaly.com/learn/prompting/plan-then-execute"},"next":{"slug":"asking-it-to-interview-you","title":"Let it ask you the questions","url":"https://addaly.com/learn/prompting/asking-it-to-interview-you"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Making it check its answer against the rules', in Getting Real Work out of a Model. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/prompting/checking-against-constraints (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Making it check its answer against the rules","courseTitle":"Getting Real Work out of a Model","module":{"index":5,"slug":"making-it-work-the-problem","title":"Making it work the problem"},"answer":null,"keyIdea":"Checking is easier than composing, so make compliance a separate pass that quotes the deciding words, and remember a green checklist only covers the rules you thought to write down.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"composing-under-constraint-is-harder-than-checking","runs":[{"text":"Composing under constraint is harder than checking"}]},{"t":"p","runs":[{"text":"You know from earlier that a list of eight requirements gets partly satisfied and quietly trimmed. The fix is not a firmer instruction. It is a second pass, because "},{"text":"checking is a much easier task than composing","b":true},{"text":"."}]},{"t":"p","runs":[{"text":"When a model writes a product description while holding eight rules in mind, every token is a compromise between fluency and compliance. When it reads a finished description and asks “does this contain the SKU?”, that is a simple lookup with a yes or no answer."}]},{"t":"p","runs":[{"text":"So split the two."}]},{"t":"h2","id":"the-pattern","runs":[{"text":"The pattern"}]},{"t":"code","lang":"","label":"Text","text":"Step 1. Write the description.\nStep 2. Then output a checklist: for each of the eight rules,\n        state PASS or FAIL and quote the words that decide it.\nStep 3. If any rule is FAIL, output a corrected version."},{"t":"p","runs":[{"text":"Three things make this work rather than being ceremony."}]},{"t":"p","runs":[{"text":"Quote the deciding words.","b":true},{"text":" Without that, you get a column of PASS that means nothing, since a model asked whether it complied is being asked a leading question. With a quote, you can check the check."}]},{"t":"p","runs":[{"text":"Rules must be mechanically decidable.","b":true},{"text":" “Under 120 words”, “contains the SKU”, “does not use the word quality”, “ends with a question”. Not “engaging”, not “on brand”. A rule the model cannot apply reliably produces a confident PASS and teaches you to distrust the whole checklist."}]},{"t":"p","runs":[{"text":"Correction is a separate step.","b":true},{"text":" Asking it to fix and re-check in one breath tends to produce a claim of correction rather than a correction."}]},{"t":"h2","id":"where-this-is-worth-the-tokens","runs":[{"text":"Where this is worth the tokens"}]},{"t":"p","runs":[{"text":"Anything with hard requirements","b":true},{"text":": legal wording that must appear, a character limit, a required disclaimer, an accessibility rule, a format another system will parse."}]},{"t":"p","runs":[{"text":"Anything going out at volume.","b":true},{"text":" A hundred product descriptions where two break a rule is a real problem, and reading a hundred descriptions is not going to happen. Reading a hundred checklists filtered to FAIL rows takes two minutes."}]},{"t":"p","runs":[{"text":"Anything where the requirements came from somebody else.","b":true},{"text":" A client brief, a regulator, a house style guide. The checklist becomes the evidence you complied."}]},{"t":"h2","id":"the-self-check-s-blind-spot","runs":[{"text":"The self-check’s blind spot"}]},{"t":"p","runs":[{"text":"It catches violations of rules you wrote down. It does not catch anything you did not think to write down, and it does not catch a factual error, because a factual error is not visible from inside the text."}]},{"t":"p","runs":[{"text":"That is worth stating plainly, because a green checklist is persuasive out of proportion to what it establishes. Eight PASS rows tell you eight things were checked. They tell you nothing about the ninth thing you never listed, and nothing about whether the figures are right."}]},{"t":"h2","id":"independent-checking-is-stronger","runs":[{"text":"Independent checking is stronger"}]},{"t":"p","runs":[{"text":"The strongest version does not tell the checker what was intended:"}]},{"t":"quote","runs":[{"text":"Below is a product description. Check it against the rules that follow. Do not assume it was written to satisfy them."}]},{"t":"p","runs":[{"text":"Better still, run the check in a fresh conversation. In the same conversation the draft is in the context, along with the effort that produced it, and there is a documented pull towards consistency with what has already been said. A clean context has no such attachment."}]},{"t":"p","runs":[{"text":"For anything consequential, this is the version to use: draft in one place, check in another, with only the artefact and the rules crossing between them."}]},{"t":"h2","id":"the-everyday-version","runs":[{"text":"The everyday version"}]},{"t":"p","runs":[{"text":"Most of the time you do not need the full apparatus. One line at the end of a prompt does most of the work:"}]},{"t":"quote","runs":[{"text":"After the answer, list any of my instructions you did not fully satisfy, and why."}]},{"t":"p","runs":[{"text":"Models will often tell you, honestly, that they dropped the word limit or could not find a figure. It is not reliable, and it is free, and the answer is frequently more useful than the output it accompanies."}]},{"t":"h2","id":"writing-rules-that-can-be-checked","runs":[{"text":"Writing rules that can be checked"}]},{"t":"p","runs":[{"text":"Since the whole technique depends on decidable rules, it is worth knowing how to convert the undecidable ones. Take each vague requirement and ask what you would look at to settle it."}]},{"t":"ul","items":[[{"text":"Professional tone","i":true},{"text":" → no exclamation marks, no contractions, no first names in the opening line."}],[{"text":"On brand","i":true},{"text":" → uses the product name in full at first mention, never abbreviates it afterwards, does not compare us to a named competitor."}],[{"text":"Accessible","i":true},{"text":" → no sentence over 25 words, every acronym expanded at first use, no colour-only references."}]]},{"t":"p","runs":[{"text":"None of those is the whole of what you meant. Each is a testable proxy for part of it, and three testable proxies enforce more than one unenforceable adjective."}]}],"check":{"question":[{"text":"A marketing team adds a self-check step and every output now reports all rules PASS, yet violations still reach the client. What is the most likely defect?"}],"options":[{"text":[{"text":"The model is being sycophantic and reporting what the team wants to hear."}],"correct":false,"tempting":[{"text":"Names a real tendency but skips the specific and fixable cause visible in the setup."}]},{"text":[{"text":"The rules are too numerous, so the check itself drops some."}],"correct":false,"tempting":[{"text":"Possible in principle, but a check that reports on every rule has not dropped them; the question is what those reports are based on."}]},{"text":[{"text":"The check runs in the same response as the draft, which is always invalid."}],"correct":false,"tempting":[{"text":"Same-context checking is weaker, not worthless; the missing evidence is the bigger problem here."}]},{"text":[{"text":"The rules are not mechanically decidable and the check does not quote the deciding words, so PASS is an assertion rather than evidence."}],"correct":true,"tempting":null}],"order":[1,3,2,0],"why":null},"prev":{"slug":"plan-then-execute","title":"Ask for the plan before the work","minutes":8},"next":{"slug":"asking-it-to-interview-you","title":"Let it ask you the questions","minutes":8}}}