3 min read

Unattended Claude Code runs you can trust: hooks, checks and a morning review

How I run long Claude Code jobs without watching them: hard rules in hooks, tests as the gate, scheduled routines, and a stricter morning review.

Some of my automation work runs overnight: cleaning exported data, rebuilding a report, checking a workflow's config. I do not watch these runs. So the setup has to do the watching.

The setup

01BriefCLAUDE.md holds the rules of the project
02Hooksblock edits to protected files and secrets
03Teststhe run only counts if the checks pass
04Schedulethe same job, same time, every day
05Reviewa short morning read of what changed

Prompt rules vs hooks

Rule written in the prompt
  • Can be forgotten deep in a long run
  • Depends on the model reading it
  • Fails silently
  • Fine for preferences
Rule enforced by a hook
  • Runs on every tool call
  • Does not depend on the model
  • Blocks the action and says why
  • Required for anything that must not break

The morning review

Did the checks pass?if not, nothing ships
What files changed?a short diff, read by a person
Anything touched that should not be?protected paths, credentials, customer data
Is the output where people expect it?the report, the sheet, the channel

Reviewing unattended work more strictly than supervised work sounds backwards. It is the right way round. You saw nothing while it ran, so the review is the only time you see it.

Have a team losing hours to manual work?

Send me the problem in two lines. I'll reply with what I'd build and what it would change.