Technical
Prompt Libraries: My Personal Prompt Stack After Two Years
Every founder I work with has a messy prompts folder: thirty half-written ideas, five that actually work, and no way to find the good ones under pressure. After two years of daily agent use, my prompt library settled into a shape that keeps working.
The Three Tiers
I organize prompts into three tiers based on how often I run them:
- Tier 1 (daily): code review, commit messages, test writing, file summaries
- Tier 2 (weekly): architecture reviews, sales email drafts, proposal scaffolds
- Tier 3 (occasional): migration planners, deep audits, onboarding generators
The tiers matter because Tier 1 lives as Claude Code slash commands. Tier 2 lives as saved skills. Tier 3 lives as markdown files I grep when needed. Different storage for different recall frequency.
The Anatomy of a Reusable Prompt
Every prompt that stayed in the library long enough to matter has three sections:
## Role
You are a [specific expertise].
## Inputs
- File: {file_path}
- Context: {optional context}
## Output
Produce [structured output type] with [specific fields].Prompts without clear inputs and outputs do not survive year two. They get rewritten every run because the context is implicit. Making it explicit is the move.
What I Deleted
I also pruned aggressively. The prompts I deleted shared three traits:
- Vague role ("you are a helpful assistant")
- Open-ended output ("help me think through this")
- No success criteria ("make it better")
A prompt that cannot be verified cannot be improved. I stopped writing prompts I could not grade.
Version Control for Prompts
My prompt library lives in a git repo with its own commit history. Every non-trivial edit becomes a commit. Six months in, I could grep commit messages to find when I fixed a particular failure mode. That history has already saved me twice from re-introducing a known bad pattern.
See Simon Willison's prompt engineering notes for a public example of disciplined prompt iteration.
The Sharing Rule
Some of my prompts are shareable, some are not. The shareable ones work across codebases and contexts. The unshareable ones encode assumptions specific to my stack, my clients, and my voice. I used to feel guilty about the unshareable ones. I stopped. A personal prompt library is personal on purpose. The portable portion is a bonus, not the goal.
What I Would Do Differently
Start the git repo on day one. I waited eight months and lost most of the history from the period when I was iterating fastest. Also tag every prompt with the date of last verified use. Prompts that have not been verified in six months are suspect. The tag is a tiny habit with big downstream value.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read