Skip to main content
function validateCoverageRoles(coverage, employees): CoverageValidationResult;
Validates that all roleIds used in coverage requirements match the team. This catches a common LLM error where the model generates coverage requirements using role names that don’t match any team member’s roleIds. Without this validation, such mismatches would result in valid but semantically wrong schedules (e.g., coverage requirements that no one can satisfy).

Parameters

coverage
required
employees
required

Returns

CoverageValidationResult

Example

const employees = [
  { id: "alice", roleIds: ["cashier"] },
  { id: "bob", roleIds: ["stocker"] },
];

const coverage = [
  { roleId: "cashier", targetCount: 1, ... },  // OK
  { roleId: "worker", targetCount: 1, ... },   // Unknown role!
];

const result = validateCoverageRoles(coverage, employees);
// result.valid = false
// result.unknownRoles = ["worker"]
// result.knownRoles = ["cashier"]