Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

Cron Expression Explainer

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Computing & Information
Tranche
tranche-6
Evidence ID
t6-022
Ledger rows
1

No ledger note is attached.

Review findings

The stated parsing and forward-scan concepts are standard, but the instrument is not fully verifiable until the cron dialect, starting instant semantics, calendar semantics, timezone/DST behavior, and invalid-expression behavior are made explicit.

Formula and scope findings

  • The field-by-field parsing approach is standard, but the specification does not define which 6-field dialect is used: seconds-first Quartz style, seconds-last, or a year field.
  • The specification does not define the standard used for simultaneous day-of-month and day-of-week restrictions. Traditional Vixie/POSIX cron commonly uses OR semantics, while some implementations use AND semantics.
  • The forward date-scan requires an explicit starting instant and whether a run exactly at that instant is included or excluded; neither is specified.
  • The specification does not define handling for Sunday as 0, 7, or both, nor the accepted month/day names and ranges.
  • The specification does not define behavior for impossible schedules, invalid expressions, or a nonpositive next-run count.

Unit assumptions

  • All timestamps in these vectors are ISO 8601 UTC timestamps with a trailing Z; the timezone is UTC, so no daylight-saving transition occurs.
  • Five-field vectors use standard Vixie/POSIX field order: minute hour day-of-month month day-of-week.
  • For five-field vectors, the next-run search is strictly after the supplied start timestamp.
  • The six-field vector explicitly uses Quartz-style seconds-first order: second minute hour day-of-month month day-of-week.
  • Cron fields represent wall-clock calendar fields; timezone and daylight-saving behavior must be defined by the implementation.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

The specification leaves critical edge behavior undefined: an unsafe next-run count can cause precision loss or resource exhaustion, day-of-month/day-of-week matching has competing OR and AND interpretations, and repeated daylight-saving local times can yield different timestamps or run counts.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "expression": "*/15 9-17 * * 1-5",
    "dialect": "Vixie/POSIX 5-field",
    "timezone": "UTC",
    "start_timestamp": "2025-03-10T09:07:00Z",
    "next_count": 4
  },
  "expected_outputs": {
    "plain_english": "Every 15 minutes from 09:00 through 17:59, Monday through Friday.",
    "next_run_timestamps": [
      "2025-03-10T09:15:00Z",
      "2025-03-10T09:30:00Z",
      "2025-03-10T09:45:00Z",
      "2025-03-10T10:00:00Z"
    ]
  },
  "working": "2025-03-10 is Monday, so the weekday field matches. The hour range 9-17 includes 09:00 through 17:59. The minute step */15 produces minutes 0, 15, 30, 45. Starting strictly after 09:07, the first matching minute is 15: 09:15. Adding 15 minutes gives 09:30, then 09:45, then 10:00. Therefore the four outputs are 09:15, 09:30, 09:45, and 10:00 UTC."
}

Related workflows

No source-defined multi-instrument workflow membership is recorded.

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche6/tranche6-results.json
  • BOUNDARY_HAZARD_CATALOG.json