AutomationOpen SourceFreeActiveMachine-verified· intermediate · ~15 min setup

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.

by Shilpa Mitra· verified 10d ago· v1.0.0

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.x

Side 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. 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. 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. 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. 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. 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 ago
  • clean-exitexit_codetimeout 15s · max $0

    Expected: 0

  • cron-fridaycontainstimeout 15s · max $0

    Expected: cron OK: Friday 17:00

  • find-recentcontainstimeout 15s · max $0

    Expected: weekly-target.md

  • preflight-okcontainstimeout 15s · max $0

    Expected: preflight OK

  • script-readycontainstimeout 15s · max $0

    Expected: weekly-review ready

Results

Drops the weekly review from an hour of writing to two minutes of reading, from the WebAfterAI guide.