Tools

Things I built in the last eighteen months, most of them with Claude Code. Each one says what it is and why it exists. Open the fold for how it was built and what went wrong.

Cards drafted with Claude from my repos, build notes and session recaps, then edited by me.

Civic

Notes From the Back Row

Live

A live, plain-English play-by-play of a county planning hearing, so neighbors can follow without sitting through four hours of video.

Big votes happen late at night on a feed few people watch. I wanted neighbors to see what was said while it was said.

Live notes page from the Chesterfield Planning Commission, Oct. 20, 2026
How it was built and what went wrong
The problem it solves

No more waiting days for minutes. Anyone with the link got easy-to-read, timestamped notes, right up to the 5-0 vote to delay.

How it was built

In one evening with Claude Code. I was sitting in the meeting room, and 30 minutes in I wanted to follow the questions behind the questions. My laptop pulled the county livestream, faster-whisper in Python transcribed it in 30-second clips, and a Claude artifact page updated all night.

Mistakes and lessons

YouTube blocked the cloud server as a bot, so the fix was my own laptop on a phone hotspot. Notes ran three minutes behind until I asked for 30-second clips, and went dark for four minutes when the laptop slept. Lessons: run caffeinate to keep the machine awake, keep the public feed apart from my private coaching, and let a friend proofread live (one caught a bug).

Other uses

School board meetings, city council sessions, court hearings, shareholder meetings, emergency briefings in other languages, any long public meeting most people can’t sit through.

Two Clicks to City Hall

Live

A one-page kit that turns “I should say something” into a ready email to the county Planning Commission.

I wanted a way to help my neighbors offer public comment, but have it come from their email address instead of those generic form letters that have the same sender.

Bon Air Speaks Up action page
How it was built and what went wrong
The problem it solves

Neighbors got a countdown, three clear asks, and plain notes they could edit and send with a link that opens their email client.

How it was built

Overnight, Oct. 18 to 19, 2026, with Claude Code: plain HTML on a Cloudflare Worker, a QR flyer made in Python, and automated accessibility tests in light and dark at phone and desktop widths.

Mistakes and lessons

The brand-new domain was taking a few extra minutes to resolve through Cloudflare and my laptop, so the tests pointed the browser at it by hand. The tests caught two real bugs: text spilling over at 200% zoom and buttons a screen reader could not read. Lesson: under a deadline, plain HTML plus automated checks wins.

Other uses

School board meetings, homeowner associations, comment periods on state and federal rules, zoning hearings on any side of a question, any deadline where the barrier is a blank page.

Data and sites

The Traffic Tax

Live

A price tag on traffic, shown for your own front door. It tells you how many jobs you lose every rush hour just because the roads are full.

Traffic is a tax nobody votes on and nobody sees on a bill. Mercatus measured it for the whole country in its Commuter Market Access dataset. I saw it on X and wanted to test whether a Claude project could turn it into a usable data product for the Richmond region.

Richmond Rush-Hour Reach map
How it was built and what went wrong
The problem it solves

We argue about roads, zoning and transit in the abstract. This turns “congestion” into a number you can feel: the jobs you can’t reach from your street.

How it was built

In about a day with Claude Code: Mercatus commuter data and 2023 Census job counts for 353 Richmond neighborhoods, one D3 web page for the map, and OpenStreetMap for address search.

Mistakes and lessons

The build workspace could not reach the address-search service, so I tested it against stand-ins. Lesson: when you can’t test the real thing, fake it on purpose and say so.

Other uses

Wage bargaining, home listings, remote-work policy, parole job conditions, bridge-closure planning, any public dataset made personal by street address.

A 1987 Mac for 2026 Robots

Live

I wanted to redo my personal site, where I cos-play as a “dev.” It’s dressed as a black-and-white 1987 Macintosh, built so AI agents can read it as easily as people.

The first version drew text with code at pixel positions, so machines saw nothing. The is-agentic.com agent-readiness check scored it 4 out of 100.

cmm.dev styled as a 1987 Macintosh desktop
How it was built and what went wrong
The problem it solves

Every word is now plain HTML that works with JavaScript off, plus a summary file for AI. The is-agentic.com score went to 100.

How it was built

Vite and TypeScript on a Cloudflare Worker with Claude Code, March to October 2026. It also holds my data viz shelf.

Mistakes and lessons

A Cloudflare bot blocker was turning away every agent; switching it off alone moved the score from 5 to 93. A rescan showed an old cached score until I waited. A design review caught four overlapping-window bugs the build missed. Lesson: check what the robots actually see.

Other uses

City services pages, library catalogs, job postings, restaurant menus, product pages.

Mapping the First Mile

Live

The site for a GRC readiness practice, with a map of 89 firms that serve defense contractors, and the gap where small suppliers fall through.

Small defense suppliers must pass a cybersecurity audit, and almost nobody helps them before the assessor arrives. The map made that gap visible.

Eagle Ridge CMMC market map
How it was built and what went wrong
The problem it solves

A small contractor sees the whole market on one screen, in 13 categories, with sources.

How it was built

Astro on Cloudflare with Claude Code, rebuilt in one session in June 2026 to Lighthouse scores of 99 to 100. The practice wound down in September 2026.

Mistakes and lessons

One deploy said “Active” but served 404s on every page, so now I check the live site after each deploy. Moving the domain cost ten minutes of downtime until I removed old records first. An early entry misstated a competitor’s prices; I fixed it after publishing. Lesson: a push is not a deploy.

Other uses

Legal aid gaps, childcare deserts, rural health services, startup ecosystems, any market a newcomer can’t see.

Agents and evals

Grading the Robot Assessor

Open source

A 36-question exam that tests whether AI models can think like a CMMC assessor, graded on 1,027 points.

Contractors are starting to use AI for compliance paperwork, but no public test checked the judgment calls assessors make. The closest one only matched keywords.

Heatmap of nine AI models scored across 36 CMMC assessor tasks
How it was built and what went wrong
The problem it solves

Picking a model stops being guesswork. Of nine models, the top scored 90%, and one costing less than 1% of the priciest Claude run scored 80%.

How it was built

Python scripts build the tasks from anonymized case files, and Artificial Analysis Optima runs and grades them. Drafted in September, run Oct. 15, 2026.

Mistakes and lessons

My first tasks leaked their own answers, so I wrote drafting rules. The September files sat in a scratch folder that got wiped; I rebuilt them from the session log and matched the old numbers. Lesson: test the test, and keep work in a repo from day one.

Other uses

Auditor hiring screens, paralegal AI checks, insurance underwriting, grant review, procurement model picks.

Gilfoyle, The Grumpy Reviewer

Open source

Gilfoyle is a smart, and rude, code reviewer with a dry wit that explains, in sardonic detail, how meager the generated code is.

LLMs, by their design, can still struggle with deterministic code. Many AI reviewers are still sycophantic (though getting less so) and can exaggerate problems. I wanted one that says “ship it” when a change is clean. It began as a 2025 joke post about the Silicon Valley character.

Gilfoyle repository on GitHub
How it was built and what went wrong
The problem it solves

Before a push, one command answers ship or fix, and every piece of evidence is checked against the real files.

How it was built

Python and Claude Code. Each review makes two passes, spec then quality, and looks through only the lenses that apply: correctness, security, performance, simplicity, architecture, UX and testing. Almost like a mixture of experts. One source file builds versions for Claude Code, Codex, Cursor and Hermes. Rewritten in June 2026, 1.0 shipped Sept. 9. 29 GitHub stars so far.

Mistakes and lessons

A one-word test call cost 518,000 tokens because every global tool loaded, so isolation is now required. My first paid eval run saved only totals, so now each case is recorded as it finishes. Lesson: measure the measuring.

Other uses

Contract redlines, grant applications, building permits, lab notebooks, any review that should cite its source.

Deirdre, The Economical Editor

Open source

An editor in a box. It reads your draft by Deirdre McCloskey’s rules and offers a rewrite for every fault.

Everything I drafted with AI sounded like AI. Claude pointed me to McCloskey’s Economical Writing, and I turned its rules into a checklist. An homage, not affiliated. The story is here.

Deirdre repository on GitHub
How it was built and what went wrong
The problem it solves

Writers get specific fixes instead of vague advice, plus a quick check that flags 20 common AI tells before a commit.

How it was built

A Claude Code skill and agent written in Markdown, plus a small Bash and Perl linter. First version in August 2026; public plugin and v2.1 on Sept. 28.

Mistakes and lessons

Deirdre reviewed her own README and caught an install step that broke the skill. The linter flagged the README’s own examples, so it now skips quotes and code. Plugin versions drifted, so one release script now bumps them together. Lesson: point the tool at itself first.

Other uses

Grant writing, legal briefs, policy memos, ESL coaching, product docs, cover letters.

Half the Rules, Same Results

Open source

A test bench that proves you can cut half the standing instructions you give an AI coding helper without making it worse.

As models have improved, my setup bloated to 12,000 tokens of rules every session, and some contradicted each other. Anthropic said it cut most of its own prompt with no loss; I wanted proof for mine.

Config trim A/B results page
How it was built and what went wrong
The problem it solves

You trim on evidence, not a hunch: the same tasks, old setup against new, pass rate and cost side by side. Mine fell to about 6,000 tokens, passed as well, and ran 10 to 15% cheaper.

How it was built

Bash, jq and Python driving Claude Code, over three days in July 2026, with a results page and a write-up on this site.

Mistakes and lessons

Four of seven flagged failures were bugs in my own check scripts. One check passed on code nobody touched, and a label swap flipped the verdict. Lesson: audit the judge before the defendant.

Other uses

Employee handbooks, compliance policies, hospital checklists, legal boilerplate, onboarding docs.

The Free Booking Bridge

Open source

A one-way sync from Cal.com into Attio CRM. Every meeting someone books on my calendar lands in my customer list on its own, cancellations and reschedules included.

I was using the free tiers for both and didn’t want to pay for a sync. I was also curious to experiment with Val Town and see its capabilities. Rapid prototyping.

cal-attio val on Val Town
How it was built and what went wrong
The problem it solves

No copying bookings by hand and no monthly fee.

How it was built

TypeScript on Val Town with Claude Code, checking each message’s signature. Built in about 90 minutes on July 6, 2026, then tested with real bookings.

Mistakes and lessons

Real cancellations sent an empty field my test samples left out, and the CRM rejected them, though 18 tests were green. A repeat customer’s second booking overwrote the first until I looked bookings up by ID. The free CRM plan blocked new record types, so bookings became a list. Lesson: test with real data early.

Other uses

Clinic intake, tutoring schedules, court-date tracking, volunteer shifts, any paid connector that is really a webhook, other data integrations.

Nothing Gets Lost

Private

A nightly backup of every conversation I have with AI coding tools, with one search box across all of them.

I found my 2025 Mondrian build sessions gone. Claude Code deletes old logs after 30 days by default, and I had no backup.

How it was built and what went wrong
The problem it solves

Every session from every tool is kept, encrypted and searchable. I recovered the lost build from older notes.

How it was built

Bash, macOS launchd, restic to Amazon S3, and Python with SQLite search, over five days in September 2026. The first backup took 24 minutes for 10 GB; now it takes about a minute a night.

Mistakes and lessons

macOS still ships a 2007 Bash that broke on empty lists. My first design named tools one by one and missed two thirds of sessions, as Gilfoyle pointed out; now it backs up everything unless excluded. Lesson: opt out beats opt in.

Other uses

Lab notebooks, legal holds, newsroom source logs, classroom records.

Compliance

A Referee for AI Paperwork

Private

Nine AI helpers that walk a small defense contractor through CMMC prep, with 340 automatic checks on their work.

Compliance documents go straight to an auditor, and one wrong number becomes a finding. AI writing needed a referee.

Eagle Ridge methodology docs site
How it was built and what went wrong
The problem it solves

The scoring math, which gaps may wait for a later fix, and client-specific wording are all checked before a person signs off.

How it was built

Python, pytest and Claude Code agents, February to September 2026. The first eight agents shipped in one session.

Mistakes and lessons

The tests caught 16 controls with the wrong point values, so a plan to defer them would have failed the audit. A real engagement showed my proposal wording blurred the scope, so I added an intake checklist. Lesson: tests find the expensive mistakes.

Other uses

Tax preparation, building inspections, grant compliance, clinical-trial paperwork, HR policy audits.

Health and time

Glucose at a Glance

Open source

A small pixel clock that shows blood glucose from a CGM.

The open-source clock worked but was built for developers: config files and IP addresses. Non-technical diabetics need an appliance.

Nightscout clock web flasher
How it was built and what went wrong
The problem it solves

Flash it from a web page, join the clock’s Wi-Fi, pick your monitor, set a PIN. Done. I also wanted it to rotate data every 30 seconds instead of it being static.

How it was built

C++ on an ESP32 with PlatformIO, a browser flasher on GitHub Pages, and Claude Code. It sits on Artiom Kenibasov’s firmware; my work is the setup layer, built in one session and then flashed on a real clock.

Mistakes and lessons

Scanning for Wi-Fi froze the setup page, so the scan now runs once at boot. Safari blocked plain links to local devices, so setup became one page. The USB chip failed a third of flashes until I slowed it down. Lesson: real hardware tells the truth.

Other uses

Elder care, oxygen or CPAP alerts, pool and plant sensors, shop-floor counters, any number a family needs at a glance.

Insulin Dosing Calculator

Live

A calculator that shows each step of a mealtime insulin estimate, so you can follow the math instead of trusting it. Educational, not medical advice.

Some diabetics don’t have an automated pump and still rely on direct injections. The math is simple and multistep, which increases the cognitive load unnecessarily for most people. Other apps didn’t show their work.

T1D insulin calculator
How it was built and what went wrong
The problem it solves

You see each number and its source, switch units, and keep your settings in your own browser.

How it was built

Plain JavaScript on this Jekyll site with tests, launched October 2025. A SwiftUI iPhone version is in progress.

Mistakes and lessons

For months the sliders showed different numbers on load than the math used; one shared default fixed it, with tests that fail on the old code. A review found the iPhone version skipped range checks, now enforced. The top safety feature on the roadmap, insulin on board, is not built yet. Lesson: what you show must be what you compute.

Other uses

Any multistep calculation: nursing school drills, loan payoff, recipe scaling, tax estimates, any formula people should see.

Your Life in Weeks

Live

Type your birthday and see your whole life as a grid of weeks, with the ones behind you filled in.

Tim Urban and Oliver Burkeman showed how short and finite a life is. I wanted a version anyone could open.

Life in weeks grid
How it was built and what went wrong
The problem it solves

A big abstract number becomes a picture you can’t unsee, with stats on time, people and the cosmos.

How it was built

It started as a React artifact in Claude.ai, then became a single page on this site with Claude Code in August 2025.

Mistakes and lessons

None recorded for this one-day port.

Other uses

Retirement planning, hospice conversations, teen money lessons, parental-leave policy, project deadlines counted in weeks.

Archived

Proof, Not Screenshots

Archived

A policy-as-code gate: it blocks risky cloud changes and signs an attestation, a tamper-evident receipt, proving the check ran. Archived.

Startups lose deals without security certificates, and the proof is often a screenshot. I built it during Startup Virginia’s Idea Factory.

Mondrian weekend build post
How it was built and what went wrong
The problem it solves

An auditor would get a signed record instead of a picture.

How it was built

Go and GitHub Actions with Claude Code, in about four hours on Sept. 13, 2025. Archived in January 2026.

Mistakes and lessons

The GitHub Action took several rounds of shell fixes. The bigger mistake: I wrote code before talking to buyers, then learned existing tools covered most of the job. Lesson: interviews before code.

Other uses

Food-safety logs, chain of custody for evidence, drug-trial records, election audits.

How I work

The Closing Ritual

Private

One command at the end of a work session that files every loose end: tasks, issues, decisions, notes and a short recap.

My rule: if I have to remember something more than once, automate it. Before this, “fix later” items and decisions vanished when the chat window closed.

Isometric diagram of the wrap-up steps, each with an arrow to the store it writes
How it was built and what went wrong
The problem it solves

Every session ends the same way. Thirteen steps each write to exactly one place: the repo, Linear, beads, my memory files or a coaching log. Finished work closes, deferred work becomes a GitHub issue, and a recap is committed. A result only counts if a number moved.

How it was built

A Markdown skill for Claude Code that drives the GitHub CLI, Linear, beads and my memory files. It began as a slash-command shortcut on Oct. 5, 2025 and grew over a year into a skill that runs on my Mac and in cloud sessions.

Mistakes and lessons

An early version stalled when a Notion tool wasn’t connected, so tasks moved to Linear and each step now runs on its own. I filed decisions in the wrong tracker until I split the work into three lanes. Summary tables got skipped, so every step must now print its result. Lesson: a checklist only works if it shows its work.

Other uses

Hospital shift handoffs, restaurant closing checklists, lab notebook sign-offs, social work case notes, project retros.

The Showcase Writer

Private

The recipe behind this page: a short skill that turns a finished project into a card anyone can read in a minute.

My work was scattered across 31 repos, chat logs and live sites, and most of it never got written up. A resume can’t show what a build taught me.

How it was built and what went wrong
The problem it solves

Every project answers the same eight questions, facts only, so you can compare them side by side.

How it was built

A Claude Code skill in one Markdown file. For this page, research agents swept my repos, build notes, memory files and live sites, then Claude drafted each card to match two I wrote by hand. One afternoon, Oct. 23, 2026.

Mistakes and lessons

The first sweep missed many of my commits because I sign some as “Human.” One “build” was an untouched template and one repo was someone else’s fork, so both were cut. Lesson: an evidence sweep is only as good as its filters.

Other uses

Grant reports, performance reviews, case studies, lab write-ups, nonprofit annual reports.

Smaller builds

  • usaspending-mcp-server lets an AI assistant search federal contract awards in plain language. Sixteen read-only tools; the docs are still a draft.
  • grepai-beads-helpers sets up local code search and agent memory in one command.