6 min read

How to prompt an AI assistant

Patterns that work, patterns that don't, and the small tweaks that turn a mediocre answer into a great one.

A person and a robot having a conversation

#The 3-line rule

For most asks, three lines is enough to get a great answer:

1. What you want (the goal)
2. Constraints (what must / must not be true)
3. Context (who's reading, why, what you've tried)
โœ… Specific
"Draft an email to my landlord about the broken heater. Polite but firm, in Portuguese. Mention I sent the maintenance request 2 weeks ago and got no reply. Want a response by Friday."
โŒ Vague
"Write me an email to my landlord."

#Show, don't describe

For specific styles, give an example. Two short examples beat five paragraphs of description.

โœ… With example
"Write a tweet in this style: 'Just shipped X. Felt like Y. Lessons: A, B, C.' Topic = launching my new project."
โŒ Without
"Write me a tweet about launching my new project."

#Tell it what to skip

Most failure modes are over-doing it. "Don't pad. Don't list caveats. Don't explain what you're doing โ€” just do it" works.

Try ending prompts with: "Be direct. Skip the preamble. Just the answer."

#Iterate, don't restart

Don't close the chat and try again from scratch when the first answer isn't quite right. Refine in the same thread:

  • "Shorter."
  • "More confident, less hedging."
  • "Cut the third bullet, expand the second with a specific example."
  • "Same content, but in PT-BR, more casual."

#Ask it to think out loud (when stakes are high)

For tough decisions or non-trivial code: ask for reasoning before the commit. Laying out the thinking surfaces mistakes that would otherwise pass.

  • "Before you answer, list the 3 angles I might be missing."
  • "Walk through your reasoning step by step."
  • "What would have to be true for this to be wrong?"

#Give it access to verify

If the assistant can run code, fetch URLs, query APIs โ€” it will. Tell it to:

  • "Run this and show me the actual output."
  • "Curl the page and confirm the email is there."
  • "Check today's date and the day-of-week before drafting."

#Common anti-patterns

โœ… One concrete ask
"Refactor pipeline/generate-brief.mjs so the system prompt is read from a YAML config. Smoke-test it after."
โŒ Multi-ask soup
"Refactor the generator, also add a fact-checker, and make the dashboard show the result, and write tests for everything."
โœ… State the constraints
"Don't add new dependencies. Don't change public function signatures. Keep it under 100 lines added."
โŒ Open-ended permission
"Do whatever you think is best."

#Tone patterns assistants respond to

  • "Be honest, even if it stings." โ€” drops the people-pleasing.
  • "Push back if you disagree." โ€” will actually argue.
  • "Confidence-calibrate this โ€” tell me what you're sure of vs guessing." โ€” flags uncertainty.
  • "Show your work." โ€” includes reasoning chain.
  • "Be ruthless." โ€” cuts hard instead of expanding.

#One last meta-prompt

When stuck, ask: "What would a better prompt look like for what I'm trying to do?"

The assistant will rewrite the prompt better than the user would. Then run that.