What it does
Reads the scheduled cron array to list every hook, its recurrence interval, and next scheduled run time, then flags hooks that are overdue (meaning wp-cron.php is not being triggered reliably), duplicate hooks registered by more than one plugin, and events scheduled far more frequently than their task plausibly needs.
Install
This skill isn't packaged in an installable registry. It's a plain SKILL.md file you can copy directly. Copy it from the SKILL.md tab and save it at the path for your assistant:
Use it in your AI assistant
Claude Code
.claude/skills/cron-job-auditor/ (or ~/.claude/skills/cron-job-auditor/ for all projects)
GitHub Copilot (VS Code)
.github/skills/cron-job-auditor/
OpenAI Codex
.codex/skills/cron-job-auditor/
Cursor
.cursor/skills/cron-job-auditor/ (or ~/.cursor/skills/cron-job-auditor/ globally)
Compatibility
Any WordPress site; WP-CLI (wp cron event list) gives direct access, otherwise a database read or a diagnostics plugin is needed.
The complete SKILL.md for this skill:
---
name: cron-job-auditor
description: Use when a user asks why a scheduled task isn't running, wants a list of what WP-Cron is doing, or suspects overlapping or duplicate scheduled events.
---
# Cron Job Auditor
## When to use
A scheduled task (email digest, cache warm, sync job) isn't firing reliably, or the user just wants visibility into everything WP-Cron has scheduled and how often it actually runs.
## Procedure
1. List every scheduled cron event: hook name, recurrence interval, and next scheduled timestamp.
2. Compare next-scheduled timestamps against the current time to find events that are overdue, which usually means real page visits aren't triggering wp-cron.php often enough (low-traffic site) or a system cron replacement isn't configured.
3. Group events by hook name to catch duplicates, cases where two plugins (or a plugin and a leftover from an old plugin) scheduled the same or conflicting events.
4. Flag events scheduled unusually frequently (every minute, every few minutes) for tasks that plausibly don't need that cadence, since these add server load.
5. Note which events depend on the default wp-cron.php trigger versus ones already wired to a real system cron, and recommend switching to system cron if overdue events are common.
6. Present findings as a table: hook, schedule, status (on time / overdue / duplicate), and a one-line recommendation per row.
## Guardrails
- Never unschedule or clear a cron event without confirming with the user what it does, some are wired to licensing checks, backups, or security scans that shouldn't silently stop.
- Do not assume an overdue event is broken without checking traffic volume first; on genuinely low-traffic sites this can be expected behavior, not a bug.