One source of truth for how SAIL's scheduled tasks and Claude routines run. Every SAIL task SKILL.md should link back here from its pinned start-here block. If the runbook and a SKILL.md disagree, the runbook wins and the SKILL.md gets updated.
Two GitHub repos under samaguiar1982-cpu. Both private, both writable by the automation GitHub app.
sail-scheduled-tasks: canonical SKILL.md for each individual task, plus _post-run-qa-reflection.md (the QA framework). One folder per task. This is where Sam and future agents read and edit task logic.sail-automation: the repo mounted by Anthropic Claude Code Routines at runtime. Contains CLAUDE.md (firm context auto-loaded on every routine), scripts/ (shared Python helpers), skills/ (shared skills like sail-gads-runner). Routines import from here rather than reimplementing per task.SAIL's scheduled tasks run on Anthropic Claude Code Routines, not on a self-hosted runner, not on GitHub Actions. At runtime the routine:
samaguiar1982-cpu/sail-automation as its working repo.CLAUDE.md from that repo for firm context.vault.env on Sam's Mac (transitional, interactive-only).sail-scheduled-tasks.Implication: "migrate to cloud" for SAIL is not about provisioning a new cloud environment. Anthropic already runs the routines. The work is populating sail-automation with the shared skills and helpers so routines stop depending on Mac-host paths.
All Google Ads tasks are read-only. They pull via GAQL on Google Ads API v30. adspirer MCP is not used. MCC login_customer_id must be set to 8676599345 in code before the client loads, not trusted from google-ads.yaml.
3813916687867659934523723841732 (primary, SAIL - Car Accidents 2026), 23729092958, 23729092712