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.
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 10d agoclean-exitexit_codetimeout 15s · max $0Expected:
0cron-fridaycontainstimeout 15s · max $0Expected:
cron OK: Friday 17:00find-recentcontainstimeout 15s · max $0Expected:
weekly-target.mdpreflight-okcontainstimeout 15s · max $0Expected:
preflight OKscript-readycontainstimeout 15s · max $0Expected:
weekly-review ready
Results
Drops the weekly review from an hour of writing to two minutes of reading, from the WebAfterAI guide.