Install
openclaw skills install cron-health-cronCreate portable OpenClaw cron health checks with deterministic scripts, config, validation, and reports.
openclaw skills install cron-health-cronUse this skill to create or port a read-only cron health check for one OpenClaw instance. The deliverable is a small instance-local kit plus a manual setup pass, not a magic zero-config monitor.
The health check should answer:
Use this skill when the user asks to:
Do not use this skill for general host security hardening, uptime monitoring, application observability, or non-OpenClaw runtimes unless the user explicitly asks to include them as project-specific checks.
This is portable as a framework, not as a plug-and-play binary. Every OpenClaw instance can differ in scheduler metadata, cron layout, log locations, delivery targets, and project jobs. The skill provides the kit and the manual setup procedure; the agent must fill config values from the destination instance.
Service managers are not scheduler sources. Use OpenClaw scheduler metadata such as a safe cron list command, API output, or read-only jobs file as the source of truth for OpenClaw scheduled jobs.
This skill may touch the OpenClaw gateway only to read scheduler facts: cron inventory, last/next run metadata, delivery errors, and consecutive failure state.
Create a local, instance-specific package with this shape:
openclaw-cron-health/
├── config.json
├── openclaw_cron_health_check.py
└── README.local.md
Use bundled resources as the starting point:
templates/cron-health-config.json for runtime configurationscripts/openclaw_cron_health_check.py for the deterministic checkerreferences/setup-manual.md for the agent setup procedurereferences/report-format.md for report structurereferences/porting-checklist.md before enabling the scheduleKeep all destination-specific values in config.json. Do not bake chat IDs, cron IDs, server paths, registry paths, tokens, or project paths into the skill itself.
0 for successful inspection runs, even when the report contains warnings.Read references/setup-manual.md.
Follow it as the configuration procedure. Do not guess instance paths or delivery targets.
Identify the destination OpenClaw instance.
Read local OpenClaw paths, scheduler storage, available OpenClaw scheduler list commands or read-only jobs files, target delivery channel, and project-specific scheduled jobs. Use only facts from that instance.
Generate the instance package.
Copy the config and script templates into an instance-local directory. Fill config values conservatively. Leave optional sections empty unless there is local evidence for them.
Configure checks.
In config.json, define:
Validate manually before scheduling.
Run the script once from the destination account. Confirm it can read configured files, redacts sensitive output, reports stale or missing proof as WARNING, and never marks ambiguous jobs OK.
Create the scheduled job.
Create it as a deterministic script-only OpenClaw cron. Prefer delivery to the origin chat/topic when created from the desired destination, or use the instance's explicit target format.
Verify after creation.
List the scheduled job and verify job name, schedule, next run, script path, delivery target, and script-only/no-agent mode. Run a force test only if the instance supports safe manual execution.
Use these statuses consistently:
CRITICAL: missing required script or binary, repeated current failures, required log missing, enabled OpenClaw job has repeated errors, or a locally validated recurring job has no viable next run.WARNING: stale logs, 1-5 recent error lines, delivery error, ambiguous command parsing, no runtime proof, failed safe validation, unexpected paused job, or expected OpenClaw job missing.INFO: intentionally paused job, inventory-only item, disabled timer without failure, one-shot completed job, or metadata unavailable from a read-only source.OK: required command exists, runtime proof is fresh, no recent errors, and no current OpenClaw error or delivery state exists.Never mark a job OK just because it exists.
Validate each non-paused system cron in three levels:
Script or command existence.
Check script path, readable bit, executable bit when direct execution is expected, and binary availability. For shell-compound commands that cannot be safely parsed, mark existence as WARNING, not CRITICAL.
Runtime proof.
Prefer fresh logs. If no logs exist, use a configured safe validation command, OpenClaw run metadata, systemd timer metadata for host scheduled tasks, or another read-only proof. If none exists, mark WARNING.
Recent errors.
Inspect recent relevant log lines for default error patterns such as error, fatal, exception, panic, ENOENT, EACCES, EPERM, non-zero exit codes, tracebacks, permission failures, and missing files. Redact and truncate before reporting.
For each enabled OpenClaw scheduled job, collect available metadata:
List every enabled OpenClaw job in the report. Summarize paused jobs unless unexpected or relevant.
If the scheduler stores script paths, check that configured scripts exist. If metadata shape differs by OpenClaw version, parse conservatively. Missing nextRun from a read-only jobs file is INFO unless local metadata proves the job has no viable next run.
Keep registry reconciliation report-only by default.
If enabled:
Registry Notes.The routine health check must not write registry or callback files. If writes are desired, use a separate maintenance task with lock, backup, and atomic replace.
Apply redaction before printing any command output, log line, delivery error, config-derived value, last relevant line, or registry note.
Redact:
sk- keysTruncate report lines so chat delivery remains readable.
Before publishing this skill or an instance-specific derivative:
CRITICAL reports.