A gift page needs enough writing to feel considered. On SurpriseLinks, some drafts ended up with one short note and a letter that barely developed the sender’s message. The page had places for a welcome, personal notes, a letter and a final wish. The text often gave those sections the same job. SurpriseLinks.
When I went back to the code, the writing brief explained part of the problem. It explicitly asked for fewer paragraphs and just one note whenever the customer provided little detail. The model was following an instruction I had written.
A short input can still carry a clear idea
Someone may type “My sister always checks that I got home safely” and stop there. That sentence already contains an action, a relationship and a reason for gratitude. The draft can explore what the gesture means to the sender. It can do that without inventing a time, a place or a difficult incident.
A small fictional example
“Thank you for always checking that I got home safely.”
“That little check-in means more to me than I usually say. I know it only takes a moment to ask whether I got home safely. I hear the care behind the question, and I wanted to tell you that I notice it.”
The second version stays with the one detail the sender supplied. There is enough room for the thought to land, and it still sounds like something someone could say aloud.
I gave each part of the page a purpose
“Write a longer message” leaves the model to decide where the extra words go. I gave the page a specific shape. The opening should welcome the recipient. The notes should each explore a different thought. The letter should bring the strongest detail and the sender’s intention together. The final wish should feel like an ending.
The revised brief asks for two or three notes and a letter of three short paragraphs, roughly 140–180 words in the letter itself. The whole page targets about 270–350 words. Titles stay short, and the model has room to adjust the phrasing in English, Hindi or Hinglish.
For a sparse apology, the same structure has a different purpose. A paragraph can take ownership, another can express the apology plainly and a final one can leave room for the recipient. Any account of the impact or any promise to make things right has to come from the sender.
Reasoning effort and visible detail are separate settings
The older occasion settings requested low reasoning, and a couple of earlier Birthday test responses recorded zero reasoning tokens. I set the writing request to medium reasoning and medium text verbosity. The first setting controls the effort requested from the model. The second helps steer the level of visible detail. The writing brief tells it how much to put in each section. OpenAI’s reasoning guide · OpenAI’s guide to text verbosity.
A useful check is to read the result like a recipient. If the letter, opening and final wish all make the same point, an extra paragraph adds little. Give that paragraph a distinct thought tied to something the sender actually shared.
The app now checks the draft before saving it
The response comes back as a structured set of fields. The app checks that a fresh draft has three developed letter paragraphs, at least two substantive notes and enough text in the opening and final wish. Very short or incomplete drafts go through the existing retry process. The app also checks the expected script for Hindi and Hinglish.
I verified those paths with fictional inputs and simulated API responses. That can show a short or incomplete response gets handled correctly. To judge the prose itself, read actual generated drafts for a brief input, a richer memory and the different supported languages. That is where you see awkward repetition or a detail the writer invented.
Try the same approach in your own tool
- Collect a few examples of outputs that feel too short or repetitive.
- Give each section one purpose and an approximate length that fits the screen.
- Explain how to develop sparse input using the facts the customer supplied.
- Check the result before saving it, then read a sample of real outputs aloud.
On SurpriseLinks, writing sits between payment confirmation and the sender’s preview. That preview is where the customer can decide whether the words sound like theirs. What happens after you click Pay.
