Module 3 · Ask clearly
Limits and shape: output you can use as is
In short
Limits written as measures, a fully named shape and a rule for missing data make AI output usable as is, without invented fillers.
After this lesson you can
- Write firm limits: what is off limits, length and tone
- Name a result shape you can use straight away, such as table columns
- Give a rule for data that is incomplete or missing
Terms in this lesson
Understand
In the request checklist, Limits and Shape are the two parts that turn a "decent" result into one you can use as is. This lesson covers both, plus a rule that is often forgotten: what the model must do when data is missing.
Limits answer three things. What must not be done: for example, add no facts beyond the material, do not name customers, do not promise dates. How long: write a number, not an adjective. "Short" to you might be three sentences, to the model three paragraphs. "At most 120 words" or "five bullet points" is far clearer. What tone: "friendly but direct, no opening pleasantries" is easier to follow than "nice to read". Keep in mind that the length you ask for is a request. The hard limit on how much text the model may write is usually set by the app, as explained in the lesson Tokens and the context window.
Shape answers one question: what form can you paste straight into your work? If the result goes into a spreadsheet, name the columns one by one and in order. If it is an email, ask for a subject line, greeting, body and sign-off. If it is for a slide, ask for short bullets without long sentences. A clear shape saves editing time and also makes the result easier to check, because every part is in the same place every time.
Then the rule for missing data. Models are trained to give complete answers. If the material has no price, warranty or date, the model tends to fill it with something plausible. That is why you write the rule: "If something is not mentioned in the material, write 'not mentioned'. Do not guess and do not write zero." Missing data does not mean the value is zero, and it does not mean it may be made up. With this rule an empty cell becomes information: you know exactly what to ask about again.
The three support each other. Clear limits keep the model from wandering, a clear shape makes the result easy to read, and the missing-data rule makes the gaps visible. After a few tries, writing all three takes a minute.
A few habits make limits easier to follow. Say what to do, not only what is forbidden: "use short sentences, one idea per sentence" helps more than "don't ramble". If a ban really matters, give the reason, for example "do not mention prices, because the new prices are not approved yet". A reason helps the model apply the ban to cases you did not list.
Capital letters and exclamation marks do not make a limit stronger. Clarity and placement do. Put important limits near the end of the request, after the material, so they do not sink under long text.
For shape, one sample row is often clearer than an explanation. If you want a table, write the column headings and one sample row with content that is obviously made up. If there are filling rules, give them per column: dates as day-month-year, money without thousand separators, the status column only "done", "in progress" or "not started".
Limits you use again and again, such as your office's writing style or a ban on customer data, do not need rewriting every time. Many apps offer a place for system instructions or standing instructions. How to write them is covered in the Produce real work module.
Before
The prompt
Make a comparison table from these notes on three suppliers' quotes. [notes pasted]
What came back
Supplier | Price | Delivery | Warranty Supplier A | Rp 45,000/unit | 7 days | 1 year Supplier B | Rp 42,500/unit | 10 days | 1 year Supplier C | Rp 47,000/unit | 5 days | 2 years Recommendation: Supplier B offers the best price with an equivalent warranty.
After
The prompt
Goal: I need to compare three suppliers' quotes before the procurement meeting. Material: the quote notes below. Shape: a table with columns in this order: Supplier, Unit price, Delivery time, Warranty, Notes. Prices without thousand separators. Limits: use only what the notes say. Give no recommendation. Missing data rule: if something is not mentioned in the notes, write "not mentioned". Do not guess, do not write zero. Check: below the table, list what is not mentioned for each supplier. [notes pasted]
What came back
Supplier | Unit price | Delivery time | Warranty | Notes Supplier A | Rp 45000 | 7 days | 1 year | price valid until month end Supplier B | Rp 42500 | not mentioned | not mentioned | minimum order 500 units Supplier C | Rp 47000 | 5 days | 2 years | buyer pays shipping Not mentioned: - Supplier B: delivery time and warranty. - Suppliers A and C: every column filled.
What changed
- The first version invented "10 days" and "1 year" for Supplier B, then used those inventions to recommend it.
- The "write not mentioned" rule turns the gap into a clear question for Supplier B.
- Columns named in order can be pasted straight into a spreadsheet.
- Ruling out a recommendation keeps the decision in the meeting, not with the model.
Common mistake
- Mistake
- Not saying what the model should do when the material lacks a piece of data.
- Why it hurts
- The model fills the gap with a plausible value or with zero. The filler looks as convincing as real data, so it can be counted, compared and sent along with it.
- Do this instead
- Write a firm rule, such as "if it is not mentioned, write 'not mentioned'", then ask for a list of gaps below the result so you can follow them up.
Try
Common mistake
- Mistake
- Writing limits as adjectives such as "short", "professional" or "engaging".
- Why it hurts
- Every person, and every model, reads those adjectives differently. You then spend several rounds just agreeing on what "short" means.
- Do this instead
- Replace them with measures and examples: "at most 100 words", "three bullets", "the tone of an email to a colleague in the same division, no long opening greeting".
You ask AI to write a reply to a customer whose parcel is late. Which limit is easiest to follow?
Sorting card
The material you pasted does not mention when the contract ends. Sort these model answers: safe to use, or needs rechecking?
Contracts like this usually run for one year.
Contract time left: 0 months.
End date not mentioned. Needs asking the legal team.
End date: not mentioned in the material.
End date: 31 December.
5 cards left
A table ready to paste
Works with any AI assistant.
Your prompt
Goal: I need ‹tujuan›. Material: pasted below. Shape: a table with columns in this order: ‹kolom›. One row per ‹baris›. Limits: use only what the material says. Add no columns and give no conclusion. Missing data rule: if a cell is not in the material, write "not mentioned". Do not guess and do not write zero. Check: below the table, list every cell that is not mentioned. [paste material here]
Take home
Limits and shape in one minute
- I wrote what is off limits, with a reason when it matters.
- Length is a number: words, sentences or bullets.
- Tone is described with a reader in mind, not adjectives alone.
- The shape is spelled out: columns and their order, or the parts of the email.
- There is a rule for missing data: write "not mentioned", no guessing, no zero.
What went wrong for us
Streaming usage is requested explicitly
- Context
- We record token usage for every model call to work out costs and user credits.
- What tends to go wrong
- Some streaming APIs do not send usage data unless asked. Code that takes missing data to mean zero records usage too low.
- What it costs if ignored
- Costs of streaming features are under-recorded, so credit accounting is inaccurate.
- Root cause
- Missing data is easily treated as zero.
- How we do it
- Every streaming call asks for usage data explicitly.
- The rule we keep
- A missing usage figure is investigated as a problem, not taken as zero.
The lessonMissing data does not mean the value is zero.
What it means for your workIf a figure is missing from a report, do not treat it as zero. Write "no data" and ask, because a false zero gets counted and misleads.
