Maximum Effort, Measured

When Claude Code’s Hardest Setting Earns Its Keep

Every prompt I send to Claude Code carries a hidden dial. Turn it one way and I wait twice as long, and pay nearly twice the tokens, for an answer I could have had sooner. Turn it the other way and I get a competent, forgettable response to a question that deserved judgment. The dial is called effort, and for the seven months I have used Claude Code I have never been sure where to leave it.

Continue reading →

When Refusals Don’t Translate

An Experience Report from a German-Locale On-Device LLM

I was preparing a new release of my German verb-conjugation iOS app, Konjugieren, and I noticed something strange about its on-device AI tutor. The tutor would occasionally produce a polite German refusal, “Ich kann dir keine Filmempfehlungen machen…”, and then render that refusal inside the speech bubble as if it were a verb-conjugation lesson. The user, who had asked something perfectly reasonable, would see the refusal appear in the conversation as a totally normal-looking response. There was no error and no fallback. The model had simply declined, and the app had presented the decline as if it were content.

Continue reading →

Trust, Then Verify

A Claude Code Skill for SwiftUI Build and UI Verification

The single highest-leverage practice in agentic iOS coding, as of mid-2026, is the one Anthropic’s Best Practices for Claude Code names directly: “Give Claude a way to verify its work.” On the iOS side, that practice has been hard to apply. I have built a Claude Code skill called ios-build-verify that makes it cheap.

Continue reading →