How I Use Claude Code

I've been using Claude code for a while now and I get plenty of questions on how I use it and what the results are, so let me break down how I'm currently doing things.

How I Interact With Claude

My interactions change a little bit based on my intent. Either way, I will typically start in plan mode and then tell my agent what I'd like to work on.

If, for example, I want to work on what is next in the roadmap, I tell the engineering manager to do that. We will discuss the feature and then I'll tell the manager to begin.

I do not find myself having to intervene or correct claude much at this point. The one exception to this is to remind them to work with the QA agent. I find this as funny as I do obnoxious.

Who knew you'd have to go out of your way to get a development team to do QA?

Set Up

A whole lot of what you'll see, especially in the agents, is "good enough" for now. A lot was started with Claude's help, but not always refined or trimmed down unless there was a need for it. Don't assume that you need everything that is here.

In the root of your project you'll have a claude.md file. This file is magic and is the launching point for how claude will behave. It also fills the context window of the agent, so keep this trim.

Many bits of instruction can be put in specific agent instructions or rules files. I'm still figuring this out.

Agents

From here there are agents. My frame of reference for this is to think of agents as somewhat specialized instances of AI. The benefit of using agents is that each agent gets its own context or memory. So the more specialized the agent, the longer that agent can operate before it has to compact its memory and risk forgetting things.

Agents all have instructions as to how they are to behave, and most importantly what documentation they should reference to remember what they should.

Agents also have instructions as to which other agents they should work with.

Orchestrator (Manager)

The most important agent, to me, is the engineering-manager agent. This is also considered an "Orchestration" agent. Its job is to own the process and make sure the agents follow it. It also guards from getting into a failure pattern. It is what makes all of this operate smoothly.

Rules

Pretty new for claude, but these represent discrete rules to follow when specific patterns arise. So for example you can have a file glob for javascript files that pertain to a rule about how to do testing that is different than other file types.

I'm still figuring out how this works and what the use cases really are compared to claude.md or agents.

What I can say is that agent definitions are more about personality or identity than process and instructions. I do not put critical instructions into agent files and expect them to be followed.

Documentation

Claude, like all AI will forget things from conversation to conversation. Having agents maintain files that represent vital information makes a huge difference in the results you get.

My agents maintain technical documentation, decision logs, roadmaps, and more. The agents know to reference that material and keep it updated.

Strengths and Weaknesses

Overall, this setup works really well for me. So well I had to find ways to get my computer to notify me when things are done because it can run for long periods without intervention or serious risk of failure.

Some of the weaknesses I've bumped into is that even with all of this, sometimes agents don't do what they were defined to. I've also found weaknesses in basic things like dealing with XCode projects and I had to add explicit instructions to stop, let me add the file, then resume when I'm done.

Also, information flow from agents to me can be a little too indirect and I can wind up spending time interrogating through my agents to understand what it has done.

All in all, this has proved to be a very solid foundation to work from where I feel I can make rapid progress safely.

Read More