בס״ד

AUTOMATIONS MAP — everything that runs on its own, where it runs, how to reach it

docs/AUTOMATIONS_MAP.md · last changed (pre-VM history) · rendered from GitHub master

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)

Source trail · docs/AUTOMATIONS_MAP.md @ master · rendered 2026-07-02 7:23 PM EDT by scripts/build-docs.py · the .md in the repo is the truth; this page is the phone-readable view