FAILURE MAP
← Case archive

FA-77746 / Legal deadline computation / Open access

Deadlines extended by a bankruptcy filing and automatic stay: act extension · case 01

A deadline already more than 60 days after the petition is shortened.

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

ROOT CAUSE

The act deadline is always replaced by petition + 60 days.

VERIFIED REPAIR

At the act extension decision use `max(d, p + dt.timedelta(days=60))`, leaving the other decision sites of the model unchanged.

Unsuccessful approach: The partial repair `d + dt.timedelta(days=60)` adds 60 days to the original deadline instead of taking the later date.

Case contract

Stipulated: for each deadline [kind, date] and petition date p: a deadline before p had already expired and is returned as [date, "expired"]. An "act" deadline becomes the later of its date and p + 60 days. A "collection" deadline becomes the later of its date and stay_end + 30 days; if stay_end is None it is "stayed". Return [date or None, status] per deadline, status "extended" when the date moved and "unchanged" otherwise.

Why this case matters

Docketing systems compute filing and response deadlines from trigger events; a wrong date can forfeit a right.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime as dt
import calendar
N = 1
observations = []
def solve(petition, stay_end, deadlines):
    p = dt.date.fromisoformat(petition)
    out = []
    stay = dt.date.fromisoformat(stay_end) if stay_end else None
    for kind, due in deadlines:
        d = dt.date.fromisoformat(due)
        if d < p:
            out.append([due, 'expired'])
            continue
        if kind == 'act':
            new = p + dt.timedelta(days=60)
        elif stay is None:
            out.append([None, 'stayed'])
            continue
        else:
            new = max(d, stay + dt.timedelta(days=30))
        out.append([new.isoformat(), 'extended' if new != d else 'unchanged'])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']])],
 [('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']])],
 [('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']])],
 [('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']])],
 [('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']])]]
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: late act deadline[['2024-04-30', 'extended']][['2024-07-15', 'unchanged']]Failed
act soon after petition[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
deadline on petition date[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
expired day before[['2024-02-29', 'expired']][['2024-02-29', 'expired']]Passed
collection after stay[['2024-07-01', 'extended']][['2024-07-01', 'extended']]Passed
collection stay pending[[None, 'stayed'], ['2024-04-30', 'extended']][[None, 'stayed'], ['2024-04-30', 'extended']]Passed
collection late anyway[['2024-06-30', 'unchanged']][['2024-06-30', 'unchanged']]Passed

SHA-256 / 14d1d5caeae307b5d564d2eb30a7eb0c6a5abb0b157f3bdf0d08fba5b5151840

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime as dt
import calendar
N = 1
observations = []
def solve(petition, stay_end, deadlines):
    p = dt.date.fromisoformat(petition)
    out = []
    stay = dt.date.fromisoformat(stay_end) if stay_end else None
    for kind, due in deadlines:
        d = dt.date.fromisoformat(due)
        if d < p:
            out.append([due, 'expired'])
            continue
        if kind == 'act':
            new = d + dt.timedelta(days=60)
        elif stay is None:
            out.append([None, 'stayed'])
            continue
        else:
            new = max(d, stay + dt.timedelta(days=30))
        out.append([new.isoformat(), 'extended' if new != d else 'unchanged'])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']])],
 [('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']])],
 [('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']])],
 [('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']])],
 [('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']])]]
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: late act deadline[['2024-09-13', 'extended']][['2024-07-15', 'unchanged']]Failed
act soon after petition[['2024-05-09', 'extended']][['2024-04-30', 'extended']]Failed
deadline on petition date[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
expired day before[['2024-02-29', 'expired']][['2024-02-29', 'expired']]Passed
collection after stay[['2024-07-01', 'extended']][['2024-07-01', 'extended']]Passed
collection stay pending[[None, 'stayed'], ['2024-05-19', 'extended']][[None, 'stayed'], ['2024-04-30', 'extended']]Failed
collection late anyway[['2024-06-30', 'unchanged']][['2024-06-30', 'unchanged']]Passed

SHA-256 / 3287e1875337ab9de7716d504de99613d4f627d45600bda71e2db47d2dc3bfde

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime as dt
import calendar
N = 1
observations = []
def solve(petition, stay_end, deadlines):
    p = dt.date.fromisoformat(petition)
    out = []
    stay = dt.date.fromisoformat(stay_end) if stay_end else None
    for kind, due in deadlines:
        d = dt.date.fromisoformat(due)
        if d < p:
            out.append([due, 'expired'])
            continue
        if kind == 'act':
            new = max(d, p + dt.timedelta(days=60))
        elif stay is None:
            out.append([None, 'stayed'])
            continue
        else:
            new = max(d, stay + dt.timedelta(days=30))
        out.append([new.isoformat(), 'extended' if new != d else 'unchanged'])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']])],
 [('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']])],
 [('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']])],
 [('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']])],
 [('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']])]]
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: late act deadline[['2024-07-15', 'unchanged']][['2024-07-15', 'unchanged']]Passed
act soon after petition[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
deadline on petition date[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
expired day before[['2024-02-29', 'expired']][['2024-02-29', 'expired']]Passed
collection after stay[['2024-07-01', 'extended']][['2024-07-01', 'extended']]Passed
collection stay pending[[None, 'stayed'], ['2024-04-30', 'extended']][[None, 'stayed'], ['2024-04-30', 'extended']]Passed
collection late anyway[['2024-06-30', 'unchanged']][['2024-06-30', 'unchanged']]Passed

SHA-256 / f34c084c3237a900b037dcc82d797593e15e353c125fdefa6f6f087932d3829b

Verification & scope

Stipulated toy deadline rules evaluated offline on explicit fixtures. The contract is inspired by common court-rule structures but is not legal advice and makes no claim to reproduce any jurisdiction's rules. 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:49:28.640600+00:00.

Case digest / 3e0ba60c26c6bc038b01d859ee99a9c7bd3fca2f3ebd7cbd530f6bf6d99c2103