TheFocus.AI TheFocus.AI

Clarifying Questions

TUTOR WITH THEFOCUS.AI

Agent Integration

Copy this prompt into Claude, ChatGPT, or any external AI assistant. It points the assistant to the course instructions and links it to your student profile to track your progress and customize observations.

Please tutor me in this lesson using the following context. First, read the instructions at: https://courses.thefocus.ai/llms.txt My Student ID is: <none> The lesson markdown source is at: https://courses.thefocus.ai/run-ai-locally/02-prompting/03-clarifying-questions.md

You are not enrolled yet. Enroll to generate a Student ID to track lesson completions and store learning notes.

03 — Spell #1: Clarifying Questions

The Problem

When you ask an AI to do something, it makes assumptions. Lots of them. And most of those assumptions are wrong.

Here’s what happened when we asked for a fortune teller:

Write me a program I can run in the terminal that's a fortune teller
that will show me one of a random 10 fortunes.

The model picked a language (Python), a design, a file structure — all based on assumptions it made in about 0.2 seconds. If any of those assumptions were wrong, the whole thing would fail.

The Spell

Add this one sentence to the end of your prompt:

Make sure that you understand exactly what I want before continuing by asking me clarifying questions one at a time.

That’s it. That’s the spell. Here’s the full prompt:

Write me a program I can run in the terminal that's a fortune teller
that will show me one of a random 10 fortunes. Make sure that you
understand exactly what I want before continuing by asking me
clarifying questions one at a time.

What Happens

Instead of immediately generating code, the model stops and asks you a question:

Question 1: What programming language would you like me to use? Python is common for beginners, but I could also use Bash, JavaScript, or Ruby.

Now you have a choice. But what if you don’t know how to answer? That’s fine. Say so:

I don't know what any of those words mean.

Or:

I wouldn't know how to answer that.

This is powerful. The model now knows you’re a beginner. It will adjust its explanations, ask simpler questions, and avoid assuming you know things.

The Conversation

The model will ask a series of questions. Answer each one honestly. If you don’t know, say “I’m not sure.” Eventually, it will have enough information and will produce the code.

In our case, the model’s final response included:

“Since you mentioned you aren’t familiar with programming, I have written the code for you and included a ‘How to Run This’ guide below.”

Notice what happened: the model calibrated to your level because you were honest about what you didn’t know.

Why This Works

LLMs are trained to be helpful and to answer quickly. By default, they’ll guess what you want and give you some answer. But when you tell them to ask clarifying questions:

  1. They surface their assumptions as questions
  2. You can correct the assumptions before any code is written
  3. The model builds a shared understanding with you
  4. The final output is far more likely to be what you actually want

This technique alone can transform a model from “frustrating” to “reliable.”

In the Wild

Here’s what the clarifying question conversation looked like for a more complex task (building our prompt runner system):

> I want to build a script that reads in a prompt and then runs it
> through ollama and stores the output in a directory so that we can
> match up the prompts and the output and run them over again to see
> if everything is good or changes. I want to use the gemma4:26b model.
> Make sure that you understand exactly what i want before continuing
> by asking me clarifying questions one at a time.

Question 1:

How do you want the input prompts to be provided to the script? For example, would you like the script to read from a single text file containing multiple prompts (one per line), or a directory where each individual file represents a different prompt?

Each prompt should have its own directory, and so when we run it we
just give it the directory name and it looks at the prompt.txt file in
there and then it outputs the stuff inside of that directory and it
remembers which prompt it used.

Question 2:

When the script generates the output in that directory, would you like the output file to contain only the model’s response, or should it also include the original prompt text and a timestamp?

only the model response

Question 3:

When you run the script on the same directory a second or third time, how should the script handle the existing output file?

overwrite

Question 4:

When you run the script, do you want to provide one specific directory at a time, or do you want to provide a parent directory and have the script automatically loop through every sub-directory?

one at a time

By the time the model starts writing code, it has a precise specification — and the spec came from you, not from the model’s assumptions.

What You’ve Learned

  • Spells are real — small changes to your prompt massively change output quality
  • Asking clarifying questions forces the model to surface its assumptions
  • Being honest about what you don’t know helps the model calibrate to your level
  • The conversation before coding is where quality is determined

Next: 04 — Simplest Thing →