rickleberry builds

What I Built This Week

2026-08-09

Busy week — 31 projects touched, 70 commits, and a theme that kept surfacing across unrelated work: consolidation. Scattered repos got folded in, standalone tools got absorbed, and a few things that had been drifting finally got a home. The headline was a brand-new probe tool built from scratch in roughly two days that's already live and health-checked.

32
Claude sessions
70
git commits
129
files created
67
steers
31
projects
What got built this week

ucp-probe: a migration scanner born out of a deadline

A commerce platform I track is sunsetting a legacy cart endpoint on August 31st. Merchants using the old integration have to move to a newer protocol, and the gap between the two isn't trivial. So I built a probe tool: point it at a storefront's agent profile URL, it fetches and validates the JSON against the official schemas, diffs the old endpoint's capabilities against the new one, and spits out a migration report. The whole thing went from a scaffolded repo to a deployed, always-on health monitor in a single day — 17 commits, over 7,000 lines inserted.

The design decision I'm most satisfied with: a shared retrying HTTP helper that both the profile fetcher and the batch survey mode use. I'd written two slightly different retry loops in early commits and caught it on a refactor pass. The batch mode is the more interesting feature — feed it a list of storefronts, it surveys all of them and produces a ranked report. I also added a public money ledger to the repo (domain registration: $12.20) because I want to run this as a small paid utility and I'd rather be honest about costs from day one. Currently live, health-checked on a schedule, draft demand-test post sitting in docs ready to publish.

poople-bot + the Discord activity rabbit hole

A group chat I'm in plays a daily word-ladder game together — start at one word, reach the target in as few steps as possible, each step changing one letter. Someone asked if we could run it directly inside our Discord server instead of jumping to a browser. That turned into a two-part session: first, figure out how to add a bot to the server (I have admin controls, that part was quick), then figure out how to scrape the daily puzzle so the bot can serve it without depending on the external site staying up.

The scraper and the game engine are both done — the ladder solver, puzzle extractor, and a full test suite landed in a single 2,000-line commit. Where it stalled: turning this into a proper Discord Activity (the embedded mini-game experience) requires permissions from the server owner, who I haven't been able to reach yet. So the engine exists, the puzzle data is portable, and it's waiting on a human bottleneck. Classic.

gif-forge: 284 more templates and a thumbnail picker

The GIF-making tool got a meaningful content update this week — two new template catalogs landed, including shelves for NBA and gaming content, bringing the total library up by 284 templates. More interesting than the count was fixing a layout bug that had been lurking: on phones, panel captions were overlapping because the layout engine was ignoring a max_height_pct parameter. One-line fix, but it was the kind of thing that makes the tool feel broken on the device where most people would actually use it.

The bigger UX shift was adding a visual-first thumbnail picker. Previously you were choosing templates by name or category; now there's a style panel that shows you previews. This was driven by the observation that nobody browses a GIF template library by reading — you scan thumbnails until something clicks. The site is live.

dive-channel: clearing the backlog and fixing the upload guard

The scuba content channel had 41 shorts in a pending queue that needed to be reviewed for duplicates before scheduling. Wrote a check_dupes.py guard, ran it against the backlog, shipped 13 that passed, and filled the drip calendar out to mid-September. Also fixed a bug that had been letting landscape-oriented videos slip through the Shorts upload pipeline — Shorts are supposed to be vertical, and landscape uploads just fail silently on the platform side, so the fix was a format check before the upload even attempts.

There was also a longer strategy session this week about whether to consolidate the channel's identity and rename it — removing a family name from the branding. That's still being worked out, but the operational side (content scheduled, upload guards in place) is in good shape regardless of what the channel ends up being called.

Commits per day

The spike on August 7th is obvious — that's when ucp-probe went from zero to functional, and it pulled channel-agent, video-essays, studio-commerce, and the big estate consolidation along with it. August 8th kept the momentum with the deploy, the health monitor, and the agent-audit model attribution work. Earlier in the week (the 3rd through 5th) was more scattered: gif-forge updates, the Discord game engine, a sandboxed local-model lab that landed quietly. The rhythm this week was two slow days of smaller tasks, then a hard two-day run.

Where the commits went

Most of the commit volume is ucp-probe, which makes the donut a little misleading — that project is genuinely a different category of intensity than everything else this week. The honest version is: one focused build dominated, and 30 other projects got maintenance, consolidation, or a single meaningful push. The repo-folding work doesn't show up dramatically in any single project's slice, but it touched a lot of files across the estate.

I keep starting Discord bots and hitting permission walls — at some point that's on me for not sorting the access question first. Next week: publish the ucp-probe demand test and find out if anyone actually wants to pay for migration tooling before August 31st.

rickleberry


Auto-assembled by rickleberry from one week of Claude Code sessions, git history, and file activity.
Built with AI, curated by a human.