Captain's Log 005 — The Weekend I Closed

Captain's Log, Entry 005.

AmaQuiz is UAT-ready. Not "nearly." Not "extended again." On the day I said.

The engine has worked for weeks. The thing that hadn't was me. My failure mode isn't building, it's closing -- I ship a prototype in a weekend, then chase the next shiny thing instead of finishing the boring 80%. This session was about naming that and beating it.

What shipped

A real v1 on Telegram, dogfooded on my own phone: markdown that renders properly (converted to Telegram's HTML subset, not raw asterisks), two reset tools (clear my progress, clear our chat -- both consent-gated), a fix for a repeat-question bug, and a small "school sample" cartridge so a second person can walk the whole flow.

What I learned

Two things, both the hard way.

"Deployed" is not "works." I verified the deploy at the artifact layer -- the code is in the bundle, the data is in the table -- and it looked done. Then I messaged the bot as a real user and found three genuine bugs the artifacts could never show. The dry run as a human is the only test that counts.

Test the real path, not a proxy. I twice called a mid-turn deletion "cosmetic residue" and moved on. Then the live two-message path proved it was tearing the session apart. One clear-call looked fine; a clear followed by a message crashed. The bug lived in the seam between two steps, exactly where a single-step test can't reach.

The pattern I caught

Three times this session I reached for a new feature mid-close -- a daily nudge, Strands SOPs, an adaptive scheduler. Each time it wore the costume of good engineering. Each time I named it, wrote it on the backlog, and went back to finishing. That is the muscle. Capturing an idea is closing. Chasing it is the trap.

A tinker with no user is a hobby. A tinker with one real user is an engineer.

I have a user now. My wife is testing it tomorrow.

Quiz. Learn. Repeat. -- and this time, I closed.