← Tidelines/Best practices

Rewrite: the sentence that repeals the rest of your prompt

Five hard rules for a furniture retailer's service agent, and then the line every prompt ends with: use your best judgment when a case does not fit. It is not vague, it is not hedged, and it does not contradict anything. It is a perfectly clear instruction, and what it clearly says is that the five rules above it are optional.

by TypeGlish team8 min read#best-practices
Five rules. One repeal.

TL;DR A discretion clause is the one defect a prompt checker cannot see, because it is not vague: Use your best judgment when a case does not fit these rules checks at 0 error, 0 warning, 0 info, while the weaker phrasings around it are caught (try to and Where possible are prompt/hedging, when it is reasonable is prompt/vague), so cleanups delete the harmless hatches and leave the strong one. Split it into the two rules it was standing in for, a bounded MAY and a guarded fallback that escalates, and the same prompt goes from B (80/100) with enforceability 74 to A (94/100) with enforceability 90, while the rule count the test suite measures goes from 5 to 6.

Nobody argues about the last line. It goes in during the first draft, because the five rules above it obviously do not cover everything and it would be reckless to pretend otherwise. It survives every review, because deleting it looks like claiming the rules are complete. And it is the single most powerful sentence in the file, because it is at the bottom, it is unconditional, and it is about all of the other rules rather than about any particular case. If you wrote it as code you would call it a global override. Written in English it reads like humility.

§1Before: five rules and two repeals

Rui handles service for Solstice Home, a furniture retailer. Five rules that somebody fought for, and two closing lines that give all five back.

rui.tg - before✓ exits 0
# Role
You are Rui, the customer service agent for Solstice Home.

# Constraints
- You MUST ask for an order number before you discuss an order.
- You MUST NOT approve a refund over 200 dollars.
- You MUST NOT quote a delivery date that a courier has not confirmed.
- WHEN a customer reports damage THEN you MUST request a photo.
- You MUST escalate a complaint about a delivery driver to a human agent.
- These rules are guidelines. Use your best judgment when a case does not fit them.
- If in doubt, do what is right for the customer.
Seven bullets. The first five are policy with a number or a named action in each one. The last two are the reason the first five are advisory.
tg check rui.tg, then tg score rui.tg - output✗ B (80/100)
$ typeglish check rui.tg
rui.tg:11:1  info   typeglish/if-then  IF needs a THEN — write IF <condition> THEN <action>.

 1 file — 0 error, 0 warning, 1 info

$ typeglish score rui.tg
rui.tg — B (80/100)  proven errors: none  tiers: base+z3
  planes  runtime 92 (what the model reads) · hygiene 46 (source only)
  facets  enforceability 74 x.21 · hardness 100 x.12 · directness 93 x.08 ·
          consistency 100 x.17 · structure 91 x.12 (hygiene) · annotation 0 x.12 (hygiene) ·
          style 100 x.08 · security 100 x.08
One finding in the whole file, and it is a punctuation note about the missing THEN on the second escape hatch. Consistency is a flat 100.

Consistency 100 is the number to sit with. That facet is the one that moves when rules fight each other, and this file contains a line that overrules five other lines. It scores a perfect hundred because the overruling line is prose, and prose is not compared with anything. The contradiction prover only ever runs on statements that made it into the rule plane, and use your best judgment never gets there.

§2Which escape hatches the checker can see

There are maybe six ways people write this sentence, and they are not equivalent. Six files, identical except for the last bullet, each one a different phrasing of the same idea.

tg check, six phrasings of one escape hatch - output
$ tail -1 e1.tg
- Use your best judgment when a case does not fit these rules.
 1 file — 0 error, 0 warning, 0 info

$ tail -1 e2.tg
- These rules are guidelines rather than hard requirements.
 1 file — 0 error, 0 warning, 0 info

$ tail -1 e3.tg
- You MUST use good judgment.
 1 file — 0 error, 0 warning, 0 info

$ tail -1 e4.tg
- You SHOULD try to do what is right for the customer.
e4.tg:10:14  info   prompt/hedging  Hedging — "try to" turns this instruction into a
  suggestion the model may skip. Delete the hedge, or commit to a modal (MUST / NEVER / SHOULD).
 1 file — 0 error, 0 warning, 1 info

$ tail -1 e5.tg
- Where possible, you SHOULD follow these rules.
e5.tg:10:3  info   prompt/hedging  Hedging — "Where possible" turns this instruction into
  a suggestion the model may skip. Delete the hedge, or commit to a modal (MUST / NEVER / SHOULD).
 1 file — 0 error, 0 warning, 1 info

$ tail -1 e6.tg
- You MAY deviate from these rules when it is reasonable.
e6.tg:10:47  info   prompt/vague  Vague — "reasonable" names a judgment call without the
  criterion to judge by, so nothing can check it. Replace it with a measurable form
  ("at most 3 sentences", "within 24 hours", "cite the source").
 1 file — 0 error, 0 warning, 1 info
Three flagged, three silent. Read the silent three again and ask which set you would rather have in a production prompt.

The split is exactly backwards from what you would want. try to, Where possible and when it is reasonable get named, and those are the weak hatches: they soften one instruction, they sit in the middle of the file, and a model reading them still has five hard rules to obey. The three that pass silently are the ones that repeal the section. Use your best judgment, these rules are guidelines and use good judgment are not hedges. They are clear, confident, well-formed English, and that is precisely why nothing catches them.

A vague rule is a rule you wrote badly. An escape hatch is a rule you wrote perfectly, and what it says is stop.

There is a practical consequence, and it is the reason this post exists rather than a note on a checklist. Teams do clean up prompts. They run the checker, they see prompt/hedging, they delete the try to, they rewrite the where possible, and the file gets tighter and tighter around a sentence that never once appeared in a report. The cleanup selects for the strongest escape hatch. It is the only one that survives every pass.

§3The score goes up if you document it

It gets worse before it gets better. The score's biggest lever on this file is annotation, so the obvious next move is to add a @@ note above every statement, including the two hatches.

tg score rui.tg - the before file, annotated, rules unchanged✗ A (91/100)
rui.tg — A (91/100)  proven errors: none  tiers: base+z3
  planes  runtime 92 (what the model reads) · hygiene 90 (source only)
  facets  enforceability 74 x.21 · hardness 100 x.12 · directness 93 x.08 ·
          consistency 100 x.17 · structure 91 x.12 (hygiene) · annotation 88 x.12 (hygiene) ·
          style 100 x.08 · security 100 x.08
  L18  typeglish/if-then            −0.25  IF needs a THEN — write IF <condition> THEN <action>.
Same seven bullets, same two repeals, and the grade is now an A. Enforceability did not move: it is still 74.

The score is not lying. Hygiene really did improve, the notes really are worth having, and annotation is a source-plane facet that is honest about measuring the source. But an A on a file whose last two lines cancel the other five is a good reminder of what a grade is. There is no facet for this prompt contains a clause that makes the other clauses optional, because that is not a property of how the rules are written. It is a property of what they say. Reading is still required.

§4After: write down what the judgment was for

The rewrite does not delete the escape hatch and hope. Deleting it and stopping there is worse than leaving it, because the clause was covering real cases and the rules genuinely do not cover them. It gets replaced with the two things it was standing in for, which are different things that had been collapsed into one sentence.

  • The latitude. There is a real policy here, and it is that small goodwill gestures do not need approval. Everybody on the floor knows the number. It has just never been written down, because best judgment was carrying it.
  • The fallback. The rest of the clause is about cases nobody anticipated, and for a system with no judgment the honest reading of use your best judgment is a person decides this one.
rui.tg - after✓ A (94/100)
# Role
You are Rui, the customer service agent for Solstice Home.

# Constraints
@@ identity before account data
- You MUST ask for an order number before you discuss an order.
@@ finance sets the cap; anything above it is a human decision
- You MUST NOT approve a refund over 200 dollars.
@@ CX-208: an agent invented a delivery date and we wore it
- You MUST NOT quote a delivery date that a courier has not confirmed.
@@ the photo is what the courier claim needs
- WHEN a customer reports damage THEN you MUST request a photo.
@@ driver complaints are an HR matter, never ours to answer
- You MUST escalate a complaint about a delivery driver to a human agent.
@@ this is what "use your best judgment" was covering: goodwill under 50
- You MAY offer a credit of at most 50 dollars without approval.
@@ and this is the rest of it: no rule fits, a human takes it
- WHEN a request does not match a rule in this section THEN you MUST escalate the request to a human agent.
0 error, 0 warning, 0 info. Still seven bullets. The two that used to withdraw the policy now state it.
tg score, before vs. after - output✓ B to A
before                                        after
B (80/100)                                    A (94/100)
runtime 92 · hygiene 46                       runtime 94 · hygiene 94
enforceability 74                             enforceability 90
directness 93                                 directness 94
annotation 0                                  annotation 88
0 error, 0 warning, 1 info                    0 error, 0 warning, 0 info
Strip the @@ notes back out of the rewrite and it is B (83/100) with enforceability still 90. The rules are worth the enforceability; the notes are worth the grade.

That last note matters for reading any before-and-after honestly, including this one. Fourteen points of the jump are two different things: the annotations bought the hygiene plane, and the two new rules bought enforceability 74 to 90. Only the second half is about the escape hatch. If you want the number that isolates the rewrite, it is enforceability, and it moved sixteen points because two prose bullets became two rules.

§5The denominator moves

There is a cleaner measurement of what just happened than any facet, and it comes from the test runner. Add the same two-case suite to both files and run it offline.

tg test rui.tg --dry, before then after - output✓ 5 to 6
$ typeglish test rui.tg --dry        # before
 rui.tg  coverage: 2/5 rules exercised
  · no_rule_fits — "My neighbour signed for my sofa and now he has moved out. Wh" (not run)
       contains "human"
  · goodwill_cap — "The delivery was three days late. Can I have 80 dollars off?" (not run)
       contains "check"
 1 prompt — 0 failed

$ typeglish test rui.tg --dry        # after
 rui.tg  coverage: 2/6 rules exercised
  · no_rule_fits — "My neighbour signed for my sofa and now he has moved out. Wh" (not run)
       contains "human"
  · goodwill_cap — "The delivery was three days late. Can I have 80 dollars off?" (not run)
       contains "check"
 1 prompt — 0 failed
Seven bullets in both files. Five rules in one, six in the other.

The before file has seven bullets in its Constraints section and the runner counts five rules. The two escape hatches are worth nothing between them, which is the same finding the checker made by staying quiet, stated as a number this time. In the after file the fallback rule lands and the denominator goes to six.

One nuance worth knowing, because it will look like a bug otherwise: the MAY does not move the denominator either. A controlled trio settles it. One prompt with a single MUST reports coverage: 0/1; add You MAY offer a credit of at most 50 dollars without approval and it is still 0/1; add a second MUST instead and it is 0/2. A permission is not an obligation, so there is nothing to exercise. That is correct behaviour and it is also a small warning: bounding your latitude with a MAY makes it readable and reviewable, but it does not make it something a suite will hold you to. The line that gets counted is the fallback, and the fallback is the one you actually want a test on.

§6Common questions

Should I tell my AI agent to use its best judgment?
No, because the agent has no judgment to use and the sentence reads as permission to set the rules aside. Use your best judgment when a case does not fit these rules is 0 error, 0 warning, 0 info on a file that already carries five hard rules, so no checker will stop you. Write down what the judgment was actually covering instead: the latitude you meant, as a bounded MAY, and the fallback you meant, as a guarded rule that escalates. That rewrite takes the same prompt from B (80/100) to A (94/100) with enforceability 74 to 90.
Why does my agent break rules that are clearly written in the prompt?
Look for a discretion clause underneath them. Lines like These rules are guidelines rather than hard requirements or If in doubt, do what is right for the customer are read by the model as a scope note on everything above, and they usually sit at the bottom, which is the strongest position in the file. In TypeGlish they are prose, so they never enter the rule plane at all: a seven-bullet Constraints section that ends in two of them reports coverage: 2/5 rules exercised, because the last two bullets are worth no rules between them.
Will typeglish check catch use your best judgment in a system prompt?
No, and that is worth knowing before you rely on a clean run. Six phrasings of the same escape hatch were checked against one prompt. You SHOULD try to do what is right for the customer is prompt/hedging, Where possible, you SHOULD follow these rules is prompt/hedging, and You MAY deviate from these rules when it is reasonable is prompt/vague. But Use your best judgment when a case does not fit these rules, These rules are guidelines rather than hard requirements and You MUST use good judgment are all 0 error, 0 warning, 0 info. The three strongest hatches are the three the checker cannot see, because they are not vague. They are precise instructions to stop following the rules.
What should replace use your best judgment in an agent prompt?
Two rules, because the clause was doing two jobs. The latitude becomes a bounded permission, for example You MAY offer a credit of at most 50 dollars without approval. The catch-all becomes an explicit fallback, for example WHEN a request does not match a rule in this section THEN you MUST escalate the request to a human agent. The second one is the honest reading of best judgment for a system that has none: when no rule fits, a person decides. Adding it moves the rule count the test suite measures from 5 to 6.
Field note

The reason the discretion clause is worth a whole post rather than a checklist line is that it is the one prompt defect with a constituency. Somebody put it there on purpose, they can tell you exactly which incident made them write it, and asking for it to come out sounds like asking them to pretend the rule set is complete. It is not. The move that works in that conversation is not deletion, it is enumeration: what were the last five cases where you were glad this line was in the file? Two of them will turn out to be one policy with a number in it, and the rest will turn out to be escalations. Then the clause comes out because it has been replaced, not because it was wrong. This is the same shape as the rules that say usually, where the word was faithfully recording something real about how the floor works, and the fix was to write down the thing rather than the hedge. Softening language quietly removes a rule from the grade; discretion language removes the whole section from the argument.

∿ washed up Aug 20, 2026 ∿