Skill Based Assignment Blueprint
Restrict which vehicles may serve which tasks by tagging each task with required skills and each vehicle with held skills. A vehicle may only serve a task if it holds every required skill.
| Feature | skill-based-assignment |
| Category | Workflow |
| Version | 1.0.0 |
| Tags | skill-matching, driver-competency, task-qualification, workforce-management |
| YAML Source | View on GitHub |
| JSON API | skill-based-assignment.json |
Actors
| ID | Name | Type | Description |
|---|---|---|---|
fleet_manager | Fleet Manager | human | Assigns skill sets to vehicles |
operations_planner | Operations Planner | human | Specifies required skills on tasks and shipments |
optimization_engine | Optimization Engine | system | Pre-filters vehicle-to-task compatibility using skill intersection |
Fields
| Name | Type | Required | Label | Description |
|---|---|---|---|---|
vehicle_skills | json | No | Vehicle Skills | |
job_skills | json | No | Required Job Skills | |
shipment_skills | json | No | Required Shipment Skills | |
skill_id | number | No | Skill ID |
States
State field: skill_compatibility
Values:
| State | Initial | Terminal |
|---|---|---|
compatible | Yes | |
incompatible | ||
violation |
Transitions:
| Name | From | To | Actor | Condition |
|---|---|---|---|---|
compatible | incompatible | optimization_engine | ||
compatible | violation | optimization_engine |
Rules
- superset_required: A vehicle may serve a task only if the vehicle’s skill set contains all of the task’s required skills.
- opaque_identifiers: Skills are opaque integer identifiers; the system does not interpret their meaning — that is the operator’s responsibility.
- empty_vehicle_skills: A vehicle with no skills defined has an empty skill set; it can only serve tasks with no required skills.
- empty_task_skills: A task with no required skills can be served by any vehicle regardless of the vehicle’s skills.
- precomputed_compatibility: Skill compatibility is computed once at load time as a matrix; it does not change during solving.
- unassigned_when_no_match: If no vehicle holds the skills required by a task, the task cannot be assigned and is reported as unassigned.
- skills_violation_plan_mode: In plan mode, assigning a task to a vehicle lacking required skills is recorded as a skills violation.
Outcomes
Skill_violation_plan_mode (Priority: 4)
Given:
- plan/ETA mode active
- submitted route assigns task to vehicle missing required skills
Then:
- emit_event event:
task.skill.violated
Result: skills violation recorded on the affected step and route.
Task_unassigned_no_match (Priority: 5)
Given:
- no vehicle in the fleet holds all required skills for this task
Then:
- emit_event event:
task.unassigned
Result: Task reported as unassigned; operator should add a compatible vehicle or relax skill requirements.
Incompatible_skipped (Priority: 7)
Given:
- vehicle_skills does not contain all job_skills
- standard solving mode
Then:
- emit_event event:
task.skill.rejected
Result: Vehicle excluded from consideration for this task; no violation recorded.
Compatible_assignment (Priority: 10)
Given:
- vehicle_skills is a superset of job_skills
Then:
- emit_event event:
task.skill.matched
Result: Vehicle is eligible for this task; optimizer may assign it subject to other constraints.
Errors
| Code | Status | Message | Retry |
|---|---|---|---|
SKILL_NO_COMPATIBLE_VEHICLE | 422 | No vehicle holds the required skills for this task. | No |
Events
| Event | Description | Payload |
|---|---|---|
task.skill.matched | Vehicle confirmed compatible with task skill requirements | vehicle_id, job_id, matched_skills |
task.skill.rejected | Vehicle lacks required skills for a task; skipped during optimization | vehicle_id, job_id, missing_skills |
task.skill.violated | Plan mode — task assigned to incompatible vehicle | vehicle_id, job_id, missing_skills |
task.unassigned | No compatible vehicle found; task left unassigned | job_id, reason |
Related Blueprints
| Feature | Relationship | Reason |
|---|---|---|
| vrp-solving | required | |
| multi-vehicle-route-optimization | required | |
| pickup-delivery-pairing | optional | |
| driver-shift-break-constraints | optional |
AGI Readiness
Goals
Reliable Skill Based Assignment
Restrict which vehicles may serve which tasks by tagging each task with required skills and each vehicle with held skills. A vehicle may only serve a task if it holds every required skill.
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 |
|---|---|---|
vrp_solving | vrp-solving | degrade |
multi_vehicle_route_optimization | multi-vehicle-route-optimization | degrade |
Safety
| Action | Permission | Cooldown | Max Auto |
|---|---|---|---|
| compatible_assignment | autonomous | - | - |
| incompatible_skipped | autonomous | - | - |
| task_unassigned_no_match | autonomous | - | - |
| skill_violation_plan_mode | autonomous | - | - |