Type something to search...

Anatomy of a naive prompt library

A guided tour of my August 2025 prompt library — the filing system, the folk wisdom, and the one commit that pointed at everything after.

Anatomy of a naive prompt library

Kickoff

My 2025 prompt library had a filing system a Victorian clerk would have admired, in service of a legal code no court would recognize.

001-Central-Context.md. 200-Standards-Context.md. A numbered tree of Markdown files, each importing the next through a hand-maintained manifest, wired into every AI session so it opened with the full weight of my worldview before a single question got asked. I was very proud of it. Filing systems will do that to a person.

llm-prompts — August 2025
tree Context

├── 001-Central-Context.md

├── 002-System-Context.md

├── 003-Communication-Context.md

├── 004-Optimising-Context.md

├── 005-Diagnostics-Context.md

├── 010-Designing-Context.md

├── 011-Manually-Context.md

├── 020-Planning-Context.md

├── … 030, 040, 100, 101 …

├── 200-Standards-Context.md

└── 201-Markdown-Context.md

organised desperation, lovingly maintained

Last post I showed you the shouting. This week: the archive it came from. The library wasn’t lazy work. It was diligent work, pointed in the wrong direction — and diligence pointed the wrong way is the most expensive kind there is.

The Run

The exhibits

Exhibit A: persona priming. “Act as my expert assistant… Senior developer, pair programming… Skills: Node.js, TypeScript, macOS.” I told the model it was senior. I never told it what senior meant. I believed the sentence anyway.

Exhibit B: token thrift as a craft. I documented — as findings — that replacing bullet points with numbered lists saved tokens. That ≠ was cheaper than “doesn’t equal”. That “TBD” beat spelling things out. Findings, I called them. I was optimising pennies of tokens while burning evenings of my time to file the receipts.

llm-prompts/Context/004-Optimising-Context.md — documented as findings
  • Replace verbose bullet points with concise numbered lists
  • Use abbreviations: “TBD” instead of “To be determined”
  • Use symbols like ≠ instead of “doesn’t equal”
optimising pennies of tokens, spending evenings of time

Exhibit C: my machine, hard-coded. Absolute paths to my laptop’s folders sat inside the prompts themselves. The library couldn’t have survived contact with a second computer, never mind a second person. Not a system. A diary that happened to be executable, and only on one laptop.

It sort of worked. That’s the problem.

And here’s the thing every team lead should sit with: it sort of worked. Enough to keep me maintaining it. Organising your inputs feels like controlling your outcomes — the filing system is real, the numbering is real, the discipline is real. But nothing in that tree could tell me whether any of it made a difference.

Two hundred numbered files. Zero measurements. A very well-organised absence of evidence.

Which makes the last commit on that branch, 29 August 2025, the most important one: “wip: initial attempt at evals from model.” A little Python scaffold appeared — an attempt to score my contexts instead of polishing them. It went nowhere, that month. But it was the first time I asked the question that eventually replaced the whole library: not “how do I phrase this better?” but “how would I know?“

llm-prompts (branch: sausges)
git log —oneline —date=shortc35feaewip: initial attempt at evals from model

e2f734e wip: some tweaks to the context and loading

9fa5e9f wip: much markdown formatting, a few extra prompt rules

39d014d wip: formatting markdown and standards intro

f1e0526 wip: some updates from work laptop

7111ff1 wip: fixes for downloaded music idea

c9db8e9 wip: still working through basic workflows

186fcba Initial commit

the last commit on the branch points at everything that came after

The Debrief

Audit your prompt estate with four questions:

On The Training Ground

The Library Audit. This one hurts, in a useful way: in about an hour you’ll find out how much of your prompt library actually does anything — with a blind test, not a feeling.

Info

You’ll need: your existing prompt library or context files (CLAUDE.md, system prompts, the folder of “good prompts” — whatever you’ve accumulated), an agentic CLI or chat tool, and three real tasks you do regularly.

Pick three regulars5 min

Choose three tasks you genuinely run every week with your library loaded — a code review, a summary format, a refactor pattern. Write each as one plain-language sentence of what you want, before you look at any of your prompts:

Review this function for bugs and tell me the three most important problems.

That sentence is the control condition. Resist the urge to polish it.

Run the pairs25 min

For each task, two fresh sessions on the same input:

  • Session A — your full library, exactly as you normally load it.
  • Session B — nothing but the one-sentence ask.

Save all six outputs to files as you go (a1.md, b1.md, a2.md …). Fresh sessions matter: no shared history, no contamination.

Judge blind15 min

Don’t judge your own children. Open one more fresh session and paste each pair without saying which is which:

Here are two reviews of the same code. Which is more useful, and what
specifically does the better one contain that the other lacks? Quote the
exact sentences that make the difference.

The “quote the exact sentences” part is the trick — it forces the judgement down from vibes to evidence.

Trace the wins backwards10 min

For every difference the judge quoted, find the line in your library that caused it. That line earns its place. Now look at everything the judge never mentioned — the persona priming, the tone instructions, the token-thrift folklore — and ask what evidence you have that any of it does anything.

Delete accordingly5 min

Keep the lines with receipts. Archive the rest — don’t delete, archive, so the fear of losing something has nowhere to hide. Most libraries shrink by more than half. Nothing gets worse.

Tip

What you just proved: organising prompts and engineering context are different activities — and the difference is measurable on your own work in an afternoon. If you’re advanced, the transferable bit is the blind-judge protocol: it turns any “my prompt is better” debate into a five-minute experiment.

I should say, for the record: I am not a professional filing clerk, Victorian or otherwise. The closest I’ve come is alphabetising my own record collection, twice, and I have never once measured whether that made me a better DJ. It might be the exact same mistake, in a different folder.

You don’t need to fix all four at once. But the team that can answer “how would we know?” is six months ahead of the team with the prettiest prompt library.