AUTOMATIONS MAP — everything that runs on its own, where it runs, how to reach it
Last updated: 2026-06-26 (Brain — folds in the 6/25-26 marathon). This does NOT auto-update — when an automation is added/changed, edit this file. Companion:
docs/TRIGGER_REGISTRY.md(Apps Script detail),docs/CLOUDFLARE_INVENTORY.md(CF workers/secrets),docs/CADENCE.md(the human rhythm).
The one thing to understand: automations run on FOUR layers — and only ONE is your desktop
Most of what runs is already in the cloud — it does NOT depend on your PC being on. Only Layer 4 is PC-tied. That's the key to the miniPC/cloud-VM question (bottom).
| Layer | Runs where | PC-off survives? | How you reach/manage it |
|---|---|---|---|
| 1. Cloudflare Workers + Cron | Cloudflare's cloud | ✅ yes | dash.cloudflare.com → Workers & Pages → the worker → Settings → Triggers (Cron); or wrangler.toml; or the Cloudflare MCPs (logs/builds) |
| 2. Google Apps Script triggers | Google's cloud | ✅ yes | script.google.com → the project → clock icon (Triggers); or each Sheet → Extensions → Apps Script |
| 3. Scheduled cloud agents ("Cloud Routines") | Claude/Codex cloud | ✅ yes | the /schedule command in Claude Code (list/create/edit routines) |
| 4. Your desktop PC | This machine | ❌ NO (dies if PC sleeps/off) | Windows Startup folder (shell:startup) + Task Scheduler (taskschd.msc) + running processes |
Layer 1 — Cloudflare Workers (cloud)
Manage: Cloudflare dashboard (account 80f0da535e7e84b988cc5260afb3c7e2) → Workers & Pages. Cron edits live in each worker's wrangler.toml or the dashboard Triggers tab.
ops-api — 5 cron triggers (the keystone backend; UTC → ET summer):
| Cron (UTC) | ET | What it does |
|---|---|---|
| 0 2 * * * | 10:00 PM | Nightly MIS snapshot + multiplexed Motzei-Shabbos re-entry brief (after havdalah) |
| 30 10 * * * | 6:30 AM | Plaid balance pre-warm (for the morning brief) |
| 0 21 * * * | 5:00 PM | Plaid balance refresh |
| 0 7 * * * | 3:00 AM | #042 nightly "Dreaming" — memory/Profile consolidation into D1 |
| 45 11 * * 1-6 | 7:45 AM Sun-Fri | Morning delivery — Yom-Tov-gated, verifies today's brief, pings you on Telegram (Sun = fuller weekend edition) |
⚠️ Free plan = max 5 crons per worker (a 6th fails silently). Day-of-week is 1=Sunday (so
1-6=Sun-Fri).
Other CF workers: hookstreet-ops (the portal/static deploy), levsms-edge (SMS davening/zmanim, day-aware), chanie-relay + manny-relay (family SMS), telegram-webhook (bot proxy → Apps Script).
Layer 2 — Google Apps Script triggers (cloud)
Manage: script.google.com → project → clock icon (Triggers). Full per-project list + editor links in docs/TRIGGER_REGISTRY.md (last full inventory 2026-05-03).
- command-inbox / Start Here (1GIAKkn…): the Telegram bot (doPost webhook), the morning briefing (~6:48 AM), auto-assemble (every ~4h, turns captures into cards), nightly Dreaming (DREAM via the CF cron).
- BOS v1 (1_cgriwCQ): the 7 triggers (Operations Summary, Daily/Weekly/Monthly Snapshot, Quick Capture, Mildred build) were SELF-DISABLED by Sam ~2026-05-27 — the cloud morning-spine (Telegram + portal) replaced BOS's email cadence. The "Monthly Obligations" sheet (1L_rxCS…) is still the canonical obligations data source of truth; it just doesn't email anymore. (Reconciled 6/30 — prior "7 triggers ✅" was stale.)
- BOS v2 (1ROnmAAh): RETIRE candidate — redundant twin, was the dup-email source; its 2 orphan triggers were deleted. Harvest only its forward-planning tabs (CASHFLOW_ASSUMPTIONS / CALENDAR_SEASONALITY / STRATEGY_NOTES) before retiring.
- v3-obligations.js (sheets/src/): coded but NEVER RUN; trending shelved (cloud spine won per CADENCE 6/11).
- MIS (1r9vWL1Ds): 7 — morning brief / playbook / power hour / EOD / Sunday week-ahead. (MIS engine HARD-FROZEN; reporting still fires.)
- LevSMS, CM Invoice: their own triggers (see registry).
Layer 3 — Scheduled cloud agents ("Cloud Routines")
Manage: the /schedule command inside Claude Code (these are cron'd Claude/Codex agents, not Workers/Apps-Script). To see/change them, run /schedule (or ask me to list/create/pause one).
LIVE-VERIFIED states (2026-06-30, via the routines API — last-fire proof, not just the toggle):
| Routine | Cron (UTC) | ET | State | Last actually fired |
|---|---|---|---|---|
| System Health Monitor | 0 12,17,22 * * * | 8am/1pm/6pm daily | 🟢 ACTIVE | 6/30 1:07 PM |
| Morning Execution Spine | 30 11 * * 1-5 | 7:30am weekdays | 🟢 ACTIVE | 6/30 7:32 AM |
| Weekly Review | 0 23 * * 0 | Sun 7pm | 🟢 ACTIVE | 6/28 (next 7/5) |
| Monday → Tomorrow Plan | 0 23 * * 1 | Mon 7pm | ⏸ PAUSED | 6/9 (redundant w/ Spine — delete candidate) |
| Reminder: Gmail/iMac | one-shot | — | ☠️ SPENT | 5/26 (fired once, dead — delete candidate) |
API has NO delete — the 2 dead ones are removed via the trash icon at claude.ai/code/routines (one click each). Harmless if left, just clutter.
⚠️ CROSS-LAYER MORNING REDUNDANCY (flagged 6/30 — needs a one-owner decision)
Three things touch the morning across three layers: Apps Script ~6:48 AM (Layer 2 morning briefing) + Cloud Routine 7:30 AM (this layer, Morning Execution Spine) + CF cron 7:45 AM Sun-Fri (Layer 1 "morning delivery/verify"). That's the source of double/triple morning pings. Recommended: the 7:30 routine BUILDS the brief (richest, anti-hallucination + must-land ping); the Apps Script 6:48 and CF 7:45 become verify-only or retire. Decision spans the Brain (Layer 1/2) + whoever owns the routine — coordinate, don't unilaterally cut.
Layer 4 — Your desktop PC (the ONLY PC-tied layer)
Manage: on this machine — shell:startup (Startup folder), taskschd.msc (Task Scheduler), Task Manager (running processes).
- go2rtc camera bridge (C:\Users\ztrei\go2rtc\) — pulls the NVR's RTSP streams so the portal cameras work. Auto-start installed 6/25 (Startup folder → relaunches on every login, survives reboot). Dies if the PC is off/asleep.
- cloudflared tunnel for cam.hookstreetservices.com (if running here) — same PC-tie.
- Claude Code sessions (Brain/Bee/MIS) — these run while a terminal is open on this PC.
How you'd reach all this from a miniPC or a cloud VM (the future)
The cloud layers (1-3) don't move and don't care which computer you use — they run in Cloudflare/Google/Claude's cloud. You reach them from any device (phone, iPad, miniPC, VM) via the same dashboards / the /schedule command. Switching PCs changes nothing for them.
Only Layer 4 (PC-tied) needs a new home — and it splits in two:
1. The camera bridge (go2rtc + cloudflared) MUST live on a box on your home LAN — it needs to reach the NVR at 192.168.4.47. A cloud VM CANNOT reach your home cameras. → this goes on a home miniPC / always-on box (~$150), not the cloud.
2. Always-on Claude Code / "the brain" can live on a cloud VM (talk to it from your phone with the laptop closed — the Cloud-Brain plan). It does NOT need the LAN.
So the end state: miniPC at home = cameras + anything LAN-bound · cloud VM = the always-on brain/sessions · everything in Layers 1-3 keeps running untouched. Moving off this desktop = move go2rtc to the miniPC + stand up the VM; the rest is already cloud.
Today's changes folded in (6/25-26)
- ops-api build path-scoped (
root=ops-api,path_includes=ops-api/*) → master pushes no longer clobber it; the 5 crons + worker run clean. Live versionad740523(30 secrets incl CAM_CF + iCal). - go2rtc auto-start installed (Layer 4 durability — survives reboot, not PC-off).
- Cache-buster staged in ops-api (kills stale camera-frame caching) — ships with the next deploy.
- Deploy method learned: future ops-api deploys use the CF
inheritbinding to keep all 30 secrets (no values needed). Seefeedback_ops_api_master_push_clobber. - Pending (one deploy): mis-bridge + /mis/brief + /mis/tile + grocery-remove + bee-send key + 5609
available+ cache-buster + live-calendar (iCal secrets inherit) — ships after HOA via the inherit-deploy.