Agents with Jobs, Not Goals
I stopped using /goal
I haven’t needed /goal since I gave my agents roles and responsibilities. The team I introduced in The Chief of Staff can keep pushing on those responsibilities without me having to tell each agent what to do next.
In Claude Code, /goal takes a condition you want satisfied. A model checks after each turn whether that condition holds, and when it does, the goal clears. The agent has finished what you asked it to do.
A role continues after a goal is met. I can resume an agent and it figures out goals within its responsibilities, then keeps pushing on them.
For this post, I told my chief of staff I needed help getting started. It knew which agent to start, and that agent knew exactly where to look: my reflections, my backlog, and what I’d already published. It came back with three topics. That’s beyond a goal, which is great.
Defining the roles
My work now is deciding what each agent should be responsible for. Each time AI takes over the work at one level, I move up to the next one, which I wrote about in Claude Just Gave You a Dry Promotion. This level looks a lot like managing engineers: you define the role, delegate the work and correct it, which is why engineering managers are naturally great at AI. When my chief of staff’s to-do column filled up with work that wasn’t its job, I asked it, “Why do you have so many to dos?” We ended up creating a few new roles to take that work over.
Most of my agents could do most of this work, so when I assign a task I’m not only assigning it, I’m also shaping the roles. Sending a task to the agent that owns it teaches the team what each agent should do and what it shouldn’t do.
I caught myself giving work to the wrong agent and told my chief of staff, “I need you to keep me honest on who I assign stuff to based on the Agent Roster.” Three minutes later it had updated its operating procedure, so it now checks me before I make that mistake again. When I correct an agent, I expect that correction to go into its operating procedure or the corresponding guide.
Keeping the roles in order
I keep correcting these assignments so future tasks can route automatically. If I don’t keep the roles in order, it gets messy fast.
In AI Accelerates Whatever You Have, I wrote that maintaining order requires energy, that’s the second law of thermodynamics. With an agent team, most of that energy goes into keeping the roles and responsibilities clear. If I stop, every new agent is one more place for work to land in the wrong hands, and the entropy accelerates.
AI accelerates whatever you have, so I want the benefits of clear roles to compound too. A correction written into a procedure gives the chief of staff a rule to use on future assignments, so I don’t have to make the same routing decision again. Each correction adds to the previous ones, and the agents use that accumulated guidance to route work to the role responsible for it.
Command Bridge, the tool I built to talk to my agents by voice, keeps every turn in a local log, so I can go back over what I said to them. My chief of staff’s operating procedure includes inspecting the last seven days of those turns against the board of everything I’ve asked for, so none of my asks get neglected.
Start with your sessions
I used to run 3 to 6 agents at once and struggled to keep them all busy. Now the roster has 23 agents with defined roles and responsibilities, and it’s still growing.
My first roster started from a week of conversations with my agents, 2,119 messages. The recurring work was already there in what I’d been asking them to do. Your session logs hold that record too, so I’d recommend auditing them for what keeps happening and creating roles around that.