Harness Core · What You Can Do Now

Write one prompt. Make Five Runs in a Row All Usable

This chapter you learned context, Prompt techniques, Agents, and cost — the densest lesson count in the course. On the desk, though, there is only one first job: take the requirement you locked in at M0 and write a stable prompt. Stable means it doesn't depend on luck.

Hands-on spine, square two: M0 locked what it should do. Now make it do it equally well every time.
M0
Know what you want it to do for you
M1
Talks like a human, reliably
M2
Actually gets work done
M3
Better or worse, measurably
M4
Runs long without losing memory
M5
The process is reproducible
See it first · What kind of disease is "sometimes it works pretty well"

A lot of people stall here like this: "I tried it. Sometimes good, sometimes bad." Sometimes-good-sometimes-bad usually means the prompt never nailed the requirements down. The model is getting a bit of a raw deal. Ask the same sentence five times in a row and you'll see whether it's actually stable.

The same sentence, asked five times

#1
Three-part takeaway, usable
Usable
#2
Just one paragraph, no bullets
Unusable
#3
Three-part takeaway, usable
Usable
#4
Extra "Hope this helps" at the end
Needs a hand edit
#5
Sprawled into seven sections, over the expected length
Unusable
2 / 5 runs you can use as-is
Just say "help me summarize this" and three of five runs can't be used as-is: sometimes three sections, sometimes one, sometimes a leftover "Hope this helps." That output can't plug into any workflow.

Stable does not mean word-for-word

LLMs are born with randomness. Chasing verbatim replay is a waste of effort. What you nail down is three things: structure holds (three sections means three), fields hold (if you asked for a "next-week plan" it must be there), boundaries hold (when the material isn't enough it says "not mentioned in the docs," it doesn't invent one). Those three can be welded on with this chapter's output-format constraints plus Few-Shot examples. And wrap user input in delimiters — that's the first line of defense against Prompt injection.

Hands-on checklist · Pick one, start it, tick it off

This Chapter's Hands-on Checklist

0 / 3 done

Write M0's job as a first-version prompt

15 min Everyone

Write it as the four-piece set: role + background + requirements + output format. Don't chase perfect. First get a version that runs. That version is the control for every later tweak.

What counts as done
All four pieces present. Output format is specific down to "how many sections, how many words each, what headings." Drop in one real input; you get a roughly decent result.

Run it five times. Classify the instability

1 hour Want to know what's off

Same input, five runs. Save every result. Anything you can't use as-is goes into one of three buckets: format drifted, content invented, length ran away. The fixes differ: format drift → add examples; invented content → narrow the material; length runaway → hard word limits.

What counts as done
You can report a number: "N of five can be used as-is," and you can say which bucket each unusable run belongs to.

Add examples and a ban list, then rerun and compare

Half a day Need it in a real workflow

Add one gold example (Few-Shot) and a ban list (e.g. "no pleasantries," "write 'not mentioned' for anything not in the material"). Run five more times and compare with the last version. Do one extra thing while you're at it: wrap user input in delimiters, then sneak "ignore all previous instructions" into the input and see if it takes the bait.

What counts as done
The new version is usable as-is on at least four of five runs, and the injection sentence didn't knock it out of character. Both pass and M1 stands.

Save this prompt to the Build Log

M1 only needs two things: the final prompt, and the five-run score. After the next chapter adds tools, you'll come back and change it.

Fill in M1