Skip to content
docs
Arxo ↗

Set an execution window from an event

For LLMs7 sections

I want to count two business days from the date a request was received.

The unit is part of the norm, and the chosen policy is a required case input. An incomplete declaration is rejected:

Incorrect form
deadline policy Days { start_count next_day; include_end true; }

Even with a complete declaration, the absence of a deadline_policy choice in the case does not mean an automatic choice.

Arxo Law
language "law.core" version "0.2";
package recipes.e.r01 version "0.1.0";
namespace "urn:recipe:e-time:01";
entity Person;
relation registered(p: Person);
source SyntheticCalendar { kind standard; jurisdiction "none"; number "E-CALENDAR"; }
calendar Calendar {
timezone "Asia/Almaty";
timezone_db "iana-tzdb@2026a";
period [@2024-01-01, @2028-01-01);
source SyntheticCalendar;
resource "resources/calendar-2024-2027.json";
format "law.calendar/0.1";
content_hash "sha256:dfd0181e1347cc2fd48b5fd81d27f3551cabae10eaefbf8b4dffb70bcbb3cd12";
}
deadline policy Days {
start_count next_day;
include_end true;
roll next_working_day;
}
relation received(p: Person, on: Date);
relation submitted(p: Person);
rule Reply strict {
for p: Person; for on: Date;
when received(p, on);
then duty File {
bearer p;
goal achievement {
condition submitted(p);
window [on, add_business_days(on, 2 business_day)];
}
};
}
Facts / cutQuestionAnswer
received 06.03, cut 11.03FileACTIVE
received 06.03, cut 12.03, no performance factsFileUNDETERMINED
same, not submittedFileVIOLATED
same, submittedFileSATISFIED
policy not chosenpositionsNON_EXECUTABLE, MISSING_POLICY
deadline includes window end day
Arxo Law
test "deadline includes window end day" {
given {
context {
legal_time @2026-03-11;
decision_time @2026-03-11T12:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
deadline_policy Days;
}
assert received(entity_ref("urn:recipe:e-time:01:a"), @2026-03-06);
}
evaluate positions();
expect position(File, ACTIVE);
}
expired deadline without input
Arxo Law
test "expired deadline without input" {
given {
context {
legal_time @2026-03-12;
decision_time @2026-03-12T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
deadline_policy Days;
}
assert received(entity_ref("urn:recipe:e-time:01:a"), @2026-03-06);
}
evaluate positions();
expect position(File, UNDETERMINED);
}
established non-performance violates
Arxo Law
test "established non-performance violates" {
given {
context {
legal_time @2026-03-12;
decision_time @2026-03-12T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
deadline_policy Days;
}
assert received(entity_ref("urn:recipe:e-time:01:a"), @2026-03-06);
assert not submitted(entity_ref("urn:recipe:e-time:01:a"));
}
evaluate positions();
expect position(File, VIOLATED);
}
established performance satisfies
Arxo Law
test "established performance satisfies" {
given {
context {
legal_time @2026-03-12;
decision_time @2026-03-12T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
deadline_policy Days;
}
assert received(entity_ref("urn:recipe:e-time:01:a"), @2026-03-06);
assert submitted(entity_ref("urn:recipe:e-time:01:a"));
}
evaluate positions();
expect position(File, SATISFIED);
}
missing policy refuses positions
Arxo Law
test "missing policy refuses positions" {
given {
context {
legal_time @2026-03-10;
decision_time @2026-03-10T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert received(entity_ref("urn:recipe:e-time:01:a"), @2026-03-06);
}
evaluate positions();
expect evaluation_status == NON_EXECUTABLE;
expect issue(MISSING_POLICY);
}

The calendar is synthetic: Mon–Fri, 9 March 2026 is a conventional non-working day; this is not an official calendar.

teaches removes roll from Days and requires E1307. The scene without deadline_policy pins a separate runtime rejection; expiry of the term without a negative fact is not declared a violation. check by itself does not guarantee correctness of arbitrary window-boundary arithmetic.

The event here is presented as a date in received. For an event instance with activation by a carrier, see Present an event with a time; no instant inside the day is chosen. The units business_day and calendar_day are not interchangeable.

A window from a term is executable; after the cutoff without facts the status is UNDETERMINED, with explicit non-filing VIOLATED. The as-of moment for statuses is the decision time, so every scene names its decision date explicitly; the law date only selects the law.

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

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