FAILURE MAP
← Case archive

FA-86031 / Game economy crafting balance / Open access

Enchantment upgrade ladder: Level six failures are free · case 01

Failing at level six neither downgrades nor consumes protection.

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

ROOT CAUSE

The risky tier starts after level six instead of at it.

VERIFIED REPAIR

Restore `elif level >= 6:` at the risk tier start step.

Unsuccessful approach: Starting the risky tier at five punishes a safe level.

Case contract

Success chance (percent) from level L: [100,100,100,90,80,70,60,50,40,30][L]; max level 10. A roll r (0..99) succeeds when r < chance. Failure at L <= 5 keeps the level; at L >= 6 consumes a protection if one is left (level kept); otherwise L 6..7 downgrades by one and L >= 8 breaks the item. Rolls stop being consumed once the item is at max level or broken; used counts consumed rolls.

Why this case matters

Game economies leak or destroy currency when one crafting or pricing rule is off by one boundary, rounding stage or state update; the defect is observable in exact integer outcomes.

1 / The failure

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

N = 1
observations = []
def solve(level, rolls, protections):
    chance = [100, 100, 100, 90, 80, 70, 60, 50, 40, 30]
    used = 0
    broken = False
    for r in rolls:
        if level >= 10 or broken:
            break
        used += 1
        if r < chance[level]:
            level += 1
        elif level > 6:
            if protections > 0:
                protections -= 1
            elif level >= 8:
                broken = True
            else:
                level -= 1
    return {'level': level, 'broken': broken, 'protections': protections, 'used': used}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [59, 50, 99, 50], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 4}),
  ('fault site risk tier start #2',
   [3, [49, 0, 0, 99, 50, 60], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 6}),
  ('partial repair boundary #1',
   [3, [0, 40, 99, 29, 39], 2],
   {'level': 7, 'broken': False, 'protections': 2, 'used': 5}),
  ('regression risk tier start #1',
   [5, [99, 60, 89, 0, 59, 39, 50, 39], 2],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 7}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [3, [49, 0, 0, 99, 50, 60], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 6}),
  ('fault site risk tier start #2',
   [6, [90, 30, 29, 99, 0, 60], 1],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 4}),
  ('regression risk tier start #1',
   [5, [89, 59, 99], 1],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 3}),
  ('regression risk tier start #2',
   [6, [60, 90, 59, 99, 89, 30], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 6}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [29, 50, 99, 60, 0, 50, 29, 99], 1],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 8}),
  ('fault site risk tier start #2', [6, [99], 0], {'level': 5, 'broken': False, 'protections': 0, 'used': 1}),
  ('partial repair boundary #1',
   [3, [39, 29, 89], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 3}),
  ('partial repair boundary #2',
   [3, [59, 49, 89, 40, 29], 0],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 5}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [90, 59, 30, 90, 29, 40, 29, 40], 0],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 8}),
  ('fault site risk tier start #2',
   [5, [90, 50, 60, 39, 99, 99, 30], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 7}),
  ('partial repair boundary #1',
   [5, [90, 30, 59, 60, 90, 50, 0], 2],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 7}),
  ('regression risk tier start #1',
   [3, [60, 49, 80, 29, 89, 39], 1],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 6}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1', [9, [99, 30], 0], {'level': 9, 'broken': True, 'protections': 0, 'used': 1})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('regression risk tier start #1',
   [5, [99, 60, 89, 0, 59, 39, 50, 39], 2],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 7}),
  ('regression risk tier start #2',
   [5, [89, 59, 99], 1],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 3}),
  ('regression risk tier start #3',
   [5, [90, 50, 82, 89, 57, 59], 0],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 6}),
  ('partial repair boundary #1', [5, [99], 0], {'level': 5, 'broken': False, 'protections': 0, 'used': 1}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [50, 40, 50, 0, 40, 29, 0], 0],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 1})]]
for label, args, expected in cases[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
protected downgrade #1{'broken': False, 'level': 6, 'protections': 1, 'used': 2}{'broken': False, 'level': 5, 'protections': 0, 'used': 2}Failed
fault site risk tier start #1{'broken': False, 'level': 7, 'protections': 0, 'used': 4}{'broken': False, 'level': 6, 'protections': 0, 'used': 4}Failed
fault site risk tier start #2{'broken': False, 'level': 6, 'protections': 0, 'used': 6}{'broken': False, 'level': 5, 'protections': 0, 'used': 6}Failed
partial repair boundary #1{'broken': False, 'level': 7, 'protections': 2, 'used': 5}{'broken': False, 'level': 7, 'protections': 2, 'used': 5}Passed
regression risk tier start #1{'broken': False, 'level': 9, 'protections': 0, 'used': 8}{'broken': True, 'level': 8, 'protections': 0, 'used': 7}Failed
break at eight #1{'broken': True, 'level': 8, 'protections': 0, 'used': 1}{'broken': True, 'level': 8, 'protections': 0, 'used': 1}Passed
boundary roll equals chance #1{'broken': False, 'level': 4, 'protections': 0, 'used': 1}{'broken': False, 'level': 4, 'protections': 0, 'used': 1}Passed
control #1{'broken': True, 'level': 9, 'protections': 0, 'used': 2}{'broken': True, 'level': 9, 'protections': 0, 'used': 2}Passed

SHA-256 / 2ae6ef1ec00b1c24d2c010f08aea0d02dd4c7a81eb5b9dc74f1ada3a2d706178

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(level, rolls, protections):
    chance = [100, 100, 100, 90, 80, 70, 60, 50, 40, 30]
    used = 0
    broken = False
    for r in rolls:
        if level >= 10 or broken:
            break
        used += 1
        if r < chance[level]:
            level += 1
        elif level >= 5:
            if protections > 0:
                protections -= 1
            elif level >= 8:
                broken = True
            else:
                level -= 1
    return {'level': level, 'broken': broken, 'protections': protections, 'used': used}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [59, 50, 99, 50], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 4}),
  ('fault site risk tier start #2',
   [3, [49, 0, 0, 99, 50, 60], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 6}),
  ('partial repair boundary #1',
   [3, [0, 40, 99, 29, 39], 2],
   {'level': 7, 'broken': False, 'protections': 2, 'used': 5}),
  ('regression risk tier start #1',
   [5, [99, 60, 89, 0, 59, 39, 50, 39], 2],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 7}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [3, [49, 0, 0, 99, 50, 60], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 6}),
  ('fault site risk tier start #2',
   [6, [90, 30, 29, 99, 0, 60], 1],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 4}),
  ('regression risk tier start #1',
   [5, [89, 59, 99], 1],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 3}),
  ('regression risk tier start #2',
   [6, [60, 90, 59, 99, 89, 30], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 6}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [29, 50, 99, 60, 0, 50, 29, 99], 1],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 8}),
  ('fault site risk tier start #2', [6, [99], 0], {'level': 5, 'broken': False, 'protections': 0, 'used': 1}),
  ('partial repair boundary #1',
   [3, [39, 29, 89], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 3}),
  ('partial repair boundary #2',
   [3, [59, 49, 89, 40, 29], 0],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 5}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [90, 59, 30, 90, 29, 40, 29, 40], 0],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 8}),
  ('fault site risk tier start #2',
   [5, [90, 50, 60, 39, 99, 99, 30], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 7}),
  ('partial repair boundary #1',
   [5, [90, 30, 59, 60, 90, 50, 0], 2],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 7}),
  ('regression risk tier start #1',
   [3, [60, 49, 80, 29, 89, 39], 1],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 6}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1', [9, [99, 30], 0], {'level': 9, 'broken': True, 'protections': 0, 'used': 1})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('regression risk tier start #1',
   [5, [99, 60, 89, 0, 59, 39, 50, 39], 2],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 7}),
  ('regression risk tier start #2',
   [5, [89, 59, 99], 1],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 3}),
  ('regression risk tier start #3',
   [5, [90, 50, 82, 89, 57, 59], 0],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 6}),
  ('partial repair boundary #1', [5, [99], 0], {'level': 5, 'broken': False, 'protections': 0, 'used': 1}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [50, 40, 50, 0, 40, 29, 0], 0],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 1})]]
for label, args, expected in cases[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
protected downgrade #1{'broken': False, 'level': 5, 'protections': 0, 'used': 2}{'broken': False, 'level': 5, 'protections': 0, 'used': 2}Passed
fault site risk tier start #1{'broken': False, 'level': 6, 'protections': 0, 'used': 4}{'broken': False, 'level': 6, 'protections': 0, 'used': 4}Passed
fault site risk tier start #2{'broken': False, 'level': 5, 'protections': 0, 'used': 6}{'broken': False, 'level': 5, 'protections': 0, 'used': 6}Passed
partial repair boundary #1{'broken': False, 'level': 7, 'protections': 1, 'used': 5}{'broken': False, 'level': 7, 'protections': 2, 'used': 5}Failed
regression risk tier start #1{'broken': False, 'level': 7, 'protections': 0, 'used': 8}{'broken': True, 'level': 8, 'protections': 0, 'used': 7}Failed
break at eight #1{'broken': True, 'level': 8, 'protections': 0, 'used': 1}{'broken': True, 'level': 8, 'protections': 0, 'used': 1}Passed
boundary roll equals chance #1{'broken': False, 'level': 4, 'protections': 0, 'used': 1}{'broken': False, 'level': 4, 'protections': 0, 'used': 1}Passed
control #1{'broken': True, 'level': 9, 'protections': 0, 'used': 2}{'broken': True, 'level': 9, 'protections': 0, 'used': 2}Passed

SHA-256 / b96d643cc370e163e91910a78a24ce3dff858f6dfc5c398ca75a1109677251a4

3 / The verified repair

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

N = 1
observations = []
def solve(level, rolls, protections):
    chance = [100, 100, 100, 90, 80, 70, 60, 50, 40, 30]
    used = 0
    broken = False
    for r in rolls:
        if level >= 10 or broken:
            break
        used += 1
        if r < chance[level]:
            level += 1
        elif level >= 6:
            if protections > 0:
                protections -= 1
            elif level >= 8:
                broken = True
            else:
                level -= 1
    return {'level': level, 'broken': broken, 'protections': protections, 'used': used}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [59, 50, 99, 50], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 4}),
  ('fault site risk tier start #2',
   [3, [49, 0, 0, 99, 50, 60], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 6}),
  ('partial repair boundary #1',
   [3, [0, 40, 99, 29, 39], 2],
   {'level': 7, 'broken': False, 'protections': 2, 'used': 5}),
  ('regression risk tier start #1',
   [5, [99, 60, 89, 0, 59, 39, 50, 39], 2],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 7}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [3, [49, 0, 0, 99, 50, 60], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 6}),
  ('fault site risk tier start #2',
   [6, [90, 30, 29, 99, 0, 60], 1],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 4}),
  ('regression risk tier start #1',
   [5, [89, 59, 99], 1],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 3}),
  ('regression risk tier start #2',
   [6, [60, 90, 59, 99, 89, 30], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 6}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [29, 50, 99, 60, 0, 50, 29, 99], 1],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 8}),
  ('fault site risk tier start #2', [6, [99], 0], {'level': 5, 'broken': False, 'protections': 0, 'used': 1}),
  ('partial repair boundary #1',
   [3, [39, 29, 89], 0],
   {'level': 5, 'broken': False, 'protections': 0, 'used': 3}),
  ('partial repair boundary #2',
   [3, [59, 49, 89, 40, 29], 0],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 5}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [39, 30, 99, 29, 59, 99, 0], 1],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 2})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('fault site risk tier start #1',
   [6, [90, 59, 30, 90, 29, 40, 29, 40], 0],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 8}),
  ('fault site risk tier start #2',
   [5, [90, 50, 60, 39, 99, 99, 30], 0],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 7}),
  ('partial repair boundary #1',
   [5, [90, 30, 59, 60, 90, 50, 0], 2],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 7}),
  ('regression risk tier start #1',
   [3, [60, 49, 80, 29, 89, 39], 1],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 6}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1', [9, [99, 30], 0], {'level': 9, 'broken': True, 'protections': 0, 'used': 1})],
 [('protected downgrade #1', [6, [70, 70], 1], {'level': 5, 'broken': False, 'protections': 0, 'used': 2}),
  ('regression risk tier start #1',
   [5, [99, 60, 89, 0, 59, 39, 50, 39], 2],
   {'level': 8, 'broken': True, 'protections': 0, 'used': 7}),
  ('regression risk tier start #2',
   [5, [89, 59, 99], 1],
   {'level': 6, 'broken': False, 'protections': 0, 'used': 3}),
  ('regression risk tier start #3',
   [5, [90, 50, 82, 89, 57, 59], 0],
   {'level': 7, 'broken': False, 'protections': 0, 'used': 6}),
  ('partial repair boundary #1', [5, [99], 0], {'level': 5, 'broken': False, 'protections': 0, 'used': 1}),
  ('break at eight #1', [8, [95, 0], 0], {'level': 8, 'broken': True, 'protections': 0, 'used': 1}),
  ('boundary roll equals chance #1',
   [4, [80], 0],
   {'level': 4, 'broken': False, 'protections': 0, 'used': 1}),
  ('control #1',
   [9, [50, 40, 50, 0, 40, 29, 0], 0],
   {'level': 9, 'broken': True, 'protections': 0, 'used': 1})]]
for label, args, expected in cases[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
protected downgrade #1{'broken': False, 'level': 5, 'protections': 0, 'used': 2}{'broken': False, 'level': 5, 'protections': 0, 'used': 2}Passed
fault site risk tier start #1{'broken': False, 'level': 6, 'protections': 0, 'used': 4}{'broken': False, 'level': 6, 'protections': 0, 'used': 4}Passed
fault site risk tier start #2{'broken': False, 'level': 5, 'protections': 0, 'used': 6}{'broken': False, 'level': 5, 'protections': 0, 'used': 6}Passed
partial repair boundary #1{'broken': False, 'level': 7, 'protections': 2, 'used': 5}{'broken': False, 'level': 7, 'protections': 2, 'used': 5}Passed
regression risk tier start #1{'broken': True, 'level': 8, 'protections': 0, 'used': 7}{'broken': True, 'level': 8, 'protections': 0, 'used': 7}Passed
break at eight #1{'broken': True, 'level': 8, 'protections': 0, 'used': 1}{'broken': True, 'level': 8, 'protections': 0, 'used': 1}Passed
boundary roll equals chance #1{'broken': False, 'level': 4, 'protections': 0, 'used': 1}{'broken': False, 'level': 4, 'protections': 0, 'used': 1}Passed
control #1{'broken': True, 'level': 9, 'protections': 0, 'used': 2}{'broken': True, 'level': 9, 'protections': 0, 'used': 2}Passed

SHA-256 / ce64a3deb430ed8e32df5a0d3650ae6f0d0a0a6dc87bef36e5404b17765fa24e

Verification & scope

Deterministic toy contract stipulated for this model; integer or exact arithmetic only, not a reproduction of any specific game engine. 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:50:45.750704+00:00.

Case digest / 7a73600b1d0f6bfae9a475625186b66ecad1bc4fde58daf10ca345bed856b93e