FunnyEnough — engineering notes
Notes on building with AI — the patterns that held up, and the ones that bit me.
-
How I Gamify AI Collaboration Without Trusting the Score
A recurring 1–10 self-score turned vague frustration into a review loop. The score is disposable; the evidence, correction and receipts do the work.
-
AI-generated UI has tells your design system won’t fix
Design tokens kill purple gradients, not the AI feel. Surviving tells are structural: five laws, a deletion-first rule, and what still fails after they pass.
-
Promote your second coding agent from critic to builder
A rival vendor’s CLI agent reviewed my diffs for six weeks. Then it built six PRs in a day – under a judge, a brief, and one rule about where findings go.
-
The Draper Protocol
Two lonely ship computers, a blanket with negotiable seams, and the price of one clean history. Fiction, with a decoder ring at the end.
-
The price of one clean history: a Phase-1 note
Two proved toy results, one killed bound, one conjecture with named gaps — the formal development behind The Draper Protocol story. Nothing on faith.
-
Your agent says the tests passed. It didn’t run them.
Coding agents say “tests pass” after only reading the assertions. A short rules-file contract forces real output, or an honest “NOT RUN”, before anything ships.
-
The First Plausible Answer Is Already a Design Decision
AI is brilliant at removing friction. Some friction is where judgement forms. A field guide, from William James to the Zhuangzi, to what is worth keeping human.
-
I Fixed My Agent’s Guardrails. The Fixes Had Holes Too.
An audit found the holes in my agent’s guardrails. Fixing them was harder: every patch was another claim I had to prove against the running system.
-
I Audited My Most-Governed Project and Found a Deny-List With Holes
Every project rule is either a gate that fails the build or a sentence that hopes you comply. One question separates them, and I learned it the hard way.
-
Receipts for Prompts: Hashing the Bytes an Agent Reads
A hash-verified copy box still handed back a curly quote where a code fence should be. The wptexturize bug behind it, and the byte-receipt system that stops it.