Build Batch 1 of 16-routine automated ops system under /Users/samaguiar/Documents/Projects/routines-build. Batch 1 is the Monday SEO pack: 5 pure-Python GitHub Actions routines using GSC, PageSpeed, and WordPress sitemap APIs.
| Routine | Schedule (ET) | Purpose |
|---|---|---|
| cannibalization | Mon 05:00 | Finds query+page pairs where 2+ URLs split impressions in top 20 |
| orphan_pages | Mon 05:30 | Crawls sitemap, flags URLs with zero inbound internal links |
| non_indexed | Mon 06:00 | GSC URL Inspection API, flags non-indexed sitemap URLs, 250/run rotation |
| cwv_pulse | Mon 06:30 | PageSpeed Insights on top 30 URLs by impressions, flags CWV regressions |
| gsc_rankings | Mon 07:00 | Last 7d vs prior 7d, flags query+page movements of 5+ positions |
All 5 follow the broken_links canonical pattern: import from scripts/utils + scripts/notion_logger, write to outputs/YYYY-MM-DD/{routine}.md, save state/{routine}.json, log to Notion via NotionLogger.log_run(), create reminders on critical severity.
5 new .yml workflows in .github/workflows/, all mirroring the daily-broken-links.yml pattern: checkout, setup-python 3.12, pip install, run script with env from secrets, commit state + outputs, push. All have workflow_dispatch for manual testing.
Cron values are in UTC:
python3 -m py_compile (no syntax errors)