← All articles

A Good Prompt Is Not a System

Cover of PromptOS: A Complete Operating System for Prompt Engineering

The most misleading thing about a prompt is how little it takes to make one look finished.

You put a clear request into a chat window, get a useful answer, refine a few words, and the demo works. That is real progress. It is also the moment when many teams accidentally mistake a working sentence for a working system.

I have been writing PromptOS because I kept seeing the gap between those two things. The problem is not that people do not know how to write prompts. There is no shortage of advice on roles, examples, delimiters, and output formats. The problem starts after the prompt is handed to real users, connected to tools, or asked to make the same decision hundreds of times.

A prompt that is good enough for a demo can still be under-specified, insecure, impossible to test, or invisible when it starts to drift. Better wording may help, but it does not solve those problems on its own.

The prompt is the smallest part of the problem

We have all inherited systems where the happy path looked convincing while the operational work had been deferred. AI features make that especially easy because a good first response feels like evidence that the hard part is behind us.

It is not. The hard questions are usually these:

  • What is this prompt allowed to decide, and what must remain outside its scope?
  • How will we know when a model update, new input shape, or retrieved document changes its behavior?
  • What happens when it produces an answer that is syntactically valid but operationally wrong?
  • Who can reproduce the failure, inspect the inputs and outputs, and decide whether the prompt, the model, the data, or the surrounding workflow is responsible?

Those are system-design questions. Treating them as an afterthought is how a prompt becomes a production incident that is difficult to explain and even harder to fix.

The useful mental shift is to stop treating the prompt as a clever instruction and start treating it as a component with a contract. It needs a defined purpose, boundaries, inputs, output requirements, tests, versions, and a way to observe its behavior after it ships. That sounds more formal than the usual prompt-engineering conversation, but it is familiar engineering work. We already do it for APIs, schemas, and deployment pipelines because we have learned what happens when we do not.

Three checks worth doing before the next release

I am not suggesting every prompt needs a large governance program. A one-off internal tool and a customer-facing agent do not carry the same risk. But these three checks transfer well across both.

1. Make the boundary explicit. A prompt should have one primary job. If it needs to write documentation, generate tests, and decide a deployment plan in one response, it has competing goals before it has received any input. Split the work, define a handoff, and say what is out of scope. The result is easier to evaluate and easier to debug.

2. Turn expected behavior into examples you can rerun. "The answer looked right" is not a test. Keep representative inputs, expected properties of the answer, and the cases that used to fail. For structured output, validate the schema. For judgment calls, define the criteria a reviewer should use. This will not make model behavior deterministic, but it will make regressions visible rather than anecdotal.

3. Decide what you will watch in production. At minimum, retain enough context to investigate an unexpected result safely: prompt version, model, relevant input shape, output, latency, and the evaluation or user signal that indicates success. Without that trail, a report that "the AI got weird" gives the team nowhere useful to start.

None of this makes an LLM predictable in the traditional sense. It does give the team a way to respond when it is not. That is the distinction I care about.

Why I am calling the book PromptOS

The new cover is a visible milestone, but the name is not a claim that prompts need another framework to memorize. It is a reminder that reliable prompt-driven work needs the same supporting disciplines as any other production capability.

The manuscript is organized around six connected layers: foundations; design patterns; debugging and anti-patterns; system and multi-agent architecture; security; and quality and operations. The 23-document collection is being restructured into a narrative guide because the material is most useful when the layers connect: a handoff design affects what you can test; a security boundary affects what you can observe; a monitoring signal changes how you debug.

You can see the current book overview and cover on the PromptOS page. I also wrote earlier about the failure modes that started this work in PromptOS: A Field Reference for the Failures Nobody Documents.

I would value the production stories

I am especially interested in hearing from engineering leaders and teams operating LLM features outside the demo environment. Which failure took the longest to diagnose? Where did a reasonable prompt become a hard-to-reproduce system problem? Those examples are more useful than another list of fashionable prompt patterns, and they will make the book better.

If this is work your team is wrestling with, use the form below to tell me where the system is breaking down. I would be glad to compare notes.

Want to know more?

Interested in "A Good Prompt Is Not a System"? Leave your details and I'll follow up with more information.

← All articles