Borrowing Taste from the Web

An iOS Port of Anthropic’s frontend-design Skill

Default SwiftUI is the iOS equivalent of AI slop. Left to its own defaults, a general-purpose coding assistant will hand you .body fonts everywhere, flat black or white backgrounds, list rows that run edge-to-edge without structural framing, and screens that look indistinguishable from, for example, the kind of toy app one builds while learning the primitives of SwiftUI. I have created the iOS Design Agent Skill to give Claude Code, Cursor, and the other Agent Skills-aware tools a design critic’s eye when they build or audit iOS interfaces.

Continue reading →

A Tiny Language for a Tiny Corner of German Grammar

Why Konjugieren Needed More Than Markdown

Markdown is, for most writing tasks that a developer encounters, the right tool. It is small, it is familiar, and its delimiters have become a kind of lingua franca for prose that wants a little structure without the ceremony of HTML. But Markdown, for all its virtues, has no opinion about the internal morphology of a German strong verb. When I set out to build Konjugieren, a free iOS app for learning German conjugation, I discovered that the one thing I most wanted to show my readers was the one thing Markdown could not convey.

Continue reading →

What Belongs in CLAUDE.md

Separating Rules from Reference in 49,505 Characters

Not all documentation serves the same purpose. A style guide tells you what to do on every page. A glossary tells you what a word means when you encounter it. A phone directory tells you how to reach someone when you need her. These are different instruments, and combining them into a single document does not produce a style guide that is also a glossary and a phone directory. It produces a document that is too long to scan and too broad to maintain. I recently learned this lesson in a context I had not anticipated: the Markdown file that governs my AI co-developer’s behavior.

Continue reading →