docs(scouts): scrub host-TZ/DST reference from README#52
Conversation
The 'crontab times are in the host's local timezone' paragraph leaked the ops context of our own devbox (UTC host, CDT user). Replace with a scheduler-agnostic note that lists cron, systemd timers, GitHub Actions, and launchd — the scout CLI doesn't care which one you use, and customers shouldn't read internal ops details in what is otherwise a clean target-architecture doc.
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
There was a problem hiding this comment.
Pull request overview
Updates the scouts/ README to remove internal host timezone/DST guidance and replace it with a scheduler-neutral “run on a schedule” section that applies across environments.
Changes:
- Renames the cron-specific section to a scheduler-agnostic “Running on a schedule”.
- Broadens scheduling options mentioned (cron/systemd/GitHub Actions/launchd).
- Updates the example and guidance around setting
RALPH_USER_DIRand seeding a scout before scheduled runs.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Scouts are a CLI, so any scheduler works — cron, systemd timers, GitHub | ||
| Actions `schedule:`, launchd on macOS. Pin `RALPH_USER_DIR` in the entry if | ||
| you want scout data to live outside the repo: |
There was a problem hiding this comment.
The list of “any scheduler works — … GitHub Actions schedule: …” is a bit misleading given this README’s earlier guidance that scouts/ is user data and not committed. A GitHub Actions runner is typically ephemeral and won’t retain scouts/ between runs, so scheduled runs won’t work unless you also document how to provision/seed scouts on every run (or where they come from). Consider either removing GitHub Actions from the “equally valid” list or adding a short qualifier about needing to create/provide scouts on the runner each run.
| RALPH_USER_DIR=$HOME/ralph-data | ||
| 0 9 * * * /path/to/ralph-for-kiro scout \ |
There was a problem hiding this comment.
The text says “Pin RALPH_USER_DIR in the entry”, but the example sets RALPH_USER_DIR on its own line. That standalone assignment only applies if it’s placed as an environment setting line in the crontab (not inside a script), so readers may paste this into the wrong place. Consider either putting RALPH_USER_DIR=... inline on the 0 9 * * * ... line, or explicitly label it as a crontab-wide env var line.
| RALPH_USER_DIR=$HOME/ralph-data | |
| 0 9 * * * /path/to/ralph-for-kiro scout \ | |
| 0 9 * * * RALPH_USER_DIR=$HOME/ralph-data /path/to/ralph-for-kiro scout \ |
| The scheduler will fail silently if `scouts/` is empty — seed with | ||
| `ralph scout init` or `--from-example` once before the first run. |
There was a problem hiding this comment.
“The scheduler will fail silently if scouts/ is empty” isn’t quite accurate: ralph scout logs an error (“No scouts found…”) and returns, and it’s the scheduled run (not the scheduler) that does nothing. Consider rewording to something like “Scheduled runs will exit without doing work if no scouts exist; run ralph scout init … first”, and (if relevant) note that redirecting output is how you avoid missing the error in cron.
| The scheduler will fail silently if `scouts/` is empty — seed with | |
| `ralph scout init` or `--from-example` once before the first run. | |
| Scheduled runs will exit without doing work if no scouts exist — run | |
| `ralph scout init <name>` or `ralph scout init --from-example <template> <name>` | |
| once before the first scheduled run. |
Summary
The README's cron section leaked internal ops context ("if your devbox runs UTC and you want local-CST time, convert accordingly… DST will shift the run by an hour twice a year") — that's our own setup talking to itself, not scheduler-agnostic user docs.
Change
Replace with a scheduler-neutral section that lists cron, systemd timers, GitHub Actions
schedule:, and launchd as equally valid options, and keeps only the genuinely useful guidance (pinRALPH_USER_DIRin the entry; seed a scout before the first run).Test plan
Docs-only; no code paths touched.