Skip to content

Sprint history — Allocation engine

What shipped

The rules engine that decides who can fill each demand line — built up rule by rule.

  • Allocation rules framework (MIQ-021) — the rule-set / rule / scope model and the 12-type rule-type catalog (system rows); dispatch by RuleTypeCode.
  • Soft scoring rules — Skill Priority (MIQ-022), Terminal Priority (MIQ-023), Working Hours + Equalization (MIQ-024/024a, with WorkingHoursPriority real logic).
  • Hard validation rules (MIQ-025) — the hard-rule framework; later filled with real logic in MIQ-029 (RestHours + DoubleBooking) and MIQ-031 (HourLimit).
  • Rule-set scope + full CRUD UI (MIQ-026) — scoping rules to terminals/nodes/etc. and the management UI.

Key decisions

  • All 7 hard + 7 soft rules are LIVE — the early MIQ-025 fail-open stubs were replaced; only the test-only NoOpAllocationRule is a stub (Phase-0 headline correction, reversing the handover's "mostly stubs" claim).
  • Dispatch is by RuleTypeCode — the catalog's handler_class_name is display-only.
  • allocation_rule.write is SYS_ADMIN + HR_ADMIN only — a Planner runs the engine but can't edit rule sets.
  • Critical hard rules are protected — you can't delete the last rule of a critical type (400 CRITICAL_HARD_RULE_REQUIRED).

Build status

Available — the full rule engine (14 live rules, scoping, CRUD) ships. See Allocation rules (concept) and the Allocation rules API.

  • Rosters & runs — running the engine. · Equalization — the fairness rules.
  • Fact sheets 07 (allocation rules), 14 (equalization); reports MIQ-021–026, 029, 031.