Agent skill · marketing growth · sickn33

cron-doctor

Diagnose and validate cron expressions before they ship. Catches the five silent death-traps: impossible dates that never fire, OR-semantics that fire too often, midnight spikes, uneven step drift, and leap-year February 29.

Why this skill is useful

Adds a validation engine that checks cron expressions for common pitfalls and provides detailed explanations and next run calculations.

What it needs

About 6k tokens when loaded. Last updated 2026-08-07. 44,571 stars on the source repository.

What this skill does

cron-doctor Overview Cron is deceptively error-prone. The failure mode is silent — a syntactically valid expression that simply never fires, or fires far more often than intended. 0 0 30 2 parses cleanly and then sits dead forever (February has no 30th). 0 0 1,15 1 looks like "1st and 15th if Monday" but actually means "1st, 15th, OR every Monday" — ~6 fires/month instead of ~2. This skill teaches an agent to catch those before they reach production. It comes with a zero-dependency validation engine (scripts/cron-engine.js, no install needed) that parses, describes, deep-validates, and computes next fire times. When to Use This Skill Use when a user writes, edits, reviews, or deploys a cron expression — in a crontab, a Kubernetes CronJob, a GitHub Actions schedule, an Airflow DAG, a Celery beat schedule, a systemd timer, or any scheduled task. Use when debugging a job that "didn't fire" or "fired at the wrong time." Use when a user asks "what does this cron expression mean?" or "when will this run next?" or "how often does this run per year?" Use when reviewing a CI/CD pipeline or infrastructure config that contains a schedule field. Use when a user pastes a 5-field cron expression and asks for a sanity check. How It Works Step 1: Parse the expression Split on whitespace into 5 fields: minute, hour, day-of-month, month, day-of-week. Confirm valid ranges: Field Position Range Notes ------- ---------- ------- ------- minute 1 0–59 hour 2 0–23 day-of-month 3 1–31 month 4 1–12 names (JAN–DEC) accepted day-of-week 5 0–7 0 and 7 both = Sunday; names (SUN–SAT) accepted Step 2: Describe it in plain English State what the user thinks it does vs. what it actually does. Be explicit about OR-vs-AND semantics for day-of-month + day-of-week (see death-trap #2). Step 3: Run the trap checklist Check the five death-traps below and flag any that apply. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills sickn33/cron-doctor--ad205d

View the source on GitHub

Browse the @skills marketplace