Scans all git repos and flags projects with dangerously large uncommitted changes. Right now, operator has 1,322 uncommitted files and deboerbuilding has 467 — that's massive WIP at risk from a crash, accidental git clean, or disk failure. This is the inverse of stale-project-nudge: instead of flagging abandoned repos, it flags repos where you have too much unsaved work drifting without a safety net.
Create ~/bin/drift-alert as a bash script (~60 lines). It scans ~/*/. git repos, counts uncommitted files (git status --porcelain | wc -l), checks days since last commit, and computes a drift score (files × days). Repos exceeding a threshold (e.g., score > 100 or files > 50) trigger a desktop notification via notify-focus with the repo name, file count, and days adrift. Add a --auto-branch flag that creates a timestamped WIP branch (wip/YYYY-MM-DD) and commits all changes with message 'WIP safety snapshot' — a recoverable checkpoint without polluting main history. Schedule via cron: twice daily (11am and 6pm) for notifications, weekly (Sunday night) for auto-branch snapshots. Output also writes a one-line-per-repo summary to ~/Tablet/drift-report.txt for the morning tablet brief to pick up.
**`~/bin/drift-alert`** (85 lines, executable)
- Scans all `~/*/.git` repos for uncommitted changes
- Computes drift score: `file_count * days_since_last_commit`
- Alerts via `notify-focus` when files > 50 or score > 100
- `--auto-branch` creates a `wip/safety-YYYY-MM-DD` branch with a WIP commit (stash-branch pattern so it doesn't touch your current branch)
- `--quiet` suppresses notifications and stdout
- Writes sorted report to `~/Tablet/drift-report.txt` for the morning tablet brief
**Cron jobs (system crontab):**
- `0 11,18 * * *` -- twice-daily desktop notification with at-risk repos
- `0 22 * * 0` -- Sunday 10pm auto-branch safety snapshots (quiet)
**First run results:** 20 repos scanned. Top risks flagged: operator (1,322 files), deboerbuilding (467), zachsbachelor.party (152), legacy-map-builder (119). Several repos with no commits ever (999 days) also surfaced.