Craft coding: write the code yourself, let AI review it

person using MacBook Pro

Every debate about AI and coding collapses into two camps: refuse it entirely or hand everything to the machine. Both are bad positions. There is a third option that is more useful for anyone who cares about what their code actually does.

Peter Bloem, an assistant professor who writes scientific code, calls it craft coding. The core rule is simple: you write every line, the AI reviews your work. Not the other way around.

Why Both Extremes Fail

Ignoring AI entirely means your code will contain bugs that a modern model would catch instantly. Bloem’s argument is direct: hand-written code is no longer safe for security-critical software when an AI-powered attacker can find the problems you missed.

Full vibe-coding has the opposite problem. When the AI writes and you nominally check, your attention drifts in under an hour. The failure cases are rare enough that you start trusting the machine. Slowly, your codebase shifts into something you no longer understand.

The deeper issue is skill atrophy. Deferring everything to AI means you never develop the ability to gauge whether you actually understand something. Bloem frames it plainly: cognitive skills are like muscles, hard to gain and easy to lose.

The Baker Analogy

Bloem uses three bakers to map out the spectrum.

  • Hanna is a home baker who does everything by hand, including kneading. She produces exceptional bread but cannot scale. She knows this and is at peace with it.
  • Vivian runs a commercial operation. She defers all process decisions to food scientists and monitors aggregate stats: does it sell, what does it cost to make. She doesn’t care about intrinsic bread quality beyond what customers notice.
  • Cara is the craft baker. She runs a commercial bakery and uses a kneading machine because the machine produces better dough, a more hygienic process, and more predictable results. But she understands every part of the process and cares about quality for its own sake.

Craft coding maps onto Cara. You accept the tools that unambiguously improve the product. You reject the tools that replace your understanding.

lines of HTML codes

The Framework in Practice

Bloem’s shorthand for the key practice is hand-written, AI-reviewed. You write the code yourself, run it to check for obvious problems, then paste a snippet into Claude and ask it to spot issues. You implement a suggestion only if you understand it and agree with it.

The reviewer framing matters. When Bloem treats Claude as a code reviewer, he reports trying harder to write clean code before the review. The dynamic mirrors what happens with a senior developer: you don’t want to hand them a mess.

The 10 Dogmas

Bloem lists ten rules for keeping this honest:

  1. No AI in the IDE. No LLM-driven autocomplete. Every character is typed by your fingers.
  2. Don’t give the AI access to the codebase. Paste snippets into the web interface. If the AI does have codebase access, make it read-only.
  3. Don’t let the AI run anything. It suggests, you run.
  4. Don’t copy-paste code out of the AI chat window.
  5. Don’t use AI for anything plain search can do.
  6. Read the documentation before asking the AI.
  7. Ask the AI for solutions only after you’ve tried yourself. Give yourself time to think first.
  8. Check your own code before sending it for review. Do your best to minimize mistakes first.
  9. Run the code to check for problems, then let the AI review find the rest.
  10. Don’t implement a suggestion you don’t understand.

What You Actually Get

Bloem is honest that craft coding is slower than vibe-coding. The benefits land in different places.

Fewer deep bugs. Bloem writes that he has never shown Claude Fable a snippet of code where it failed to find a serious issue. The code ran. He couldn’t see anything wrong. The bugs were there anyway. He verifies each one before acting on it.

Security coverage. Humans don’t write secure code reliably. Bloem points to AI-assisted breaches and exploits that followed the Mythos/Fable release, and notes that OpenAI and Anthropic models have been found circumventing their own restraints in ways their maintainers didn’t anticipate. The attack surface has changed. A superhuman code reviewer that catches bugs instantly is now a practical necessity for safety-critical code, not a nice-to-have.

Continued skill development. Code reviews transfer knowledge from a senior to a junior developer. With AI, Bloem argues, you are always the junior. Craft coding keeps that channel open. Because everything passes through your active attention, you keep learning from each review cycle.

Lower cost and environmental footprint. A modest Claude chat covering a couple of days of coding runs to around 1,800 words, Bloem reports from his own sessions. The $20/month base plan covers this. He compares the energy use of that chat to the energy cost of making a small cup of coffee and concludes the coffee costs more.

man in black long sleeve shirt using computer

⚠️ What You Still Lose

Bloem doesn’t oversell the approach. One skill will fade: the deep, grinding multi-week debugging process. The kind where you build whole scaffolding scripts just to isolate a single bug. With Claude Fable available, that work mostly disappears. If AI ever went away, he acknowledges, you would be shocked at how much effort those bugs now require.

His conclusion is that this particular skill may be one technology lets us give up, the way earlier tools made other skills obsolete. It’s not nothing, but it’s a considered trade.

When This Works

Bloem identifies scientific code as a strong use case. Scientific code doesn’t need to handle many different production scenarios. It needs to do exactly what the paper says it does. A vibe-coded experiment that quietly does something different from what the paper describes invalidates the paper. Craft coding, where you understand every line, is the only way to vouch for that correspondence.

It also works for any solo operator or small team where the programmer needs the whole codebase in their head. That kind of mental ownership is impossible if an AI generated half the functions without you reading them.

When It Does Not

Bloem is direct that craft coding is a hard sell inside companies optimizing purely for output velocity. If your organization measures aggregate stats and doesn’t care about intrinsic code quality, this approach will feel slow. It’s a niche philosophy, and he says so explicitly.

It also won’t help you conjure a complete new programming language over a weekend. If you lack the maintenance time after building something, vibe-coding it into existence doesn’t solve the underlying problem.


The broader point is that the most productive position in the AI-and-coding debate isn’t at either pole. Linus Torvalds has said vibe-coding is fine for non-production work while discussing AI review tools in the context of the Linux kernel. Debian’s community vote expanded from a binary allow-or-ban to include an option permitting AI for review of human-written code. The center ground is where the practical work gets done.

If you haven’t yet tried pasting your own code into Claude and asking it to find problems, Bloem’s challenge is worth taking seriously: if it really is just a parlor trick, why haven’t you tried it at least once?

Stay on top of AI & Automation with BizStack Newsletter
BizStack  —  Entrepreneur’s Business Stack
Logo