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.