Scheduled Maintenance Blueprint
Define recurring maintenance schedules for vehicles based on calendar intervals or odometer milestones, track due dates, trigger work orders, and record completion to advance the schedule.
| Feature | scheduled-maintenance |
| Category | Workflow |
| Version | 1.0.0 |
| Tags | fleet, vehicle, maintenance, scheduling, reminders, odometer, preventive |
| YAML Source | View on GitHub |
| JSON API | scheduled-maintenance.json |
Actors
| ID | Name | Type | Description |
|---|---|---|---|
fleet_manager | Fleet Manager | human | Creates and manages maintenance schedules; receives overdue alerts |
technician | Technician | human | Completes the maintenance task and records it against the schedule |
system | System | system | Daily scan that recalculates due dates and transitions overdue tasks |
Fields
| Name | Type | Required | Label | Description |
|---|---|---|---|---|
vehicle | text | Yes | Vehicle | |
task_name | text | Yes | Task Name | |
maintenance_type | select | Yes | Maintenance Type | |
trigger_type | select | Yes | Trigger Type | |
interval_days | number | No | Calendar Interval (days) | |
interval_km | number | No | Odometer Interval (km) | |
start_date | date | Yes | Schedule Start Date | |
end_date | date | No | Schedule End Date | |
last_completed_date | date | No | Last Completed Date | |
last_completed_odometer | number | No | Last Completed Odometer (km) | |
next_due_date | date | No | Next Due Date | |
next_due_odometer | number | No | Next Due Odometer (km) | |
assigned_to | text | No | Assigned To | |
advance_warning_days | number | No | Advance Warning (days) | |
status | select | Yes | Status |
States
State field: status
Values:
| State | Initial | Terminal |
|---|---|---|
active | Yes | |
due_soon | ||
overdue | ||
completed | ||
paused | ||
cancelled | Yes |
Transitions:
| Name | From | To | Actor | Condition |
|---|---|---|---|---|
active | due_soon | system | ||
due_soon | overdue | system | ||
active | overdue | system | ||
due_soon | completed | technician | ||
overdue | completed | technician | ||
completed | active | system | ||
active | paused | fleet_manager | ||
paused | active | fleet_manager |
Rules
- interval_required:
- description: At least one of interval_days or interval_km must be provided — a schedule with neither is invalid
- date_based_next_due:
- description: When trigger_type is date-based, next_due_date = last_completed_date (or start_date) + interval_days
- odometer_based_next_due:
- description: When trigger_type is odometer-based, next_due_odometer = last_completed_odometer + interval_km
- both_trigger_earliest:
- description: When trigger_type is both, the task becomes due when either threshold is first reached
- auto_cancel_past_end_date:
- description: If end_date is set and next_due_date exceeds end_date, the schedule is automatically cancelled
- daily_job:
- description: System runs a daily job to transition active → due_soon → overdue based on next_due_date
- odometer_reevaluation:
- description: Odometer-based due dates are re-evaluated whenever a new odometer reading is recorded for the vehicle
- completion_requires_reference:
- description: Task completion is only valid with a service log reference or completion date
Outcomes
Odometer_due_triggered (Priority: 6)
Given:
- trigger_type includes odometer
- vehicle current odometer is >= next_due_odometer
- status is active
Then:
- set_field target:
statusvalue:due_soon - notify — Notify assignee that odometer threshold has been reached
- emit_event event:
scheduled_maintenance.odometer_threshold_reached
Result: Task transitions to due_soon because the odometer threshold has been reached
Task_completed (Priority: 7)
Given:
- status is due_soon, overdue, or active
- completion date and service log reference are provided
Then:
- set_field target:
last_completed_datevalue:completion_date - set_field target:
last_completed_odometervalue:odometer_at_completion - set_field target:
statusvalue:completed - set_field target:
next_due_date— Recompute next_due_date = last_completed_date + interval_days - set_field target:
next_due_odometer— Recompute next_due_odometer = last_completed_odometer + interval_km - set_field target:
statusvalue:active - emit_event event:
scheduled_maintenance.completed
Result: Completion is recorded, schedule advances to the next cycle and becomes active
Task_overdue (Priority: 8)
Given:
- status is due_soon or active
- next_due_date has passed
Then:
- set_field target:
statusvalue:overdue - notify — Send overdue alert to fleet manager
- emit_event event:
scheduled_maintenance.overdue
Result: Task is marked overdue and an alert is sent to the fleet manager
Task_due_soon (Priority: 9)
Given:
- system daily scan runs
- status is active
- days until next_due_date is less than or equal to advance_warning_days
Then:
- set_field target:
statusvalue:due_soon - notify — Send due-soon notification to assigned_to user and fleet manager
- emit_event event:
scheduled_maintenance.due_soon
Result: Task transitions to due_soon and the assignee is notified
Schedule_created (Priority: 10)
Given:
- vehicle exists in the fleet
- task_name and maintenance_type are provided
- at least one of interval_days or interval_km is provided
- start_date is valid
Then:
- set_field target:
next_due_date— Compute start_date + interval_days for date-based schedules - set_field target:
next_due_odometer— Compute vehicle last_odometer + interval_km for odometer-based schedules - set_field target:
statusvalue:active - emit_event event:
scheduled_maintenance.created
Result: Maintenance schedule is active with next due date and/or odometer computed
Errors
| Code | Status | Message | Retry |
|---|---|---|---|
SCHEDULE_NO_INTERVAL | 400 | A maintenance schedule must have either a calendar interval or an odometer interval. | No |
SCHEDULE_INVALID_DATE | 400 | Schedule start date is invalid. | No |
Events
| Event | Description | Payload |
|---|---|---|
scheduled_maintenance.created | A recurring maintenance schedule has been set up for a vehicle | vehicle, task_name, maintenance_type, next_due_date, next_due_odometer |
scheduled_maintenance.due_soon | A scheduled maintenance task is approaching its due date or odometer threshold | vehicle, task_name, next_due_date, next_due_odometer |
scheduled_maintenance.overdue | A scheduled maintenance task has passed its due date without completion | vehicle, task_name, next_due_date |
scheduled_maintenance.completed | A scheduled task was completed and the schedule has advanced to the next cycle | vehicle, task_name, last_completed_date, next_due_date, next_due_odometer |
scheduled_maintenance.odometer_threshold_reached | A vehicle’s current odometer has reached the next service threshold | vehicle, task_name, next_due_odometer, current_odometer |
Related Blueprints
| Feature | Relationship | Reason |
|---|---|---|
| vehicle-master-data | required | Vehicle master provides last odometer reading for odometer-based interval calculations |
| vehicle-maintenance-log | required | Completing a scheduled task creates a maintenance log record and advances the schedule |
| odometer-tracking | recommended | Validated odometer readings trigger odometer-based due date re-evaluation |
AGI Readiness
Goals
Reliable Scheduled Maintenance
Define recurring maintenance schedules for vehicles based on calendar intervals or odometer milestones, track due dates, trigger work orders, and record completion to advance the schedule.
Success Metrics:
| Metric | Target | Measurement |
|---|---|---|
| processing_time | < 5s | Time from request to completion |
| success_rate | >= 99% | Successful operations divided by total attempts |
Constraints:
- performance (negotiable): Must not block dependent workflows
Autonomy
Level: semi_autonomous
Human Checkpoints:
- before transitioning to a terminal state
Escalation Triggers:
error_rate > 5
Tradeoffs
| Prefer | Over | Reason |
|---|---|---|
| reliability | speed | workflow steps must complete correctly before proceeding |
Coordination
Protocol: orchestrated
Consumes:
| Capability | From | Fallback |
|---|---|---|
vehicle_master_data | vehicle-master-data | degrade |
vehicle_maintenance_log | vehicle-maintenance-log | degrade |
Safety
| Action | Permission | Cooldown | Max Auto |
|---|---|---|---|
| schedule_created | supervised | - | - |
| task_due_soon | autonomous | - | - |
| task_overdue | autonomous | - | - |
| task_completed | autonomous | - | - |
| odometer_due_triggered | autonomous | - | - |