Skip to content
docs
Arxo ↗

Deadlines and calendar: boundaries

For LLMs3 sections

What the construct does NOT do: limits, reserved values, neighbouring constructs and the selection rule.

  • Not read local_path directly. The executor does not read bytes by resource URI: the normative path is the nearest law.lock resources[] line (calendar-dataset, law.calendar/0.1, relative path, contentHash = datasetHash). A mismatch is a loud refusal naming the lock and the node, not MISSING_CALENDAR.
  • Not store bytes in CLIR. The declaration’s content_hash is a digest of the dataset content, not the node’s semantic hash; the dataset itself is not part of CLIR.
  • Not measure months/years. “How many months between dates” has no answer without a rounding convention: measurements are only days_between (days) and hours_between (hours, with no convention at all). Months/years are only built by step.
  • Not derive duration from a unit. 1 month has no single length in days — the core does not choose one; policy.month_end sets it.
  • Not shift a schedule silently. A recurring schedule’s over anchor is immutable, start_count does not apply to it: applying it would mean silently shifting the whole schedule by a day.
  • Not read context axes. Calendar terms take the date from the question itself; they need neither legal_time nor decision_time.
  • Not interpret the policy. roll must be no_roll, include_end — true on the calendar step; otherwise — MISSING_POLICY, not interpretation.
  • DeadlinePolicy fields are closed: start_count, include_end, roll mandatory; cutoff, month_end optional; field repetition forbidden; an extra field is a refusal.
  • roll on the calendar step is only no_roll; months/years plus roll — only by composition through add_business_days with zero.
  • Dataset rules: each weekday exactly once, working = true — non-overlapping intervals, an override replaces the whole week, dates unique and inside valid; 24:00:00 — only as an end. Violations go to the semantic validator, not JSON Schema.
  • Incomplete timezone_db, incomplete coverage, mismatched content_hash — errors before computation.
  • add_calendar_period vs add_business_days: calendar units without a calendar vs business days with an always-snapshot. See the selection table in README.md.
  • Step vs measurement: “N ahead” vs “how many between” (days_between).
  • Boundaries (month_start_of, year_end_of, …) vs step: boundaries read neither calendar nor policy; the step reads the policy.
  • Query deadline (duty) vs due_on fact: a period as a position’s fate vs a period as a concluded date. The directory examples give the second; the first is the lifecycle ladder (see lifecycle statuses).
  • Policy in context (inline vs profile): the case names it — inline; reused — context profile + extends. No ambient policies.
  • Official calendar vs snapshot: the source is external context; only the pinned digest dataset executes.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.