FAILURE MAP
← Case archive

FA-94216 / Shift rostering labor rules / Open access

Shift running past the window end counted in full · case 01

A long shift starting late in the window pushes the total over the limit.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Shift minutes are not clipped at the window end.

VERIFIED REPAIR

Clip each shift at the window end t + W.

Unsuccessful approach: Clipping one minute early undercounts every shift reaching the end.

Case contract

Shifts [start, end] in minutes. For window W, evaluate windows [t, t + W) anchored at each shift start and sum the minutes of all shifts clipped to the window; report the maximum. Return [max in any 24h window, max in any 168h window, violations] where more than 960 minutes in 24h or more than 3600 minutes in 168h is a violation.

Why this case matters

Rolling-window fatigue limits catch hours concentrated across calendar-day boundaries.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(shifts):
    starts = sorted(s for s, e in shifts)
    def worst(W):
        best = 0
        for t in starts:
            tot = sum(max(0, e - max(s, t)) for s, e in shifts)
            best = max(best, tot)
        return best
    m24, m168 = worst(1440), worst(10080)
    v = []
    if m24 > 960:
        v.append('24h')
    if m168 > 3600:
        v.append('7d')
    return [m24, m168, v]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: window end clip 1', [[[0, 600], [1200, 1800]]], [840, 1200, []]),
  ('regression variant: window end clip 2', [[[2700, 3420], [0, 720], [4320, 4680], [1440, 1800]]],
   [720, 2160, []]),
  ('partial repair guard 3',
   [[[4680, 5160], [4080, 4440], [1920, 2640], [1200, 1680], [6120, 6600], [0, 720], [5400, 5880],
     [3540, 4020]]],
   [1200, 4200, ['24h', '7d']]),
  ('boundary control 4', [[[1000, 1500], [0, 480]]], [920, 980, []]),
  ('boundary control 5', [[[0, 480], [480, 960]]], [960, 960, []]),
  ('normal control 6',
   [[[3720, 4440], [6300, 7020], [3120, 3480], [0, 600], [5340, 6060], [660, 1140], [1200, 1680],
     [7020, 7740]]],
   [1440, 4800, ['24h', '7d']]),
  ('normal control 7', [[[0, 360], [3840, 4440], [600, 1320], [2760, 3120]]], [1080, 2040, ['24h']]),
  ('normal control 8', [[[300, 900], [1380, 1740]]], [960, 960, []])],
 [('regression: window end clip 1', [[[1000, 1500], [0, 480]]], [920, 980, []]),
  ('regression variant: window end clip 2', [[[2520, 3120], [2100, 2460], [300, 660]]], [960, 1320, []]),
  ('partial repair guard 3', [[[3840, 4560], [5460, 6180], [2880, 3360], [1500, 1980], [0, 600]]],
   [960, 3000, []]),
  ('boundary control 4', [[[100, 700], [900, 1300]]], [1000, 1000, ['24h']]),
  ('normal control 5',
   [[[6180, 6660], [1680, 2040], [7140, 7500], [720, 1200], [8400, 9120], [3480, 4080], [300, 660],
     [4980, 5460]]],
   [900, 3840, ['7d']]),
  ('normal control 6',
   [[[6900, 7620], [1260, 1740], [9060, 9780], [4860, 5220], [3060, 3420], [1740, 2340], [5700, 6180],
     [300, 1020]]],
   [1200, 4440, ['24h', '7d']]),
  ('normal control 7', [[[2340, 2700], [300, 900]]], [600, 960, []]),
  ('normal control 8',
   [[[3720, 4320], [2460, 2820], [6240, 6960], [9180, 9660], [300, 1020], [5040, 5760], [7680, 8040],
     [8100, 8700]]],
   [960, 4560, ['7d']])],
 [('regression: window end clip 1', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('regression variant: window end clip 2', [[[2160, 2640], [300, 780], [840, 1440]]], [1080, 1560, ['24h']]),
  ('partial repair guard 3',
   [[[1080, 1440], [7260, 7860], [1920, 2520], [0, 600], [5460, 5820], [3300, 4020], [2520, 3240]]],
   [1380, 3960, ['24h', '7d']]),
  ('boundary control 4', [[[0, 480], [480, 961]]], [961, 961, ['24h']]),
  ('boundary control 5', [[[100, 700], [900, 1300]]], [1000, 1000, ['24h']]),
  ('normal control 6', [[[1560, 2160], [300, 780], [780, 1500]]], [1380, 1800, ['24h']]),
  ('normal control 7',
   [[[1680, 2400], [3840, 4200], [5040, 5640], [300, 780], [4680, 5040], [6540, 7260], [6120, 6480],
     [7500, 7860]]],
   [1140, 3960, ['24h', '7d']]),
  ('normal control 8', [[[3000, 3360], [300, 1020], [2460, 2940], [4800, 5520]]], [840, 2280, []])],
 [('regression: window end clip 1', [[[0, 480], [1920, 2640]]], [720, 1200, []]),
  ('regression variant: window end clip 2',
   [[[6060, 6420], [5100, 5580], [1080, 1560], [0, 360], [3120, 3600], [3840, 4200], [1620, 2220]]],
   [1080, 3120, ['24h']]),
  ('partial repair guard 3',
   [[[2580, 3180], [4500, 5220], [7380, 8100], [0, 600], [1500, 2100], [9000, 9720], [3420, 4020],
     [6120, 6480]]],
   [1200, 4920, ['24h', '7d']]),
  ('boundary control 4', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('boundary control 5', [[[0, 480], [480, 961]]], [961, 961, ['24h']]),
  ('normal control 6', [[[1920, 2520], [0, 480], [720, 1200], [2760, 3480]]], [1200, 2280, ['24h']]),
  ('normal control 7', [[[1320, 1920], [2820, 3180], [0, 600]]], [720, 1560, []]),
  ('normal control 8',
   [[[1200, 1560], [2280, 2880], [0, 480], [720, 1200], [7440, 8040], [5940, 6540], [3360, 3960],
     [4020, 4500]]],
   [1200, 4200, ['24h', '7d']])],
 [('regression: window end clip 1',
   [[[0, 600], [3480, 3960], [5400, 5880], [840, 1200], [4200, 4920], [1680, 2040]]], [1200, 3000, ['24h']]),
  ('regression variant: window end clip 2',
   [[[1920, 2640], [5100, 5580], [2640, 3000], [0, 720], [3060, 3780], [960, 1440], [3840, 4200],
     [6300, 6780]]],
   [1380, 4320, ['24h', '7d']]),
  ('partial repair guard 3', [[[1920, 2520], [0, 480], [720, 1200], [2760, 3480]]], [1200, 2280, ['24h']]),
  ('boundary control 4', [[[0, 1010]]], [1010, 1010, ['24h']]),
  ('boundary control 5', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('normal control 6', [[[1380, 2100], [2340, 2700], [3600, 4200], [300, 900], [4260, 4620], [5100, 5580]]],
   [1080, 3120, ['24h']]),
  ('normal control 7',
   [[[0, 720], [5400, 6000], [9180, 9900], [7980, 8460], [10140, 10620], [1620, 2340], [3240, 3960],
     [7440, 7920]]],
   [1200, 4440, ['24h', '7d']]),
  ('normal control 8', [[[1740, 2100], [2580, 3300], [0, 600], [1080, 1680], [3540, 4260]]],
   [1200, 3000, ['24h']])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: window end clip 1[1200, 1200, ['24h']][840, 1200, []]Failed
regression variant: window end clip 2[2160, 2160, ['24h']][720, 2160, []]Failed
partial repair guard 3[4200, 4200, ['24h', '7d']][1200, 4200, ['24h', '7d']]Failed
boundary control 4[980, 980, ['24h']][920, 980, []]Failed
boundary control 5[960, 960, []][960, 960, []]Passed
normal control 6[4800, 4800, ['24h', '7d']][1440, 4800, ['24h', '7d']]Failed
normal control 7[2040, 2040, ['24h']][1080, 2040, ['24h']]Failed
normal control 8[960, 960, []][960, 960, []]Passed

SHA-256 / 3a6e761f3e6bd3895757cdaa5e7d05ae8ef71d4afcfa2f7517a25f3fe6a97cea

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(shifts):
    starts = sorted(s for s, e in shifts)
    def worst(W):
        best = 0
        for t in starts:
            tot = sum(max(0, min(e, t + W - 1) - max(s, t)) for s, e in shifts)
            best = max(best, tot)
        return best
    m24, m168 = worst(1440), worst(10080)
    v = []
    if m24 > 960:
        v.append('24h')
    if m168 > 3600:
        v.append('7d')
    return [m24, m168, v]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: window end clip 1', [[[0, 600], [1200, 1800]]], [840, 1200, []]),
  ('regression variant: window end clip 2', [[[2700, 3420], [0, 720], [4320, 4680], [1440, 1800]]],
   [720, 2160, []]),
  ('partial repair guard 3',
   [[[4680, 5160], [4080, 4440], [1920, 2640], [1200, 1680], [6120, 6600], [0, 720], [5400, 5880],
     [3540, 4020]]],
   [1200, 4200, ['24h', '7d']]),
  ('boundary control 4', [[[1000, 1500], [0, 480]]], [920, 980, []]),
  ('boundary control 5', [[[0, 480], [480, 960]]], [960, 960, []]),
  ('normal control 6',
   [[[3720, 4440], [6300, 7020], [3120, 3480], [0, 600], [5340, 6060], [660, 1140], [1200, 1680],
     [7020, 7740]]],
   [1440, 4800, ['24h', '7d']]),
  ('normal control 7', [[[0, 360], [3840, 4440], [600, 1320], [2760, 3120]]], [1080, 2040, ['24h']]),
  ('normal control 8', [[[300, 900], [1380, 1740]]], [960, 960, []])],
 [('regression: window end clip 1', [[[1000, 1500], [0, 480]]], [920, 980, []]),
  ('regression variant: window end clip 2', [[[2520, 3120], [2100, 2460], [300, 660]]], [960, 1320, []]),
  ('partial repair guard 3', [[[3840, 4560], [5460, 6180], [2880, 3360], [1500, 1980], [0, 600]]],
   [960, 3000, []]),
  ('boundary control 4', [[[100, 700], [900, 1300]]], [1000, 1000, ['24h']]),
  ('normal control 5',
   [[[6180, 6660], [1680, 2040], [7140, 7500], [720, 1200], [8400, 9120], [3480, 4080], [300, 660],
     [4980, 5460]]],
   [900, 3840, ['7d']]),
  ('normal control 6',
   [[[6900, 7620], [1260, 1740], [9060, 9780], [4860, 5220], [3060, 3420], [1740, 2340], [5700, 6180],
     [300, 1020]]],
   [1200, 4440, ['24h', '7d']]),
  ('normal control 7', [[[2340, 2700], [300, 900]]], [600, 960, []]),
  ('normal control 8',
   [[[3720, 4320], [2460, 2820], [6240, 6960], [9180, 9660], [300, 1020], [5040, 5760], [7680, 8040],
     [8100, 8700]]],
   [960, 4560, ['7d']])],
 [('regression: window end clip 1', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('regression variant: window end clip 2', [[[2160, 2640], [300, 780], [840, 1440]]], [1080, 1560, ['24h']]),
  ('partial repair guard 3',
   [[[1080, 1440], [7260, 7860], [1920, 2520], [0, 600], [5460, 5820], [3300, 4020], [2520, 3240]]],
   [1380, 3960, ['24h', '7d']]),
  ('boundary control 4', [[[0, 480], [480, 961]]], [961, 961, ['24h']]),
  ('boundary control 5', [[[100, 700], [900, 1300]]], [1000, 1000, ['24h']]),
  ('normal control 6', [[[1560, 2160], [300, 780], [780, 1500]]], [1380, 1800, ['24h']]),
  ('normal control 7',
   [[[1680, 2400], [3840, 4200], [5040, 5640], [300, 780], [4680, 5040], [6540, 7260], [6120, 6480],
     [7500, 7860]]],
   [1140, 3960, ['24h', '7d']]),
  ('normal control 8', [[[3000, 3360], [300, 1020], [2460, 2940], [4800, 5520]]], [840, 2280, []])],
 [('regression: window end clip 1', [[[0, 480], [1920, 2640]]], [720, 1200, []]),
  ('regression variant: window end clip 2',
   [[[6060, 6420], [5100, 5580], [1080, 1560], [0, 360], [3120, 3600], [3840, 4200], [1620, 2220]]],
   [1080, 3120, ['24h']]),
  ('partial repair guard 3',
   [[[2580, 3180], [4500, 5220], [7380, 8100], [0, 600], [1500, 2100], [9000, 9720], [3420, 4020],
     [6120, 6480]]],
   [1200, 4920, ['24h', '7d']]),
  ('boundary control 4', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('boundary control 5', [[[0, 480], [480, 961]]], [961, 961, ['24h']]),
  ('normal control 6', [[[1920, 2520], [0, 480], [720, 1200], [2760, 3480]]], [1200, 2280, ['24h']]),
  ('normal control 7', [[[1320, 1920], [2820, 3180], [0, 600]]], [720, 1560, []]),
  ('normal control 8',
   [[[1200, 1560], [2280, 2880], [0, 480], [720, 1200], [7440, 8040], [5940, 6540], [3360, 3960],
     [4020, 4500]]],
   [1200, 4200, ['24h', '7d']])],
 [('regression: window end clip 1',
   [[[0, 600], [3480, 3960], [5400, 5880], [840, 1200], [4200, 4920], [1680, 2040]]], [1200, 3000, ['24h']]),
  ('regression variant: window end clip 2',
   [[[1920, 2640], [5100, 5580], [2640, 3000], [0, 720], [3060, 3780], [960, 1440], [3840, 4200],
     [6300, 6780]]],
   [1380, 4320, ['24h', '7d']]),
  ('partial repair guard 3', [[[1920, 2520], [0, 480], [720, 1200], [2760, 3480]]], [1200, 2280, ['24h']]),
  ('boundary control 4', [[[0, 1010]]], [1010, 1010, ['24h']]),
  ('boundary control 5', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('normal control 6', [[[1380, 2100], [2340, 2700], [3600, 4200], [300, 900], [4260, 4620], [5100, 5580]]],
   [1080, 3120, ['24h']]),
  ('normal control 7',
   [[[0, 720], [5400, 6000], [9180, 9900], [7980, 8460], [10140, 10620], [1620, 2340], [3240, 3960],
     [7440, 7920]]],
   [1200, 4440, ['24h', '7d']]),
  ('normal control 8', [[[1740, 2100], [2580, 3300], [0, 600], [1080, 1680], [3540, 4260]]],
   [1200, 3000, ['24h']])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: window end clip 1[839, 1200, []][840, 1200, []]Failed
regression variant: window end clip 2[720, 2160, []][720, 2160, []]Passed
partial repair guard 3[1199, 4200, ['24h', '7d']][1200, 4200, ['24h', '7d']]Failed
boundary control 4[919, 980, []][920, 980, []]Failed
boundary control 5[960, 960, []][960, 960, []]Passed
normal control 6[1439, 4800, ['24h', '7d']][1440, 4800, ['24h', '7d']]Failed
normal control 7[1080, 2040, ['24h']][1080, 2040, ['24h']]Passed
normal control 8[959, 960, []][960, 960, []]Failed

SHA-256 / c63c17d6d0139ed2782c7737ffb9f1729ca4189e4da3d3fe4546e3b03703b820

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(shifts):
    starts = sorted(s for s, e in shifts)
    def worst(W):
        best = 0
        for t in starts:
            tot = sum(max(0, min(e, t + W) - max(s, t)) for s, e in shifts)
            best = max(best, tot)
        return best
    m24, m168 = worst(1440), worst(10080)
    v = []
    if m24 > 960:
        v.append('24h')
    if m168 > 3600:
        v.append('7d')
    return [m24, m168, v]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: window end clip 1', [[[0, 600], [1200, 1800]]], [840, 1200, []]),
  ('regression variant: window end clip 2', [[[2700, 3420], [0, 720], [4320, 4680], [1440, 1800]]],
   [720, 2160, []]),
  ('partial repair guard 3',
   [[[4680, 5160], [4080, 4440], [1920, 2640], [1200, 1680], [6120, 6600], [0, 720], [5400, 5880],
     [3540, 4020]]],
   [1200, 4200, ['24h', '7d']]),
  ('boundary control 4', [[[1000, 1500], [0, 480]]], [920, 980, []]),
  ('boundary control 5', [[[0, 480], [480, 960]]], [960, 960, []]),
  ('normal control 6',
   [[[3720, 4440], [6300, 7020], [3120, 3480], [0, 600], [5340, 6060], [660, 1140], [1200, 1680],
     [7020, 7740]]],
   [1440, 4800, ['24h', '7d']]),
  ('normal control 7', [[[0, 360], [3840, 4440], [600, 1320], [2760, 3120]]], [1080, 2040, ['24h']]),
  ('normal control 8', [[[300, 900], [1380, 1740]]], [960, 960, []])],
 [('regression: window end clip 1', [[[1000, 1500], [0, 480]]], [920, 980, []]),
  ('regression variant: window end clip 2', [[[2520, 3120], [2100, 2460], [300, 660]]], [960, 1320, []]),
  ('partial repair guard 3', [[[3840, 4560], [5460, 6180], [2880, 3360], [1500, 1980], [0, 600]]],
   [960, 3000, []]),
  ('boundary control 4', [[[100, 700], [900, 1300]]], [1000, 1000, ['24h']]),
  ('normal control 5',
   [[[6180, 6660], [1680, 2040], [7140, 7500], [720, 1200], [8400, 9120], [3480, 4080], [300, 660],
     [4980, 5460]]],
   [900, 3840, ['7d']]),
  ('normal control 6',
   [[[6900, 7620], [1260, 1740], [9060, 9780], [4860, 5220], [3060, 3420], [1740, 2340], [5700, 6180],
     [300, 1020]]],
   [1200, 4440, ['24h', '7d']]),
  ('normal control 7', [[[2340, 2700], [300, 900]]], [600, 960, []]),
  ('normal control 8',
   [[[3720, 4320], [2460, 2820], [6240, 6960], [9180, 9660], [300, 1020], [5040, 5760], [7680, 8040],
     [8100, 8700]]],
   [960, 4560, ['7d']])],
 [('regression: window end clip 1', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('regression variant: window end clip 2', [[[2160, 2640], [300, 780], [840, 1440]]], [1080, 1560, ['24h']]),
  ('partial repair guard 3',
   [[[1080, 1440], [7260, 7860], [1920, 2520], [0, 600], [5460, 5820], [3300, 4020], [2520, 3240]]],
   [1380, 3960, ['24h', '7d']]),
  ('boundary control 4', [[[0, 480], [480, 961]]], [961, 961, ['24h']]),
  ('boundary control 5', [[[100, 700], [900, 1300]]], [1000, 1000, ['24h']]),
  ('normal control 6', [[[1560, 2160], [300, 780], [780, 1500]]], [1380, 1800, ['24h']]),
  ('normal control 7',
   [[[1680, 2400], [3840, 4200], [5040, 5640], [300, 780], [4680, 5040], [6540, 7260], [6120, 6480],
     [7500, 7860]]],
   [1140, 3960, ['24h', '7d']]),
  ('normal control 8', [[[3000, 3360], [300, 1020], [2460, 2940], [4800, 5520]]], [840, 2280, []])],
 [('regression: window end clip 1', [[[0, 480], [1920, 2640]]], [720, 1200, []]),
  ('regression variant: window end clip 2',
   [[[6060, 6420], [5100, 5580], [1080, 1560], [0, 360], [3120, 3600], [3840, 4200], [1620, 2220]]],
   [1080, 3120, ['24h']]),
  ('partial repair guard 3',
   [[[2580, 3180], [4500, 5220], [7380, 8100], [0, 600], [1500, 2100], [9000, 9720], [3420, 4020],
     [6120, 6480]]],
   [1200, 4920, ['24h', '7d']]),
  ('boundary control 4', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('boundary control 5', [[[0, 480], [480, 961]]], [961, 961, ['24h']]),
  ('normal control 6', [[[1920, 2520], [0, 480], [720, 1200], [2760, 3480]]], [1200, 2280, ['24h']]),
  ('normal control 7', [[[1320, 1920], [2820, 3180], [0, 600]]], [720, 1560, []]),
  ('normal control 8',
   [[[1200, 1560], [2280, 2880], [0, 480], [720, 1200], [7440, 8040], [5940, 6540], [3360, 3960],
     [4020, 4500]]],
   [1200, 4200, ['24h', '7d']])],
 [('regression: window end clip 1',
   [[[0, 600], [3480, 3960], [5400, 5880], [840, 1200], [4200, 4920], [1680, 2040]]], [1200, 3000, ['24h']]),
  ('regression variant: window end clip 2',
   [[[1920, 2640], [5100, 5580], [2640, 3000], [0, 720], [3060, 3780], [960, 1440], [3840, 4200],
     [6300, 6780]]],
   [1380, 4320, ['24h', '7d']]),
  ('partial repair guard 3', [[[1920, 2520], [0, 480], [720, 1200], [2760, 3480]]], [1200, 2280, ['24h']]),
  ('boundary control 4', [[[0, 1010]]], [1010, 1010, ['24h']]),
  ('boundary control 5', [[[0, 720], [1440, 2160], [2880, 3600], [4320, 5040], [5760, 6480]]],
   [720, 3600, []]),
  ('normal control 6', [[[1380, 2100], [2340, 2700], [3600, 4200], [300, 900], [4260, 4620], [5100, 5580]]],
   [1080, 3120, ['24h']]),
  ('normal control 7',
   [[[0, 720], [5400, 6000], [9180, 9900], [7980, 8460], [10140, 10620], [1620, 2340], [3240, 3960],
     [7440, 7920]]],
   [1200, 4440, ['24h', '7d']]),
  ('normal control 8', [[[1740, 2100], [2580, 3300], [0, 600], [1080, 1680], [3540, 4260]]],
   [1200, 3000, ['24h']])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: window end clip 1[840, 1200, []][840, 1200, []]Passed
regression variant: window end clip 2[720, 2160, []][720, 2160, []]Passed
partial repair guard 3[1200, 4200, ['24h', '7d']][1200, 4200, ['24h', '7d']]Passed
boundary control 4[920, 980, []][920, 980, []]Passed
boundary control 5[960, 960, []][960, 960, []]Passed
normal control 6[1440, 4800, ['24h', '7d']][1440, 4800, ['24h', '7d']]Passed
normal control 7[1080, 2040, ['24h']][1080, 2040, ['24h']]Passed
normal control 8[960, 960, []][960, 960, []]Passed

SHA-256 / 6a21a0681e02a2e3ef02d5342bc51c8c29a5efc14bf43ff7af817fa85a35001e

Verification & scope

Stipulated toy labor rule for a bounded roster model; it is not legal advice and does not claim conformance with any jurisdiction, award, or collective agreement. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:52:02.223706+00:00.

Case digest / b0b96c42628f03b2fa2b1515cd0482954c2232184db5394c8b687a3b2f726c33