recent-changes

Obsidian-git auto-commits every few minutes with identical messages (vault backup: 2026-04-19 00:18:44), so commit-message summaries are worthless. This skill works from the file-level diff between a cutoff point and HEAD, not from commit messages.

When to use

  • Before reconcile — this is the primary caller. Reconcile scopes its work to the set of changed pages.
  • User asks “what changed” — “what happened this week”, “what did I work on”, “what’s been going on in the vault”.
  • Before a substantive edit — if you’re about to edit a page, knowing whether it was touched recently (and by whom — the user directly, or a prior agent run) changes how carefully you should proceed.
  • Before crystallize or consolidate — recency is one of the bar checks.

When NOT to use

  • Finding when a specific file changedgit log --follow <path> is more direct.
  • Getting vault structure — use vault-tree. Recent-changes shows a delta, not the whole.

How

Run the helper:

bash 7_Agent/skills/recent-changes/recent-changes.sh

Flags:

  • --days N — window in days (default 7).
  • --with-diff — append a unified diff at the end, gated by size.
  • --diff-limit N — cap on diff lines when --with-diff is set (default 2000). Above the cap, the diff is omitted with a note.

Examples:

# Default: last 7 days, no diff body
bash 7_Agent/skills/recent-changes/recent-changes.sh
 
# Two-week window
bash 7_Agent/skills/recent-changes/recent-changes.sh --days 14
 
# Include diff when it's small
bash 7_Agent/skills/recent-changes/recent-changes.sh --with-diff
 
# Wider diff cap for a heavier read
bash 7_Agent/skills/recent-changes/recent-changes.sh --with-diff --diff-limit 5000

Output shape

# Recent changes — last 7 days

Range: abc1234..HEAD (2026-04-12 → 2026-04-19, 187 commits)

## Summary
- Added: 5
- Modified: 12
- Deleted: 1
- Renamed: 2

## By folder
- 0_Inbox: 3 (A=2, D=1)
- 2_Areas: 6 (A=1, M=5)
- 7_Agent: 8 (A=2, M=6)

## Files
A	0_Inbox/transcripts/foo.md
A	2_Areas/Photography/techniques/x.md
M	2_Areas/Photography/_index.md
R100	2_Areas/Old Path.md	2_Areas/New Path.md
D	0_Inbox/bar.md
...

The By folder block is the fastest orientation — it tells you at a glance which PARA areas saw action. The Files block is the full delta.

How this handles the two known quirks

  1. Auto-commit noise. The script ignores commit messages entirely. It computes one diff between the pre-window commit and HEAD; the 187 auto-commit messages don’t leak through.
  2. Refactors / folder moves. Rename detection is on (git diff -M). A folder move shows as R entries with old → new paths instead of a flood of D + A pairs. If you need the full patch for a large refactor, the --with-diff cap protects you — the script will note when the diff is too large and skip it, and you can then use git show on specific files.

Rules

  • Read-only. This skill never edits files.
  • File-level first, diff body second. Always start from the file list; only pull the diff when you need to reason about content changes.
  • Don’t re-run for every sub-question. Cache the output for a session — the window doesn’t change in the middle of a task.
  • Bigger windows are fine. The cost scales with the diff, not the commit count, and the script is deliberately cheap.