Weekly Review: a Finished Review Instead of a Blank Page
Every Friday, have Claude Code turn your week's note activity into a written review.
Run this workflow
CI-verified, 5/5 fixtures passing.
Build this with your agent
One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.
Intended Use
Anyone who does a weekly review and wants Claude Code to draft it from the notes you actually touched that week (accomplishments, decisions, tasks done vs planned, patterns, next-week priorities), on a Friday schedule.
Not for
- Vaults where you don't edit notes through the week, there'd be nothing to summarize
- Anyone who hasn't backed up their vault
The Stack
Tested Against
claude-codebash@5.xcoreutils@9.xobsidian@1.7.xSide effects & data flow
- Network
- Anthropic API, only in the non-CI Claude step
- Writes
- ./vault/Reviews/, ~/bin/weekly-review.sh
- Credentials
- Claude Code login, for the review step only
Data privacy
- Anthropic (Claude), only in the non-CI agent step ← the notes you modified in the last 7 days (retention: per Anthropic's API/data policy)
Prerequisites
- Claude Code installed and logged in
- An Obsidian vault you edit through the week
- cron (built into macOS/Linux)
Steps
- 1
Check your toolchain
The mechanical core needs bash, find and date. Claude Code is the agent for the final step.
for bin in bash find date; do command -v "$bin" >/dev/null 2>&1 || { echo "MISSING required: $bin"; exit 1; } done command -v claude >/dev/null 2>&1 || echo "optional (needed for the review step): claude" echo "preflight OK on $(uname -s)" - 2
Find this week's notes (the deterministic core)
This is the exact command the review runs: list every markdown note modified in the last 7 days. We seed a recent note and prove find picks it up.
mkdir -p vault/Notes vault/Reviews printf 'x\n' > vault/Notes/weekly-target.md find vault -name '*.md' -mtime -7 | sed 's#.*/##' | sort -u - 3
Write the scheduled script
The exact weekly-review.sh from the guide, made executable, carrying the find command and the claude -p call.
mkdir -p bin cat > bin/weekly-review.sh <<'EOF' #!/usr/bin/env bash cd ~/Documents/MyVault claude -p "Find every note modified in the last 7 days (run: find . -name '*.md' -mtime -7). Create Reviews/$(date +%F)-weekly.md covering: accomplishments, decisions made, tasks completed vs planned, patterns you notice, and suggested priorities for next week." EOF chmod +x bin/weekly-review.sh test -x bin/weekly-review.sh && grep -q 'mtime -7' bin/weekly-review.sh && echo "weekly-review ready" - 4
Check the Friday cron line
Prove the 5pm-Friday schedule is well-formed.
echo "0 17 * * 5 /Users/you/bin/weekly-review.sh" | grep -Eq '^0 17 \* \* 5 ' && echo "cron OK: Friday 17:00" - 5
Let it run (the Claude step, not checked by CI)
Schedule it (`0 17 * * 5 ~/bin/weekly-review.sh`) and Claude Code drafts your review every Friday. Non-deterministic and key-gated, so CI doesn't run it, the badge covers the find command, script and schedule above.
Eval, 5 fixtures
Last passed: verified todaypreflight-okcontainstimeout 15s · max $0Expected:
preflight OKfind-recentcontainstimeout 15s · max $0Expected:
weekly-target.mdscript-readycontainstimeout 15s · max $0Expected:
weekly-review readycron-fridaycontainstimeout 15s · max $0Expected:
cron OK: Friday 17:00clean-exitexit_codetimeout 15s · max $0Expected:
0
Results
Drops the weekly review from an hour of writing to two minutes of reading, from the WebAfterAI guide.
Did this work for you?
Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.
Related workflows
- One AGENTS.md, no drift: prove CLAUDE.md is a real symlink and the generated files are in sync
- One shared memory for every coding agent: prove the configs actually point at the same server
- Self-hosting the open-source stack? Prove your backup actually restores before you need it
- Chat with a CSV, but pin a known-answer guardrail so a wrong query cannot pass
- Advisor pattern: cap how often the expensive model gets called, and catch drift
- Route through a gateway with a tested open-weights fallback
Liked this workflow?
Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).