Effective Claude Code prompts

I regularly spend time optimizing my CLAUDE.md, and I often ask claude in an interactive brainstorm session to evaluate the effectiveness of certain prompting techniques. I have iterated over this for a few hours this evening and I thought I’d share my notes:

  • All caps and **bold** have a small effect, but document structure and placement (at the top = more important) carry much more weight. Structural markers such as <CRITICAL>...</CRITICAL> are also effective.
  • emojis in the prompts have a small effect, but the actual words they prefix are much more important
  • Repeating the most important rules (e.g. at the top and bottom of CLAUDE.md) make it more likely it will follow those instructions.
  • Tell claude that if it makes a claim, it has to show its output, e.g. “Mandatory: run all tests. Show test results in output.”
  • An effective way to define behavioural constraints is:
    • BAD BEHAVIOUR: [describe a bad thought pattern]
    • REASON IT’S BAD: [describe why it is bad]
    • DETECTION: [how does claude know it’s falling into this pattern]

As an example, I’ve got this at the start of my CLAUDE.md, before any project-specific instructions:

Read more →

small useful git tricks

Here’s a couple of git aliases I use all the time. It gives you a quick and clear overview of your branches and commits. It can even watch for changes in realtime and show you any changes.

git log screenshot

A better git log

Add this to your .gitconfig:

1
2
[alias]
    tree = log --graph --decorate --all --format='%C(auto)%h%d %Creset%s %C(dim)(%an, %ad)%Creset' --date=relative

Run git tree and you get a compact view of your commit history with branches, colored hashes, commit messages, and authors. The --all flag shows all branches, not just the current one.

Read more →

Development workflow with Claude superpowers

I have hardly written any code manually in the last year, yet I’ve built heaps of smaller and larger projects, using AI to learn new things, write boilerplate code, resolve tricky bugs, and rapidly iterate on ideas.

I have journeyed from AI autocomplete to vibe coding to prompt engineering to increasingly effective agentic spec-driven development workflows. For a while, I’ve been using and developing my trusty old prompts from my cursor-rules repo to help me keep the AI on track.

Read more →

Claude YOLO: Not so dangerously skip permissions

I do all my development with Claude Code and the spec-driven workflow du jour. Claude is usually great at letting me quickly explore new things and rapidly iterate on ideas.

If you’ve used Claude Code, you will be as tired as I am to have to give Claude permission to do basically anything. Can I edit this file? Yes, and don’t ask me again for similar commands. Can I run this script? Yes, and don’t ask me again for similar commands, etcetera.

Read more →

Meanwhile…

Hi! I’m Gert, an experienced startup CTO and geek. I write about neat technical things I discover, life in Wellington, New Zealand, and adventures from my travels.

I’ve been living in Wellington since the early 2000s, working in the buzzing tech startup scene.

Gert

Get In Touch

Feel free to connect with me through the social links in the sidebar!