Scheduled automations
What you'll find here
craik.scheduled_automation and craik.gateway_schedule — enabled
gateway definitions backed by persisted cron-like schedules, evaluated
one tick at a time, with deduplication and redacted receipts.
Observation only.
Scheduled automations do not run a clock or execute created tasks. They preserve the boundary between schedule observation, task creation, and later task execution under policy.
Enforcement
craik.runtime.scheduled_automations enforces:
Explicit enabled state
Policy envelope checks
Narrow gateway.schedule.execute authority
Schedule tick deduplication
Redacted automation receipts
Persistence
Gateway schedules and scheduled automations are first-class local-store contracts. Use the typed store helpers to round-trip them alongside channel adapter contracts, identity pairings, allowlists, policy envelopes, and gateway receipts:
store.put_gateway_schedule(schedule)
store.put_scheduled_automation(automation)
store.put_gateway_receipt(receipt)
Execution boundary
An automation creates a task only when every condition holds.
- The automation is enabled.
- Policy allows
gateway.schedule.execute. - The tick id has not already created a task.
- The schedule expression is valid.
Disabled, policy-denied, and duplicate ticks do not create tasks.
Receipts
Automation receipts record:
Policy envelope id
Automation id
Schedule id
Tick id
Created task id
When one exists.
Receipts use gateway.schedule.execute and stay redacted.