How I work with Claude Code
Agents write code fast. The hard part is keeping review quality while they do. These are the steps every change goes through, and the hooks that make skipping a step impossible rather than discouraged.
- 01
Plan
Anything bigger than a bug fix starts with an interview: the agent asks questions until the plan has no holes. Design decisions go into an ADR before code.
- 02
Build
One red to green slice per commit. Every edited file goes through the project formatter and linter right away, and the agent cannot say it is done while typecheck or related tests fail.
- 03
Review
Before a pull request, three reviews run in order: bugs, then over-engineering, then comments. A hook refuses to open the PR until all three ran in the session.
- 04
Ship
The PR body says why, in a few lines, with no test plan and no file list. A gate refuses mixed commits, new dependencies without a reason, missing tests and PRs too big to review. A lint holds every PR, issue and commit message to the same writing rules.
- 05
Stay safe
Merges, closes, comments posted as me, secret reads and destructive commands all need an explicit go. Secrets, emails and IPs are swapped for placeholders before they reach the transcript.
- 06
Learn
Every correction goes into a mistakes log. Once a week a skill reads the log and the transcripts, and turns repeat mistakes into a hook or a rule.
Parallel agents
I usually run several sessions at once, one per repository or per issue. Each one works in its own git worktree, so their diffs never mix. A hook stops a session from editing the main checkout while another live session is working there.
For a batch of issues, the issues-workflow skill starts a background workflow: one agent per issue, each in its own worktree, each running the review chain and opening its own PR.
Workflows mode
Dynamic workflows let Claude write a small script that runs many subagents in the background:
audits, migrations, research that needs several independent checks. Ask for one with the
keyword ultracode or the words "use a workflow", or turn it on for
the whole session:
/effort ultracode It is available on paid plans and through the API. On Pro, enable it in /config. Workflows spend a lot of tokens, so I keep them for
work that is truly parallel. See the official docs.
Writing rules
The same rules apply to every PR description, issue and commit message the agent writes:
- Say why the change exists. The diff already shows what changed.
- A new feature is not a fix. No "previously", no "X was missing".
- No test plan section. CI is the test plan.
- No file lists, no checklists, no tables, no em dashes.
- Run a humanizer pass before anything gets published.
The pr skill follows them and the text-lint hook enforces them.