Build

Apps

AI

5

Pointer app — the code lives in the dashboard.ashkaan.me repo (github.com/Ashkaan/dashboard.ashkaan.me, checked out at ~/code/dashboard.ashkaan.me).

Connects to
Cloudflare KVGitHub APIUptime Kuma
ManualCommit-driven (repository_dispatch from this repo's post-commit hook) + manual workflow_dispatch

Cross-provider AI prompt router.

Connects to
Google GeminiCodex CLIClaude Code CLIGrok CLIUptime Kuma1Password
ManualLibrary

Pointer app — the code lives in the for-anthropic.ashkaan.me repo (~/code/for-anthropic.ashkaan.me).

Connects to
Cloudflare PagesClaude APIUptime Kuma
ManualOn demand (site visitors); Kuma active HTTP probe for health

Weekly Monday comprehensive system update of Daedalus: full apt dist-upgrade (all packages, reboot-if-kernel), Claude Code, Gemini CLI, Codex, HAPI, Wrangler, Playwright Chromium, yt-dlp, grok, impeccable, VS Code CLI + extensions, and a context-repo git pull.

Connects to
aptnpmClaude CodeHAPIGitHub
trigger.devWeekly Monday 2:30 AM PT

Weekday 5:24 AM PT trigger.dev task that emails repo-optimization recommendations produced by a Codex agent running INSIDE the repo on Daedalus.

Connects to
Codex (agent, on Daedalus)ResendSSH (Daedalus)Cloudflare KVUptime Kuma
trigger.devMon-Fri 5:24 AM PT

Finance

2

Monthly portfolio review email (1st Monday).

Connects to
Monarch Money (via integrations/monarch/monarch.ts)Financial Modeling Prep (via integrations/fmp/fmp.ts)Yahoo Finance (via integrations/yahoo-finance/yahoo_finance.ts)Gemini AI (via apps/ai/prompt-router/router.ts)Resend (via integrations/resend/resend.ts)
trigger.devMon 5:38 AM PT (1st Monday)

Nightly QBO + Monarch fetch for the WSP business finance snapshot — canonical JSON committed to the repo (via SSH+commitViaSsh), envelopes written to Cloudflare KV (dashboard:finance, profitability:*, cashflow:latest, ar-aging:latest).

Connects to
QuickBooks Online (via integrations/qbo/qbo.ts)Monarch (via integrations/monarch/monarch.ts)Autotask PSA (via integrations/autotask/autotask.ts)Cloudflare KV (via integrations/cloudflare/cloudflare.ts)Uptime Kuma (via integrations/uptime-kuma/uptime-kuma.ts)GitHub-via-SSH (via integrations/github/git_local.ts commitViaSsh)
trigger.devDaily 4:00 AM PT

Growth

6

Daily 5:30 AM PT morning briefing — Calendar + Todoist + goals + projects → HTML email

Connects to
googletodoistuptime-kuma1passwordssh (Daedalus)
trigger.dev30 5 * * * America/Los_Angeles

Daily email reminder with weighted-random picks from Jess's caring behaviors list (Imago Exercise 10).

Connects to
Resend (via integrations/resend/resend.ts)
trigger.devDaily 5:50 AM PT

Personal and professional goal tracking with quarterly review protocol.

Connects to
trigger.dev (self-hosted v4 at trigger.ashkaan.me)Daedalus SSH (repo reads + writes via the local clone)Uptime Kuma (push monitor on slug app-growth-goals-sync)
trigger.devEvent-driven (producer-fired triggerTask)

Daily HTML email roundup curating stories from 30+ RSS feeds across 7 topics (Game Reviews, Album Reviews, Tech, Cybersecurity, Science, Politics, World News) via the cross-provider AI router.

Connects to
Resend (via integrations/resend/resend.ts)AI Router (Gemini/Codex/Haiku) via apps/ai/prompt-router/router.tsRSS feeds (30+ across 7 topics)
trigger.devDaily 5:08 AM PT

Daily HTML email digest clustering cross-perspective debate topics from 24 opinion sources, with Sunday New Voice Spotlight.

Connects to
Resend (via integrations/resend/resend.ts)AI Router (Gemini/Codex/Haiku) via apps/ai/prompt-router/router.tsRSS feeds (24 sources + 15-source Sunday discovery pool)
trigger.devDaily 5:00 AM PT

Weekly HTML email spotlighting the 1-3 upcoming technologies worth paying attention to this week, synthesized from 13 curated YouTube channels via a two-pass AI pipeline (per-video extraction + cross-video synthesis).

Connects to
Resend (via integrations/resend/resend.ts)YouTube (RSS + in-container yt-dlp)AI Router (Gemini/Codex/Haiku) via apps/ai/prompt-router/router.ts
trigger.devWeekly Monday 5:16 AM PT

Health

1

Comprehensive health tracking: biomarkers, supplements, genetics (APOE e4/e4), diet, fitness, sleep.

Connects to
GitHub APITrigger.devUptime Kuma
trigger.devWebhook-triggered (iPhone Shortcut on demand)

Homelab

16

Daily read-only Uptime Kuma alert digest.

Connects to
Uptime KumaHermes SSHtrigger.devGitHubResend1Password
trigger.devDaily 4:40 AM PT

Daily passive probe of every homelab backup's freshness.

Connects to
SSH (runner → Hermes:8222 + Apollo:8222)TrueNAS midcltGarage S3Uptime Kuma
trigger.devDaily 6:00 AM PT

Runtime-neutral date/time formatting helpers (Pacific Time defaults).

ManualLibrary

The durable deploy guarantee for the repo.

Connects to
Trigger.devUptime KumaDaedalus (SSH)
trigger.devDaily 7:15 AM PT

Resend-backed send service that other trigger.dev apps call to email a user, via tasks.triggerAndWait("email-sender", { to, subject, html, from?, replyTo?

Connects to
Resend1PasswordTrigger.dev
trigger.devOn demand

Invocation-only trigger.dev task that patches + reboots the whole homelab in one pass via a durable KV state machine resumed by a delayed (+5m) self-trigger that survives the only two runner-killers (Hermes OS reboot + trigger-stack update).

Connects to
KomodoUniFipfSenseHome AssistantProxmoxTrueNASUptime KumaCloudflare KV1Password
trigger.devOn demand (invocation-only; no cron)

Daily dump of 9 Cloudflare KV namespaces (portal-site prefs + nulegal-com intake) to gzipped JSON files in Garage S3 bucket `cloudflare-kv-backup`.

Connects to
Cloudflare KV APIGarage S3 (SigV4)Uptime Kuma
trigger.devDaily 4:15 AM PT

Daily audit of 36 data-SLA KV rows (freshness, completeness, envelope presence, attendance week-coverage) that pushes one Uptime Kuma push monitor per row.

Connects to
Cloudflare KVUptime Kuma1Password
trigger.devDaily 6:30 AM PT

Weekly audit that flags any scheduled task whose p95 runtime is creeping toward its own maxDuration ceiling (the latent-Emma precursor) and pushes one Uptime Kuma heartbeat.

Connects to
trigger.devGitHubUptime Kuma1Password
trigger.devWeekly Mon 6:00 AM PT

Generic OAuth2 refresh-token flow with 1P-backed storage and verify-after-write.

Connects to
1Password
ManualLibrary

Keeps every 1P-rotating OAuth credential's access_token fresh in 1Password via Connect — Strety, QBO, and five Google OAuths.

Connects to
1PasswordTrigger.devUptime KumaGmail
trigger.devEvery 15 minutes

Daily mirror of every Ashkaan-owned GitHub repo to hermes:/mnt/pool/backup/github via `git clone --mirror` / `git remote update`.

Connects to
GitHub APISSH (runner → Hermes:8222)Uptime Kuma
trigger.devDaily 3:00 AM PT

Generic RSS / Atom feed primitives (CDATA/tag stripping, item parsing, feed fetch).

ManualLibrary

Sunday 3:00 AM PT weekly backup of 11 service exports + network-device configs to 11 fixed Google Drive folders, plus an Uptime Kuma heartbeat per target.

Connects to
todoistmonarchgoogleunifipfsensetruenasuptime-kuma1passwordtrigger-dev
trigger.devSunday 03:00 PT (cron 0 3 * * 0, America/Los_Angeles)

Shared SSH execution helper for cross-host commands (truenas, home-assistant, proxmox, daedalus).

Connects to
TrueNASHome AssistantProxmox
ManualLibrary

Renders and pushes content to the TRMNL OG e-ink display, across five trigger.dev v4 schedules.task.

Connects to
TRMNL (custom-plugin webhook + image webhook)SSH (runner → Daedalus clone: goals.md / projects/README.md / game cards)Cloudflare KV (media-game-club-DATA[dataset] — games scores + covers)prompt-router (til science fact; Gemini→Codex→Haiku)Uptime Kuma
trigger.devfocus-board */15 min · til 08:00 · gratitude 10:00 · philosophy 12:00 · games 14:00 (PT)

Legal

6

Generates and publishes one fresh mass-tort blog post for nulegal.com every Wednesday 09:00 AM PT.

Connects to
prompt_ai_neutral (Gemini/Codex/Haiku fallback chain via apps/ai/prompt-router/router.ts)nulegal.com repo on Daedalus (via DAEDALUS_SSH_PRIVATE_KEY)Google News RSS (4-category fan-out)Cloudflare Pages (auto-deploys on git push to nulegal.com main)Uptime Kuma (push monitor `app-legal-nulegal-blog-writer`)
trigger.devWeekly Wednesday 09:00 AM PT (cron `0 9 * * 3` America/Los_Angeles)

Pointer app — the code lives in the nulegal.com repo (~/code/nulegal.com).

Connects to
Cloudflare PagesUptime Kuma
ManualEvent-driven (intake form submissions)

Autonomous lead-lifecycle engine for NuLegal mass-tort referrals.

Connects to
Resend (NuLegal account, a@nulegal.com)DocuSeal (docuseal.ashkaan.me, template 1)Google Gmail (read a@nulegal.com replies + send digest, googlePersonal)Cloudflare KV (INTAKE_DATA)prompt-router (reply classification)Uptime Kuma
trigger.dev (node-22, legal domain bundle)0 */3 * * * (every 3 hours)

Sends one approved TCPA demand letter via Resend sendEmail, from NuLegal <a@nulegal.com>.

Connects to
Cloudflare KVResend
trigger.devOn demand (invoked by /tcpa-claim)

Daily trigger.dev scheduled task that reads each open TCPA claim's response-deadline + status from the context repo (GitHub API) and pushes one Uptime Kuma monitor DOWN + email when any open claim is past its deadline.

Connects to
GitHub APIUptime Kuma1Password
trigger.devDaily 09:00 AM PT

TCPA escalation approval flow — emails Ashkaan a final-notice draft with click-to-trigger Approve/Reject buttons (GET → actions.wesolve.tech Worker → trigger.dev task), Approve sends the letter to the company from a@nulegal.com via Resend.

Connects to
ResendCloudflare KV1PasswordCloudflare Worker (actions.wesolve.tech)
trigger.devOn demand (invocation-only)

Media

12

Daily 5:00 AM PT trigger.dev v4 schedules.task — reads the book-club card tree, enriches each book's Audible cover + rating (cache-first; Audible is the rating source of truth), scores via the taste-based v2 formula, stamps the rating into queue cards + commits cards + top-20.md via commitViaSsh, and writes the atomic scores/covers/completed dataset to Cloudflare KV (media-book-club-DATA).

Connects to
Audible (public scrape)Cloudflare KV1Password ConnectUptime Kuma
trigger.devDaily 5:00 AM PT

Monthly book-discovery email.

Connects to
Cloudflare KVResendAudible (scrape via Daedalus SSH)AI router (Gemini)
trigger.devMonthly — last Sunday 5:36 AM PT (fires every Sunday; runtime gate no-ops all but the last)

Daily 6:30 AM PT trigger.dev v4 schedules.task — reads food-club cards from Daedalus, gates due cards, runs the headed-Chrome Google delivery scrape on Daedalus, sticky-merges the per-app Delivery list, and commits changed cards via commitViaSsh (fans the dashboard:food sync).

trigger.devDaily 6:30 AM PT

Daily 5:00 AM PT trigger.dev v4 schedules.task — fetches the three HowLongToBeat lists, renders game-club cards, enriches queue games (series/blurb/genre/developer/ ggdeals via the AI router; Metacritic critic deterministically), ranks via the frozen formula, commits cards + top-20.md via commitViaSsh, and writes the atomic scores/covers/completed dataset to Cloudflare KV (media-game-club-DATA).

Connects to
HowLongToBeat APIMetacritic1Password ConnectUptime Kuma
trigger.devDaily 5:00 AM PT

Monthly game-discovery email.

Connects to
Cloudflare KVResendUptime KumaAI router (Gemini)
trigger.devMonthly — last Sunday 5:30 AM PT (fires every Sunday; runtime gate no-ops all but the last)

Event-triggered trigger.dev v4 task — flips one media-club queue item's interest flag at its canonical source (queue card via commitViaSsh for game/book, Plex Watchlist via the Discover API for movie), then triggers the owning club ranker's lightweight rescore and waits (bounded poll) for the real recomputed order.

Connects to
Plex Discover API (movie watchlist write)GitHub (commitViaSsh card write)1Password ConnectUptime Kuma
trigger.devEvent (tasks.trigger from the dashboard edge route or Claude)

trigger.dev v4 schedules.task for daily *arr queue cleanup, qBittorrent + SABnzbd download hygiene, and Apollo orphan cleanup over SSH.

Connects to
SonarrRadarrqBittorrentSABnzbdUptime Kuma1Password
trigger.devDaily 3:15 AM PT

Daily 6:30 PM PT trigger.dev v4 schedules.task — reads the Plex [Beta] Movies section as the scored universe + the Movies Collection for star ratings, enriches each movie via TMDB + the IMDb ratings dataset (stream-filtered), runs the v3 watchlist-derived base scoreMovie formula, commits cards + top-20.md via commitViaSsh, and writes the atomic scores/covers/completed dataset to Cloudflare KV (media-movie-club-DATA).

Connects to
PlexTMDBIMDb datasets1Password ConnectUptime Kuma
trigger.devDaily 6:30 PM PT

Monthly movie-discovery email.

Connects to
Cloudflare KVResendUptime KumaAI router (Gemini)
trigger.devMonthly — last Sunday 5:36 AM PT (fires every Sunday; runtime gate no-ops all but the last)

Event-triggered trigger.dev v4 task — on a gaming-PC Playnite library push, moves newly-owned games out of the HowLongToBeat wishlist (custom list) and into the HLTB backlog via /api/submit, year-aware so a wrong-edition match is never moved.

Connects to
HowLongToBeat API1Password ConnectUptime Kumaemail-sender (trigger.dev)
trigger.devEvent (Playnite menu push, no timer)

Daily 5:30 AM PT trigger.dev v4 schedules.task that runs the Stash media library maintenance pipeline: scan, generate phashes, deduplicate via DupFileManager, generate covers/sprites/previews, clean orphaned metadata, and optimise the SQLite database.

Connects to
Stash (GraphQL API at `http://10.2.0.27:9999`)Uptime Kuma
trigger.devDaily 5:30 AM PT

trigger.dev v4 schedules.task that discovers new Pinchflat YouTube downloads and imports them into Sonarr via the ManualImport API (Sonarr does the file move).

Connects to
SonarrPinchflatUptime Kuma1Password
trigger.devDaily 3:30 AM PT

WSP

32

Deterministic CA-labor-code attendance auditor for the 3-person WSP roster.

Connects to
MSPBotsCloudflare KVGmailUptime Kuma1Password
trigger.devDaily 10 PM PT; Friday runs also email HR

Builds wesolve.tech's blog into the best GEO-citable answer surface for LA business IT buyers.

Connects to
prompt_ai_neutral (Gemini/Codex/Haiku fallback chain via apps/ai/prompt-router/router.ts)wesolve.tech repo on Daedalus (via DAEDALUS_SSH_PRIVATE_KEY)Google News RSS (3-category fan-out)Cloudflare Pages (auto-deploys on git push to wesolve.tech main)Uptime Kuma (push monitor `app-wsp-blog-writer`)
trigger.devblog-writer Weekly Monday 09:00 AM PT (`0 9 * * 1`) + blog-writer-refresh Weekly Thursday 09:00 AM PT (`0 9 * * 4`), America/Los_Angeles

On-demand trigger.dev task that pulls Autotask ticket metrics (current + prior quarter), NinjaOne hardware lifecycle, and wsp-assessments findings for one client + review period, then writes the assembled review-snapshot to SALES_DATA KV for the sales portal's QBR detail view.

Connects to
AutotaskNinjaOneCloudflare KV1Password
trigger.devOn demand (triggered by sales.wesolve.tech "Pull data")

Weekly WSP client security assessment.

Connects to
Cloudflare KVGoogle Workspace (Admin SDK)Microsoft 365 (Graph)NinjaOne (NinjaRMM)Uptime Kuma1Password
trigger.devWeekly Monday 4:00 AM PT

Emails one Connector Program reminder per due connector to a@ashkaan.me via in-process Gmail.

Connects to
Cloudflare KVGoogle Gmail1PasswordUptime Kuma
trigger.devHourly (sends only when the configured hour-in-timezone matches)

Weekly scan of every Autotask action Emma Mayberry (Ops/HR, Autotask resource 29682898) took on tickets the prior week.

Connects to
Autotask (Datto PSA)Google SheetsUptime Kuma1Password
trigger.devWeekly Mon 05:48 PT

PUSH-triggered trigger.dev task that turns a WSP portal feature-request or bug-report into an AI implementation plan (or triage analysis) and emails it.

Connects to
apps/ai/prompt-router/router.ts (in-process: Gemini → Codex → Haiku fallback)apps/homelab/email-sender (cross-project REST trigger via integrations/trigger-dev/trigger_dev.ts)Uptime Kuma (per-run heartbeat receipt)
trigger.devnone (push only)

Computes a deterministic rolling 13-week First-Time-Resolution percentage from Autotask help-desk tickets once nightly and writes the single ops:ftr-weekly key to the OPS_DATA namespace.

Connects to
AutotaskCloudflare KVUptime Kuma1Password
trigger.devNightly 4:29 AM PT

Pulls Google Search Console search-analytics for sc-domain:wesolve.tech once daily and writes 8 marketing:* KV keys to the SALES_DATA namespace.

Connects to
Google Search ConsoleCloudflare KVUptime Kuma1Password
trigger.devDaily 6:00 AM PT

Auto-generates WSP LinkedIn posts on Mon/Tue/Wed mornings — AI drafts a post + branded quote-card image, emails Ashkaan approve/reject buttons, publishes on approve or regenerates on reject.

Connects to
LinkedIn Share on LinkedIn API (WSP Content Publisher app)apps/ai/prompt-router/router.ts (in-process: Gemini → Codex → Haiku fallback)Playwright on Daedalus (branded quote-card screenshot via apps/homelab/ssh/ssh_exec.ts)Cloudflare KV OPS_DATA (draft persistence)integrations/resend/resend.ts (in-process: sendEmail on CREDS.resendApiKey, from WSP <noreply@wesolve.tech>)Uptime Kuma (per-task heartbeat receipts)
trigger.devM/T/W 5:50 AM PT (draft), daily 6 AM PT (cleanup)

Performs a single nightly read-modify-write cycle on FINANCE_DATA/mrr:clients across three ordered phases — contracts (Autotask contract end dates + WiFi/BPW entries), amounts (Autotask BLK/COM/WiFi MRR), and sheet-counts (per-client Google-Sheet user counts).

Connects to
AutotaskCloudflare KVGoogle Sheets1PasswordUptime Kuma
trigger.devNightly 4:19 AM PT

Nightly, AI-extracts the per-user onboarding date/email/name from Autotask new-user and new-mailbox tickets over a 400-day rolling window, groups the resulting events by calendar month, and writes one onboarding:events:YYYY-MM key per month to FINANCE_DATA.

Connects to
AutotaskCloudflare KVGitHub APIGemini / prompt-routerUptime Kuma1Password
trigger.devNightly 4:24 AM PT (cron 24 4 * * *)

Every-5-minute WSP service-desk operations snapshot.

Connects to
AutotaskQuickBooks OnlineCloudflare KVUptime Kuma1Password
trigger.devEvery 5 minutes (PT)

LA law-firm sourcing + AI ICP qualification via a public-source scrape pipeline (Justia + CA State Bar + firm sites) — qualified list to Cloudflare KV, no sending

trigger.dev

Phase 3b direct-hire scorer — invite passing applicants to the video screen + score completed screens with Gemini multimodal

trigger.dev

Candidate sourcer with two tasks — (1) hourly INBOUND pull (Get on Board / Torre / LinkedIn) → wesolve.tech/api/careers/ingest, and (2) weekday LinkedIn OUTBOUND (Sales Nav rate-governed invites → careers funnel).

trigger.dev

Tracks re-opened Autotask tickets grouped by ISO week and publishes the grouping to Cloudflare KV (ops:reopened:index + ops:reopened:week:{iso}, OPS_DATA).

Connects to
AutotaskCloudflare KVUptime Kuma1Password
trigger.devIncremental every 5 min PT + full sharded every 3h PT (one ISO week/run)

Every 30 minutes, polls Zoom Scheduler "Introductory Meeting" bookings and POSTs each to the sales.wesolve.tech intake endpoint, which creates/updates the sales pipeline (deals/companies/contacts in SALES_DATA KV).

Connects to
ZoomCloudflare Access (service token)1Password (Connect, in-container Zoom creds)Uptime Kuma
trigger.devEvery 30 min (0,30 * * * *, America/Los_Angeles)

TEMPORARY weekly delta-analyzer (App 2 of the 3-app WSP scorecard rebuild).

Connects to
StretyGmailGitHub (commitViaSsh + sshExec)Gemini / prompt-routerUptime Kuma1Password
trigger.devThu 12:30 PM PT

Monthly WSP EOS-scorecard finance-concentration sync (App 3 of 3).

Connects to
QuickBooks OnlineAutotaskStretyGitHub (commitViaSsh)Uptime Kuma1Password
trigger.devMonthly (6th, 6 AM PT)

Weekly WSP EOS-scorecard writer (App 1 of 3).

Connects to
AutotaskQuickBooks OnlineZoomGoogle CalendarCloudflare KVStretyGitHub (commitViaSsh)Uptime Kuma1Password
trigger.devMon 5:48 AM PT

Nightly per-client service-satisfaction snapshot for the WSP service desk.

Connects to
AutotaskCloudflare KVGemini / prompt-routerUptime Kuma1Password
trigger.devNightly 04:04 AM PT (4 4 * * * America/Los_Angeles)

6:00 PM PT capture of the WSP "Service Desk Monitoring" Autotask dashboard.

Connects to
AutotaskCloudflare KVResendUptime Kuma1Password
trigger.dev0 18 * * * (6:00 PM PT, daily — email Mon–Fri only)

Keeps the vendor-status board on operations.wesolve.tech current by calling the portal's own refresh endpoint every 5 minutes, so the page stops depending on a human opening it.

Connects to
Cloudflare AccessCloudflare KV1Password
trigger.devEvery 5 minutes PT

Triages new Autotask tickets every 5 minutes — one Gemini classification per human ticket plus a deterministic rule chain — and records the proposed actions to Cloudflare KV (OPS_DATA).

Connects to
Autotask (Datto PSA)Cloudflare KVGemini / prompt-routerGitHub (classification guide, raw)Uptime Kuma1Password
trigger.devEvery 5 min PT

Nightly onboarding time-estimate classifier for the WSP operations portal.

Connects to
AutotaskCloudflare KVGemini / prompt-routerUptime Kuma1Password
trigger.devNightly 04:19 AM PT (19 4 * * * America/Los_Angeles)

Daily per-tech weekly timeline KV writer for operations.wesolve.tech /tech-time.

Connects to
AutotaskMSPBotsCloudflare KVUptime Kuma1Password
trigger.devDaily 00:05 AM PT

Weekly TE (time-entry) quality-review email.

Connects to
cloudflare (OPS_DATA KV read/write)trigger-dev (cross-project email-sender trigger)uptime-kuma (heartbeat)
trigger.devMon 08:00 PT (cron 0 8 * * 1, America/Los_Angeles)

Nightly Autotask timesheet quality-flag engine for the configured WSP technicians — 14 flag types over the last 4 ISO weeks, per-tech / team stats, rolling trend, and coaching recommendations.

Connects to
AutotaskCloudflare KVUptime Kuma1Password
trigger.devNightly 4:09 AM PT

Weekly triage-bot accuracy reviewer.

Connects to
AutotaskCloudflare KVGemini / prompt-routerGitHub (commitViaSsh)SSH (Daedalus)GmailUptime Kuma1Password
trigger.devMonday 05:44 PT (cron 44 5 * * 1, TZ America/Los_Angeles)

On-demand trigger.dev task (wsp domain-bundle member) that reads the Hudu Company-Overview "VIPs" field, name-matches each VIP to an Autotask contact ID, and updates priority_signals.vip_contact_ids in the triage:config KV key.

Connects to
HuduAutotaskCloudflare KVUptime Kuma1Password
trigger.devOn demand (manual dispatch)

Every 2 hours, syncs Zoom AI Companion meeting summaries (plus the cloud-recording transcript when one exists) into the context repo as browseable markdown under knowledge/wsp/meetings/.

Connects to
ZoomGitHubUptime Kuma
trigger.devEvery 2 hours (cron 0 */2 * * *, America/Los_Angeles)