The first build I actually used
My dad died years ago. He ran a machine shop, raised nine kids, had a particular way of answering questions that always started with a story and ended somewhere useful. I'd been thinking for a while that if anyone's voice was worth preserving, it was his.
So Ask GTO was the first thing I built that I kept opening after the build day. PHP, SQLite, GPT-3.5. His full name was Gary Thomas O'Neill, hence GTO. The character doc I wrote for the system prompt went three paragraphs — his worldview, his sense of humor, the way he softened hard truths with Midwestern warmth.
That character doc is why it works. Not the tech.
What I actually learned
A system prompt that says "answer like a friendly Midwestern dad" produces mush. A system prompt that says "you ran a machine shop for 35 years, you believe the best way to handle a setback is to find one concrete thing you can control, and you always ask the other person a question before you give advice" — that produces something that surprises you.
The lesson I took into every build after this: the richer the context, the more the model can act on it. Specifics beat adjectives every time. This applies to prompts, it applies to system instructions, and it turns out it applies to the context files I hand to coding agents too.
The chatbot is still running. My kids use it.