The Spec-to-Kill Method: Pressure-Testing Vibe-Coded Infrastructure

Written with Claude. The Swiss army knife you have to hold a certain way I run a field data collection platform for building assessments. The app has AI agents that look up equipment costs, write condition narratives, validate data, and generate reports. Those agents need to find cost records in a database, do deterministic math (no LLM arithmetic on dollar amounts), and write results back to a JSON file. ...

April 15, 2026 · 10 min · 1995 words · Chris Hughes

Inline Development on Rocket Skates

Written with Claude. The wall I keep hitting I’m building a field data collection app. SvelteKit PWA, offline-first, syncs equipment photos and condition data from a tablet back to a server where the analysis pipeline picks it up. Standard tooling for my day job as a mechanical engineer doing facility audits, property condition assessments, and energy assessments. ...

April 11, 2026 · 11 min · 2142 words · Chris Hughes

I Can't See If My Pants Are Down

The criticism that sticks There’s a version of the AI-assisted infrastructure story that goes like this: you’re walking around in public with your pants at your ankles, and you don’t even know it. You pasted configs from a chatbot, typed systemctl enable, and called it production. You don’t know what you shipped. You don’t know what’s exposed. ...

April 9, 2026 · 5 min · 928 words · Chris Hughes

73 Findings, 15 Issues

Written with Claude. The entire process described here — the spec generation, the triage conversation, and this blog post — was done in one Claude Code session. The Wall of Findings I have a home network infrastructure repo. Raspberry Pi running Pi-hole, Caddy, WireGuard, CrowdSec. About 20 scripts, a Go TUI dashboard, some systemd units, a security dashboard. The kind of thing that accumulates config and code over 280+ sessions of Claude Code work. ...

March 24, 2026 · 9 min · 1875 words · Chris Hughes

The Three Misses

Written with Claude. The field visit, the data analysis, the issue filing, and this blog post were all done in one session. The Core Problem The worst thing an AI pipeline can do is put a plausible falsehood in a delivered report that nobody catches. Not a typo. Not a formatting issue. A statement that reads like a field observation, passes review because it sounds right, and lands in front of a client as fact. ...

March 24, 2026 · 7 min · 1297 words · Chris Hughes

Context as a Public Good

The Tax You Don’t Notice My workspace CLAUDE.md was 210 lines. It loaded into every session, across every project, every time. That’s roughly 3,500 tokens of instructions Claude reads before I say a word. I never questioned it. The file grew over months. A gotcha here, a workflow pattern there, a rule I wrote after getting burned once. Each line made sense when it was added. In aggregate, it was mostly noise. ...

March 12, 2026 · 4 min · 795 words · Chris Hughes

Make It Impossible to Skip

Something Was Missing I run a /start command at the beginning of every Claude Code session. It loads my memory bank: project brief, active context, tech context, system patterns. Four files, plus CLAUDE.md which Claude Code already loads automatically. The command has worked fine for months. Then I started a session with Sonnet 4.6 on low effort and noticed the output felt thin. I asked which files it had read. Two. Out of four. ...

March 12, 2026 · 3 min · 619 words · Chris Hughes

A System That Fixes Itself

The Loop, From the Outside My job is prompting. I run /start. I describe what I want. Claude works. I redirect when it goes wrong. I run /stop. That’s it. The code, the tests, the commits, the issue filing, the research — Claude does all of it. I’m not in there typing. I’m outside, watching outputs, steering. Which means the “I” that encounters friction isn’t me. It’s Claude. ...

March 9, 2026 · 4 min · 820 words · Chris Hughes

18 Services and No Index

I had 18 services running across two Raspberry Pis and a Chrome bookmarks folder full of different ports. Every few weeks I’d need one and end up clicking through bookmarks trying to remember which port was which. How I got here I use Claude Code on a couple of Raspberry Pis. Over the past few months I kept asking it to build me things — a performance report for Podly so I could see podcast processing stats visually. A SvelteKit spec browser so I could review generated codebase specifications and give Claude specific feedback. MOSAIC prototypes so I could compare three UI directions in browser tabs and pick one. Some were full apps, some were just a python3 server pointing at an HTML file. ...

March 5, 2026 · 3 min · 588 words · Chris Hughes

One Button, Seven Services

I listen to “Stuff You Should Know” podcast every night falling asleep. Has been my routine for years. My girlfriend got used to it. Now she requires it too. The problem: waking up at 2am and needing to restart it. “Hey Google, play Stuff You Should Know for 30 minutes” — that voice command is loud enough to wake the other person. Defeats the purpose of a sleep aid. ...

January 28, 2026 · 7 min · 1378 words · Chris Hughes