scheduled-job-runnerlisted
Install: claude install-skill TechNickAI/hermes-skills
# Scheduled Job Runner
## Overview
Hermes cron remains the **scheduler**. `jobrun.py` is the execution adapter used
by each cron entry. Centralizing execution prevents every scheduled script from
reimplementing interpreter selection, overlap locks, timeout handling, output
policy, logging, and alerting differently.
The canonical implementation ships here:
- `scripts/jobrun.py` — execution adapter and CLI
- `scripts/jobrun_severity.py` — per-run outcome classification
- `scripts/jobrun_repair.py` — incident/dedup state and optional repair dispatch
- `scripts/generate_launcher.py` — filename-only cron launcher generator
- `tests/jobrun_*_checks.py` — standalone regression checks
Do not create another scheduler. Do not wrap jobs with tools that convert a child
failure into exit 0.
## When to Use
Use this skill when:
- adding or migrating a Hermes cron job;
- a job runs under the wrong Python or misses dependencies;
- success should be silent but failure must remain visible;
- overlapping or overlong runs are possible;
- an operator needs a durable run ledger rather than raw-output inference;
- a job appears successful while its output contains a real failure;
- a scheduler accepts only a script filename, not a command plus arguments.
## Install and Verify
Copy all three runtime modules together; `jobrun.py` loads its sidecars lazily
from the same directory.
```bash
mkdir -p "$HERMES_HOME/scripts"
cp scripts/jobrun.py scripts/jobrun_severity.py scripts/jobrun_repair.py