Back to Research

The Claude Code CLI workflow after the novelty wears off

A Claude Code CLI workflow built around plan mode, short sessions, slash commands you wrote yourself, and hooks that enforce rules nobody remembers.

Berglandschap met een visser, landscape painting by Théodore Rousseau (1830).
Rogier MullerAugust 15, 20263 min read

Ask twenty engineers about their Claude Code CLI workflow and you get twenty answers. Watch them work and the ones getting real value share two habits, neither of which is a clever prompt.

They plan before they let it write. Plan mode gives you the approach and the files it intends to touch while it is still cheap to disagree. Reading a proposed plan takes 40 seconds. Reading a 500-line diff to discover the same disagreement takes fifteen minutes and you will miss things.

They clear aggressively. /clear between tasks, every time. A session that has been open since this morning is carrying a refactor conversation, two abandoned approaches, and a stack trace from a bug that turned out to be unrelated. All of it is competing for attention with the thing you actually want.

Write your own slash commands early

Anything you type more than twice becomes a file in .claude/commands/. It is a markdown file. That is the whole feature.

  • A review command that checks a diff against your own conventions, not generic ones
  • A command that writes the PR description in the format your team actually uses
  • A triage command that takes a stack trace and finds the likely file without touching anything
  • A command that runs your migration checklist step by step

These are shared in the repo, so a new joiner inherits the team's accumulated practice on day one instead of reinventing prompts for a month. That transfer is the part with lasting value, more than any individual command.

Hooks for the rules people forget

Hooks let you run a shell command on events in the agent's loop, which is how you stop relying on everyone remembering a convention. Formatter runs after every edit. A check that refuses writes to a generated directory. A notification when a long run finishes so you stop babysitting the terminal.

Keep them fast and keep them few. A hook that adds three seconds to every file write turns a fluid session into a slideshow, and people will quietly remove it. We have seen a team ship a full lint-and-typecheck hook on every edit and abandon the tool within a week, blaming the model.

The honest failure modes

It writes tests that assert what the implementation does rather than what the requirement says, and those tests pass forever while meaning nothing. It agrees with you when you push back, even when you are wrong, so "are you sure?" is a weak review tool. On a large unfamiliar repo it will confidently reference a helper that does not exist. And a long autonomous run on a vague task produces the most expensive kind of output: a large diff that looks finished.

CLAUDE.md mitigates a lot of this, but only while it stays short. Past a page or so it stops being read carefully. Prune it on the same schedule you prune dependencies.

What to change tomorrow

Two things. Use plan mode on every task above ten minutes of work, and clear the session between tasks. Run that for a week and count how many of your review comments are about the agent misunderstanding the goal. If that number drops, the workflow is doing its job, and the rest of the setup is refinement on top.

If you want help putting this into practice, talk to us.

Related training topics

Related research

Ready to start?

Transform how your team builds software.

Book a 15-minute sync