01must proveConfirmed | Schedule access requires the query surface plus schedule use or manage; users reach their own schedules, managers reach all, and other users receive not found. | permission | api, service | test |
02must proveConfirmed | Query schedule creation requires a visible compilable source, required values, an active published delivery template, an hourly-or-slower timetable and active organizational user recipients. | validation | service | test |
03must proveConfirmed | Query schedules run their stored source copy until explicitly refreshed, show later saved-query changes for comparison, and do not silently adopt those edits. | policy | service | test |
04must proveConfirmed | Automatic runs rebuild owner access and stop delivery, fail the run and pause the schedule when the owner cannot execute its source. | policy | service | test |
05must proveConfirmed | Only schedule managers can take ownership, after which later automatic runs use their access. | permission | service | test |
06must proveConfirmed | Run Now executes as the initiating person for the existing recipients and can run a paused schedule. | policy | service | test |
07must proveConfirmed | Schedules accept at most fifty distinct users or addresses, resolve user addresses at send time, skip unavailable users with reasons and require outside-recipient permission for external addresses. | permission | service | test |
08must proveConfirmed | Each recipient gets one communications request per run with a personal seven-day link, and run-recipient deduplication prevents duplicate e-mails on retry. | invariant | service | test |
09must proveConfirmed | Query schedules default to skipping empty results, while report schedules reject that option. | policy | service | test |
10must proveConfirmed | A scheduled date value stored as today resolves to each run’s workspace day and is recorded on that run’s export. | calculation | service | test |
11must proveConfirmed | Transient errors retry, query and access failures do not, five consecutive failed runs pause the schedule with a reason, and success clears the failure count. | policy | service | test |
12must proveConfirmed | Report schedules require report use and visibility, render the current report as PDF by default or eligible Excel, flag report changes without pinning them and cannot change into query schedules. | validation | service | test |
13must proveConfirmed | Report deletion atomically pauses its schedules as report deleted, preserves their history and permits only their deletion rather than resumption or another run. | lifecycle | service, database | test |
14must proveConfirmed | Imported legacy schedules start paused and require confirmation that the legacy schedule is disabled before resuming. | lifecycle | service | test |
15must proveConfirmed | Schedule edits use the read version, duplication creates a paused caller-owned copy, and deletion removes runs and deliveries while exported files retain their expiry. | lifecycle | service | test |