Run by: scheduled daily-repo-health-check task (Cowork autonomous).
Window: last 24 hours of GitHub activity ending 2026-04-24 21:18 ET.
Full report on disk: /Users/samaguiar/Documents/Codex/repo-health/2026-04-24.md
3 workflow runs failed in the last 24 hours across 9 SAIL repos.
sail-projects-root / Daily Uptime + SSL Check — chronic, failing every day since 2026-04-22. Script exits 1 because real uptime/SSL issue detected. Report writes successfully before failure.sail-projects-root / Daily Broken Links Sweep — chronic, failing every day since 2026-04-22. Severity: critical. 1520 sitemap URLs scanned; broken links found.sail-seo / scope-scan-daily — first run failure 2026-04-24. Workflow file shipped to main, but scripts (.claude/scripts/scope-scan*.sh) only exist on agent/visual-normalize-sweep-2026-04-23 branch.No code regressions. No Node/Python version mismatches. All Node engines pinned to >=18 (current LTS). All Python projects within range of 3.12 used by GH Actions runners.
| Repo | Default | CI 24h | Failures | Branch hygiene |
|---|---|---|---|---|
| sail-googleads | n/a | n/a | n/a | NOT a real repo (no .git of its own) — see finding B |
| sail-litify | main | 0 | 0 | agent/hygiene-cleanup-2026-04-19 (8 behind, 3 ahead, 19 uncommitted) |
| sail-marketing | main | 0 | 0 | agent/projects-reorg-2026-04-18, 5 uncommitted, no origin/HEAD |
| sail-seo | main | 1 | 1 | agent/visual-normalize-sweep-2026-04-23 (10 ahead, 795 uncommitted) |
| sail-templates | main | 0 | 0 | agent/trust-strip-sitewide-2026-04-19, 13 uncommitted, no origin/HEAD |
| sail-infrastructure | main | 0 | 0 | agent/projects-reorg-2026-04-18 (2 ahead, 4 uncommitted) |
| sail-cases | main | 0 | 0 | clean since 2026-04-07 scaffold |
| sail-hr | main | 0 | 0 | clean since 2026-04-07 scaffold |
| sail-projects-root | main | 3 | 2 | 14 commits to main in last 24h |
Workflow file: .github/workflows/daily-uptime-ssl.yml. Step that exits non-zero: Run uptime + SSL check -> python routines/github/uptime_ssl/run.py. Script writes the report to routines-build/outputs/2026-04-24/uptime-ssl.md and then exits with code 1. The script is intentionally failing the job when it detects an issue, not crashing. The CI red is the real signal.
History: failed every run on 2026-04-22, 2026-04-23, 2026-04-24.
Workflow file: .github/workflows/daily-broken-links.yml. Step that exits non-zero: Run broken-links sweep -> python routines/github/broken_links/run.py. Log shows: "found 1520 URLs in sitemap ... Done. Severity: critical ... Process completed with exit code 1." Same pattern: report writes successfully, script intentionally exits 1 because severity was rated critical. There are real broken links flagged in the daily report.
Workflow file (on main): .github/workflows/scope-scan.yml. Step that exits non-zero: Verify scanner exists. Workflow expects .claude/scripts/scope-scanner.sh and .claude/scripts/scope-scan-daily.sh — neither is present on main. Both scripts exist on agent/visual-normalize-sweep-2026-04-23 (created 2026-04-23 per the workflow comment header) but the agent branch was never merged.