Skip to content

Sprint history — Cross-pooling

What shipped

Borrowing workers across pools when a pool can't cover its own demand.

  • Pools & pool-lending rulesPool (default one per department) and the directional PoolLendingRule CRUD + UI, with the default-pool-per-department invariant.
  • Runtime enforcementCrossPoolEligibilityRule enforces lending at allocation time, so cross-pool borrowing is a live runtime behaviour, not config-only.

Key decisions

  • Cross-pooling is enforced at allocation time — the eligibility rule decides who can be borrowed during a run (Phase-0 correction: cross-pooling is LIVE runtime behaviour, not config-only).
  • Lending rules are directional — source pool → target pool.
  • MaxConcurrentBorrows cap, an approval workflow, and a lending ledger are PLANNED — the rule decides eligibility; there is no borrow cap or approval chain yet (sheet 22).
  • The cross-pool block reason is computed server-side but not surfaced in the UI (part of F8).

Build status

Available (Pool + PoolLendingRule CRUD + UI + runtime enforcement); Planned on the cap/approval/ledger. See Pools & cross-pooling (concept) and the Pools API.

  • Fact sheets 12 (cross-pooling), 22 (pools & lending).