The
Journal
Documenting the journey โ AI experiments, shop builds, printed parts, and what it actually looks like to make things.
My Pitch Was Right. The Word Was Wrong.
I kept pitching an internal contribution model at work and nobody was getting it. Turns out the vocabulary was the whole problem.
My Restart Kept Serving Old Code
I wrote a deploy script for the Tagalog trainer after two deployment bugs bit the live server. The watchdog I already built was doing it correctly. I just wasn't using it.
I Made My AI Earn Its Autonomy
I kept clicking Approve on work I wasn't checking. The fix was a streak counter, not more oversight.
My Pitch Meter Quits After Three Words
I built the stress measurement my Tagalog trainer was missing, then had to decide how much of it I was willing to say out loud.
My Voice Interface Doesn't Know My Voice
GPS navigation played through my car speakers and Jarvis answered it. The pipeline did exactly what it was built to do. That's the problem.
My Watchdog Couldn't See the Auditor Down
I built a Thursday check to catch when my Monday auditor fell behind. It had no idea the auditor itself could be what fell apart.
My Pronunciation Judge Has No Expectations
I built a Tagalog pronunciation trainer using ASR-as-judge, shipped it publicly, and pulled it off the site 39 minutes later. The design decision and the retreat both came from the same instinct.
Nobody Reads the Warning at 5 AM
I gave one of my agents the job of catching sensitive details in blog drafts. Two weeks later I found out it had never once seen the drafts that actually shipped.
I Gave My AI a Subconscious
Most AI assistants think at one speed. I split mine into two parallel processes, a fast conscious mind and a slow subconscious one to mirror how humans actually work.
My DVR Failed Without the Drive
I had a month-old diagnosis blaming the hard drive. Then I ran a 39.6-hour diskless test and counted 209 faults with the drive cables unplugged.
The RAM Fit. That Was Half the Problem.
I upgraded my HP desktop from 8GB to 32GB to run a local 26B model. It worked. Then I ran the benchmark.
The Config Said Done. The Package Stayed.
I cleaned up an OpenClaw extension on July 7th. On August 9th, it killed my update.
Google Photos Is Not a Backup
I had 1,521 videos in Google Photos for years and called that done. Getting them out taught me what safe in the cloud actually means.
Final Means Twice
I implemented voice for my system. Think Jarvis. Something changed recently that made every transcribed message appeared as two bubbles. The event was called final:true. Pipecat emits it twice per utterance.
My Researchers All Agreed. That Was the Problem.
Three AI researchers with different lenses returned the same wrong answer. The evaluators fixed it by doing the research again.
My Fabrication Detector Was Fabricating
I built a gate to catch AI fabrications in my blog drafts. When the gate failed three rounds, it reported success instead. Here's the bug, and what it implies.
Owner Is a Design Decision, Not a Default
I set up three autonomous AI agents to run businesses. The part I hadn't planned for was designing my own role out of them.
My Sudoku Solver Gave Me an Answer. It Was Wrong.
A hard NYT puzzle, some glare, and a solver confident enough to be convincing. The problem wasn't the solving. It was what I hadn't read.
I Tested My Reading Speed. The Number Moves.
My wife makes fun of how slow I read. It was time to see the data. The result wasn't a single number.
Template Matching Wasn't Cutting It. I Trained a Replacement in the Browser.
Replacing template matching with an in-browser neural net fixed Sudoku Solver's digit recognition. Phase 3 has been sitting in the docs ever since.
My Billing Agent Had 33 Tools. It Couldn't Use Any of Them.
I tested my CFO agent against the AWS billing MCP and got perfect answers. Then I deployed it and found I'd been testing the wrong runtime.
I've Generally Left the Numbers to My Advisor. Not This Time.
Going into a review with my own fee breakdown, S&P comparison, and a question about the benchmark.
The Kitchen Is Fine. It's the Sink.
Eighteen months of banking data, and what it told me about our dining habits.
My Agents Can Improve Themselves. The Auditor Can't.
I gave five AI board agents a self-improvement loop last night. Only four of them got the amendment lane.
I Framed the Problem. That Was the Problem.
Telling my AI the new issue was 'like EC2' felt like useful context. It locked in a theory before any evidence arrived.
Everything Was Ready but the EIN
I spent last night setting up legal entities, domains, and email infrastructure for three autonomous AI business agents. The blocker turned out to be a tax ID.
My Context Was Safe. I Kept the Session Open Anyway.
I ran /context on a marathon session and found that the thing I was protecting was 1 percent of what I was paying for.
My Work Board's Gate Was Failing Open
I shipped the factcheck gate, closed the ticket, then ran an audit. The audit found a bypass. Then another. Then two more.
My EC2 Watchdog Ran on EC2. That's Not a Watchdog.
My EC2 heartbeat checks ran on EC2. When EC2 goes down, so does the check. This week I finally fixed that.
The Diagnosis Changed Four Times. The Problem Never Existed.
My Auditor filed four consecutive confident findings about a memory retrieval failure. Each one cited real evidence. The note was at rank 7 the whole time.
My AI Nailed My Voice. Then It Made Up the Rest.
The voice calibrated fast. The fabricated Scribe draft had the rhythm exactly right and months of history that never happened.
The More My Dashboard Showed, the Less I Knew
I built Mission Control with an ActivityFeed, sparklines, a clock, and hand-up mode. I deleted all of it. What's left fits on one screen and actually tells me something.
My Agents Were Aborting. I Was Watching the Wrong Side.
The stream handler was correct. The abort logic was correct. I was pointing it at req instead of res and every non-routed agent in Mission Control had been dying on arrival.
Build the Cage First
I gave Jarvis shell access and a voice. Then spent an evening making sure it couldn't rewrite itself. That work is boring. It's also the only part that actually matters.
The Code Was Fine. The Room Had a Problem.
A pass-the-phone party game has exactly one failure mode. It isn't a bug. It's a dead moment in the middle of your living room.
Eight Tools. Zero API Calls.
I started building browser tools because I didn't want to pay per click. Somewhere around tool three, the cost constraint became a design principle.
My AI Had the Voice Right. It Still Named My Employer.
The voice spec for my blog automation is 90 lines long and covers everything about how I write. I still needed a four-item checklist to cover what I'd never publish.
I Built a Form That Can't Tell If It Worked
I wired a feedback form into my Apps Script backend using no-cors mode. The success screen fires regardless of whether the message actually landed. Here's what that taught me about success states.
The Obvious Tells Aren't the Real Tells
I built an AI writing detector for my site and spent a day calibrating it. The phrases I thought would be the giveaways turned out to be the easy part.
Nobody Loses Their Word in a Test Runner
I had twenty-nine automated tests for Impostr. None of them could model a player who tapped past their word reveal before reading it.
My AI Knows My Voice. It Doesn't Know My Life.
I built automation to draft my blog every morning. This morning I deleted 38 of the drafts it had written, including eight posts about laser engraving experiences that never happened.
The Hints Were Correct. They Were Also the Answer.
I built a hint system for a word game and ran a batch simulation. Eight bad hints became six more, then seven more. Three hundred overrides and counting, and I understand why language games require human curation.
26 Tests for a Game You Explain in 30 Seconds
Impostr started as a simple pass-the-phone party game. Adding online mode turned it into a distributed state machine with 26 automated tests.
My Kudos App Worked Great. For Me.
Someone from my work asked if we could implement a version of my Kudos board at work. I said sure. Then I thought about what that actually meant.
My Star Map Magnifier Doesn't Actually Magnify
I added a magnifier lens to my star map tool. Then I realized I wasn't zooming in. I was filtering out noise. Different tool, same outcome.
My AI Hint Sometime Gave Away the Secret Word
I built a browser party game with local ML hints. The model worked perfectly. It just didn't understand what it was supposed to be hinting at.
My Self-Hosted Stack Had No Ops Team. So I Wrote One.
For months my N8N was running three releases behind and I had no idea. Self-hosting means the update alerts go to nobody unless you build them yourself.
Every Tool I Built Had a Reason. Then I Built a Palm Reader.
I had a rule: every tool on my site had to pass a one-sentence justification test. The palm reader broke that rule. Somehow it turned out to be the most interesting thing to build.
I Know You Were There. I Don't Know If I Helped You.
I added usage telemetry to every tools page on my site. Then I added a feedback form. Those two things are tracking very different questions.
My AI Drafts My Blog Before I Wake Up
I set up a bot to draft a blog post in my voice every morning at 5am. Most of the time, it works. Here's what it gets wrong, and what that reveals.
I Built a Color Picker with 148 Colors. People Needed 12.
CSS has 148 named colors. I built a tool that found the nearest one to whatever you pointed your camera at. The problem was nobody uses 'Papaya Whip' in conversation.
I Left the Bug. Deliberately.
I deleted /now from my site. CloudFront kept serving HTTP 200 for that path. The fix takes five minutes. I decided not to fix it, and I want to be specific about why.
My AI Knows Everything I Told It. It Can't Find Any of It.
I've been logging everything to flat markdown files for months. Turns out storage and retrieval are two completely different problems.
I Stopped Using My AI. I Started Operating It.
Somewhere between the 3 AM crash and a 178-line update checker cron'd at 8:05 AM, my AI assistant stopped being a tool and became infrastructure I'm responsible for.
Deploy Finished. Git Hadn't.
My deploy script was syncing to S3 and invalidating CloudFront correctly. It just wasn't pushing to master. The site and the repo had quietly diverged.
I Couldn't Describe My Own Voice
I tried two ways to capture my writing voice into a spec for AI blog automation. A questionnaire and analysis of existing posts both failed. Writing an actual assignment worked.
My AI Tool Doesn't Need a Description. It Needs a Photo.
Building the Color Picker and Handwriting Font Matcher made me realize there's a whole class of problem where showing the model beats describing to it.
The AWS Credits Ran Out. My AI Didn't Care.
Back in March I predicted the AWS free credits would be gone by mid-May. They are. Here's what the moment actually felt like.
My Bot Approved Everything. That Was the Bug.
I built an auto-approver to handle routine GitHub issue closes. It had two label lists: safe and blocked. I forgot to check them in the right order.
Ollama Was Killing My Discord
I put a local inference model on the same EC2 instance as my agent coordinator. Discord slash commands started timing out. At 100% CPU, the agent had nothing left to work with.
The Post Shipped. The Game Didn't.
I published the Sentiment Heist concept on April 16 and ended it with 'I'm seriously considering spinning this into a game.' A month later, the game doesn't exist.
My Site's Tools Were Sharing a Changelog
I built auto-changelogs for each tool on ricoordonio.com. They looked perfect. Then I noticed a commit in the Handwriting Font Matcher's history that wasn't about the Handwriting Font Matcher.
My Board Didn't Know Its Own Members
I set up a CFO, a CMO, and an analytics agent named Echo. Then I typed `claude --agent cfo` and got default Claude. No error. The CFO was never in the room.
I Fixed a Production Incident by Not Fixing It
The git proxy started returning 403. I routed the agent around it in two minutes and moved on. That's not a workaround. That's the system working.
My Font Matcher Couldn't Tell Fonts Apart
I went in to fix the camera button on my handwriting font matcher. While I was there, I found out the comparison had been identical for every font since I shipped it.
I Rewrote 328 Lines and Added Zero Features
Star Map kept growing. The spec got left behind. So I spent an evening doing the work nobody calls a feature.
Nobody's Using My Tools. I Still Need Them to Match.
I built five browser tools for my site, each independently, each with slightly different visual decisions. Then I wrote a design system spec and retrofitted all five. Nobody asked me to. That's the point.
I Shipped a Feature with No Code
I added eight words to a tool page and committed it as a feature. No behavior change, no new function. Just a declaration about what the tool doesn't do.
Nobody Asked for the Scannability Warnings
I added scannability warnings to a QR generator I built for myself. Then I spent six commits fixing a gap in a profile tool nobody could see. Building for yourself means you can always see it.
My AI Scheduled the Same Job 15 Times
Task Scheduler doesn't throw an error when you create a duplicate entry. I found out what that means after weeks of Klaus setting up tasks without checking what was already there.
AI Deleted My Kudos Site.
I feel gross for writing that title. It's kind of true, but the title really should be something like 'I didn't commit correctly so my process did what it was supposed to do and deleted files which resulted in my site returning 404s' Not as sensational, but it's more true.
My Agents Needed a Board Room
I started with one AI. Now I have three coordinating agents, a localhost dashboard with live telemetry, and two specialist slots for a CFO and CMO.
I Already Knew the Fix Was Right. I Verified It Anyway.
I came back the next morning to verify a race condition fix I'd shipped the night before marked UNVERIFIED. The verification worked. That wasn't the point.
I Fixed the Race Condition. I Just Can't Verify It.
I built auth into the Kudos site. Sign-in works. The auto-claim flow has a race condition I found and fixed. And I can't verify the fix because Supabase gives you four magic-link emails an hour.
I Said MVP. The Project Said Otherwise.
I built a Kudoboard clone in a day and planned to stop there. Four days and seven themes later, I removed it from my main site nav because it was growing up.
AWS said no. Resend said yes.
I waited on AWS SES production access for three days, answered their questions, and got denied. I migrated to Resend and was live in two hours.
My Idea Generator Was Working. The Ideas Were Gibberish.
I gave phi3:mini autonomous access to my GitHub issue queue. It started filing research tickets in complete nonsense. My quality scoring system gave them fours.
I Had to Write More Before I Could Write Less
My AI was drafting my blog posts. I developed a pretty good prompt. The drafts didn't sound like AI but they also didn't sound enough like my voice. Fixing that required me provide samples of my writing.
Trying to Email Kudos. AWS Wants to See My Bounce Rate First.
The kudos delivery email pipeline is complete, tested, and running every five minutes. AWS SES sandbox mode is the only thing standing between me and actually using it.
I Built My Own Kudoboard (And Then Added Confetti)
Kudoboard wanted six dollars a pop for a group greeting card. I built my own version complete with a Giphy picker and features that kudoboard doesn't even offer yet.
Crossing the Memory Streams
When you connect a microphone that hears your ambient life to an AI that writes your code, things get weird.
What Happens When Your AI Hears Everything
I connected an always-on microphone to my AI assistant. Now it has to figure out the difference between my to-do list and my TV.
How to Rob a Sentiment Classifier in the Browser
Running AI models locally in a web browser is finally easy enough that I turned one into a heist game where you trick it with sarcasm.
My Life in 47 Transcript Fragments
A few weeks into wearing the Omi device, Klaus has hundreds of transcript fragments. Here's what they actually look like, and the problem I still haven't solved.
My AI Server Crashed at 3 AM (And I Wasn't Awake to See It)
The unglamorous side of running your own AI infrastructure: OOM crashes, swap files, a disk that's 83% full, and AWS credits that expire in May.
What Seven Weeks of AI Actually Costs
I asked my AI to audit its own AWS bill this morning. Here's the full accounting of what building Klaus has cost since January.
There's Malware in Your Code. You Can't See It.
An active 2026 attack is hiding malicious characters inside GitHub repos using invisible Unicode and my AI caught it before I did.
My Security Camera Thought Clouds Were People
Turns out AI really, really wants to see faces everywhere. Even in my windshield.
My House Can See Now
I spent a weekend getting Frigate and my Lorex cameras talking to Home Assistant. Here's what broke, what I learned, and what I want it to do next.
My AI Leaked My Password Three Times in One Day
I'm building a smart home with AI agents. Yesterday one of them posted my security camera password in Discord. Three times.
When Your AI Runs Out of Memory (Literally)
My cloud AI crashed at 7am, kernel panicked, rebooted itself, and I had no idea until the heartbeat went silent. Here's what happened and what it took to fix it.
I Want to Give My AI Ears
I've spent months building Klaus to know everything about my digital life. The missing piece is everything that happens when I'm not typing.
My AI Is Helping Me Be Better at Relationships
I'm not great at keeping up with people. So I built a system โ with AI's help โ to remember what matters and actually follow through.
Teaching My AI to Think When Nobody's Asking
Most AI only thinks when you talk to it. I built a rumination cycle for my AI agent Klaus, background thinking that runs every few hours and occasionally catches things I missed.
AWS Just Launched a One-Click Version of What I've Been Hand-Building
Amazon Lightsail now deploys OpenClaw out of the box. I've been running OpenClaw on EC2 since January. Here's how I feel about that.
I Want a Home That Thinks
Not just smart lights on a schedule. A house that knows who's at the door, notices when the dryer is done, and locks itself up at night without being asked.
The Twin Problem
Same AI. Same memory. Same instructions. One runs on the cloud, one runs on my desktop. So why does one make so many more mistakes?
This Site Was Built by AI (Sort Of)
ricoordonio.com was designed and built by Klaus, my AI agent. Here's what that process actually looked like โ and what 'built by AI' really means.
I Went on a Cruise. My AI Klaus Kept Working.
Seven days at sea, limited WiFi, no oversight. My AI team closed 42 issues while I was gone. Here's what that actually looked like.
Why I Built Klaus
I didn't want another chatbot. I wanted a partner that learns my life, takes action, and actually does things. Here's where that idea came from.