Radar Scheduling¶
Skylattice treats radar scheduling as tracked operator intent, not as a hidden background worker.
The schedule itself lives in configs/radar/schedule.yaml, while the operating system remains responsible for recurring execution.
What This Covers¶
- inspect tracked radar schedules
- render Windows Task Scheduler registration details
- run a tracked schedule immediately without waiting for the next trigger
- validate that a weekly schedule keeps using the normal bounded
radar scanpath
Inspect The Tracked Schedule¶
Use the CLI to see the default schedule and every declared entry:
python -m skylattice.cli radar schedule show
This tells you:
- which schedule is the default
- whether each schedule is enabled
- which
windowandlimitit resolves to - which tracked
target_commandit will run - which Windows task metadata is associated with it
Render Windows Task Registration Details¶
Use the tracked render surface before you register anything:
python -m skylattice.cli radar schedule render --target windows-task
The rendered payload is the operator truth for Windows registration. It now includes:
- the absolute repository working directory
- the exact PowerShell action Skylattice expects the task to run
- the decoded action script, plus the encoded PowerShell command used for safe Task Scheduler registration
- the tracked trigger command, when the schedule is meant to run automatically
- helper commands to inspect, trigger, and unregister the task
The default weekly schedule renders a task that:
- starts from the repository root
- runs
python -m skylattice.cli radar schedule run --schedule weekly-github - uses the tracked weekly trigger command from
configs/radar/schedule.yaml
Register The Windows Task¶
Recommended flow:
- render the schedule
- review the
register_command - paste that command into an elevated PowerShell window only after confirming the trigger still matches your intent
For the shipped weekly example, the tracked trigger command is:
New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 9am
If your local weekly cadence should be different, edit the tracked config first, then re-render the registration details.
Run A First Manual Check¶
Before waiting for the next scheduled time, trigger the task once yourself:
python -m skylattice.cli radar schedule run --schedule weekly-github
Or, after registration, use the rendered helper command:
Start-ScheduledTask -TaskName "Skylattice Radar weekly-github" -TaskPath "\Skylattice"
Success means:
- the run completes through the normal radar workflow
- the resulting radar run uses the tracked
weeklywindow and configuredlimit - the inspected radar run records
trigger_mode=scheduledandschedule_id=weekly-github - no hidden scheduler state is introduced inside Skylattice
Weekly-Cycle Validation Checklist¶
When validating a real scheduled weekly cycle, check:
- the task is still registered under the tracked folder and name
- the task starts in the repository root instead of
system32 - the created radar run records the expected
weeklywindow - the created radar run records the expected
schedule_idandtrigger_mode - any promotion or failure still flows through the normal ledger, memory, and rollback surfaces
- the repository remains clean before each scheduled run starts
Why This Stays OS-Level¶
Skylattice intentionally avoids a resident scheduler, daemon, or internal job queue.
That keeps recurring execution:
- local-first
- reviewable through tracked config
- explicit about operator responsibility
- separate from GitHub, which remains an audit and collaboration layer instead of runtime truth