Anthropic ships eight starter templates on the Templates tab at claude.ai/code/routines. They are free, they are a sensible place to begin, and most people begin there. They are also unhardened: they describe what to do, and say nothing about what to do when it doesn’t work.
This is a complete worked example of fixing that — one template, start to finish, with the full prompt at the end for you to paste in.
The template is Briefing: summarise your calendar, email and messages into a morning brief. It is the one most people turn on first, and the one whose failures are hardest to notice.
First, how it fails when nobody is watching #
Four specific failures, none of which produces an error in the run list.
A dead connector reads as a free day
If the calendar connector fails, the brief renders an empty schedule. Nothing in the output distinguishes “you have no meetings” from “I could not read your meetings”. You act on the first and discover the second on Thursday.
It reports the wrong day
A local Desktop task that misses its slot runs one catch-up when the machine next wakes. A 7am brief can be produced at 11pm and still be written in the present tense about “today”. Cloud routines have a milder version of the same thing: runs scheduled exactly on the hour can start several minutes late, which is why Anthropic suggests 9:07 over 9:00.
It compresses away the thing you needed
Three overlapping meetings become “a busy morning”. The conflict — the single most actionable fact in the whole brief — has been summarised out of existence.
It leaves no trace
Next week you cannot tell whether Tuesday’s brief ran and found nothing, or never ran at all. Both look identical from where you sit, which is to say: they look like nothing.
The eight checks applied #
Each fix below maps to one of the checks in the eight-point pass.
| Check | What it changes in this prompt |
|---|---|
| Self-contained | Names the slot time, the sources, the caps and the output file. No conversational context assumed. |
| Sources named | A SOURCES section with a status line and an item count per source. |
| Verified | Step 4 re-opens the report and checks counts, times and traceability — and can set the run to PARTIAL. |
| Idempotent | A run-id derived from the slot; a repeat run replaces its own log line instead of adding a second. |
| Honest when blind | Two outcomes per source — read orunavailable . Never one. |
| Least privilege | A hard rule banning every write action, plus trimming the connector list before the first run. |
| Fails loudly | An explicit OK / PARTIAL status and one log line per run. |
| Time-aware | Step 1 reads the clock and changes the output — not just a note about it. |
The hardened prompt #
Paste this over the template’s instructions. Adjust the slot time and the source list to match yours; leave the structure alone.
You are running unattended as the "Morning Brief" routine. You have no conversation
context. Everything you need is named in this prompt.
STEP 1 — CLOCK
Read the current local date and time before anything else. Compare it with the
intended slot of 07:05 local.
- Within 3 hours of the slot: proceed normally.
- More than 3 hours late: put "LATE RUN — produced at <time> for the <date> slot"
as the first line of the report, and cover the period the slot intended, not the
last 24 hours from now.
- After 18:00 local: produce the SCHEDULE and OPEN LOOPS sections only. Skip
"Today's focus" entirely — a focus list written at 11pm is noise.
STEP 2 — READ, ONE SOURCE AT A TIME
For each source — calendar, email, messages — record one of exactly two outcomes:
read: <count> items for <explicit window>
unavailable: <the exact error or refusal text>
Never infer absence from a failure. If a source is unavailable, the section it feeds
says "unavailable: <reason>" and keeps any previous value with its ORIGINAL date
stamp. An empty section and an unreadable section must never look the same.
Cap each source at 50 items. If you hit the cap, say so and name what you did not read.
STEP 3 — WRITE
Report sections: SOURCES (the status lines from step 2), SCHEDULE, NEEDS A REPLY,
OPEN LOOPS, TODAY'S FOCUS (max 3, each traceable to an item above).
List every calendar item individually with its real start time. Do not summarise a
schedule into an adjective. Flag overlapping items explicitly as CONFLICT.
STEP 4 — VERIFY BEFORE YOU REPORT
Re-open the report you wrote. Confirm: the item counts in SOURCES match the number
of items actually listed below; every meeting time appears as read, not rounded;
every focus item traces to a listed item. List these three checks and their results
in a VERIFICATION section. If any check fails, the status is PARTIAL, not OK.
STEP 5 — LOG
Append one line to logs/RUNLOG.md:
<ISO time> | brief | <run-id> | OK|PARTIAL | <one-line summary> | <owner action or none>
Compute run-id as <YYYYMMDD-HHMM>-brief. If a line with this run-id already exists,
replace it rather than adding a second.
HARD RULES
Never send, reply to, archive, delete or post anything. This routine reads and
writes one report file. Nothing else.
One more thing before you turn it on #
The prompt is only half of it. Open the routine’s Connectors section and remove everything the brief does not need.
Every connector attached to your account is included in a new routine by default, and during a run Claude can use any tool from an included connector — writes included — without asking. A read-only brief has no business holding a connector that can send mail. The HARD RULES block above is a second line of defence, not the first one.
What changed, in one paragraph #
A clock check that alters the output rather than annotating it. Per-source status lines, so blindness becomes visible instead of invisible. Individual meeting times instead of an adjective. A verification section that is capable of failing. And a run log keyed to a run-id, so a double fire does not double-write and a fortnight of silence is something you can look up.
That is the whole method. The other seven templates — Email triage, System health check, Issue triage, PR review digest, Dependency update check, Release notes drafter, Flaky test tracker — each fail in their own specific way and each get the same eight-point treatment in The Routines Runbook, along with 32 ready-made routines built this way from the start.
Want the other seven hardened the same way? The Routines Runbook covers all eight templates plus 32 ready-made routines and the fourteen guardrail patterns behind them — or take the free 5-routine starter first.
This page describes the failure modes of the task, not the wording of Anthropic’s templates, and does not reproduce their prompt text. Platform behaviour was checked against the Routines and Desktop scheduled tasks documentation on 5 October 2026. Not affiliated with Anthropic.