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.

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

AI agent boundaries that hold under pressure
A boundary-setting guide to AI agent boundaries: connector cards, scope ledgers, child receipts, and decision stubs that stop permission drift.

Eval platform governance for AI coding teams
A governance memo on eval platform governance: receipts behind scores, scoped harness access, and owners that stop Goodhart drift.

Agent boundaries for teams running coding agents
How to set agent boundaries for teams: connector ownership, written scopes, and review receipts that keep agent diffs explainable after the session ends.