Sam asked to fix the daily repo-health runner so it stops failing the 45-second sandbox ceiling, add a durable RUNNER_SKIP_FETCH or checkpoint path in the runner and skill docs, verify the report still covers sail-command-center, and show the exact QA delta.
I updated the canonical runner at /Users/samaguiar/Documents/Projects/Skills/daily-repo-health-check/repo-health-runner.sh and the active scheduled mirror at /Users/samaguiar/Documents/Claude/Scheduled/daily-repo-health-check/repo-health-runner.sh.
The runner now supports RUNNER_SKIP_FETCH=1, RUNNER_USE_CHECKPOINT=1, RUNNER_CHECKPOINT_PATH, and RUNNER_CHECKPOINT_MAX_AGE_SECONDS. A successful rebuild writes valid JSON to /Users/samaguiar/Documents/Codex/repo-health/run-state/repo-health-latest.json. A scheduled run can now return that fresh checkpoint immediately instead of rebuilding the whole GitHub matrix inside the 45-second window.
I updated both skill docs so the scheduled invocation exports RUNNER_SKIP_FETCH=1, RUNNER_USE_CHECKPOINT=1, and the durable checkpoint path. I also mirrored the QA recommendations to /Users/samaguiar/Documents/Codex/_qa-queue/2026-05-26.md.
Baseline before the patch, using the active scheduled runner, completed in 43.664 seconds. That was uncomfortably close to the 45-second ceiling.
After the patch, a skip-fetch rebuild completed in 33.269 seconds, wrote the durable checkpoint, returned valid JSON, and included 12 repos. The repo list included sail-command-center with remote samaguiar1982-cpu/sail-command-center, default branch main, remote head 62ddbd1, dirty count 7, and fetch_status=skipped_by_env.
The checkpoint-first scheduled path completed in 0.129 seconds, returned valid JSON, and again included all 12 repos including sail-command-center.
Syntax checks passed for both runner copies with bash -n.
The first controlled ceiling test attempted to use GNU timeout, but macOS did not have that command available. I switched to Python subprocess timeout for the same 45-second wall-clock measurement.
The Notion enhanced Markdown spec fetch returned validation_error, so this export uses conservative plain headings and paragraphs.
I kept the change focused on runner durability rather than repairing the broader Projects root git index. The root Projects git status currently shows broad paired delete/untracked entries, including the skill files. That looks like a separate workspace hygiene issue and was not necessary to prove the runner fix.
I used a 25-hour default checkpoint freshness window. That matches a daily runner cadence while preventing a week-old report from silently passing as current.
/Users/samaguiar/Documents/Projects/Skills/daily-repo-health-check/repo-health-runner.sh, canonical runner updated./Users/samaguiar/Documents/Claude/Scheduled/daily-repo-health-check/repo-health-runner.sh, active scheduled mirror updated.