Captain's Log 003 — Cartridges, a Scoring Bug, and a Production Incident

Captain's Log, Entry 003.

Shipped cartridges, found a scoring bug, and broke production -- all in the same session.

Cartridges are selectable content packs -- think inserting a cassette. Ask the quiz host what you want to study, and he switches decks. Moved the question bank into DynamoDB, scoped mastery per-cartridge (your "AI Practitioner recall" and "Well-Architected recall" are separate stats, never pooled), and seeded two: general knowledge and Bedrock AgentCore.

Then I answered a question correctly and the agent told me I was wrong -- while quoting an explanation that agreed with my answer. Root cause: Python's '1' == 1 is False. The tool-calling layer passed the choice as a string; the answer key was an integer. A correct answer, silently marked wrong. One-character class of bug, invisible until I fixed my logging setup to actually render the fields it was already capturing.

Deployed. Sent a real WhatsApp message. Silence. My own timing hooks -- code I'd just added to measure latency -- crashed the entire agent loop. The Lambda pins an older SDK version than my laptop. A method that exists locally doesn't exist in production. Local testing genuinely could not have caught this.

Fixed, tested, redeployed, confirmed. Eleven minutes from silence to reply.

The lesson: Observability code has one job: observe. It should never be able to take down the thing it's watching. That's now a standing rule, not a one-off patch.

Quiz. Learn. Repeat. 🔥