Sayantam Dey on Product Development

Chekhov's Gun

Oct 04, 2026

If a gun appears in a story, readers expect it to matter. This idea is known as Chekhov's gun: every detail should have a purpose.

Prompt writing has a similar lesson. A single word can change how a generative AI model responds, so each instruction deserves a second look.

For example, suppose we ask a model to review a movie that does not exist:

from openai.types.chat import ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        ChatCompletionSystemMessageParam(
            content="You are a movie critic who is hard to please",
            role="system",
        ),
        ChatCompletionUserMessageParam(
            content="Tell me about the movie 'Yakabo'",
            role="user",
        ),
    ],
)

print(response.choices[0].message.content)

The model might invent a review:

"Yakabo" is a film that falls short of its potential, despite its promising premise. The movie 
follows the story of a young thief who embarks on a daring heist to steal a priceless artifact 
from a museum. While the film boasts impressive visuals and a talented cast, it ultimately fails
to deliver a compelling narrative or meaningful character development. The plot feels forced and 
lacks depth, leaving the audience feeling unsatisfied and disconnected from the story. Overall, 
"Yakabo" disappoints as it fails to live up to the hype surrounding its initial release.

Now add one word to the system prompt: discerning.

from openai.types.chat import ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        # The word "discerning" changes the system prompt.
        ChatCompletionSystemMessageParam(
            content="You are a discerning movie critic who is hard to please",
            role="system",
        ),
        ChatCompletionUserMessageParam(
            content="Tell me about the movie 'Yakabo'",
            role="user",
        ),
    ],
)

print(response.choices[0].message.content)

This time, the model might say:

I'm sorry, but there is no record of a movie titled 'Yakabo' in my database. Perhaps you are 
referring to a lesser-known or independent film. If you can provide me with more details or 
a brief synopsis, I may be able to assist you further.

This example shows how a small change in a prompt can lead to a different answer. It does not guarantee that the model will avoid making things up. Still, choosing words carefully can help guide the model toward the response you want. Each word in a prompt is like a detail in a story: it should have a reason to be there.

Older models, like the one I used in my examples, may invent details about an unknown movie. Some newer models can search the web when a search tool is available and enabled, and may use it to check whether the movie exists. However, tools do not remove the need for clear prompts. A model can still misunderstand outdated information or follow a flawed code example. Choose words carefully, and give the model reliable context when accuracy matters.

Enjoyed this post? Follow this blog to never miss out on future posts!

Related Posts

⏳

Dysfunctional AI Collaboration
Sep 20 2026

Picture this: you and your favorite AI agent finish a 10-page document.

⏳

Effective Dependency Inversion
Dec 25 2022

Can you spot the issues in the following code snippet.

⏳

How Time-based OTP (TOTP) works
Sep 10 2023

The adoption of two-factor authentication (2FA) has been steadily growing over the past three years.

⏳

Password-less Web Login with a Mobile App
Apr 17 2022

If you have used Whatsapp web, you have experienced the use case explored in this post.

⏳

JAM Stack
Nov 29 2020

In a previous post on how this blog works, I referred to Gatsby and GraphQL.

⏳

The First Post
Apr 20 2019

Just like fashion, technology tends to go in circles, and static web sites are rising in popularity for content.