{"id":"63d15cd3-deb4-4675-8a97-fc01e9e7d166","slug":"clawhub-chris-cron-sentinel","name":"cron-sentinel","description":"Monitor scheduled/cron jobs and get alerted when one fails OR silently never runs. Use this skill when the goal is reliability or failure-detection for a recurring task the user already runs or is setting up - e.g. 'how would I even know if my cron job silently stopped,' 'my backup didn't run and nothing warned me,' 'monitor my scheduled jobs,' 'alert me when a job fails,' 'add retries and a dead-man's switch to my cron,' or 'is my nightly task still actually running.' It wraps a scheduled command so each run is recorded (exit code, duration, redacted output tail) with optional retries and a timeout, then a watchdog flags both crashed jobs and overdue jobs that silently never ran. Do NOT trigger on plain scheduling requests with no monitoring need ('remind me at 5,' 'run this once tomorrow'), or on general cron-syntax questions ('what does * * * * * mean') - only when reliability or silent-failure detection is the actual ask. Runs a local, standard-library-only Python tool that executes the user's own command directly (no shell), keeps an owner-only state file under ~/.cron-sentinel/, and prints crontab lines for the user to add themselves. It never edits a crontab, creates scheduled tasks, uses the network, or requires elevated privileges.","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chris-cron-sentinel","sourceUrl":"https://clawhub.ai/chris/cron-sentinel","homepage":"https://clawhub.ai/chris/skills/cron-sentinel","source":"CLAWHUB","vendor":{"slug":"clawhub","label":"Clawhub","url":"https://clawhub.ai/chris/skills/cron-sentinel"},"protocols":["OPENCLEW"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"1.2.0","freshnessAt":"2026-10-11T21:51:18.168Z","freshnessLabel":"Oct 11, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 11, 2026"},{"label":"Vendor","value":"Clawhub"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"1.2.0"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Clawhub","href":"https://clawhub.ai/chris/skills/cron-sentinel","sourceUrl":"https://clawhub.ai/chris/skills/cron-sentinel","sourceType":"profile","confidence":"medium","observedAt":"2026-10-11T21:51:18.229Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/clawhub-chris-cron-sentinel/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-cron-sentinel/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-11T21:51:18.229Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"988 downloads","href":"https://clawhub.ai/chris/cron-sentinel","sourceUrl":"https://clawhub.ai/chris/cron-sentinel","sourceType":"profile","confidence":"medium","observedAt":"2026-10-11T21:51:18.229Z","isPublic":true},{"factKey":"latest_release","category":"release","label":"Latest release","value":"1.2.0","href":"https://clawhub.ai/chris/cron-sentinel","sourceUrl":"https://clawhub.ai/chris/cron-sentinel","sourceType":"release","confidence":"medium","observedAt":"2026-09-28T18:09:52.780Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/clawhub-chris-cron-sentinel/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-cron-sentinel/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["988 downloads","Trust evidence available"],"agentCard":{"name":"cron-sentinel","description":"Monitor scheduled/cron jobs and get alerted when one fails OR silently never runs. Use this skill when the goal is reliability or failure-detection for a recurring task the user already runs or is setting up - e.g. 'how would I even know if my cron job silently stopped,' 'my backup didn't run and nothing warned me,' 'monitor my scheduled jobs,' 'alert me when a job fails,' 'add retries and a dead-man's switch to my cron,' or 'is my nightly task still actually running.' It wraps a scheduled command so each run is recorded (exit code, duration, redacted output tail) with optional retries and a timeout, then a watchdog flags both crashed jobs and overdue jobs that silently never ran. Do NOT trigger on plain scheduling requests with no monitoring need ('remind me at 5,' 'run this once tomorrow'), or on general cron-syntax questions ('what does * * * * * mean') - only when reliability or silent-failure detection is the actual ask. Runs a local, standard-library-only Python tool that executes the user's own command directly (no shell), keeps an owner-only state file under ~/.cron-sentinel/, and prints crontab lines for the user to add themselves. It never edits a crontab, creates scheduled tasks, uses the network, or requires elevated privileges.","source":"CLAWHUB","sourceId":"clawhub:s17f63svb641q2stekk1cmcdn183k4rq:cron-sentinel","homepage":"https://clawhub.ai/chris/skills/cron-sentinel","repository":"https://clawhub.ai/chris/cron-sentinel","documentation":"https://www.xpersona.co/agent/clawhub-chris-cron-sentinel","protocols":["OPENCLEW"],"examples":[{"kind":"example","language":"bash","snippet":"# Wrap a command (this is what cron actually runs):\npython cron_sentinel.py wrap --name backup --expect-every 1d --retries 2 -- /path/backup.sh\npython cron_sentinel.py wrap --name sync --no-output-tail -- /path/sync-with-api.sh   # store no output\n\n# The watchdog (run this on its own short schedule):\npython cron_sentinel.py check          # exits 1 if any job failed or is overdue\npython cron_sentinel.py status         # human-readable table\n\n# Generate the crontab lines for the user:\npython cron_sentinel.py crontab --name backup --schedule \"0 3 * * *\" --expect-every 1d -- /path/backup.sh"},{"kind":"example","language":"bash","snippet":"# What cron actually runs:\npython cron_sentinel.py wrap --name backup --expect-every 1d --retries 2 -- /path/backup.sh\n\n# The watchdog (its own short schedule):\npython cron_sentinel.py check       # exits 1 if anything failed or went silent\npython cron_sentinel.py status\n\n# Generate the crontab lines:\npython cron_sentinel.py crontab --name backup --schedule \"0 3 * * *\" --expect-every 1d -- /path/backup.sh"}]}}